chiark / gitweb /
tests for cache.c
[disorder] / server / speaker-oss.c
index f9a298cc0d26a28af71a7bad8fe26ebabca8b591..9682cdee6d7c3ccb458cac4befa38e120ef1e63d 100644 (file)
@@ -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);
 }