home *** CD-ROM | disk | FTP | other *** search
/ Fun Online 1996 September / FOL0996.iso / GEARDEMO / WAVEMIX / ABSTRACT.TXT < prev    next >
Text File  |  1995-03-02  |  3KB  |  91 lines

  1.  
  2.  
  3.  WAVEMIX: Plays Multiple .WAV Files Simultaneously
  4.  
  5.  THIS TOOL IS NOT SUPPORTED BY MICROSOFT CORPORATION. IT IS
  6.  PROVIDED "AS IS" BECAUSE WE BELIEVE IT MAY BE USEFUL TO
  7.  YOU. WE REGRET THAT MICROSOFT IS UNABLE TO SUPPORT OR
  8.  ASSIST YOU SHOULD YOU HAVE PROBLEMS USING THIS TOOL.
  9.  
  10.  WAVEMIX.DLL is a utility that allows multiple wave (.WAV)
  11.  files to play simultaneously. It is designed to be as
  12.  simple to use as possible but still have the power
  13.  required by games. The dynamic-link library (DLL) supports
  14.  eight channels of simultaneous wave play, the ability to
  15.  queue waves along the same channel, and wave completion
  16.  notification. The source code for the DLL is not included
  17.  in this sample.
  18.  
  19.  WAVEMIX.DLL currently supports 11.025 kHz, 22.05 kHz, and
  20.  44.1 kHz 8-bit mono. Wave conversion from the file format
  21.  is done automatically to the output sampling rate when the
  22.  file is opened. The sampling rate is set in WAVEMIX.INI.
  23.  (See the WAVEMIX.INI file for details.) Stereo files and
  24.  16-bit files are converted to 8-bit mono when the wave is
  25.  loaded. The application programming interface (API)
  26.  consists of the following functions:
  27.  
  28.  >  HANDLE WINAPI WaveMixInit(void);
  29.  >  HANDLE WINAPI WaveMixActivate(HANDLE hMixSession, BOOL
  30.  fActivate);
  31.  >  LPMIXWAVE WINAPI WaveMixOpenWave(HANDLE hMixSession,
  32.        LPSTR szWaveFilename, HINSTANCE hInst, DWORD
  33.  dwFlags);
  34.  >  UINT WINAPI WaveMixOpenChannel(HANDLE hMixSession, int
  35.  iChannel, DWORD
  36.       dwFlags);
  37.  >  UINT WINAPI WaveMixPlay(LPMIXPLAYPARAMS
  38.  lpMixPlayParams);
  39.  >  UINT WINAPI WaveMixFlushChannel(HANDLE hMixSession, int
  40.  iChannel,
  41.        DWORD dwFlags);
  42.  >  UINT WINAPI WaveMixCloseChannel(HANDLE hMixSession, int
  43.  iChannel,
  44.        DWORD dwFlags);
  45.  >  UINT WINAPI WaveMixFreeWave(LPMIXWAVE lpMixWave);
  46.  >  UINT WINAPI WaveMixCloseSession(HANDLE hMixSession);
  47.        void WINAPI WaveMixPump(void);
  48.  >  WORD WINAPI WaveMixGetInfo(LPWAVEMIXINFO
  49.  lpWaveMixInfo);
  50.  
  51.  To play a file, a program must:
  52.  
  53.  1.  Initialize the DLL with WaveMixInit.
  54.  
  55.  2.  Open a wave file with WaveMixOpenWave.
  56.  
  57.  3.  Open a channel with WaveMixOpenChannel.
  58.  
  59.  4.  Call WaveMixActivate(TRUE) to tell WAVEMIX.DLL to
  60.  actually get the wave output device (see Note 1 below).
  61.  
  62.  5.  Play the file by using WaveMixPlay.
  63.  
  64.  A given channel can be silenced by calling
  65.  WaveMixFlushChannel at any time.
  66.  
  67.  When the program is finished playing sounds, it should:
  68.  
  69.  1.  Close the open channels by using WaveMixCloseChannel.
  70.  
  71.  2.  Free the memory for the waves by using
  72.  WaveMixFreeWave.
  73.  
  74.  3.  End the session with WaveMixCloseSession.
  75.  
  76.  Note 1: An application should call WaveMixActivate(FALSE)
  77.  when it loses the focus, so that the waveform device can
  78.  be freed for other applications. When focus is regained,
  79.  the application can call WaveMixActivate(TRUE).
  80.  
  81.  Note 2: An application that does not release the processor
  82.  can cause the sound to "skip." To avoid this, it can call
  83.  WaveMixPump frequently.
  84.  
  85.  For more information on the above functions, refer to the
  86.  WAVEMIX.TXT file included in this sample. For more
  87.  information on mixing sounds, refer to the MIXDESCR.TXT
  88.  file.
  89.  
  90.  KEYWORDS: CD7; CD9 (revised); CD11 (revised)
  91.