diff options
author | Manuel Bachmann <manuel.bachmann@iot.bzh> | 2016-02-17 11:31:59 +0100 |
---|---|---|
committer | Manuel Bachmann <manuel.bachmann@iot.bzh> | 2016-02-17 11:31:59 +0100 |
commit | fcfb3c0951b6e2e06e7bf282e867576d8abb00c4 (patch) | |
tree | a035500aa54ab230387e453c8ec704436ad502c4 | |
parent | 8ea2dc9f4df0a6d61e430d53d19eb0ea3633bf23 (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.c | 2 | ||||
-rw-r--r-- | plugins/audio/audio-api.c | 14 | ||||
-rw-r--r-- | plugins/audio/audio-pulse.c | 2 |
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; } |