diff options
Diffstat (limited to 'samples/DX_APIUsage/DXUT/Optional/SDKwavefile.h')
| -rw-r--r-- | samples/DX_APIUsage/DXUT/Optional/SDKwavefile.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/samples/DX_APIUsage/DXUT/Optional/SDKwavefile.h b/samples/DX_APIUsage/DXUT/Optional/SDKwavefile.h new file mode 100644 index 0000000..66f6fbf --- /dev/null +++ b/samples/DX_APIUsage/DXUT/Optional/SDKwavefile.h @@ -0,0 +1,59 @@ +//----------------------------------------------------------------------------- +// File: WaveFile.h +// +// Copyright (c) Microsoft Corp. All rights reserved. +//----------------------------------------------------------------------------- +#ifndef DXUTWAVEFILE_H +#define DXUTWAVEFILE_H + +//----------------------------------------------------------------------------- +// Typing macros +//----------------------------------------------------------------------------- +#define WAVEFILE_READ 1 +#define WAVEFILE_WRITE 2 + +//----------------------------------------------------------------------------- +// Name: class CWaveFile +// Desc: Encapsulates reading or writing sound data to or from a wave file +//----------------------------------------------------------------------------- +class CWaveFile +{ +public: + WAVEFORMATEX* m_pwfx; // Pointer to WAVEFORMATEX structure + HMMIO m_hmmio; // MM I/O handle for the WAVE + MMCKINFO m_ck; // Multimedia RIFF chunk + MMCKINFO m_ckRiff; // Use in opening a WAVE file + DWORD m_dwSize; // The size of the wave file + MMIOINFO m_mmioinfoOut; + DWORD m_dwFlags; + BOOL m_bIsReadingFromMemory; + BYTE* m_pbData; + BYTE* m_pbDataCur; + ULONG m_ulDataSize; + CHAR* m_pResourceBuffer; + +protected: + HRESULT ReadMMIO(); + HRESULT WriteMMIO( WAVEFORMATEX* pwfxDest ); + +public: + CWaveFile(); + ~CWaveFile(); + + HRESULT Open( LPWSTR strFileName, WAVEFORMATEX* pwfx, DWORD dwFlags ); + HRESULT OpenFromMemory( BYTE* pbData, ULONG ulDataSize, WAVEFORMATEX* pwfx, DWORD dwFlags ); + HRESULT Close(); + + HRESULT Read( BYTE* pBuffer, DWORD dwSizeToRead, DWORD* pdwSizeRead ); + HRESULT Write( UINT nSizeToWrite, BYTE* pbData, UINT* pnSizeWrote ); + + DWORD GetSize(); + HRESULT ResetFile(); + WAVEFORMATEX* GetFormat() + { + return m_pwfx; + }; +}; + + +#endif // DXUTWAVEFILE_H |