diff options
Diffstat (limited to 'src/module/e_mod_main.c')
-rw-r--r-- | src/module/e_mod_main.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/module/e_mod_main.c b/src/module/e_mod_main.c index 8ff5238..a74c13c 100644 --- a/src/module/e_mod_main.c +++ b/src/module/e_mod_main.c | |||
@@ -745,8 +745,10 @@ _volume_meter_cb(Emix_Sink *sink, double value, void *data EINA_UNUSED) | |||
745 | EAPI void * | 745 | EAPI void * |
746 | e_modapi_init(E_Module *m) | 746 | e_modapi_init(E_Module *m) |
747 | { | 747 | { |
748 | Eina_List *l; | ||
748 | char buf[4096]; | 749 | char buf[4096]; |
749 | const char *backend; | 750 | const char *backend; |
751 | Eina_Bool backend_loaded = EINA_FALSE; | ||
750 | 752 | ||
751 | _e_emix_log_domain = eina_log_domain_register("emix_module", EINA_COLOR_RED); | 753 | _e_emix_log_domain = eina_log_domain_register("emix_module", EINA_COLOR_RED); |
752 | 754 | ||
@@ -758,7 +760,25 @@ e_modapi_init(E_Module *m) | |||
758 | goto err; | 760 | goto err; |
759 | 761 | ||
760 | if (emix_backend_set(backend) == EINA_FALSE) | 762 | if (emix_backend_set(backend) == EINA_FALSE) |
761 | goto err; | 763 | { |
764 | WRN("Could not load %s, trying another one ...", backend); | ||
765 | EINA_LIST_FOREACH((Eina_List *)emix_backends_available(), l, | ||
766 | backend) | ||
767 | { | ||
768 | if (emix_backend_set(backend) == EINA_TRUE) | ||
769 | { | ||
770 | DBG("Loaded backend: %s!", backend); | ||
771 | backend_loaded = EINA_TRUE; | ||
772 | emix_config_backend_set(backend); | ||
773 | break; | ||
774 | } | ||
775 | } | ||
776 | } | ||
777 | else | ||
778 | backend_loaded = EINA_TRUE; | ||
779 | |||
780 | if (backend_loaded == EINA_FALSE) | ||
781 | goto err; | ||
762 | 782 | ||
763 | emix_volume_meter_callback_set(_volume_meter_cb, NULL); | 783 | emix_volume_meter_callback_set(_volume_meter_cb, NULL); |
764 | 784 | ||