Subversion Repositories Games.Carmageddon

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. typedef unsigned int W32;
  2.  
  3. typedef struct _tag_sos_evds_struct _SOS_EVDS_STRUCT;
  4. typedef struct _tag_sos_vds_struct _SOS_VDS_STRUCT;
  5. typedef struct _tag_sos_sample _SOS_SAMPLE;
  6. typedef _SOS_SAMPLE* PSOSSAMPLE;
  7. typedef struct _tagCAPABILITIES _SOS_CAPABILITIES;
  8. typedef _SOS_CAPABILITIES* PSOSCAPABILITIES;
  9. typedef struct _SOS_HARDWARE* PSOSHARDWARE;
  10. typedef struct _tag_sos_driver _SOS_DIGI_DRIVER;
  11. typedef _SOS_DIGI_DRIVER* PSOSDIGIDRIVER;
  12. typedef struct _SOS_DRV_FILEHEADER* PSOSDRVFILEHEADER;
  13. typedef struct _SOS_DRV_DRIVERHEADER* PSOSDRVDRIVERHEADER;
  14. typedef struct _tag_sos_system _SOS_SYSTEM;
  15. typedef _SOS_SYSTEM* PSOSSYSTEM;
  16. typedef struct _tag_sos_det_system _SOS_DET_SYSTEM;
  17. typedef _SOS_DET_SYSTEM* PSOSDETSYSTEM;
  18. typedef struct _tag_sos_timer_system _SOS_TIMER_SYSTEM;
  19. typedef _SOS_TIMER_SYSTEM* PSOSTIMERSYSTEM;
  20.  
  21. typedef struct _tag_sos_evds_struct {
  22.     unsigned int region_size;
  23.     unsigned int offset;
  24.     unsigned int segment;
  25.     unsigned short number_available;
  26.     unsigned short number_used;
  27.     unsigned int page0;
  28. } _SOS_EVDS_STRUCT;
  29.  
  30. typedef struct _tag_sos_vds_struct {
  31.     unsigned int region_size;
  32.     unsigned int offset;
  33.     unsigned short segment;
  34.     unsigned short ID;
  35.     unsigned int physical;
  36. } _SOS_VDS_STRUCT;
  37.  
  38. typedef struct _tag_sos_sample {
  39.     char* pSample;
  40.     char* pSampleCurrent;
  41.     char* pSampleLoop;
  42.     unsigned long wLength;
  43.     unsigned long wLoopLength;
  44.     unsigned long wLoopEndLength;
  45.     unsigned long wLoopStage;
  46.     unsigned long wID;
  47.     unsigned long wFlags;
  48.     unsigned long wPriority;
  49.     unsigned long hSample;
  50.     unsigned long wVolume;
  51.     unsigned long wLoopCount;
  52.     unsigned long wRate;
  53.     unsigned long wBitsPerSample;
  54.     unsigned long wChannels;
  55.     unsigned long wFormat;
  56.     unsigned long wPanPosition;
  57.     unsigned long wPanSpeed;
  58.     unsigned long wPanStart;
  59.     unsigned long wPanEnd;
  60.     unsigned long wPanMode;
  61.     unsigned long wTotalBytesProcessed;
  62.     void (*pfnSampleProcessed)(PSOSSAMPLE*);
  63.     void (*pfnSampleDone)(PSOSSAMPLE*);
  64.     void (*pfnSampleLoop)(PSOSSAMPLE*);
  65.     unsigned long wSystem[16];
  66.     unsigned long wUser[16];
  67.     PSOSSAMPLE* pLink;
  68.     PSOSSAMPLE* pNext;
  69. } _SOS_SAMPLE;
  70.  
  71. typedef struct _tagCAPABILITIES {
  72.     unsigned char szDeviceName[32];
  73.     W32 wDeviceVersion;
  74.     W32 wBitsPerSample;
  75.     W32 wChannels;
  76.     W32 wMinRate;
  77.     W32 wMaxRate;
  78.     W32 wMixerOnBoard;
  79.     W32 wMixerFlags;
  80.     W32 wFlags;
  81.     short* lpPortList;
  82.     short* lpDMAList;
  83.     short* lpIRQList;
  84.     short* lpRateList;
  85.     W32 fBackground;
  86.     W32 wID;
  87.     W32 wTimerID;
  88. } _SOS_CAPABILITIES;
  89.  
  90. typedef struct _SOS_HARDWARE {
  91.     W32 wPort;
  92.     W32 wIRQ;
  93.     W32 wDMA;
  94.     W32 wParam;
  95. } _SOS_HARDWARE;
  96.  
  97. typedef struct _tag_sos_driver {
  98.     W32 wFlags;
  99.     unsigned long wDriverRate;
  100.     unsigned long wDriverChannels;
  101.     unsigned long wDriverBitsPerSample;
  102.     unsigned long wDriverFormat;
  103.     unsigned long wMixerChannels;
  104.     unsigned long wDMACountRegister;
  105.     unsigned long wDMAPosition;
  106.     unsigned long wDMALastPosition;
  107.     unsigned long wDMADistance;
  108.     char* pXFERPosition;
  109.     unsigned long wXFERJumpAhead;
  110.     _SOS_SAMPLE* pSampleList;
  111.     void (*pfnPseudoDMAFunction)(void);
  112.     char* pDMABuffer;
  113.     char* pDMABufferEnd;
  114.     unsigned long wDMABufferSize;
  115.     char* pMixingBuffer;
  116.     char* pMixingBufferEnd;
  117.     unsigned long wMixingBufferSize;
  118.     unsigned long wActiveChannels;
  119.     _SOS_SAMPLE* pSamples;
  120.     _SOS_HARDWARE sHardware;
  121.     _SOS_CAPABILITIES sCaps;
  122.     char* lpDriverDS;
  123.     char* lpDriverCS;
  124.     W32 wSize;
  125.     unsigned long dwLinear;
  126.     unsigned long dwDMAPhysical;
  127.     char* lpDMABuffer;
  128.     W32 hMemory;
  129.     W32 wDMARealSeg;
  130.     W32 wID;
  131.     void (*pfnMixFunction)(void);
  132. } _SOS_DIGI_DRIVER;
  133.  
  134. typedef struct _SOS_DRV_FILEHEADER {
  135.     unsigned char szName[32];
  136.     W32 wDrivers;
  137.     W32 lOffset;
  138.     W32 lFileSize;
  139. } _SOS_DRV_FILEHEADER;
  140.  
  141. typedef struct _SOS_DRV_DRIVERHEADER {
  142.     unsigned char szName[32];
  143.     W32 lNextDriver;
  144.     W32 wSize;
  145.     W32 wDeviceID;
  146.     W32 wExtenderType;
  147. } _SOS_DRV_DRIVERHEADER;
  148.  
  149. typedef struct _tag_sos_system {
  150.     W32 wFlags;
  151.     unsigned char szDriverPath[128];
  152.     unsigned char szTempDriverPath[128];
  153.     PSOSDIGIDRIVER pDriver[5];
  154.     _SOS_VDS_STRUCT sVDS;
  155.     _SOS_DRV_FILEHEADER sFileHeader;
  156.     _SOS_DRV_DRIVERHEADER sDriverHeader;
  157.     char* (*pMemAllocFunction)(unsigned long);
  158.     void (*pMemFreeFunction)(char*, W32);
  159. } _SOS_SYSTEM;
  160.  
  161. typedef struct _tag_sos_det_system {
  162.     W32 wFlags;
  163.     unsigned char szDriverPath[128];
  164.     unsigned char szTempDriverPath[128];
  165.     _SOS_DRV_FILEHEADER sFileHeader;
  166.     _SOS_DRV_DRIVERHEADER sDriverHeader;
  167.     _SOS_CAPABILITIES sCaps;
  168.     PSOSCAPABILITIES pCaps;
  169.     char* lpBufferDS;
  170.     char* lpBufferCS;
  171.     W32 hFile;
  172.     unsigned long dwDriverIndex;
  173.     W32 wDriverIndexCur;
  174.     W32 hMemory;
  175.     unsigned long dwLinear;
  176. } _SOS_DET_SYSTEM;
  177.  
  178. typedef struct _tag_sos_timer_system {
  179.     W32 wFlags;
  180.     W32 wChipDivisor;
  181.     void (*pfnEvent[16])(void);
  182.     W32 wEventRate[16];
  183.     unsigned long dwAdditiveFraction[16];
  184.     unsigned long dwCurrentSummation[16];
  185.     W32 wMIDIEventSongHandle[16];
  186.     W32 wMIDIActiveSongHandle;
  187. } _SOS_TIMER_SYSTEM;
  188.