home *** CD-ROM | disk | FTP | other *** search
/ Learn 3D Graphics Programming on the PC / Learn_3D_Graphics_Programming_on_the_PC_Ferraro.iso / rwwin / wavemix.h_ / wavemix.bin
Text File  |  1995-11-14  |  3KB  |  71 lines

  1. #ifndef NOWMIXSTR
  2. typedef LPVOID LPMIXWAVE;
  3. #endif
  4.  
  5. /* flag values for play params */
  6. #define WMIX_QUEUEWAVE 0x00
  7. #define WMIX_CLEARQUEUE  0x01
  8. #define WMIX_USELRUCHANNEL 0x02
  9. #define WMIX_HIPRIORITY 0x04
  10. #define WMIX_WAIT 0x08
  11. typedef struct
  12. {
  13.     WORD wSize;
  14.     HANDLE hMixSession;
  15.     int iChannel;
  16.     LPMIXWAVE lpMixWave;
  17.     HWND hWndNotify;
  18.     DWORD dwFlags;
  19.     WORD wLoops;  /* 0xFFFF means loop forever */
  20. }
  21. MIXPLAYPARAMS, * PMIXPLAYPARAM, FAR * LPMIXPLAYPARAMS;
  22.  
  23. typedef struct
  24. {
  25.     WORD wSize;
  26.     BYTE bVersionMajor;
  27.     BYTE bVersionMinor;
  28.     char szDate[12]; /* Mmm dd yyyy */
  29.     DWORD dwFormats; /* see waveOutGetDevCaps (wavemix requires synchronous device) */
  30. }
  31. WAVEMIXINFO, *PWAVEMIXINFO, FAR * LPWAVEMIXINFO;
  32.  
  33. #define WMIX_CONFIG_CHANNELS 0x1
  34. #define WMIX_CONFIG_SAMPLINGRATE 0x2
  35. typedef struct
  36. {
  37.     WORD wSize;
  38.     DWORD dwFlags;
  39.     WORD wChannels;  /* 1 = MONO, 2 = STEREO */
  40.     WORD wSamplingRate; /* 11,22,44  (11=11025, 22=22050, 44=44100 Hz) */
  41. }
  42. MIXCONFIG, *PMIXCONFIG, FAR * LPMIXCONFIG;
  43.  
  44. WORD         WINAPI WaveMixGetInfo(LPWAVEMIXINFO lpWaveMixInfo);
  45.  
  46. /* return same errors as waveOutOpen, waveOutWrite, and waveOutClose */
  47. HANDLE    WINAPI WaveMixInit(void); /* returns hMixSession - you should keep it and use for subsequent API calls */
  48. HANDLE    WINAPI WaveMixConfigureInit(LPMIXCONFIG lpConfig);
  49. UINT        WINAPI WaveMixActivate(HANDLE hMixSession, BOOL fActivate);
  50.  
  51. #define WMIX_FILE            0x0001
  52. #define WMIX_RESOURCE    0x0002
  53. #define WMIX_MEMORY        0x0004
  54. LPMIXWAVE    WINAPI WaveMixOpenWave(HANDLE hMixSession, LPSTR szWaveFilename, HINSTANCE hInst, DWORD dwFlags);
  55.  
  56. #define WMIX_OPENSINGLE 0    /* open the single channel specified by iChannel */
  57. #define WMIX_OPENALL 1 /* opens all the channels, iChannel ignored */
  58. #define WMIX_OPENCOUNT 2 /* open iChannel Channels (eg. if iChannel = 4 will create channels 0-3) */
  59. UINT        WINAPI WaveMixOpenChannel(HANDLE hMixSession, int iChannel, DWORD dwFlags);
  60.  
  61. UINT        WINAPI WaveMixPlay(LPMIXPLAYPARAMS lpMixPlayParams);
  62.  
  63. #define WMIX_ALL     0x0001 /* stops sound on all the channels, iChannel ignored */
  64. #define WMIX_NOREMIX 0x0002 /* prevents the currently submited blocks from being remixed to exclude new channel */
  65. UINT        WINAPI WaveMixFlushChannel(HANDLE hMixSession, int iChannel, DWORD dwFlags);
  66. UINT        WINAPI WaveMixCloseChannel(HANDLE hMixSession, int iChannel, DWORD dwFlags);
  67.  
  68. UINT        WINAPI WaveMixFreeWave(HANDLE HMixSession, LPMIXWAVE lpMixWave);
  69. UINT        WINAPI WaveMixCloseSession(HANDLE hMixSession);
  70. void        WINAPI WaveMixPump(void);
  71.