Commit | Line | Data |
---|---|---|
e743e091 RR |
1 | /* |
2 | * Copyright (C) 2003 Robert Reif | |
3 | * | |
4 | * This library is free software; you can redistribute it and/or | |
5 | * modify it under the terms of the GNU Lesser General Public | |
6 | * License as published by the Free Software Foundation; either | |
7 | * version 2.1 of the License, or (at your option) any later version. | |
8 | * | |
9 | * This library is distributed in the hope that it will be useful, | |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | * Lesser General Public License for more details. | |
13 | * | |
14 | * You should have received a copy of the GNU Lesser General Public | |
15 | * License along with this library; if not, write to the Free Software | |
360a3f91 | 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
e743e091 RR |
17 | */ |
18 | ||
19 | #ifndef __WINE_DSCONF_H | |
20 | #define __WINE_DSCONF_H | |
21 | ||
e743e091 RR |
22 | #ifdef __cplusplus |
23 | extern "C" { | |
24 | #endif /* defined(__cplusplus) */ | |
25 | ||
26 | /***************************************************************************** | |
27 | * Predeclare the interfaces | |
28 | */ | |
29 | DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca); | |
30 | ||
31 | DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca); | |
32 | ||
33 | typedef enum | |
34 | { | |
35 | DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1, | |
36 | DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2, | |
37 | DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3, | |
38 | DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4, | |
39 | DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5, | |
40 | DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6, | |
41 | DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7, | |
42 | DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8, | |
43 | } DSPROPERTY_DIRECTSOUNDDEVICE; | |
44 | ||
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 | |
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 | |
54 | ||
55 | typedef enum | |
56 | { | |
57 | DIRECTSOUNDDEVICE_TYPE_EMULATED, | |
58 | DIRECTSOUNDDEVICE_TYPE_VXD, | |
59 | DIRECTSOUNDDEVICE_TYPE_WDM | |
60 | } DIRECTSOUNDDEVICE_TYPE; | |
61 | ||
62 | typedef enum | |
63 | { | |
64 | DIRECTSOUNDDEVICE_DATAFLOW_RENDER, | |
65 | DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE | |
66 | } DIRECTSOUNDDEVICE_DATAFLOW; | |
67 | ||
68 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA | |
69 | { | |
70 | LPSTR DeviceName; | |
71 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; | |
72 | GUID DeviceId; | |
73 | } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA; | |
74 | ||
75 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA | |
76 | { | |
77 | LPWSTR DeviceName; | |
78 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; | |
79 | GUID DeviceId; | |
80 | } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA; | |
81 | ||
82 | #ifdef UNICODE | |
83 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA | |
84 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA | |
85 | #else | |
86 | #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA | |
87 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA | |
88 | #endif | |
89 | ||
90 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA | |
91 | { | |
92 | GUID DeviceId; | |
93 | CHAR DescriptionA[0x100]; | |
94 | WCHAR DescriptionW[0x100]; | |
95 | CHAR ModuleA[MAX_PATH]; | |
96 | WCHAR ModuleW[MAX_PATH]; | |
97 | DIRECTSOUNDDEVICE_TYPE Type; | |
98 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; | |
99 | ULONG WaveDeviceId; | |
100 | ULONG Devnode; | |
101 | } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA; | |
102 | ||
103 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA | |
104 | { | |
105 | DIRECTSOUNDDEVICE_TYPE Type; | |
106 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; | |
107 | GUID DeviceId; | |
108 | LPSTR Description; | |
109 | LPSTR Module; | |
110 | LPSTR Interface; | |
111 | ULONG WaveDeviceId; | |
112 | } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA; | |
113 | ||
114 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA | |
115 | { | |
116 | DIRECTSOUNDDEVICE_TYPE Type; | |
117 | DIRECTSOUNDDEVICE_DATAFLOW DataFlow; | |
118 | GUID DeviceId; | |
119 | LPWSTR Description; | |
120 | LPWSTR Module; | |
121 | LPWSTR Interface; | |
122 | ULONG WaveDeviceId; | |
123 | } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA; | |
124 | ||
125 | #ifdef UNICODE | |
126 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA | |
127 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA | |
128 | #else | |
129 | #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA | |
130 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA | |
131 | #endif | |
132 | ||
133 | typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID); | |
134 | typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID); | |
135 | typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID); | |
136 | ||
137 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA | |
138 | { | |
139 | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback; | |
140 | LPVOID Context; | |
141 | } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA; | |
142 | ||
143 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA | |
144 | { | |
145 | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback; | |
146 | LPVOID Context; | |
147 | } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA; | |
148 | ||
149 | typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA | |
150 | { | |
151 | LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback; | |
152 | LPVOID Context; | |
153 | } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA; | |
154 | ||
155 | #ifdef UNICODE | |
156 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA | |
157 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA | |
158 | #else | |
159 | #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA | |
160 | #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA | |
161 | #endif | |
162 | ||
163 | #ifdef __cplusplus | |
164 | } /* extern "C" */ | |
165 | #endif /* defined(__cplusplus) */ | |
166 | ||
167 | #endif /* __WINE_DSCONF_H */ |