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 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 WINBOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID); 134 typedef WINBOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID); 135 typedef WINBOOL (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 */ 168