case MM_WOM_CLOSE:
WLog_DBG(TAG, "MM_WOM_CLOSE");
- SetEvent(winmm->next);
break;
case MM_WOM_DONE:
WLog_DBG(TAG, "MM_WOM_DONE");
lpWaveHdr = (LPWAVEHDR) dwParam1;
free(lpWaveHdr);
- SetEvent(winmm->next);
break;
default:
if (winmm)
{
rdpsnd_winmm_close(device);
- CloseHandle(winmm->next);
free(winmm);
}
}
return 0;
}
- WaitForSingleObject(winmm->next, INFINITE);
return 10; /* TODO: Get real latencry in [ms] */
}
winmm->device.Play = rdpsnd_winmm_play;
winmm->device.Close = rdpsnd_winmm_close;
winmm->device.Free = rdpsnd_winmm_free;
- winmm->next = CreateEventA(NULL, FALSE, FALSE, "winmm-play-event");
-
- if (!winmm->next)
- {
- free(winmm);
- return CHANNEL_RC_NO_MEMORY;
- }
args = pEntryPoints->args;
rdpsnd_winmm_parse_addin_args((rdpsndDevicePlugin*) winmm, args);