mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 07:03:06 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
378
drivers/wdm/audio/legacy/wdmaud/interface.h
Normal file
378
drivers/wdm/audio/legacy/wdmaud/interface.h
Normal file
|
@ -0,0 +1,378 @@
|
|||
#pragma once
|
||||
|
||||
///
|
||||
/// WDMAUD Interface Definition
|
||||
///
|
||||
/// History: 12/02/2008 Created
|
||||
|
||||
// These are now in sndtypes.h
|
||||
/*
|
||||
typedef enum
|
||||
{
|
||||
DEVICE_TYPE_NONE = 0,
|
||||
DEVICE_TYPE_WAVE_OUT,
|
||||
DEVICE_TYPE_WAVE_IN,
|
||||
DEVICE_TYPE_MIDI_IN,
|
||||
DEVICE_TYPE_MIDI_OUT,
|
||||
DEVICE_TYPE_AUX_IN,
|
||||
DEVICE_TYPE_AUX_OUT
|
||||
|
||||
}AUDIO_DEVICE_TYPE;
|
||||
*/
|
||||
|
||||
#include <sndtypes.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
KSSTREAM_HEADER Header;
|
||||
SOUND_DEVICE_TYPE DeviceType;
|
||||
ULONG_PTR DeviceIndex;
|
||||
|
||||
HANDLE hDevice;
|
||||
ULONG DeviceCount;
|
||||
ULONG Flags;
|
||||
|
||||
union
|
||||
{
|
||||
MIXERCAPSW MixCaps;
|
||||
MIXERCONTROLDETAILS MixDetails;
|
||||
MIXERLINECONTROLSW MixControls;
|
||||
MIXERLINEW MixLine;
|
||||
WAVEFORMATEX WaveFormatEx;
|
||||
WAVEOUTCAPSW WaveOutCaps;
|
||||
AUXCAPSW AuxCaps;
|
||||
WAVEINCAPSW WaveInCaps;
|
||||
MIDIINCAPSW MidiInCaps;
|
||||
MIDIOUTCAPSW MidiOutCaps;
|
||||
ULONGLONG Position;
|
||||
struct
|
||||
{
|
||||
LPWSTR DeviceInterfaceString;
|
||||
ULONG DeviceInterfaceStringSize;
|
||||
}Interface;
|
||||
|
||||
struct
|
||||
{
|
||||
HANDLE hMixer;
|
||||
ULONG NotificationType;
|
||||
ULONG Value;
|
||||
}MixerEvent;
|
||||
KSSTATE State;
|
||||
KSRESET ResetStream;
|
||||
ULONG Volume;
|
||||
ULONG FrameSize;
|
||||
HANDLE hNotifyEvent;
|
||||
}u;
|
||||
|
||||
}WDMAUD_DEVICE_INFO, *PWDMAUD_DEVICE_INFO;
|
||||
|
||||
|
||||
|
||||
/// IOCTL_OPEN_WDMAUD
|
||||
///
|
||||
/// Description: This IOCTL informs wdmaud that an application whats to use wdmsys for a waveOut / waveIn / aux operation
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: DeviceType identifies the device type, DeviceIndex the index, WaveFormatEx the device details
|
||||
/// Result: is returned in hDevice
|
||||
/// Return Code: STATUS_SUCCESS indicates success, otherwise appropriate error code
|
||||
/// Prerequisites: none
|
||||
|
||||
#define IOCTL_OPEN_WDMAUD \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
0, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_CLOSE_WDMAUD
|
||||
///
|
||||
/// Description: This IOCTL informs that an application has finished with wdmsys and closes the connection
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: DeviceType, DeviceIndex and hDevice must be set
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: openend device
|
||||
|
||||
#define IOCTL_CLOSE_WDMAUD \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
1, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS) \
|
||||
|
||||
|
||||
/// IOCTL_GETNUMDEVS_TYPE
|
||||
///
|
||||
/// Description: This IOCTL queries the number of devices currently present of a specific type. The caller passes a WDMAUD_DEVICE_INFO structure.
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType contains the requested device type.
|
||||
/// Result: The result is returned in DeviceCount
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: none
|
||||
|
||||
#define IOCTL_GETNUMDEVS_TYPE \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
2, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_SETDEVICE_STATE
|
||||
///
|
||||
/// Description: This IOCTL sets an opened waveOut / waveIn / midiIn / midiOut / aux device to specific state
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType, DeviceIndex, hDevice and State member must be set. State determines the new state
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_SETDEVICE_STATE \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
3, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_GETDEVID
|
||||
///
|
||||
/// Description: This IOCTL returns the device index by its provided handle
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType and hDevice must be set
|
||||
/// Result: The result is returned in DeviceIndex
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETDEVID \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
4, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_GETVOLUME
|
||||
///
|
||||
/// Description: This IOCTL returns the volume a device
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType and hDevice must be set
|
||||
/// Result: The result is returned in Volume
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETVOLUME \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
5, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_SETVOLUME
|
||||
///
|
||||
/// Description: This IOCTL sets the volume a device
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType, hDevice and Volume must be set
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_SETVOLUME \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
6, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_GETCAPABILITIES
|
||||
///
|
||||
/// Description: This IOCTL retrieves the capabilities of an specific device
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType and DeviceIndex must be set
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: none
|
||||
|
||||
#define IOCTL_GETCAPABILITIES \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
7, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_WRITEDATA
|
||||
///
|
||||
/// Description: This IOCTL writes data to specified device
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType, DeviceIndex, hDevice, BufferSize and Buffer must be set
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_WRITEDATA \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
8, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
/// IOCTL_GETPOS
|
||||
///
|
||||
/// Description: This IOCTL retrieves the current playback / write position
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType and hDevice must be set
|
||||
/// Result: The result is returned in Position
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETPOS \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
9, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
/// IOCTL_GETFRAMESIZE
|
||||
///
|
||||
/// Description: This IOCTL retrieves the frame size requirements for an audio pin
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType and hDevice must be set
|
||||
/// Result: The result is returned in FrameSize
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETFRAMESIZE \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
10, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
/// IOCTL_GETLINEINFO
|
||||
///
|
||||
/// Description: This IOCTL retrieves information on a mixerline
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The hDevice member must be set
|
||||
/// Result: The result is returned in MixLine
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETLINEINFO \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
11, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_GETLINECONTROLS
|
||||
///
|
||||
/// Description: This IOCTL retrieves controls of a mixerline
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The hDevice member must be set
|
||||
/// Result: The result is returned in MixControls
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETLINECONTROLS \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
12, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_SETCONTROLDETAILS
|
||||
///
|
||||
/// Description: This IOCTL sets details of a control of a mixerline
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The hDevice member must be set
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_SETCONTROLDETAILS \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
13, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_GETCONTROLDETAILS
|
||||
///
|
||||
/// Description: This IOCTL gets details of a control of a mixerline
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The hDevice member must be set
|
||||
/// Result: The result is returned in MixDetails
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
/// Prerequisites: opened device
|
||||
|
||||
#define IOCTL_GETCONTROLDETAILS \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
14, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
|
||||
/// IOCTL_QUERYDEVICEINTERFACESTRING
|
||||
///
|
||||
/// Description: This IOCTL queries the mixer / playback / recording device for its device interface string
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The DeviceType, DeviceIndex must be set
|
||||
/// Result: The size is returned in Interface.DeviceInterfaceStringSize and if a buffer is supplied in Interface.DeviceInterfaceString
|
||||
/// the device interface string is stored
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
|
||||
#define IOCTL_QUERYDEVICEINTERFACESTRING \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
15, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
/// IOCTL_GET_MIXER_EVENT
|
||||
///
|
||||
/// Description: This IOCTL queries for wdmaud driver if there any new kernel streaming events available
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The hDevice member must be set
|
||||
/// Result: The result is returned in the struct MixerInfo
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
|
||||
#define IOCTL_GET_MIXER_EVENT \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
16, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
||||
|
||||
/// IOCTL_RESET_STREAM
|
||||
///
|
||||
/// Description: This IOCTL instructs wdmaud to reset a stream
|
||||
///
|
||||
/// Arguments: InputBuffer is a pointer to a WDMAUD_DEVICE_INFO structure,
|
||||
/// InputBufferSize is size of WDMAUD_DEVICE_INFO structure
|
||||
/// Note: The hDevice member must be set and DeviceType
|
||||
/// ReturnCode: STATUS_SUCCESS indicates success
|
||||
|
||||
#define IOCTL_RESET_STREAM \
|
||||
CTL_CODE(FILE_DEVICE_SOUND, \
|
||||
17, \
|
||||
METHOD_BUFFERED, \
|
||||
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS)
|
Loading…
Add table
Add a link
Reference in a new issue