Convert initData as well.
[wine/multimedia.git] / include / dsconf.h
blob2df46d685bbccead14eb014a8c70fecd1d9d0b1c
1 /*
2 * Copyright (C) 2003 Robert Reif
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.
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.
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
19 #ifndef __WINE_DSCONF_H
20 #define __WINE_DSCONF_H
22 #include "dsound.h"
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* defined(__cplusplus) */
28 /*****************************************************************************
29 * Predeclare the interfaces
31 DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
33 DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
35 typedef enum
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;
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
57 typedef enum
59 DIRECTSOUNDDEVICE_TYPE_EMULATED,
60 DIRECTSOUNDDEVICE_TYPE_VXD,
61 DIRECTSOUNDDEVICE_TYPE_WDM
62 } DIRECTSOUNDDEVICE_TYPE;
64 typedef enum
66 DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
67 DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
68 } DIRECTSOUNDDEVICE_DATAFLOW;
70 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
72 LPSTR DeviceName;
73 DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
74 GUID DeviceId;
75 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
77 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
79 LPWSTR DeviceName;
80 DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
81 GUID DeviceId;
82 } DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
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
92 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
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;
105 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
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;
116 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
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;
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
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);
139 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
141 LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
142 LPVOID Context;
143 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
145 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
147 LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
148 LPVOID Context;
149 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
151 typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
153 LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
154 LPVOID Context;
155 } DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
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
165 #ifdef __cplusplus
166 } /* extern "C" */
167 #endif /* defined(__cplusplus) */
169 #endif /* __WINE_DSCONF_H */