raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e5f56f95e9c67239162f6508a3cf609ebdcbce90

commit e5f56f95e9c67239162f6508a3cf609ebdcbce90
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Sat Nov 14 10:13:36 2015 +0900

    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
---
 src/modules/mixer/e_mod_config.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/modules/mixer/e_mod_config.c b/src/modules/mixer/e_mod_config.c
index 92751e1..1dad093 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;

-- 


Reply via email to