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