170 lines
7.6 KiB
C
170 lines
7.6 KiB
C
/*
|
|
* Copyright (C) 2003 Robert Reif
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#ifndef __WINE_DSCONF_H
|
|
#define __WINE_DSCONF_H
|
|
|
|
#include <dsound.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* defined(__cplusplus) */
|
|
|
|
/*****************************************************************************
|
|
* Predeclare the interfaces
|
|
*/
|
|
DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
|
|
|
|
DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
|
|
|
|
typedef enum
|
|
{
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7,
|
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8,
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE;
|
|
|
|
#ifdef UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
|
|
#else
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
|
|
#endif
|
|
|
|
typedef enum
|
|
{
|
|
DIRECTSOUNDDEVICE_TYPE_EMULATED,
|
|
DIRECTSOUNDDEVICE_TYPE_VXD,
|
|
DIRECTSOUNDDEVICE_TYPE_WDM
|
|
} DIRECTSOUNDDEVICE_TYPE;
|
|
|
|
typedef enum
|
|
{
|
|
DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
|
|
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
|
|
} DIRECTSOUNDDEVICE_DATAFLOW;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
|
|
{
|
|
LPSTR DeviceName;
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
|
|
GUID DeviceId;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
|
|
{
|
|
LPWSTR DeviceName;
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
|
|
GUID DeviceId;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
|
|
|
|
#ifdef UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
|
|
#else
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
|
|
#endif
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
|
|
{
|
|
GUID DeviceId;
|
|
CHAR DescriptionA[0x100];
|
|
WCHAR DescriptionW[0x100];
|
|
CHAR ModuleA[MAX_PATH];
|
|
WCHAR ModuleW[MAX_PATH];
|
|
DIRECTSOUNDDEVICE_TYPE Type;
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
|
|
ULONG WaveDeviceId;
|
|
ULONG Devnode;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
|
|
{
|
|
DIRECTSOUNDDEVICE_TYPE Type;
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
|
|
GUID DeviceId;
|
|
LPSTR Description;
|
|
LPSTR Module;
|
|
LPSTR Interface;
|
|
ULONG WaveDeviceId;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
|
|
{
|
|
DIRECTSOUNDDEVICE_TYPE Type;
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
|
|
GUID DeviceId;
|
|
LPWSTR Description;
|
|
LPWSTR Module;
|
|
LPWSTR Interface;
|
|
ULONG WaveDeviceId;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
|
|
|
|
#ifdef UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
|
|
#else
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
|
|
#endif
|
|
|
|
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
|
|
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
|
|
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
|
|
{
|
|
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
|
|
LPVOID Context;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
|
|
{
|
|
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
|
|
LPVOID Context;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
|
|
{
|
|
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
|
|
LPVOID Context;
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
|
|
|
|
#ifdef UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
|
|
#else
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif /* defined(__cplusplus) */
|
|
|
|
#endif /* __WINE_DSCONF_H */
|