1 #ifndef DIRECTXSOUNDDRIVER_HH
2 #define DIRECTXSOUNDDRIVER_HH
7 #ifdef WIN32_LEAN_AND_MEAN
8 #undef WIN32_LEAN_AND_MEAN // Needed for <dsound.h>
10 #define DIRECTSOUND_VERSION 0x0500
16 class DirectXSoundDriver :
public SoundDriver,
private noncopyable
19 DirectXSoundDriver(
unsigned sampleRate,
unsigned bufferSize);
20 virtual ~DirectXSoundDriver();
23 virtual void unmute();
25 virtual unsigned getFrequency()
const;
26 virtual unsigned getSamples()
const;
28 virtual void uploadBuffer(
short* buffer,
unsigned len);
32 int dxCanWrite(
unsigned start,
unsigned size);
33 void dxWriteOne(
short* buffer,
unsigned lockSize);
35 enum DxState { DX_SOUND_DISABLED, DX_SOUND_ENABLED, DX_SOUND_RUNNING };
37 unsigned bufferOffset;
39 unsigned fragmentSize;
41 LPDIRECTSOUNDBUFFER primaryBuffer;
42 LPDIRECTSOUNDBUFFER secondaryBuffer;
43 LPDIRECTSOUND directSound;
51 #endif // DIRECTXSOUNDDRIVER_HH