mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-04 20:01:02 -05:00
195 lines
9.4 KiB
C
195 lines
9.4 KiB
C
/*==========================================================================;
|
|
*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
*
|
|
* File: dsconf.h
|
|
* Content: DirectSound configuration interface include file
|
|
*
|
|
**************************************************************************/
|
|
|
|
#ifndef __DSCONF_INCLUDED__
|
|
#define __DSCONF_INCLUDED__
|
|
|
|
#ifndef __DSOUND_INCLUDED__
|
|
#error dsound.h not included
|
|
#endif // __DSOUND_INCLUDED__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
|
|
// DirectSound Private Component GUID {11AB3EC0-25EC-11d1-A4D8-00C04FC28ACA}
|
|
DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11ab3ec0, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
|
|
|
|
|
|
//
|
|
// DirectSound Device Properties {84624F82-25EC-11d1-A4D8-00C04FC28ACA}
|
|
//
|
|
|
|
DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624f82, 0x25ec, 0x11d1, 0xa4, 0xd8, 0x0, 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;
|
|
|
|
#if DIRECTSOUND_VERSION >= 0x0700
|
|
#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 // UNICODE
|
|
#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 // UNICODE
|
|
#else // DIRECTSOUND_VERSION >= 0x0700
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
|
|
#endif // DIRECTSOUND_VERSION >= 0x0700
|
|
|
|
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; // waveIn/waveOut device name
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut)
|
|
GUID DeviceId; // DirectSound device id
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
|
|
{
|
|
LPWSTR DeviceName; // waveIn/waveOut device name
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Data flow (i.e. waveIn or waveOut)
|
|
GUID DeviceId; // DirectSound device id
|
|
} 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 // UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
|
|
#endif // UNICODE
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
|
|
{
|
|
GUID DeviceId; // DirectSound device id
|
|
CHAR DescriptionA[0x100]; // Device description (ANSI)
|
|
WCHAR DescriptionW[0x100]; // Device description (Unicode)
|
|
CHAR ModuleA[MAX_PATH]; // Device driver module (ANSI)
|
|
WCHAR ModuleW[MAX_PATH]; // Device driver module (Unicode)
|
|
DIRECTSOUNDDEVICE_TYPE Type; // Device type
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow
|
|
ULONG WaveDeviceId; // Wave device id
|
|
ULONG Devnode; // Devnode (or DevInst)
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
|
|
{
|
|
DIRECTSOUNDDEVICE_TYPE Type; // Device type
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow
|
|
GUID DeviceId; // DirectSound device id
|
|
LPSTR Description; // Device description
|
|
LPSTR Module; // Device driver module
|
|
LPSTR Interface; // Device interface
|
|
ULONG WaveDeviceId; // Wave device id
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
|
|
{
|
|
DIRECTSOUNDDEVICE_TYPE Type; // Device type
|
|
DIRECTSOUNDDEVICE_DATAFLOW DataFlow; // Device dataflow
|
|
GUID DeviceId; // DirectSound device id
|
|
LPWSTR Description; // Device description
|
|
LPWSTR Module; // Device driver module
|
|
LPWSTR Interface; // Device interface
|
|
ULONG WaveDeviceId; // Wave device id
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
|
|
|
|
#if DIRECTSOUND_VERSION >= 0x0700
|
|
#ifdef UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
|
|
#else // UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
|
|
#endif // UNICODE
|
|
#else // DIRECTSOUND_VERSION >= 0x0700
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
|
|
#endif // DIRECTSOUND_VERSION >= 0x0700
|
|
|
|
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);
|
|
|
|
#if DIRECTSOUND_VERSION >= 0x0700
|
|
#ifdef UNICODE
|
|
#define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
|
|
#else // UNICODE
|
|
#define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
|
|
#endif // UNICODE
|
|
#else // DIRECTSOUND_VERSION >= 0x0700
|
|
#define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
|
|
#endif // DIRECTSOUND_VERSION >= 0x0700
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
|
|
{
|
|
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback; // Callback function pointer
|
|
LPVOID Context; // Callback function context argument
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
|
|
{
|
|
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback; // Callback function pointer
|
|
LPVOID Context; // Callback function context argument
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
|
|
|
|
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
|
|
{
|
|
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback; // Callback function pointer
|
|
LPVOID Context; // Callback function context argument
|
|
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
|
|
|
|
#if DIRECTSOUND_VERSION >= 0x0700
|
|
#ifdef UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
|
|
#else // UNICODE
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
|
|
#endif // UNICODE
|
|
#else // DIRECTSOUND_VERSION >= 0x0700
|
|
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
|
|
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
|
|
#endif // DIRECTSOUND_VERSION >= 0x0700
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
#endif // __DSCONF_INCLUDED__
|
|
|