[WDMAUD.DRV][MMEBUDDY]
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Tue, 27 Oct 2009 23:28:09 +0000 (23:28 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Tue, 27 Oct 2009 23:28:09 +0000 (23:28 +0000)
- Implement support for DRV_QUERYDEVICEINTERFACESIZE, DRV_QUERYDEVICEINTERFACE for recording / mixer / midi-in midi-out

svn path=/trunk/; revision=43799

reactos/dll/win32/wdmaud.drv/wdmaud.c
reactos/lib/drivers/sound/mmebuddy/midi/midMessage.c
reactos/lib/drivers/sound/mmebuddy/midi/modMessage.c
reactos/lib/drivers/sound/mmebuddy/mixer/mxdMessage.c
reactos/lib/drivers/sound/mmebuddy/wave/widMessage.c

index 3378be6..2a491f3 100644 (file)
@@ -609,6 +609,13 @@ GetDeviceInterfaceString(
                                            (LPVOID) &DeviceInfo,
                                            sizeof(WDMAUD_DEVICE_INFO),
                                            NULL);
+
+    if (  MMSUCCESS(Result) && InterfaceLength > 2)
+    {
+        Interface[1] = L'\\';
+        Interface[InterfaceLength-1] = L'\0';
+    }
+
     return Result;
 }
 
index c088dc0..a99b6dc 100644 (file)
@@ -52,6 +52,19 @@ midMessage(
                                                    Parameter2);
             break;
         }
+
+        case DRV_QUERYDEVICEINTERFACESIZE :
+        {
+            Result = MmeGetDeviceInterfaceString(MIDI_IN_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR
+            break;
+        }
+
+        case DRV_QUERYDEVICEINTERFACE :
+        {
+            Result = MmeGetDeviceInterfaceString(MIDI_IN_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR
+            break;
+        }
+
     }
 
     SND_TRACE(L"midMessage returning MMRESULT %d\n", Result);
index a08f80d..bde6987 100644 (file)
@@ -52,6 +52,18 @@ modMessage(
                                                    Parameter2);
             break;
         }
+
+        case DRV_QUERYDEVICEINTERFACESIZE :
+        {
+            Result = MmeGetDeviceInterfaceString(MIDI_OUT_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR
+            break;
+        }
+
+        case DRV_QUERYDEVICEINTERFACE :
+        {
+            Result = MmeGetDeviceInterfaceString(MIDI_OUT_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR
+            break;
+        }
     }
 
     SND_TRACE(L"modMessage returning MMRESULT %d\n", Result);
index 88190cb..15b731a 100644 (file)
@@ -243,6 +243,19 @@ mxdMessage(
 
             break;
         }
+
+        case DRV_QUERYDEVICEINTERFACESIZE :
+        {
+            Result = MmeGetDeviceInterfaceString(MIXER_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR
+            break;
+        }
+
+        case DRV_QUERYDEVICEINTERFACE :
+        {
+            Result = MmeGetDeviceInterfaceString(MIXER_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR
+            break;
+        }
+
     }
 
     SND_TRACE(L"mxdMessage returning MMRESULT %d\n", Result);
index de9e353..ce1e4df 100644 (file)
@@ -109,6 +109,19 @@ widMessage(
             break;
         }
 
+        case DRV_QUERYDEVICEINTERFACESIZE :
+        {
+            Result = MmeGetDeviceInterfaceString(WAVE_IN_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR
+            break;
+        }
+
+        case DRV_QUERYDEVICEINTERFACE :
+        {
+            Result = MmeGetDeviceInterfaceString(WAVE_IN_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR
+            break;
+        }
+
+
     }
 
     SND_TRACE(L"widMessage returning MMRESULT %d\n", Result);