• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef __WINE_DSCONF_H
20 #define __WINE_DSCONF_H
21 #define __DSCONF_INCLUDED__
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif /* defined(__cplusplus) */
26 
27 /*****************************************************************************
28  * Predeclare the interfaces
29  */
30 DEFINE_GUID(CLSID_DirectSoundPrivate,           0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
31 
32 DEFINE_GUID(DSPROPSETID_DirectSoundDevice,      0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
33 
34 typedef enum
35 {
36         DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1,
37         DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1       = 2,
38         DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1         = 3,
39         DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4,
40         DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A       = 5,
41         DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W       = 6,
42         DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A         = 7,
43         DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W         = 8,
44 } DSPROPERTY_DIRECTSOUNDDEVICE;
45 
46 #ifdef UNICODE
47 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING  DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
48 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION        DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
49 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE          DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
50 #else
51 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING  DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
52 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION        DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
53 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE          DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
54 #endif
55 
56 typedef enum
57 {
58         DIRECTSOUNDDEVICE_TYPE_EMULATED,
59         DIRECTSOUNDDEVICE_TYPE_VXD,
60         DIRECTSOUNDDEVICE_TYPE_WDM
61 } DIRECTSOUNDDEVICE_TYPE;
62 
63 typedef enum
64 {
65         DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
66         DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
67 } DIRECTSOUNDDEVICE_DATAFLOW;
68 
69 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
70 {
71         LPSTR                           DeviceName;
72         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
73         GUID                            DeviceId;
74 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
75 
76 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
77 {
78         LPWSTR                          DeviceName;
79         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
80         GUID                            DeviceId;
81 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
82 
83 #ifdef UNICODE
84 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
85 #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
86 #else
87 #define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
88 #define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
89 #endif
90 
91 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
92 {
93         GUID                            DeviceId;
94         CHAR                            DescriptionA[0x100];
95         WCHAR                           DescriptionW[0x100];
96         CHAR                            ModuleA[MAX_PATH];
97         WCHAR                           ModuleW[MAX_PATH];
98         DIRECTSOUNDDEVICE_TYPE          Type;
99         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
100         ULONG                           WaveDeviceId;
101         ULONG                           Devnode;
102 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
103 
104 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
105 {
106         DIRECTSOUNDDEVICE_TYPE          Type;
107         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
108         GUID                            DeviceId;
109         LPSTR                           Description;
110         LPSTR                           Module;
111         LPSTR                           Interface;
112         ULONG                           WaveDeviceId;
113 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
114 
115 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
116 {
117         DIRECTSOUNDDEVICE_TYPE          Type;
118         DIRECTSOUNDDEVICE_DATAFLOW      DataFlow;
119         GUID                            DeviceId;
120         LPWSTR                          Description;
121         LPWSTR                          Module;
122         LPWSTR                          Interface;
123         ULONG                           WaveDeviceId;
124 } DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
125 
126 #ifdef UNICODE
127 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA   DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
128 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA  PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
129 #else
130 #define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA   DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
131 #define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA  PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
132 #endif
133 
134 typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
135 typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
136 typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
137 
138 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
139 {
140         LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
141         LPVOID                                  Context;
142 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
143 
144 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
145 {
146         LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
147         LPVOID                                  Context;
148 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
149 
150 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
151 {
152         LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
153         LPVOID                                  Context;
154 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
155 
156 #ifdef UNICODE
157 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
158 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
159 #else
160 #define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA     DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
161 #define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA    PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
162 #endif
163 
164 #ifdef __cplusplus
165 } /* extern "C" */
166 #endif /* defined(__cplusplus) */
167 
168 #endif /* __WINE_DSCONF_H */
169