summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bachmann <manuel.bachmann@iot.bzh>2016-02-17 11:31:59 +0100
committerManuel Bachmann <manuel.bachmann@iot.bzh>2016-02-17 11:31:59 +0100
commitfcfb3c0951b6e2e06e7bf282e867576d8abb00c4 (patch)
treea035500aa54ab230387e453c8ec704436ad502c4
parent8ea2dc9f4df0a6d61e430d53d19eb0ea3633bf23 (diff)
Audio plugin: choose between Pulse/ALSA at runtime
If the AFB_AUDIO_OUTPUT environment variable is defined to "Pulse/Alsa", it will try to initialize the given backend (still falling back to Alsa for now). Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
-rw-r--r--plugins/audio/audio-alsa.c2
-rw-r--r--plugins/audio/audio-api.c14
-rw-r--r--plugins/audio/audio-pulse.c2
3 files changed, 15 insertions, 3 deletions
diff --git a/plugins/audio/audio-alsa.c b/plugins/audio/audio-alsa.c
index 7310ea89..bc777fce 100644
--- a/plugins/audio/audio-alsa.c
+++ b/plugins/audio/audio-alsa.c
@@ -130,6 +130,8 @@ PUBLIC unsigned char _alsa_init (const char *name, audioCtxHandleT *ctx) {
ctx->mute = _alsa_get_mute (num);
ctx->idx = num;
+ if (verbose) fprintf (stderr, "Successfully initialized ALSA backend.\n");
+
return 0;
}
diff --git a/plugins/audio/audio-api.c b/plugins/audio/audio-api.c
index 4a8d0da1..637f9d03 100644
--- a/plugins/audio/audio-api.c
+++ b/plugins/audio/audio-api.c
@@ -22,10 +22,18 @@
void _backend_init (const char *name, audioCtxHandleT *ctx) {
+ char *backend_env = getenv ("AFB_AUDIO_OUTPUT");
+ unsigned char res = -1;
+
# ifdef HAVE_PULSE
- if (_pulse_init (name, ctx) < 0)
-# endif
- _alsa_init (name, ctx);
+ if (!backend_env || (strcasecmp (backend_env, "Alsa") != 0))
+ res = _pulse_init (name, ctx);
+ if (res < 0)
+#endif
+ res = _alsa_init (name, ctx);
+
+ if (res < 0 && verbose)
+ fprintf (stderr, "Could not initialize Audio backend\n");
}
void _backend_free (audioCtxHandleT *ctx) {
diff --git a/plugins/audio/audio-pulse.c b/plugins/audio/audio-pulse.c
index 4caf3db5..ceffcf7d 100644
--- a/plugins/audio/audio-pulse.c
+++ b/plugins/audio/audio-pulse.c
@@ -94,6 +94,8 @@ PUBLIC unsigned char _pulse_init (const char *name, audioCtxHandleT *ctx) {
client_count++;
+ if (verbose) fprintf (stderr, "Successfully initialized PulseAudio backend.\n");
+
return 0;
}