Author: janderwald
Date: Thu Feb 12 14:13:19 2009
New Revision: 39573
URL:
http://svn.reactos.org/svn/reactos?rev=39573&view=rev
Log:
- Define interface for wdmaud.drv
- Needs review
Added:
trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h (with props)
Modified:
trunk/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h
Added: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/legacy/w…
==============================================================================
--- trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h (added)
+++ trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h [iso-8859-1] Thu Feb 12
14:13:19 2009
@@ -1,0 +1,178 @@
+#ifndef INTERFACE_H__
+#define INTERFACE_H__
+
+///
+/// WDMAUD Interface Definition
+///
+/// History: 12/02/2008 Created
+
+
+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;
+
+typedef struct
+{
+ AUDIO_DEVICE_TYPE DeviceType;
+ ULONG DeviceIndex;
+
+ HANDLE hDevice;
+ ULONG DeviceCount;
+ KSSTATE State;
+ ULONG Volume;
+
+ ULONG BufferSize;
+ PUCHAR Buffer;
+
+ union
+ {
+ WAVEFORMATEX WaveFormatEx;
+ WAVEOUTCAPS WaveOutCaps;
+ AUXCAPS AuxCaps;
+ WAVEINCAPS WaveInCaps;
+ }u;
+
+}WDMAUD_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 appropiate error code
+/// Prequsites: none
+
+#define IOCTL_OPEN_WDMAUD CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 0, METHOD_BUFFERED);
+
+
+/// 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
+/// Prequsites: openend device
+
+#define IOCTL_CLOSE_WDMAUD CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 1, METHOD_BUFFERED);
+
+
+/// 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
+/// Prequsites: none
+
+#define IOCTL_GETNUMDEVS_TYPE CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 2, METHOD_BUFFERED);
+
+
+
+/// 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
+/// Prequsites: opened device
+
+#define IOCTL_SETDEVICE_STATE CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 3, METHOD_BUFFERED);
+
+
+/// 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
+/// Prequsites: opened device
+
+
+#define IOCTL_GETDEVID CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 4, METHOD_BUFFERED);
+
+
+
+/// 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
+/// Prequsites: opened device
+
+
+#define IOCTL_GETVOLUME CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 5, METHOD_BUFFERED);
+
+
+/// 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
+/// Prequsites: opened device
+
+
+#define IOCTL_SETVOLUME CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 6, METHOD_BUFFERED);
+
+
+/// IOCTL_GETCAPABILTIES
+///
+/// Description: This IOCTL retrieves the capabilties 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
+/// Prequsites: none
+
+
+#define IOCTL_GETCAPABILTIES CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 7, METHOD_BUFFERED);
+
+
+/// 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
+/// Prequsites: opened device
+
+
+#define IOCTL_WRITEDATA CTL_CODE(FILE_DEVICE_SOUND,
FILE_CREATE_TREE_CONNECTION | FILE_ANY_ACCESS, 8, METHOD_BUFFERED);
+
+
+
+
+
+#endif
Propchange: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/interface.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/legacy/w…
==============================================================================
--- trunk/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/legacy/wdmaud/wdmaud.h [iso-8859-1] Thu Feb 12
14:13:19 2009
@@ -3,8 +3,63 @@
#include <ntddk.h>
#include <portcls.h>
+#include <ks.h>
#define YDEBUG
#include <debug.h>
+#include <ksmedia.h>
+
+
+#ifndef MAXPNAMELEN
+#define MAXPNAMELEN 32
+#endif
+
+#ifndef WAVEOUTCAPS
+
+typedef struct
+{
+ USHORT wMid;
+ USHORT wPid;
+ ULONG vDriverVersion;
+ WCHAR szPname[MAXPNAMELEN];
+ ULONG dwFormats;
+ USHORT wChannels;
+ USHORT wReserved1;
+ ULONG dwSupport;
+} WAVEOUTCAPS;
+
+#endif
+
+#ifndef AUXCAPS
+
+typedef struct {
+ USHORT wMid;
+ USHORT wPid;
+ ULONG vDriverVersion;
+ WCHAR szPname[MAXPNAMELEN];
+ USHORT wTechnology;
+ USHORT wReserved1;
+ ULONG dwSupport;
+} AUXCAPS;
+
+#endif
+
+#ifndef WAVEINCAPS
+
+typedef struct
+{
+ USHORT wMid;
+ USHORT wPid;
+ ULONG vDriverVersion;
+ WCHAR szPname[MAXPNAMELEN];
+ ULONG dwFormats;
+ USHORT wChannels;
+ USHORT wReserved1;
+} WAVEINCAPS;
+#endif
+
+
+
+#include "interface.h"
typedef struct
{
@@ -13,7 +68,6 @@
UNICODE_STRING SymbolicLink;
PFILE_OBJECT FileObject;
}SYSAUDIO_ENTRY;
-
typedef struct
{
@@ -27,12 +81,4 @@
-
-
-
-
-
-
-
-
#endif