chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
report unreadable tracks and dirs
[disorder]
/
lib
/
configuration.c
diff --git
a/lib/configuration.c
b/lib/configuration.c
index 448a8ab7bbdda475235dafe706732e7aa8361eb8..a506ee948fe8439167324c928017c341aca36d93 100644
(file)
--- a/
lib/configuration.c
+++ b/
lib/configuration.c
@@
-439,7
+439,7
@@
static int set_backend(const struct config_state *cs,
return -1;
}
if(!strcmp(vec[0], "alsa")) {
return -1;
}
if(!strcmp(vec[0], "alsa")) {
-#if
API_ALSA
+#if
HAVE_ALSA_ASOUNDLIB_H
*valuep = BACKEND_ALSA;
#else
error(0, "%s:%d: ALSA is not available on this platform",
*valuep = BACKEND_ALSA;
#else
error(0, "%s:%d: ALSA is not available on this platform",
@@
-457,6
+457,14
@@
static int set_backend(const struct config_state *cs,
error(0, "%s:%d: Core Audio is not available on this platform",
cs->path, cs->line);
return -1;
error(0, "%s:%d: Core Audio is not available on this platform",
cs->path, cs->line);
return -1;
+#endif
+ } else if(!strcmp(vec[0], "oss")) {
+#if HAVE_SYS_SOUNDCARD_H
+ *valuep = BACKEND_OSS;
+#else
+ error(0, "%s:%d: OSS is not available on this platform",
+ cs->path, cs->line);
+ return -1;
#endif
} else {
error(0, "%s:%d: invalid '%s' value '%s'",
#endif
} else {
error(0, "%s:%d: invalid '%s' value '%s'",
@@
-1076,8
+1084,10
@@
static void config_postdefaults(struct config *c,
else if(c->broadcast.n)
c->speaker_backend = BACKEND_NETWORK;
else {
else if(c->broadcast.n)
c->speaker_backend = BACKEND_NETWORK;
else {
-#if
API_ALSA
+#if
HAVE_ALSA_ASOUNDLIB_H
c->speaker_backend = BACKEND_ALSA;
c->speaker_backend = BACKEND_ALSA;
+#elif HAVE_SYS_SOUNDCARD_H
+ c->speaker_backend = BACKEND_OSS;
#elif HAVE_COREAUDIO_AUDIOHARDWARE_H
c->speaker_backend = BACKEND_COREAUDIO;
#else
#elif HAVE_COREAUDIO_AUDIOHARDWARE_H
c->speaker_backend = BACKEND_COREAUDIO;
#else
@@
-1091,20
+1101,21
@@
static void config_postdefaults(struct config *c,
if(c->speaker_backend == BACKEND_NETWORK && !c->broadcast.n)
fatal(0, "speaker_backend is network but broadcast is not set");
}
if(c->speaker_backend == BACKEND_NETWORK && !c->broadcast.n)
fatal(0, "speaker_backend is network but broadcast is not set");
}
- if(c->speaker_backend == BACKEND_NETWORK) {
- /* Override sample format */
+ /* Override sample format */
+ switch(c->speaker_backend) {
+ case BACKEND_NETWORK:
c->sample_format.rate = 44100;
c->sample_format.channels = 2;
c->sample_format.bits = 16;
c->sample_format.endian = ENDIAN_BIG;
c->sample_format.rate = 44100;
c->sample_format.channels = 2;
c->sample_format.bits = 16;
c->sample_format.endian = ENDIAN_BIG;
- }
- if(c->speaker_backend == BACKEND_COREAUDIO) {
- /* Override sample format */
+ break;
+ case BACKEND_COREAUDIO:
c->sample_format.rate = 44100;
c->sample_format.channels = 2;
c->sample_format.bits = 16;
c->sample_format.endian = ENDIAN_NATIVE;
c->sample_format.rate = 44100;
c->sample_format.channels = 2;
c->sample_format.bits = 16;
c->sample_format.endian = ENDIAN_NATIVE;
- }
+ break;
+ }
}
/** @brief (Re-)read the config file
}
/** @brief (Re-)read the config file