From 318229f03f30cb3efc1dfd5e07eefb90e8dec184 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Sat, 2 Jan 2010 01:54:09 +0000 Subject: [PATCH] [MMIXER_TEST] - Implement AllocEventData, FreeEventData for mmixer library svn path=/trunk/; revision=44874 --- rostests/tests/mmixer_test/test.c | 36 ++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/rostests/tests/mmixer_test/test.c b/rostests/tests/mmixer_test/test.c index 907b035e41e..939d49a5c43 100644 --- a/rostests/tests/mmixer_test/test.c +++ b/rostests/tests/mmixer_test/test.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -104,7 +105,7 @@ Control( { CloseHandle(Overlapped.hEvent); - //printf("Control: Failed with %lu Transferred %lu\n", GetLastError(), Transferred); + printf("Control: Failed with %lu Transferred %lu\n", GetLastError(), Transferred); if (GetLastError() == ERROR_MORE_DATA || GetLastError() == ERROR_INSUFFICIENT_BUFFER) { @@ -272,6 +273,33 @@ CloseKey( return MM_STATUS_SUCCESS; } +PVOID +AllocEventData( + IN ULONG ExtraSize) +{ + PKSEVENTDATA Data = (PKSEVENTDATA)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(KSEVENTDATA) + ExtraSize); + if (!Data) + return NULL; + + Data->EventHandle.Event = CreateEventW(NULL, FALSE, FALSE, NULL); + if (!Data->EventHandle.Event) + { + HeapFree(GetProcessHeap(), 0, Data); + return NULL; + } + + Data->NotificationType = KSEVENTF_EVENT_HANDLE; + return Data; +} + +VOID +FreeEventData(IN PVOID EventData) +{ + PKSEVENTDATA Data = (PKSEVENTDATA)EventData; + + CloseHandle(Data->EventHandle.Event); + HeapFree(GetProcessHeap(), 0, Data); +} int main(int argc, char**argv) { @@ -308,6 +336,8 @@ int main(int argc, char**argv) MixerContext.OpenKey = OpenKey; MixerContext.CloseKey = CloseKey; MixerContext.QueryKeyValue = QueryKeyValue; + MixerContext.AllocEventData = AllocEventData; + MixerContext.FreeEventData = FreeEventData; Status = MMixerInitialize(&MixerContext, Enum, (PVOID)DeviceHandle); @@ -382,5 +412,9 @@ int main(int argc, char**argv) wprintf(L"=======================\n"); } + + wprintf(L"//////////////////////\n"); + wprintf(L"NumWaveOut %lu NumWaveIn %lu\n", MMixerGetWaveOutCount(&MixerContext), MMixerGetWaveInCount(&MixerContext)); + wprintf(L"waveOut %lu waveIn %lu\n", waveOutGetNumDevs(), waveInGetNumDevs()); return 0; } -- 2.17.1