summaryrefslogtreecommitdiffstats
path: root/third_party/rust/winapi-0.2.8/src/dsound.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--third_party/rust/winapi-0.2.8/src/dsound.rs132
1 files changed, 132 insertions, 0 deletions
diff --git a/third_party/rust/winapi-0.2.8/src/dsound.rs b/third_party/rust/winapi-0.2.8/src/dsound.rs
new file mode 100644
index 0000000000..e8f167fab7
--- /dev/null
+++ b/third_party/rust/winapi-0.2.8/src/dsound.rs
@@ -0,0 +1,132 @@
+// Copyright © 2015, Peter Atashian
+// Licensed under the MIT License <LICENSE.md>
+//! DSound procedure declarations, constant definitions and macros
+STRUCT!{struct DSCAPS {
+ 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: ::DWORD,
+}}
+pub type LPDSCAPS = *mut DSCAPS;
+STRUCT!{struct DSBCAPS {
+ dwSize: ::DWORD,
+ dwFlags: ::DWORD,
+ dwBufferBytes: ::DWORD,
+ dwUnlockTransferRate: ::DWORD,
+ dwPlayCpuOverhead: ::DWORD,
+}}
+pub type LPDSBCAPS = *mut DSBCAPS;
+STRUCT!{struct DSBUFFERDESC {
+ dwSize: ::DWORD,
+ dwFlags: ::DWORD,
+ dwBufferBytes: ::DWORD,
+ dwReserved: ::DWORD,
+ lpwfxFormat: ::LPWAVEFORMATEX,
+ guid3DAlgorithm: ::GUID,
+}}
+pub type LPCDSBUFFERDESC = *const DSBUFFERDESC;
+RIDL!(
+interface IDirectSoundBuffer(IDirectSoundBufferVtbl): IUnknown(IUnknownVtbl) {
+ fn GetCaps(&mut self, pDSBufferCaps: ::LPDSBCAPS) -> ::HRESULT,
+ fn GetCurrentPosition(
+ &mut self, pdwCurrentPlayCursor: ::LPDWORD, pdwCurrentWriteCursor: ::LPDWORD
+ ) -> ::HRESULT,
+ fn GetFormat(
+ &mut self, pwfxFormat: ::LPWAVEFORMATEX, dwSizeAllocated: ::DWORD,
+ pdwSizeWritten: ::LPDWORD
+ ) -> ::HRESULT,
+ fn GetVolume(&mut self, plVolume: ::LPLONG) -> ::HRESULT,
+ fn GetPan(&mut self, plPan: ::LPLONG) -> ::HRESULT,
+ fn GetFrequency(&mut self, pdwFrequency: ::LPDWORD) -> ::HRESULT,
+ fn GetStatus(&mut self, pdwStatus: ::LPDWORD) -> ::HRESULT,
+ fn Initialize(
+ &mut self, pDirectSound: ::LPDIRECTSOUND, pcDSBufferDesc: ::LPCDSBUFFERDESC
+ ) -> ::HRESULT,
+ fn Lock(
+ &mut self, dwOffset: ::DWORD, dwBytes: ::DWORD, ppvAudioPtr1: *mut ::LPVOID,
+ pdwAudioBytes1: ::LPDWORD, ppvAudioPtr2: *mut ::LPVOID, pdwAudioBytes2: ::LPDWORD,
+ dwFlags: ::DWORD
+ ) -> ::HRESULT,
+ fn Play(&mut self, dwReserved1: ::DWORD, dwPriority: ::DWORD, dwFlags: ::DWORD) -> ::HRESULT,
+ fn SetCurrentPosition(&mut self, dwNewPosition: ::DWORD) -> ::HRESULT,
+ fn SetFormat(&mut self, pcfxFormat: ::LPCWAVEFORMATEX) -> ::HRESULT,
+ fn SetVolume(&mut self, lVolume: ::LONG) -> ::HRESULT,
+ fn SetPan(&mut self, lPan: ::LONG) -> ::HRESULT,
+ fn SetFrequency(&mut self, dwFrequency: ::DWORD) -> ::HRESULT,
+ fn Stop(&mut self) -> ::HRESULT,
+ fn Unlock(
+ &mut self, pvAudioPtr1: ::LPVOID, dwAudioBytes1: ::DWORD, pvAudioPtr2: ::LPVOID,
+ dwAudioBytes2: ::DWORD
+ ) -> ::HRESULT,
+ fn Restore(&mut self) -> ::HRESULT
+}
+);
+pub type LPDIRECTSOUNDBUFFER = *mut IDirectSoundBuffer;
+RIDL!(
+interface IDirectSound(IDirectSoundVtbl): IUnknown(IUnknownVtbl)
+{
+ fn CreateSoundBuffer(
+ &mut self, pcDSBufferDesc: ::LPCDSBUFFERDESC, ppDSBuffer: *mut ::LPDIRECTSOUNDBUFFER,
+ pUnkOuter: ::LPUNKNOWN
+ ) -> ::HRESULT,
+ fn GetCaps(&mut self, pDSCaps: ::LPDSCAPS) -> ::HRESULT,
+ fn DuplicateSoundBuffer(
+ &mut self, pDSBufferOriginal: LPDIRECTSOUNDBUFFER,
+ ppDSBufferDuplicate: *mut ::LPDIRECTSOUNDBUFFER
+ ) -> ::HRESULT,
+ fn SetCooperativeLevel(&mut self, hWnd: ::HWND, dwLevel: ::DWORD) -> ::HRESULT,
+ fn Compact(&mut self) -> ::HRESULT,
+ fn GetSpeakerConfig(&mut self, pdwSpeakerConfig: ::LPDWORD) -> ::HRESULT,
+ fn SetSpeakerConfig(&mut self, dwSpeakerConfig: ::DWORD) -> ::HRESULT,
+ fn Initialize(&mut self, pcGuidDevice: ::LPCGUID) -> ::HRESULT
+}
+);
+pub type LPDIRECTSOUND = *mut IDirectSound;
+pub const DS_OK: ::HRESULT = ::S_OK;
+pub const DSERR_GENERIC: ::HRESULT = ::E_FAIL;
+pub const DSSCL_NORMAL: ::DWORD = 0x00000001;
+pub const DSSCL_PRIORITY: ::DWORD = 0x00000002;
+pub const DSSCL_EXCLUSIVE: ::DWORD = 0x00000003;
+pub const DSSCL_WRITEPRIMARY: ::DWORD = 0x00000004;
+pub const DSBCAPS_PRIMARYBUFFER: ::DWORD = 0x00000001;
+pub const DSBCAPS_STATIC: ::DWORD = 0x00000002;
+pub const DSBCAPS_LOCHARDWARE: ::DWORD = 0x00000004;
+pub const DSBCAPS_LOCSOFTWARE: ::DWORD = 0x00000008;
+pub const DSBCAPS_CTRL3D: ::DWORD = 0x00000010;
+pub const DSBCAPS_CTRLFREQUENCY: ::DWORD = 0x00000020;
+pub const DSBCAPS_CTRLPAN: ::DWORD = 0x00000040;
+pub const DSBCAPS_CTRLVOLUME: ::DWORD = 0x00000080;
+pub const DSBCAPS_CTRLPOSITIONNOTIFY: ::DWORD = 0x00000100;
+pub const DSBCAPS_CTRLFX: ::DWORD = 0x00000200;
+pub const DSBCAPS_STICKYFOCUS: ::DWORD = 0x00004000;
+pub const DSBCAPS_GLOBALFOCUS: ::DWORD = 0x00008000;
+pub const DSBCAPS_GETCURRENTPOSITION2: ::DWORD = 0x00010000;
+pub const DSBCAPS_MUTE3DATMAXDISTANCE: ::DWORD = 0x00020000;
+pub const DSBCAPS_LOCDEFER: ::DWORD = 0x00040000;
+pub const DSBCAPS_TRUEPLAYPOSITION: ::DWORD = 0x00080000;
+pub const DSBPLAY_LOOPING: ::DWORD = 0x00000001;
+pub const DSBPLAY_LOCHARDWARE: ::DWORD = 0x00000002;
+pub const DSBPLAY_LOCSOFTWARE: ::DWORD = 0x00000004;
+pub const DSBPLAY_TERMINATEBY_TIME: ::DWORD = 0x00000008;
+pub const DSBPLAY_TERMINATEBY_DISTANCE: ::DWORD = 0x000000010;
+pub const DSBPLAY_TERMINATEBY_PRIORITY: ::DWORD = 0x000000020;