[WDMAUD.DRV]
[reactos.git] / reactos / drivers / wdm / audio / legacy / wdmaud / wdmaud.h
index 7fc6ba6..9af9edd 100644 (file)
@@ -1,69 +1,34 @@
 #ifndef WDMAUD_H__
 #define WDMAUD_H__
 
+#include <pseh/pseh2.h>
 #include <ntddk.h>
 #include <portcls.h>
 #include <ks.h>
-#define YDEBUG
+#define NDEBUG
 #include <debug.h>
 #include <ksmedia.h>
+#include <mmsystem.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <wchar.h>
 
-
-#ifndef MAXPNAMELEN
-#define MAXPNAMELEN      32
-#endif
-
-#ifndef WAVEOUTCAPS
+#include "interface.h"
 
 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
+    HANDLE Handle;
+    SOUND_DEVICE_TYPE Type;
+    ULONG FilterId;
+    ULONG PinId;
+}WDMAUD_HANDLE, *PWDMAUD_HANDLE;
 
-#include "interface.h"
 
 typedef struct
 {
     HANDLE hProcess;
-    HANDLE hSysAudio;
-    PFILE_OBJECT FileObject;
+    ULONG NumPins;
+    WDMAUD_HANDLE * hPins;
 
 }WDMAUD_CLIENT, *PWDMAUD_CLIENT;
 
@@ -83,9 +48,17 @@ typedef struct
     KSPIN_LOCK Lock;
     ULONG NumSysAudioDevices;
     LIST_ENTRY SysAudioDeviceList;
+    HANDLE hSysAudio;
+    PFILE_OBJECT FileObject;
 
 }WDMAUD_DEVICE_EXTENSION, *PWDMAUD_DEVICE_EXTENSION;
 
+typedef struct
+{
+    KSSTREAM_HEADER Header;
+    PIRP Irp;
+}CONTEXT_WRITE, *PCONTEXT_WRITE;
+
 NTSTATUS
 WdmAudRegisterDeviceInterface(
     IN PDEVICE_OBJECT PhysicalDeviceObject,
@@ -107,4 +80,44 @@ WdmAudDeviceControl(
     IN  PDEVICE_OBJECT DeviceObject,
     IN  PIRP Irp);
 
+NTSTATUS
+NTAPI
+WdmAudWrite(
+    IN  PDEVICE_OBJECT DeviceObject,
+    IN  PIRP Irp);
+
+NTSTATUS
+WdmAudControlOpenMixer(
+    IN  PDEVICE_OBJECT DeviceObject,
+    IN  PIRP Irp,
+    IN  PWDMAUD_DEVICE_INFO DeviceInfo,
+    IN  PWDMAUD_CLIENT ClientInfo);
+
+ULONG
+GetNumOfMixerDevices(
+    IN  PDEVICE_OBJECT DeviceObject);
+
+NTSTATUS
+SetIrpIoStatus(
+    IN PIRP Irp,
+    IN NTSTATUS Status,
+    IN ULONG Length);
+
+NTSTATUS
+WdmAudOpenSysAudioDevice(
+    IN LPWSTR DeviceName,
+    OUT PHANDLE Handle);
+
+NTSTATUS
+FindProductName(
+    IN LPWSTR PnpName,
+    IN ULONG ProductNameSize,
+    OUT LPWSTR ProductName);
+
+NTSTATUS
+WdmAudMixerCapabilities(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN  PWDMAUD_DEVICE_INFO DeviceInfo,
+    IN  PWDMAUD_CLIENT ClientInfo);
+
 #endif