-
Playing a Wave File
this is what I have so far.........
Code:
class Sound
{
public:
Sound(char* FileName);
PBYTE GetMusicData(){ return SoundData;}
private:
HANDLE MusicFile;
char Buffer [5];//we add one for the null terminator
char DataBuffer[4];
unsigned long FmtRead;
unsigned long RiffRead;
unsigned long WaveRead;
unsigned long LengthOfSound;
unsigned long LengthBuffer;
unsigned long LengthOfSoundWave;
unsigned long LengthBufferWave;
unsigned long GetPastHugeChunks;
unsigned long GetPastHugeChunksBuffer;
unsigned long LengthOfChunk;
unsigned long LengthOfChunkBuffer;
char* TEMP;
PBYTE SoundData;
PWAVEHDR WaveHeader;
WAVEFORMATEX waveformat ;
HWAVEOUT WaveOut;
};
Sound::Sound(char* FileName)
{
//Load our Wave File
Buffer[4]='\0';
MusicFile=CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
ReadFile(MusicFile,Buffer,4,&RiffRead,NULL);
ReadFile(MusicFile,&LengthOfSound,4,&LengthBuffer,NULL);
ReadFile(MusicFile,Buffer,4,&WaveRead,NULL);
ReadFile(MusicFile,Buffer,4,&FmtRead,NULL);
ReadFile(MusicFile,&LengthOfChunk,4,&LengthOfChunkBuffer,NULL);
TEMP=new char[LengthOfChunk];
ReadFile(MusicFile,TEMP,LengthOfChunk,&RiffRead,NULL);
ReadFile(MusicFile,Buffer,4,&WaveRead,NULL);
ReadFile(MusicFile,&LengthOfSoundWave,4,&LengthBufferWave,NULL);
//allocate enough memory to copy of sound data
SoundData=new BYTE[LengthOfSoundWave];
ReadFile(MusicFile,SoundData,LengthOfSoundWave,&LengthBuffer,NULL);
WaveHeader=new WAVEHDR [sizeof (WAVEHDR)];
waveformat.wFormatTag = WAVE_FORMAT_PCM ;
waveformat.nChannels = 1 ;
waveformat.nSamplesPerSec = 11025;
waveformat.nAvgBytesPerSec = 11025;
waveformat.nBlockAlign = 1 ;
waveformat.wBitsPerSample = 8 ;
waveformat.cbSize = 0 ;
WaveHeader->lpData=SoundData;
WaveHeader->dwBufferLength=LengthOfSoundWave;
waveOutOpen (WaveOut, WAVE_MAPPER, &waveformat, NULL, 0, CALLBACK_WINDOW)
waveOutWrite (WaveHeader, pWaveHdr2, sizeof (WAVEHDR)) ;
-
I have sucessfully loaded a file and extracted the the wave data from a file....but then when I try to use waveout stuff it doens't work.......I don't even know the orden in which is supposed to be called in. Could someone please the order in which this is called....
-