#pragma once

class CWav {
private:
	// WAVフォーマット
	struct WAVHed {
		BYTE	RiffID[4];		// "RIFF"
		DWORD	FileSize;		// ファイルサイズ
		BYTE	WaveID[4];		// "WAVE"
		BYTE	fmtID[4];		// "fmt "
		DWORD	ChunkByte;		// fmt チャンクのバイト数
		WORD	FormatID;		// フォーマットID
		WORD	channels;		// チャンネル数
		DWORD	freq;			// サンプリングレート
		DWORD	bps;			// データ速度(Byte/sec)
		WORD	BlockSize;		// ブロックサイズ(Byte/sample * チャンネル数)
		WORD	bits;			// サンプルあたりのビット数(bit/sample)
		BYTE	DataID[4];		// "data"
		DWORD	DataSize;		// 波形データのバイト数
	};

	CArcFile* m_pclArc;
	WAVHed m_wavHed;

public:
	void Init(CArcFile* pclArc, DWORD dataSize, DWORD freq, WORD channels, WORD bits);
	void Write();
	void Write(LPBYTE buf);
	void Write(LPBYTE buf, DWORD size);
};