root/trunk/win32/directx/dsound8.d

Revision 262, 7.4 kB (checked in by korDen, 4 years ago)

d3dx9, dinput8 and dsound8 bindings added alongside with a .def files

Line 
1 module win32.directx.dsound8;
2
3 //import tango.sys.win32.Types;
4 import win32.windows;
5
6 alias GUID* LPCGUID;
7
8 interface IUnknown
9 {
10     HRESULT QueryInterface(IID* riid, void** pvObject);
11     ULONG AddRef();
12     ULONG Release();
13 }
14
15 alias IUnknown LPUNKNOWN;
16
17 interface IDirectSound : IUnknown
18 {
19     extern(Windows):
20
21     // IDirectSound methods
22     HRESULT CreateSoundBuffer    (LPCDSBUFFERDESC pcDSBufferDesc, LPDIRECTSOUNDBUFFER *ppDSBuffer, LPUNKNOWN pUnkOuter);
23     HRESULT GetCaps              (LPDSCAPS pDSCaps);
24     HRESULT DuplicateSoundBuffer (LPDIRECTSOUNDBUFFER pDSBufferOriginal, LPDIRECTSOUNDBUFFER *ppDSBufferDuplicate);
25     HRESULT SetCooperativeLevel  (HWND hwnd, DWORD dwLevel);
26     HRESULT Compact              ();
27     HRESULT GetSpeakerConfig     (LPDWORD pdwSpeakerConfig);
28     HRESULT SetSpeakerConfig     (DWORD dwSpeakerConfig);
29     HRESULT Initialize           (LPCGUID pcGuidDevice);
30 }
31
32 alias IDirectSound LPDIRECTSOUND;
33
34 interface IDirectSound8 : IDirectSound
35 {
36     extern(Windows):
37
38     // IDirectSound8 methods
39     HRESULT VerifyCertification  (LPDWORD pdwCertified);
40 }
41
42 alias IDirectSound8 LPDIRECTSOUND8;
43
44 interface IDirectSoundBuffer : IUnknown
45 {
46     extern(Windows):
47
48     // IDirectSoundBuffer methods
49     HRESULT GetCaps              (LPDSBCAPS pDSBufferCaps);
50     HRESULT GetCurrentPosition   (LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor);
51     HRESULT GetFormat            (LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten);
52     HRESULT GetVolume            (LPLONG plVolume);
53     HRESULT GetPan               (LPLONG plPan);
54     HRESULT GetFrequency         (LPDWORD pdwFrequency);
55     HRESULT GetStatus            (LPDWORD pdwStatus);
56     HRESULT Initialize           (LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc);
57     HRESULT Lock                 (DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1,
58                                            LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags);
59     HRESULT Play                 (DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags);
60     HRESULT SetCurrentPosition   (DWORD dwNewPosition);
61     HRESULT SetFormat            (LPCWAVEFORMATEX pcfxFormat);
62     HRESULT SetVolume            (LONG lVolume);
63     HRESULT SetPan               (LONG lPan);
64     HRESULT SetFrequency         (DWORD dwFrequency);
65     HRESULT Stop                 ();
66     HRESULT Unlock               (LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2);
67     HRESULT Restore              ();
68 }
69
70 alias IDirectSoundBuffer LPDIRECTSOUNDBUFFER;
71
72 interface IDirectSound3DListener : IUnknown
73 {
74     extern(Windows):
75
76     // IDirectSound3DListener methods
77     HRESULT GetAllParameters         (LPDS3DLISTENER pListener);
78     HRESULT GetDistanceFactor        (D3DVALUE* pflDistanceFactor);
79     HRESULT GetDopplerFactor         (D3DVALUE* pflDopplerFactor);
80     HRESULT GetOrientation           (D3DVECTOR* pvOrientFront, D3DVECTOR* pvOrientTop);
81     HRESULT GetPosition              (D3DVECTOR* pvPosition);
82     HRESULT GetRolloffFactor         (D3DVALUE* pflRolloffFactor);
83     HRESULT GetVelocity              (D3DVECTOR* pvVelocity);
84     HRESULT SetAllParameters         (LPCDS3DLISTENER pcListener, DWORD dwApply);
85     HRESULT SetDistanceFactor        (D3DVALUE flDistanceFactor, DWORD dwApply);
86     HRESULT SetDopplerFactor         (D3DVALUE flDopplerFactor, DWORD dwApply);
87     HRESULT SetOrientation           (D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront,
88                                                D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply);
89     HRESULT SetPosition              (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply);
90     HRESULT SetRolloffFactor         (D3DVALUE flRolloffFactor, DWORD dwApply);
91     HRESULT SetVelocity              (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply);
92     HRESULT CommitDeferredSettings   ();
93 }
94
95 struct WAVEFORMATEX
96 {
97     ushort wFormatTag;
98     ushort nChannels;
99     uint nSamplesPerSec;
100     uint nAvgBytesPerSec;
101     ushort nBlockAlign;
102     ushort wBitsPerSample;
103     ushort cbSize;
104 }
105
106 alias WAVEFORMATEX* LPWAVEFORMATEX, LPCWAVEFORMATEX;
107
108 enum : uint
109 {
110     WAVE_FORMAT_PCM = 1
111 }
112
113 struct DSCBUFFERDESC
114 {
115     DWORD           dwSize;
116     DWORD           dwFlags;
117     DWORD           dwBufferBytes;
118     DWORD           dwReserved;
119     LPWAVEFORMATEX  lpwfxFormat;
120     DWORD           dwFXCount;
121     LPDSCEFFECTDESC lpDSCFXDesc;
122 }
123
124 alias DSCBUFFERDESC* LPDSCBUFFERDESC;
125
126 struct DSBUFFERDESC
127 {
128     DWORD           dwSize;
129     DWORD           dwFlags;
130     DWORD           dwBufferBytes;
131     DWORD           dwReserved;
132     LPWAVEFORMATEX  lpwfxFormat;
133     GUID            guid3DAlgorithm;
134 }
135
136 alias DSBUFFERDESC* LPCDSBUFFERDESC;
137
138 struct DSCAPS
139 {
140     DWORD           dwSize;
141     DWORD           dwFlags;
142     DWORD           dwMinSecondarySampleRate;
143     DWORD           dwMaxSecondarySampleRate;
144     DWORD           dwPrimaryBuffers;
145     DWORD           dwMaxHwMixingAllBuffers;
146     DWORD           dwMaxHwMixingStaticBuffers;
147     DWORD           dwMaxHwMixingStreamingBuffers;
148     DWORD           dwFreeHwMixingAllBuffers;
149     DWORD           dwFreeHwMixingStaticBuffers;
150     DWORD           dwFreeHwMixingStreamingBuffers;
151     DWORD           dwMaxHw3DAllBuffers;
152     DWORD           dwMaxHw3DStaticBuffers;
153     DWORD           dwMaxHw3DStreamingBuffers;
154     DWORD           dwFreeHw3DAllBuffers;
155     DWORD           dwFreeHw3DStaticBuffers;
156     DWORD           dwFreeHw3DStreamingBuffers;
157     DWORD           dwTotalHwMemBytes;
158     DWORD           dwFreeHwMemBytes;
159     DWORD           dwMaxContigFreeHwMemBytes;
160     DWORD           dwUnlockTransferRateHwBuffers;
161     DWORD           dwPlayCpuOverheadSwBuffers;
162     DWORD           dwReserved1;
163     DWORD           dwReserved2;
164 }
165
166 alias DSCAPS* LPDSCAPS;
167
168 struct DSBCAPS
169 {
170     DWORD           dwSize;
171     DWORD           dwFlags;
172     DWORD           dwBufferBytes;
173     DWORD           dwUnlockTransferRate;
174     DWORD           dwPlayCpuOverhead;
175 }
176
177 alias DSBCAPS *LPDSBCAPS;
178
179 struct DSCEFFECTDESC
180 {
181     DWORD       dwSize;
182     DWORD       dwFlags;
183     GUID        guidDSCFXClass;
184     GUID        guidDSCFXInstance;
185     DWORD       dwReserved1;
186     DWORD       dwReserved2;
187 }
188
189 alias DSCEFFECTDESC *LPDSCEFFECTDESC;
190
191 struct DS3DLISTENER
192 {
193     DWORD           dwSize;
194     D3DVECTOR       vPosition;
195     D3DVECTOR       vVelocity;
196     D3DVECTOR       vOrientFront;
197     D3DVECTOR       vOrientTop;
198     D3DVALUE        flDistanceFactor;
199     D3DVALUE        flRolloffFactor;
200     D3DVALUE        flDopplerFactor;
201 }
202
203 alias DS3DLISTENER *LPDS3DLISTENER, LPCDS3DLISTENER;
204
205 alias float D3DVALUE;
206
207 struct D3DVECTOR
208 {
209     float x;
210     float y;
211     float z;
212 }
213
214 extern(Windows) export HRESULT DirectSoundCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter);
215
216 const DSSCL_PRIORITY = 0x00000002;
217 const DSBCAPS_PRIMARYBUFFER = 0x00000001;
218 const DSBCAPS_CTRL3D = 0x00000010;
219 const DSBCAPS_GETCURRENTPOSITION2 = 0x00010000;
220 const DSBCAPS_LOCDEFER = 0x00040000;
221 const DSBPLAY_LOOPING = 0x00000001;
222 const DSBSTATUS_PLAYING = 0x00000001;
223 const DSBCAPS_CTRLFREQUENCY = 0x00000020;
224 const DSBCAPS_CTRLPAN = 0x00000040;
225 const DSBCAPS_CTRLVOLUME = 0x00000080;
226 const DSBLOCK_ENTIREBUFFER = 0x00000002;
227
228 const GUID IID_IDirectSound3DListener8 = {0x279AFA84,0x4981,0x11CE,[0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]};
Note: See TracBrowser for help on using the browser.