Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | pmbaty | 1 | /*==========================================================================; |
2 | * |
||
3 | * Copyright (c) Microsoft Corporation. All rights reserved. |
||
4 | * |
||
5 | * File: dsconf.h |
||
6 | * Content: DirectSound configuration interface include file |
||
7 | * |
||
8 | **************************************************************************/ |
||
9 | |||
10 | #ifndef __DSCONF_INCLUDED__ |
||
11 | #define __DSCONF_INCLUDED__ |
||
12 | |||
13 | #ifndef __DSOUND_INCLUDED__ |
||
14 | #error dsound.h not included |
||
15 | #endif // __DSOUND_INCLUDED__ |
||
16 | |||
17 | #ifdef __cplusplus |
||
18 | extern "C" { |
||
19 | #endif // __cplusplus |
||
20 | |||
21 | |||
22 | // DirectSound Private Component GUID {11AB3EC0-25EC-11d1-A4D8-00C04FC28ACA} |
||
23 | DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); |
||
24 | |||
25 | |||
26 | // |
||
27 | // DirectSound Device Properties {84624F82-25EC-11d1-A4D8-00C04FC28ACA} |
||
28 | // |
||
29 | |||
30 | DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); |
||
31 | |||
32 | typedef enum |
||
33 | { |
||
34 | DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1, |
||
35 | DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2, |
||
36 | DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3, |
||
37 | DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4, |
||
38 | DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5, |
||
39 | DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6, |
||
40 | DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7, |
||
41 | DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8, |
||
42 | } DSPROPERTY_DIRECTSOUNDDEVICE; |
||
43 | |||
44 | #if DIRECTSOUND_VERSION >= 0x0700 |
||
45 | #ifdef UNICODE |
||
46 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W |
||
47 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W |
||
48 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W |
||
49 | #else // UNICODE |
||
50 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A |
||
51 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A |
||
52 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A |
||
53 | #endif // UNICODE |
||
54 | #else // DIRECTSOUND_VERSION >= 0x0700 |
||
55 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A |
||
56 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 |
||
57 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 |
||
58 | #endif // DIRECTSOUND_VERSION >= 0x0700 |
||
59 | |||
60 | typedef enum |
||
61 | { |
||
62 | DIRECTSOUNDDEVICE_TYPE_EMULATED, |
||
63 | DIRECTSOUNDDEVICE_TYPE_VXD, |
||
64 | DIRECTSOUNDDEVICE_TYPE_WDM |
||
65 | } DIRECTSOUNDDEVICE_TYPE; |
||
66 | |||
67 | typedef enum |
||
68 | { |
||
69 | DIRECTSOUNDDEVICE_DATAFLOW_RENDER, |
||
70 | DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE |
||
71 | } DIRECTSOUNDDEVICE_DATAFLOW; |
||
72 | |||
73 | |||
74 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA |
||
75 | { |
||
76 | LPSTR DeviceName; // waveIn/waveOut device name |
||
77 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut) |
||
78 | GUID DeviceId; // DirectSound device id |
||
79 | } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA; |
||
80 | |||
81 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA |
||
82 | { |
||
83 | LPWSTR DeviceName; // waveIn/waveOut device name |
||
84 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut) |
||
85 | GUID DeviceId; // DirectSound device id |
||
86 | } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA; |
||
87 | |||
88 | #ifdef UNICODE |
||
89 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA |
||
90 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA |
||
91 | #else // UNICODE |
||
92 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA |
||
93 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA |
||
94 | #endif // UNICODE |
||
95 | |||
96 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA |
||
97 | { |
||
98 | GUID DeviceId; // DirectSound device id |
||
99 | CHAR DescriptionA[0x100]; // Device description (ANSI) |
||
100 | WCHAR DescriptionW[0x100]; // Device description (Unicode) |
||
101 | CHAR ModuleA[MAX_PATH]; // Device driver module (ANSI) |
||
102 | WCHAR ModuleW[MAX_PATH]; // Device driver module (Unicode) |
||
103 | DIRECTSOUNDDEVICE_TYPE Type; // Device type |
||
104 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow |
||
105 | ULONG WaveDeviceId; // Wave device id |
||
106 | ULONG Devnode; // Devnode (or DevInst) |
||
107 | } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA; |
||
108 | |||
109 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA |
||
110 | { |
||
111 | DIRECTSOUNDDEVICE_TYPE Type; // Device type |
||
112 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow |
||
113 | GUID DeviceId; // DirectSound device id |
||
114 | LPSTR Description; // Device description |
||
115 | LPSTR Module; // Device driver module |
||
116 | LPSTR Interface; // Device interface |
||
117 | ULONG WaveDeviceId; // Wave device id |
||
118 | } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA; |
||
119 | |||
120 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA |
||
121 | { |
||
122 | DIRECTSOUNDDEVICE_TYPE Type; // Device type |
||
123 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow |
||
124 | GUID DeviceId; // DirectSound device id |
||
125 | LPWSTR Description; // Device description |
||
126 | LPWSTR Module; // Device driver module |
||
127 | LPWSTR Interface; // Device interface |
||
128 | ULONG WaveDeviceId; // Wave device id |
||
129 | } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA; |
||
130 | |||
131 | #if DIRECTSOUND_VERSION >= 0x0700 |
||
132 | #ifdef UNICODE |
||
133 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA |
||
134 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA |
||
135 | #else // UNICODE |
||
136 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA |
||
137 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA |
||
138 | #endif // UNICODE |
||
139 | #else // DIRECTSOUND_VERSION >= 0x0700 |
||
140 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA |
||
141 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA |
||
142 | #endif // DIRECTSOUND_VERSION >= 0x0700 |
||
143 | |||
144 | typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID); |
||
145 | typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID); |
||
146 | typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID); |
||
147 | |||
148 | #if DIRECTSOUND_VERSION >= 0x0700 |
||
149 | #ifdef UNICODE |
||
150 | #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW |
||
151 | #else // UNICODE |
||
152 | #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA |
||
153 | #endif // UNICODE |
||
154 | #else // DIRECTSOUND_VERSION >= 0x0700 |
||
155 | #define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 |
||
156 | #endif // DIRECTSOUND_VERSION >= 0x0700 |
||
157 | |||
158 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA |
||
159 | { |
||
160 | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback; // Callback function pointer |
||
161 | LPVOID Context; // Callback function context argument |
||
162 | } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA; |
||
163 | |||
164 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA |
||
165 | { |
||
166 | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback; // Callback function pointer |
||
167 | LPVOID Context; // Callback function context argument |
||
168 | } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA; |
||
169 | |||
170 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA |
||
171 | { |
||
172 | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback; // Callback function pointer |
||
173 | LPVOID Context; // Callback function context argument |
||
174 | } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA; |
||
175 | |||
176 | #if DIRECTSOUND_VERSION >= 0x0700 |
||
177 | #ifdef UNICODE |
||
178 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA |
||
179 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA |
||
180 | #else // UNICODE |
||
181 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA |
||
182 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA |
||
183 | #endif // UNICODE |
||
184 | #else // DIRECTSOUND_VERSION >= 0x0700 |
||
185 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA |
||
186 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA |
||
187 | #endif // DIRECTSOUND_VERSION >= 0x0700 |
||
188 | |||
189 | |||
190 | #ifdef __cplusplus |
||
191 | } |
||
192 | #endif // __cplusplus |
||
193 | |||
194 | #endif // __DSCONF_INCLUDED__ |
||
195 |