home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Multimedia Jumpstart 1.1a / CD_ROM.BIN / develpmt / source / wavemix / wavemix.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-21  |  2.1 KB  |  58 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. WORD         WINAPI WaveMixGetInfo(LPWAVEMIXINFO lpWaveMixInfo);
  34.  
  35. /* return same errors as waveOutOpen, waveOutWrite, and waveOutClose */
  36. HANDLE        WINAPI WaveMixInit(void); /* returns hMixSession - you should keep it and use for subsequent API calls */
  37. UINT        WINAPI WaveMixActivate(HANDLE hMixSession, BOOL fActivate);
  38.  
  39. #define WMIX_FILE        0x0001
  40. #define WMIX_RESOURCE    0x0002
  41. LPMIXWAVE    WINAPI WaveMixOpenWave(HANDLE hMixSession, LPSTR szWaveFilename, HINSTANCE hInst, DWORD dwFlags);
  42.  
  43. #define WMIX_OPENSINGLE 0    /* open the single channel specified by iChannel */
  44. #define WMIX_OPENALL 1 /* opens all the channels, iChannel ignored */
  45. #define WMIX_OPENCOUNT 2 /* open iChannel Channels (eg. if iChannel = 4 will create channels 0-3) */
  46. UINT        WINAPI WaveMixOpenChannel(HANDLE hMixSession, int iChannel, DWORD dwFlags);
  47.  
  48. UINT        WINAPI WaveMixPlay(LPMIXPLAYPARAMS lpMixPlayParams);
  49.  
  50. #define WMIX_ALL     0x0001 /* stops sound on all the channels, iChannel ignored */
  51. #define WMIX_NOREMIX 0x0002 /* prevents the currently submited blocks from being remixed to exclude new channel */
  52. UINT        WINAPI WaveMixFlushChannel(HANDLE hMixSession, int iChannel, DWORD dwFlags);
  53. UINT        WINAPI WaveMixCloseChannel(HANDLE hMixSession, int iChannel, DWORD dwFlags);
  54.  
  55. UINT        WINAPI WaveMixFreeWave(HANDLE HMixSession, LPMIXWAVE lpMixWave);
  56. UINT        WINAPI WaveMixCloseSession(HANDLE hMixSession);
  57. void        WINAPI WaveMixPump(void);
  58.