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)) ;



LinkBack URL
About LinkBacks


