winwave: remove wait object when finalizing DAC voice

Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
malc 2009-10-11 05:39:09 +04:00
parent 218951ef4d
commit f4e8d0b737

View file

@ -253,10 +253,24 @@ static int winwave_run_out (HWVoiceOut *hw, int live)
return decr;
}
static void winwave_poll_out (void *opaque)
{
(void) opaque;
audio_run ("winwave_poll_out");
}
static void winwave_fini_out (HWVoiceOut *hw)
{
WaveVoiceOut *wave = (WaveVoiceOut *) hw;
if (wave->event) {
qemu_del_wait_object (wave->event, winwave_poll_out, wave);
if (!CloseHandle (wave->event)) {
AUD_log (AUDIO_CAP, "CloseHandle failed %lx\n", GetLastError ());
}
wave->event = NULL;
}
winwave_anal_close_out (wave);
qemu_free (wave->pcm_buf);
@ -264,19 +278,6 @@ static void winwave_fini_out (HWVoiceOut *hw)
qemu_free (wave->hdrs);
wave->hdrs = NULL;
if (wave->event) {
if (!CloseHandle (wave->event)) {
AUD_log (AUDIO_CAP, "CloseHandle failed %lx\n", GetLastError ());
}
wave->event = NULL;
}
}
static void winwave_poll_out (void *opaque)
{
(void) opaque;
audio_run ("winwave_poll_out");
}
static int winwave_ctl_out (HWVoiceOut *hw, int cmd, ...)