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