//=========F U N K T I O N E N ================================================================== // Initialisiert alle Sound Buffer von SoundArray[] int GlobalSoundInit(void) { if (MakeSoundBuffer("sound.wav", &SoundArray[1])) { MessageBox(NULL, "Error", "CreateSoundBuffer()", NULL); return 1; } if (MakeSoundBuffer("game.wav", &SoundArray[2])) { MessageBox(NULL, "Error", "CreateSoundBuffer()", NULL); return 1; } return 0; }
IDirectSoundBuffer *DSLoadSoundBuffer(IDirectSound *pDS, char *lpName , DWORD dwFlags ) #endif { IDirectSoundBuffer *pDSB = NULL; DSBUFFERDESC dsBD = {0}; BYTE *pbWaveData; void * Buffer = NULL; if (Buffer = DSGetWave(lpName, &dsBD.lpwfxFormat, &pbWaveData, &dsBD.dwBufferBytes)) { dsBD.dwSize = sizeof(dsBD); dsBD.dwFlags = dwFlags ; if ( MakeSoundBuffer( pDS, &dsBD, &pDSB, NULL ) ) { if (!DSFillSoundBuffer(pDSB, pbWaveData, dsBD.dwBufferBytes)) { SoundBufferRelease(&pDSB); pDSB = NULL; } } else { pDSB = NULL; } } if( Buffer != NULL ) free( Buffer ); return pDSB; }
IDirectSoundBuffer *DSLoadCompoundSoundBuffer(IDirectSound *pDS, DWORD dwFlags, int *num_allocated_ptr ) #endif { IDirectSoundBuffer *pDSB = NULL; DSBUFFERDESC dsBD = {0}; BYTE *pbWaveData; void * Buffer = NULL; WAVEFORMATEX format; if (Buffer = DSGetMultiWave(&format, &pbWaveData, &dsBD.dwBufferBytes, dwFlags, num_allocated_ptr)) { dsBD.dwSize = sizeof(dsBD); dsBD.dwFlags = dwFlags; dsBD.lpwfxFormat = &format; if ( MakeSoundBuffer( pDS, &dsBD, &pDSB, NULL ) ) { if (!DSFillSoundBuffer(pDSB, Buffer, dsBD.dwBufferBytes)) { SoundBufferRelease(&pDSB); pDSB = NULL; } } } if( Buffer != NULL ) free( Buffer ); return pDSB; }
IDirectSoundBuffer *DSLoad3DSoundBuffer(IDirectSound *pDS, char *lpName, IDirectSound3DBuffer ** lpDirectSound3DBuffer, DWORD dwflags ) { #if 0 IDirectSoundBuffer *pDSB = NULL; DSBUFFERDESC dsBD = {0}; BYTE *pbWaveData; void * Buffer = NULL; dsBD.dwSize = sizeof(dsBD); dsBD.dwFlags = dwflags; if ( Buffer = DSGetWave(lpName, &dsBD.lpwfxFormat, &pbWaveData, &dsBD.dwBufferBytes)) { if ( MakeSoundBuffer( pDS, &dsBD, &pDSB, NULL ) ) { if (DS_OK==IDirectSoundBuffer_QueryInterface(pDSB, &IID_IDirectSound3DBuffer, (void **)lpDirectSound3DBuffer)) { if (!DSFillSoundBuffer(pDSB, pbWaveData, dsBD.dwBufferBytes)) { SoundBufferRelease(&pDSB); pDSB = NULL; } } } else { pDSB = NULL; lpDirectSound3DBuffer = NULL; } } if( Buffer != NULL ) free( Buffer ); return pDSB; #endif return NULL; }