[ros-diffs] [janderwald] 39573: - Define interface for wdmaud.drv - Needs review

janderwald at svn.reactos.org janderwald at svn.reactos.org
Thu Feb 12 21:13:19 CET 2009


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/wdmaud/interface.h?rev=39573&view=auto
==============================================================================
--- 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/wdmaud/wdmaud.h?rev=39573&r1=39572&r2=39573&view=diff
==============================================================================
--- 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



More information about the Ros-diffs mailing list