AxibugEmuOnline/References/VirtuaNESex_src_191105/WaveRec.h

51 lines
860 B
C
Raw Permalink Normal View History

2024-08-05 17:58:53 +08:00
//
// Wave record class
//
#ifndef __CWAVEREC_INCLUDED__
#define __CWAVEREC_INCLUDED__
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include <memory.h>
#include "typedef.h"
#pragma pack(1)
typedef struct {
CHAR tagRIFF[4]; // "RIFF"
DWORD dwFileSize;
CHAR tagTYPE[8]; // "WAVEfmt "
DWORD dwChunkOffset;
WORD wCodingType;
WORD wChannel;
DWORD dwSample;
DWORD dwBytesPerSec;
WORD wBytesPerSample;
WORD wBits;
CHAR tagDATA[4]; // "data"
DWORD dwDataSize;
} WAVEFILE, *LPWAVEFILE;
#pragma pack()
class CWaveRec
{
public:
CWaveRec();
~CWaveRec();
void Start( LPSTR szFile, INT nSample, INT nBits, BOOL bStereo );
void Stop();
BOOL IsWaveRecord() { return fp?TRUE:FALSE; }
void Out( LPVOID lpBuf, DWORD dwSize );
protected:
private:
WAVEFILE wavefile;
FILE* fp;
};
#endif // !__CWAVEREC_INCLUDED__