summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-11-14 10:13:36 +0900
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-12-04 16:00:36 -0500
commitc8a105bdbaf6d8204e0f29e07cab93e63fb9834a (patch)
tree4f4e3e58d913db77a06b16808998a5f7c30b8572
parent2735d2af0c1ea4d0ace071ae6ec5015e57d4fdf7 (diff)
downloadenlightenment-c8a105bdbaf6d8204e0f29e07cab93e63fb9834a.tar.gz
e mixer fix - fix default mixer to pulse if there
this makes e use the correct mixer backend if pulse is available as opposed to using alsa going behind pulses back. @fix
-rw-r--r--src/modules/mixer/e_mod_config.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/modules/mixer/e_mod_config.c b/src/modules/mixer/e_mod_config.c
index 92751e19b0..1dad09389a 100644
--- a/src/modules/mixer/e_mod_config.c
+++ b/src/modules/mixer/e_mod_config.c
@@ -127,7 +127,8 @@ _config_set(Emix_Config *config)
void
emix_config_init(emix_config_backend_changed cb, const void *userdata)
{
- const Eina_List *l;
+ const Eina_List *backends, *l;
+ const char *s;
EINA_SAFETY_ON_FALSE_RETURN(emix_init());
_emix_config_dd_new();
@@ -135,9 +136,25 @@ emix_config_init(emix_config_backend_changed cb, const void *userdata)
if (!_config)
{
_config = E_NEW(Emix_Config, 1);
- l = emix_backends_available();
- if (l)
- _config->backend = eina_stringshare_add(l->data);
+ backends = emix_backends_available();
+ // prefer pulseaudio as a packend if it exists as this is generally
+ // more useful, and a superset of ALSA. so if pulse is there, alsa
+ // is too - so choosing alsa if pulse is available is wrong (as a
+ // default) and leads to brokenness. in the case pulse is not
+ // around, alsa will then work
+ EINA_LIST_FOREACH(backends, l, s)
+ {
+ if (!strcmp(s, "PULSEAUDIO"))
+ {
+ _config->backend = eina_stringshare_add(s);
+ break;
+ }
+ }
+ if (!_config->backend)
+ {
+ if (backends)
+ _config->backend = eina_stringshare_add(backends->data);
+ }
}
if (_config->save == 0) _config->save = 1;