]> git.proxmox.com Git - rustc.git/blob - vendor/winapi-0.2.8/src/dsound.rs
New upstream version 1.42.0+dfsg1
[rustc.git] / vendor / winapi-0.2.8 / src / dsound.rs
1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! DSound procedure declarations, constant definitions and macros
4 STRUCT!{struct DSCAPS {
5 dwSize: ::DWORD,
6 dwFlags: ::DWORD,
7 dwMinSecondarySampleRate: ::DWORD,
8 dwMaxSecondarySampleRate: ::DWORD,
9 dwPrimaryBuffers: ::DWORD,
10 dwMaxHwMixingAllBuffers: ::DWORD,
11 dwMaxHwMixingStaticBuffers: ::DWORD,
12 dwMaxHwMixingStreamingBuffers: ::DWORD,
13 dwFreeHwMixingAllBuffers: ::DWORD,
14 dwFreeHwMixingStaticBuffers: ::DWORD,
15 dwFreeHwMixingStreamingBuffers: ::DWORD,
16 dwMaxHw3DAllBuffers: ::DWORD,
17 dwMaxHw3DStaticBuffers: ::DWORD,
18 dwMaxHw3DStreamingBuffers: ::DWORD,
19 dwFreeHw3DAllBuffers: ::DWORD,
20 dwFreeHw3DStaticBuffers: ::DWORD,
21 dwFreeHw3DStreamingBuffers: ::DWORD,
22 dwTotalHwMemBytes: ::DWORD,
23 dwFreeHwMemBytes: ::DWORD,
24 dwMaxContigFreeHwMemBytes: ::DWORD,
25 dwUnlockTransferRateHwBuffers: ::DWORD,
26 dwPlayCpuOverheadSwBuffers: ::DWORD,
27 dwReserved1: ::DWORD,
28 dwReserved2: ::DWORD,
29 }}
30 pub type LPDSCAPS = *mut DSCAPS;
31 STRUCT!{struct DSBCAPS {
32 dwSize: ::DWORD,
33 dwFlags: ::DWORD,
34 dwBufferBytes: ::DWORD,
35 dwUnlockTransferRate: ::DWORD,
36 dwPlayCpuOverhead: ::DWORD,
37 }}
38 pub type LPDSBCAPS = *mut DSBCAPS;
39 STRUCT!{struct DSBUFFERDESC {
40 dwSize: ::DWORD,
41 dwFlags: ::DWORD,
42 dwBufferBytes: ::DWORD,
43 dwReserved: ::DWORD,
44 lpwfxFormat: ::LPWAVEFORMATEX,
45 guid3DAlgorithm: ::GUID,
46 }}
47 pub type LPCDSBUFFERDESC = *const DSBUFFERDESC;
48 RIDL!(
49 interface IDirectSoundBuffer(IDirectSoundBufferVtbl): IUnknown(IUnknownVtbl) {
50 fn GetCaps(&mut self, pDSBufferCaps: ::LPDSBCAPS) -> ::HRESULT,
51 fn GetCurrentPosition(
52 &mut self, pdwCurrentPlayCursor: ::LPDWORD, pdwCurrentWriteCursor: ::LPDWORD
53 ) -> ::HRESULT,
54 fn GetFormat(
55 &mut self, pwfxFormat: ::LPWAVEFORMATEX, dwSizeAllocated: ::DWORD,
56 pdwSizeWritten: ::LPDWORD
57 ) -> ::HRESULT,
58 fn GetVolume(&mut self, plVolume: ::LPLONG) -> ::HRESULT,
59 fn GetPan(&mut self, plPan: ::LPLONG) -> ::HRESULT,
60 fn GetFrequency(&mut self, pdwFrequency: ::LPDWORD) -> ::HRESULT,
61 fn GetStatus(&mut self, pdwStatus: ::LPDWORD) -> ::HRESULT,
62 fn Initialize(
63 &mut self, pDirectSound: ::LPDIRECTSOUND, pcDSBufferDesc: ::LPCDSBUFFERDESC
64 ) -> ::HRESULT,
65 fn Lock(
66 &mut self, dwOffset: ::DWORD, dwBytes: ::DWORD, ppvAudioPtr1: *mut ::LPVOID,
67 pdwAudioBytes1: ::LPDWORD, ppvAudioPtr2: *mut ::LPVOID, pdwAudioBytes2: ::LPDWORD,
68 dwFlags: ::DWORD
69 ) -> ::HRESULT,
70 fn Play(&mut self, dwReserved1: ::DWORD, dwPriority: ::DWORD, dwFlags: ::DWORD) -> ::HRESULT,
71 fn SetCurrentPosition(&mut self, dwNewPosition: ::DWORD) -> ::HRESULT,
72 fn SetFormat(&mut self, pcfxFormat: ::LPCWAVEFORMATEX) -> ::HRESULT,
73 fn SetVolume(&mut self, lVolume: ::LONG) -> ::HRESULT,
74 fn SetPan(&mut self, lPan: ::LONG) -> ::HRESULT,
75 fn SetFrequency(&mut self, dwFrequency: ::DWORD) -> ::HRESULT,
76 fn Stop(&mut self) -> ::HRESULT,
77 fn Unlock(
78 &mut self, pvAudioPtr1: ::LPVOID, dwAudioBytes1: ::DWORD, pvAudioPtr2: ::LPVOID,
79 dwAudioBytes2: ::DWORD
80 ) -> ::HRESULT,
81 fn Restore(&mut self) -> ::HRESULT
82 }
83 );
84 pub type LPDIRECTSOUNDBUFFER = *mut IDirectSoundBuffer;
85 RIDL!(
86 interface IDirectSound(IDirectSoundVtbl): IUnknown(IUnknownVtbl)
87 {
88 fn CreateSoundBuffer(
89 &mut self, pcDSBufferDesc: ::LPCDSBUFFERDESC, ppDSBuffer: *mut ::LPDIRECTSOUNDBUFFER,
90 pUnkOuter: ::LPUNKNOWN
91 ) -> ::HRESULT,
92 fn GetCaps(&mut self, pDSCaps: ::LPDSCAPS) -> ::HRESULT,
93 fn DuplicateSoundBuffer(
94 &mut self, pDSBufferOriginal: LPDIRECTSOUNDBUFFER,
95 ppDSBufferDuplicate: *mut ::LPDIRECTSOUNDBUFFER
96 ) -> ::HRESULT,
97 fn SetCooperativeLevel(&mut self, hWnd: ::HWND, dwLevel: ::DWORD) -> ::HRESULT,
98 fn Compact(&mut self) -> ::HRESULT,
99 fn GetSpeakerConfig(&mut self, pdwSpeakerConfig: ::LPDWORD) -> ::HRESULT,
100 fn SetSpeakerConfig(&mut self, dwSpeakerConfig: ::DWORD) -> ::HRESULT,
101 fn Initialize(&mut self, pcGuidDevice: ::LPCGUID) -> ::HRESULT
102 }
103 );
104 pub type LPDIRECTSOUND = *mut IDirectSound;
105 pub const DS_OK: ::HRESULT = ::S_OK;
106 pub const DSERR_GENERIC: ::HRESULT = ::E_FAIL;
107 pub const DSSCL_NORMAL: ::DWORD = 0x00000001;
108 pub const DSSCL_PRIORITY: ::DWORD = 0x00000002;
109 pub const DSSCL_EXCLUSIVE: ::DWORD = 0x00000003;
110 pub const DSSCL_WRITEPRIMARY: ::DWORD = 0x00000004;
111 pub const DSBCAPS_PRIMARYBUFFER: ::DWORD = 0x00000001;
112 pub const DSBCAPS_STATIC: ::DWORD = 0x00000002;
113 pub const DSBCAPS_LOCHARDWARE: ::DWORD = 0x00000004;
114 pub const DSBCAPS_LOCSOFTWARE: ::DWORD = 0x00000008;
115 pub const DSBCAPS_CTRL3D: ::DWORD = 0x00000010;
116 pub const DSBCAPS_CTRLFREQUENCY: ::DWORD = 0x00000020;
117 pub const DSBCAPS_CTRLPAN: ::DWORD = 0x00000040;
118 pub const DSBCAPS_CTRLVOLUME: ::DWORD = 0x00000080;
119 pub const DSBCAPS_CTRLPOSITIONNOTIFY: ::DWORD = 0x00000100;
120 pub const DSBCAPS_CTRLFX: ::DWORD = 0x00000200;
121 pub const DSBCAPS_STICKYFOCUS: ::DWORD = 0x00004000;
122 pub const DSBCAPS_GLOBALFOCUS: ::DWORD = 0x00008000;
123 pub const DSBCAPS_GETCURRENTPOSITION2: ::DWORD = 0x00010000;
124 pub const DSBCAPS_MUTE3DATMAXDISTANCE: ::DWORD = 0x00020000;
125 pub const DSBCAPS_LOCDEFER: ::DWORD = 0x00040000;
126 pub const DSBCAPS_TRUEPLAYPOSITION: ::DWORD = 0x00080000;
127 pub const DSBPLAY_LOOPING: ::DWORD = 0x00000001;
128 pub const DSBPLAY_LOCHARDWARE: ::DWORD = 0x00000002;
129 pub const DSBPLAY_LOCSOFTWARE: ::DWORD = 0x00000004;
130 pub const DSBPLAY_TERMINATEBY_TIME: ::DWORD = 0x00000008;
131 pub const DSBPLAY_TERMINATEBY_DISTANCE: ::DWORD = 0x000000010;
132 pub const DSBPLAY_TERMINATEBY_PRIORITY: ::DWORD = 0x000000020;