Mercurial > projects > ddbg_continued
diff win32/directx/dsound8.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32/directx/dsound8.d Tue Apr 05 20:44:01 2011 +0200 @@ -0,0 +1,228 @@ +module win32.directx.dsound8; + +//import tango.sys.win32.Types; +import win32.windows; + +alias GUID* LPCGUID; + +interface IUnknown +{ + HRESULT QueryInterface(IID* riid, void** pvObject); + ULONG AddRef(); + ULONG Release(); +} + +alias IUnknown LPUNKNOWN; + +interface IDirectSound : IUnknown +{ + extern(Windows): + + // IDirectSound methods + HRESULT CreateSoundBuffer (LPCDSBUFFERDESC pcDSBufferDesc, LPDIRECTSOUNDBUFFER *ppDSBuffer, LPUNKNOWN pUnkOuter); + HRESULT GetCaps (LPDSCAPS pDSCaps); + HRESULT DuplicateSoundBuffer (LPDIRECTSOUNDBUFFER pDSBufferOriginal, LPDIRECTSOUNDBUFFER *ppDSBufferDuplicate); + HRESULT SetCooperativeLevel (HWND hwnd, DWORD dwLevel); + HRESULT Compact (); + HRESULT GetSpeakerConfig (LPDWORD pdwSpeakerConfig); + HRESULT SetSpeakerConfig (DWORD dwSpeakerConfig); + HRESULT Initialize (LPCGUID pcGuidDevice); +} + +alias IDirectSound LPDIRECTSOUND; + +interface IDirectSound8 : IDirectSound +{ + extern(Windows): + + // IDirectSound8 methods + HRESULT VerifyCertification (LPDWORD pdwCertified); +} + +alias IDirectSound8 LPDIRECTSOUND8; + +interface IDirectSoundBuffer : IUnknown +{ + extern(Windows): + + // IDirectSoundBuffer methods + HRESULT GetCaps (LPDSBCAPS pDSBufferCaps); + HRESULT GetCurrentPosition (LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor); + HRESULT GetFormat (LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten); + HRESULT GetVolume (LPLONG plVolume); + HRESULT GetPan (LPLONG plPan); + HRESULT GetFrequency (LPDWORD pdwFrequency); + HRESULT GetStatus (LPDWORD pdwStatus); + HRESULT Initialize (LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc); + HRESULT Lock (DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, + LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags); + HRESULT Play (DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); + HRESULT SetCurrentPosition (DWORD dwNewPosition); + HRESULT SetFormat (LPCWAVEFORMATEX pcfxFormat); + HRESULT SetVolume (LONG lVolume); + HRESULT SetPan (LONG lPan); + HRESULT SetFrequency (DWORD dwFrequency); + HRESULT Stop (); + HRESULT Unlock (LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2); + HRESULT Restore (); +} + +alias IDirectSoundBuffer LPDIRECTSOUNDBUFFER; + +interface IDirectSound3DListener : IUnknown +{ + extern(Windows): + + // IDirectSound3DListener methods + HRESULT GetAllParameters (LPDS3DLISTENER pListener); + HRESULT GetDistanceFactor (D3DVALUE* pflDistanceFactor); + HRESULT GetDopplerFactor (D3DVALUE* pflDopplerFactor); + HRESULT GetOrientation (D3DVECTOR* pvOrientFront, D3DVECTOR* pvOrientTop); + HRESULT GetPosition (D3DVECTOR* pvPosition); + HRESULT GetRolloffFactor (D3DVALUE* pflRolloffFactor); + HRESULT GetVelocity (D3DVECTOR* pvVelocity); + HRESULT SetAllParameters (LPCDS3DLISTENER pcListener, DWORD dwApply); + HRESULT SetDistanceFactor (D3DVALUE flDistanceFactor, DWORD dwApply); + HRESULT SetDopplerFactor (D3DVALUE flDopplerFactor, DWORD dwApply); + HRESULT SetOrientation (D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, + D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply); + HRESULT SetPosition (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply); + HRESULT SetRolloffFactor (D3DVALUE flRolloffFactor, DWORD dwApply); + HRESULT SetVelocity (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply); + HRESULT CommitDeferredSettings (); +} + +struct WAVEFORMATEX +{ + ushort wFormatTag; + ushort nChannels; + uint nSamplesPerSec; + uint nAvgBytesPerSec; + ushort nBlockAlign; + ushort wBitsPerSample; + ushort cbSize; +} + +alias WAVEFORMATEX* LPWAVEFORMATEX, LPCWAVEFORMATEX; + +enum : uint +{ + WAVE_FORMAT_PCM = 1 +} + +struct DSCBUFFERDESC +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwReserved; + LPWAVEFORMATEX lpwfxFormat; + DWORD dwFXCount; + LPDSCEFFECTDESC lpDSCFXDesc; +} + +alias DSCBUFFERDESC* LPDSCBUFFERDESC; + +struct DSBUFFERDESC +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwReserved; + LPWAVEFORMATEX lpwfxFormat; + GUID guid3DAlgorithm; +} + +alias DSBUFFERDESC* LPCDSBUFFERDESC; + +struct DSCAPS +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwMinSecondarySampleRate; + DWORD dwMaxSecondarySampleRate; + DWORD dwPrimaryBuffers; + DWORD dwMaxHwMixingAllBuffers; + DWORD dwMaxHwMixingStaticBuffers; + DWORD dwMaxHwMixingStreamingBuffers; + DWORD dwFreeHwMixingAllBuffers; + DWORD dwFreeHwMixingStaticBuffers; + DWORD dwFreeHwMixingStreamingBuffers; + DWORD dwMaxHw3DAllBuffers; + DWORD dwMaxHw3DStaticBuffers; + DWORD dwMaxHw3DStreamingBuffers; + DWORD dwFreeHw3DAllBuffers; + DWORD dwFreeHw3DStaticBuffers; + DWORD dwFreeHw3DStreamingBuffers; + DWORD dwTotalHwMemBytes; + DWORD dwFreeHwMemBytes; + DWORD dwMaxContigFreeHwMemBytes; + DWORD dwUnlockTransferRateHwBuffers; + DWORD dwPlayCpuOverheadSwBuffers; + DWORD dwReserved1; + DWORD dwReserved2; +} + +alias DSCAPS* LPDSCAPS; + +struct DSBCAPS +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwUnlockTransferRate; + DWORD dwPlayCpuOverhead; +} + +alias DSBCAPS *LPDSBCAPS; + +struct DSCEFFECTDESC +{ + DWORD dwSize; + DWORD dwFlags; + GUID guidDSCFXClass; + GUID guidDSCFXInstance; + DWORD dwReserved1; + DWORD dwReserved2; +} + +alias DSCEFFECTDESC *LPDSCEFFECTDESC; + +struct DS3DLISTENER +{ + DWORD dwSize; + D3DVECTOR vPosition; + D3DVECTOR vVelocity; + D3DVECTOR vOrientFront; + D3DVECTOR vOrientTop; + D3DVALUE flDistanceFactor; + D3DVALUE flRolloffFactor; + D3DVALUE flDopplerFactor; +} + +alias DS3DLISTENER *LPDS3DLISTENER, LPCDS3DLISTENER; + +alias float D3DVALUE; + +struct D3DVECTOR +{ + float x; + float y; + float z; +} + +extern(Windows) export HRESULT DirectSoundCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter); + +const DSSCL_PRIORITY = 0x00000002; +const DSBCAPS_PRIMARYBUFFER = 0x00000001; +const DSBCAPS_CTRL3D = 0x00000010; +const DSBCAPS_GETCURRENTPOSITION2 = 0x00010000; +const DSBCAPS_LOCDEFER = 0x00040000; +const DSBPLAY_LOOPING = 0x00000001; +const DSBSTATUS_PLAYING = 0x00000001; +const DSBCAPS_CTRLFREQUENCY = 0x00000020; +const DSBCAPS_CTRLPAN = 0x00000040; +const DSBCAPS_CTRLVOLUME = 0x00000080; +const DSBLOCK_ENTIREBUFFER = 0x00000002; + +const GUID IID_IDirectSound3DListener8 = {0x279AFA84,0x4981,0x11CE,[0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; \ No newline at end of file