chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tidy up upgrade/recovery flags a bit
[disorder]
/
server
/
speaker-oss.c
diff --git
a/server/speaker-oss.c
b/server/speaker-oss.c
index f9a298cc0d26a28af71a7bad8fe26ebabca8b591..9682cdee6d7c3ccb458cac4befa38e120ef1e63d 100644
(file)
--- 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";
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 */
} 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;
return;
failed:
device_state = device_error;
- if(ossfd >= 0)
+ if(ossfd >= 0)
{
xclose(ossfd);
xclose(ossfd);
+ ossfd = -1;
+ }
}
/** @brief Play via OSS */
}
/** @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 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);
}
oss_slot = addfd(ossfd, POLLOUT|POLLERR);
}