Author: nyadav
Date: Mon Apr  4 13:18:52 2011
New Revision: 51250

URL: http://svn.reactos.org/svn/reactos?rev=51250&view=rev
Log:
fix audio_test

Modified:
    
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audio_test/audio_test.c

Modified: 
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audio_test/audio_test.c
URL: 
http://svn.reactos.org/svn/reactos/branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audio_test/audio_test.c?rev=51250&r1=51249&r2=51250&view=diff
==============================================================================
--- 
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audio_test/audio_test.c 
[iso-8859-1] (original)
+++ 
branches/nyadav-audio-branch/drivers/wdm/audio/backpln/audio_test/audio_test.c 
[iso-8859-1] Mon Apr  4 13:18:52 2011
@@ -42,7 +42,8 @@
     SP_DEVINFO_DATA DeviceData;
     PSP_DEVICE_INTERFACE_DETAIL_DATA DetailData;
     HDEVINFO DeviceHandle;
-    PKSDATAFORMAT_WAVEFORMATEX DataFormat;
+    PKSDATAFORMAT DataFormat;
+    PWAVEFORMATEXTENSIBLE WaveFormat;
     PKSPIN_CONNECT PinConnect;
     PKSSTREAM_HEADER Packet;
     PKSPROPERTY Property;
@@ -61,7 +62,7 @@
     DeviceHandle = SetupDiGetClassDevs(&CategoryGuid,
                                        NULL,
                                        NULL,
-                                       DIGCF_DEVICEINTERFACE); //DIGCF_PRESENT
+                                       DIGCF_DEVICEINTERFACE |DIGCF_PRESENT);
 
    printf("DeviceHandle %p\n", DeviceHandle);
 
@@ -83,7 +84,7 @@
     //
     Length = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA) + MAX_PATH * 
sizeof(WCHAR);
     DetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)HeapAlloc(GetProcessHeap(),
-                                                             0,
+                                                             HEAP_ZERO_MEMORY,
                                                              Length);
     DetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
     DeviceData.cbSize = sizeof(DeviceData);
@@ -118,14 +119,15 @@
     //
     // Allocate a KS Pin Connection Request Structure
     //
-    Length = sizeof(KSPIN_CONNECT) + sizeof(KSDATAFORMAT_WAVEFORMATEX);
-       printf("Length %ld KSPIN %u DATAFORMAT %u\n", Length, 
sizeof(KSPIN_CONNECT), sizeof(KSDATAFORMAT_WAVEFORMATEX));
-    PinConnect = (PKSPIN_CONNECT)HeapAlloc(GetProcessHeap(), 0, Length);
-    DataFormat = (PKSDATAFORMAT_WAVEFORMATEX)(PinConnect + 1);
+    Length = sizeof(KSPIN_CONNECT) + sizeof(KSDATAFORMAT_WAVEFORMATEX) + 
sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
+    PinConnect = (PKSPIN_CONNECT)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 
Length);
+    DataFormat = (PKSDATAFORMAT)(PinConnect + 1);
+    WaveFormat = (PWAVEFORMATEXTENSIBLE)(DataFormat + 1);
 
     //
     // Setup the KS Pin Data
     //
+
     PinConnect->Interface.Set = KSINTERFACESETID_Standard;
     PinConnect->Interface.Id = KSINTERFACE_STANDARD_STREAMING;
     PinConnect->Interface.Flags = 0;
@@ -140,23 +142,30 @@
     //
     // Setup the KS Data Format Information
     //
-    DataFormat->WaveFormatEx.wFormatTag = WAVE_FORMAT_PCM;
-    DataFormat->WaveFormatEx.nChannels = 2;
-    DataFormat->WaveFormatEx.nSamplesPerSec = 48000;
-    DataFormat->WaveFormatEx.nBlockAlign = 4;
-    DataFormat->WaveFormatEx.nAvgBytesPerSec = 48000 * 4;
-    DataFormat->WaveFormatEx.wBitsPerSample = 16;
-    DataFormat->WaveFormatEx.cbSize = 0;
-    DataFormat->DataFormat.FormatSize = sizeof(KSDATAFORMAT) +
-                                        sizeof(WAVEFORMATEX);
-    DataFormat->DataFormat.Flags = KSDATAFORMAT_ATTRIBUTES;
-    DataFormat->DataFormat.Reserved = 0;
-    DataFormat->DataFormat.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
-    DataFormat->DataFormat.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
-    DataFormat->DataFormat.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
-    DataFormat->DataFormat.SampleSize = 4;
-
-    //
+    printf("DataFormat %p %p\n", DataFormat,(PVOID)((((ULONG_PTR)DataFormat + 
7)) & ~7));
+
+    DataFormat->Flags = 0;
+    DataFormat->Reserved = 0;
+    DataFormat->MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
+    DataFormat->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+    DataFormat->Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
+    DataFormat->SampleSize = 4;
+    DataFormat->FormatSize = sizeof(KSDATAFORMAT) + 
sizeof(WAVEFORMATEXTENSIBLE);
+
+    WaveFormat->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
+    WaveFormat->Format.nChannels = 2;
+    WaveFormat->Format.nSamplesPerSec = 48000;
+    WaveFormat->Format.nBlockAlign = 4;
+    WaveFormat->Format.nAvgBytesPerSec = WaveFormat->Format.nSamplesPerSec * 
WaveFormat->Format.nBlockAlign;
+    WaveFormat->Format.wBitsPerSample = 16;
+    WaveFormat->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE) - 
sizeof(WAVEFORMATEX);
+    WaveFormat->dwChannelMask = KSAUDIO_SPEAKER_STEREO;
+    WaveFormat->Samples.wValidBitsPerSample = 16;
+    WaveFormat->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
+
+    printf("Creating pin\n");
+
+       //
     // Create the pin
     //
     Status = KsCreatePin(FilterHandle, PinConnect, GENERIC_WRITE, &PinHandle);


Reply via email to