Revision 6165a426 audio/winwaveaudio.c
b/audio/winwaveaudio.c | ||
---|---|---|
29 | 29 |
int avail; |
30 | 30 |
int pending; |
31 | 31 |
int curhdr; |
32 |
int paused; |
|
32 | 33 |
CRITICAL_SECTION crit_sect; |
33 | 34 |
} WaveVoiceOut; |
34 | 35 |
|
... | ... | |
282 | 283 |
|
283 | 284 |
static int winwave_ctl_out (HWVoiceOut *hw, int cmd, ...) |
284 | 285 |
{ |
286 |
MMRESULT mr; |
|
285 | 287 |
WaveVoiceOut *wave = (WaveVoiceOut *) hw; |
286 | 288 |
|
287 | 289 |
switch (cmd) { |
... | ... | |
313 | 315 |
else { |
314 | 316 |
hw->poll_mode = 0; |
315 | 317 |
} |
318 |
if (wave->paused) { |
|
319 |
mr = waveOutRestart (wave->hwo); |
|
320 |
if (mr != MMSYSERR_NOERROR) { |
|
321 |
winwave_logerr (mr, "waveOutRestart"); |
|
322 |
} |
|
323 |
wave->paused = 0; |
|
324 |
} |
|
316 | 325 |
} |
317 | 326 |
return 0; |
318 | 327 |
|
319 | 328 |
case VOICE_DISABLE: |
329 |
if (!wave->paused) { |
|
330 |
mr = waveOutPause (wave->hwo); |
|
331 |
if (mr != MMSYSERR_NOERROR) { |
|
332 |
winwave_logerr (mr, "waveOutPause"); |
|
333 |
} |
|
334 |
else { |
|
335 |
wave->paused = 1; |
|
336 |
} |
|
337 |
} |
|
320 | 338 |
if (wave->event) { |
321 | 339 |
qemu_del_wait_object (wave->event, winwave_poll_out, wave); |
322 | 340 |
} |
Also available in: Unified diff