af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2003 Robert Reif
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * a choice of LGPL license versions is made available with the language indicating
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * of the LGPL is applied is otherwise unspecified.
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync */
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef __WINE_DSCONF_H
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __WINE_DSCONF_H
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* defined(__cplusplus) */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*****************************************************************************
af062818b47340eef15700d2f0211576ba3506eevboxsync * Predeclare the interfaces
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsyncDEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncDEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82,0x25ec,0x11d1,0xa4,0xd8,0x00,0xc0,0x4f,0xc2,0x8a,0xca);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7,
af062818b47340eef15700d2f0211576ba3506eevboxsync DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8,
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef UNICODE
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
af062818b47340eef15700d2f0211576ba3506eevboxsync#else
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_TYPE_EMULATED,
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_TYPE_VXD,
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_TYPE_WDM
af062818b47340eef15700d2f0211576ba3506eevboxsync} DIRECTSOUNDDEVICE_TYPE;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef enum
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
af062818b47340eef15700d2f0211576ba3506eevboxsync} DIRECTSOUNDDEVICE_DATAFLOW;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPSTR DeviceName;
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
af062818b47340eef15700d2f0211576ba3506eevboxsync GUID DeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPWSTR DeviceName;
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
af062818b47340eef15700d2f0211576ba3506eevboxsync GUID DeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef UNICODE
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#else
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync GUID DeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync CHAR DescriptionA[0x100];
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR DescriptionW[0x100];
af062818b47340eef15700d2f0211576ba3506eevboxsync CHAR ModuleA[MAX_PATH];
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR ModuleW[MAX_PATH];
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_TYPE Type;
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG WaveDeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG Devnode;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_TYPE Type;
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
af062818b47340eef15700d2f0211576ba3506eevboxsync GUID DeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPSTR Description;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPSTR Module;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPSTR Interface;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG WaveDeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_TYPE Type;
af062818b47340eef15700d2f0211576ba3506eevboxsync DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
af062818b47340eef15700d2f0211576ba3506eevboxsync GUID DeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPWSTR Description;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPWSTR Module;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPWSTR Interface;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG WaveDeviceId;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef UNICODE
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#else
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPVOID Context;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPVOID Context;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPVOID Context;
af062818b47340eef15700d2f0211576ba3506eevboxsync} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef UNICODE
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#else
af062818b47340eef15700d2f0211576ba3506eevboxsync#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync} /* extern "C" */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* defined(__cplusplus) */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __WINE_DSCONF_H */