X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/e99d42b153659e7ac644bb93700acb81514998e5..d25c461540eadff2230653059ea2f692ee8dfc63:/server/speaker-oss.c diff --git a/server/speaker-oss.c b/server/speaker-oss.c index f9a298c..9682cde 100644 --- a/server/speaker-oss.c +++ b/server/speaker-oss.c @@ -71,6 +71,10 @@ static void oss_activate(void) { device = "/dev/dsp"; else if(access("/dev/audio", W_OK) == 0) device = "/dev/audio"; + else { + error(0, "cannot determine default OSS device"); + goto failed; + } } else device = config->device; /* just believe the user */ /* Open the device */ @@ -111,8 +115,10 @@ static void oss_activate(void) { return; failed: device_state = device_error; - if(ossfd >= 0) + if(ossfd >= 0) { xclose(ossfd); + ossfd = -1; + } } /** @brief Play via OSS */ @@ -136,7 +142,7 @@ static size_t oss_play(size_t frames) { static int oss_slot; /** @brief Fill in poll fd array for OSS */ -static void oss_beforepoll(void) { +static void oss_beforepoll(int attribute((unused)) *timeoutp) { oss_slot = addfd(ossfd, POLLOUT|POLLERR); }