From 20b2d7cb6fcc2190daf46d1dd24cd9649756605d Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sun, 30 Jun 2013 23:37:41 +0000 Subject: ao_oss: add support for SNDCTL_DSP_RESET and use it when pausing Signed-off-by: Paul B Mahol Signed-off-by: wm4 --- audio/out/ao_oss.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'audio') diff --git a/audio/out/ao_oss.c b/audio/out/ao_oss.c index 0890f11e0a..5050f9771f 100644 --- a/audio/out/ao_oss.c +++ b/audio/out/ao_oss.c @@ -476,7 +476,11 @@ static void audio_pause(struct ao *ao) { struct priv *p = ao->priv; p->prepause_space = get_space(ao); +#ifdef SNDCTL_DSP_RESET + ioctl(p->audio_fd, SNDCTL_DSP_RESET, NULL); +#else close_device(ao); +#endif } // plays 'len' bytes of 'data' @@ -500,7 +504,9 @@ static void audio_resume(struct ao *ao) { struct priv *p = ao->priv; int fillcnt; +#ifndef SNDCTL_DSP_RESET reset(ao); +#endif fillcnt = get_space(ao) - p->prepause_space; if (fillcnt > 0 && !(ao->format & AF_FORMAT_SPECIAL_MASK)) { void *silence = calloc(fillcnt, 1); -- cgit v1.2.3