home *** CD-ROM | disk | FTP | other *** search
/ Game Audio Programming / GameAudioProgramming.iso / Extras / Sensaura / SDK1.0 / data1.cab / Example_Files / ZoomFX / WaveFile.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-13  |  1.3 KB  |  55 lines

  1. // WaveFile.h
  2.  
  3. #ifndef _INC_WAVEFILE
  4. #define _INC_WAVEFILE
  5.  
  6.  
  7. // Constants
  8. #ifndef SUCCESS
  9. #define SUCCESS TRUE        // Error returns for all member functions
  10. #define FAILURE FALSE
  11. #endif // SUCCESS
  12.  
  13.  
  14. // Class
  15.  
  16. // WaveFile
  17. //
  18. // WAV file class (read-only).
  19. //
  20. // Public Methods:
  21. //
  22. // Public Data:
  23. //   
  24. //
  25.  
  26. class WaveFile
  27. {
  28. public:
  29.     WaveFile (void);
  30.     ~WaveFile (void);
  31.     BOOL Open (const char *pszFilename);
  32.     BOOL Cue (void);
  33.     UINT Read (BYTE * pbDest, UINT cbSize);
  34.     UINT GetNumBytesRemaining (void) { return (m_nDataSize - m_nBytesPlayed); }
  35.     UINT GetAvgDataRate (void) { return (m_nAvgDataRate); }
  36.     UINT GetDataSize (void) { return (m_nDataSize); }
  37.     UINT GetNumBytesPlayed (void) { return (m_nBytesPlayed); }
  38.     UINT GetDuration (void) { return (m_nDuration); }
  39.     BYTE GetSilenceData (void);
  40.     WAVEFORMATEX * m_pwfmt;
  41. protected:
  42.     HMMIO m_hmmio;
  43.     MMRESULT m_mmr;
  44.     MMCKINFO m_mmckiRiff;
  45.     MMCKINFO m_mmckiFmt;
  46.     MMCKINFO m_mmckiData;
  47.     UINT m_nDuration;           // duration of sound in msec
  48.     UINT m_nBlockAlign;         // wave data block alignment spec
  49.     UINT m_nAvgDataRate;        // average wave data rate
  50.     UINT m_nDataSize;           // size of data chunk
  51.     UINT m_nBytesPlayed;        // offset into data chunk
  52. };
  53.  
  54. #endif // _INC_WAVEFILE
  55.