mixer: add option disable_pulseaudio

- checkbox in module config
  - default to false
  - if set, do not start pulseaudio even if available
This commit is contained in:
Jérémy Zurcher 2013-12-06 09:52:15 +01:00
parent be68dc962e
commit ac094ed72a
3 changed files with 17 additions and 2 deletions

View File

@ -74,6 +74,7 @@ _basic_apply(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata)
conf->default_gc_id = eina_stringshare_add(id);
conf->desktop_notification = ctxt->desktop_notification;
conf->disable_pulse = ctxt->disable_pulse;
}
return 1;
@ -120,6 +121,10 @@ _basic_create_general(E_Config_Dialog *dialog, Evas *evas, E_Config_Dialog_Data
e_widget_disabled_set(chk, EINA_TRUE);
#endif
e_widget_list_object_append(cfdata->ui.list, chk, 1, 1, 0.5);
chk = e_widget_check_add(evas, _("Disable PulseAudio"), &ctxt->disable_pulse);
e_widget_check_checked_set(chk, ctxt->conf->disable_pulse);
e_widget_list_object_append(cfdata->ui.list, chk, 1, 1, 0.5);
}
static void

View File

@ -187,6 +187,7 @@ _mixer_module_configuration_new(void)
conf = E_NEW(E_Mixer_Module_Config, 1);
conf->desktop_notification = 1;
conf->disable_pulse = 0;
return conf;
}
@ -1192,6 +1193,7 @@ _mixer_module_configuration_descriptor_new(E_Config_DD *gadget_conf_edd)
E_CONFIG_VAL(conf_edd, E_Mixer_Module_Config, default_gc_id, STR);
E_CONFIG_HASH(conf_edd, E_Mixer_Module_Config, gadgets, gadget_conf_edd);
E_CONFIG_VAL(conf_edd, E_Mixer_Module_Config, desktop_notification, INT);
E_CONFIG_VAL(conf_edd, E_Mixer_Module_Config, disable_pulse, INT);
return conf_edd;
}
@ -1266,6 +1268,7 @@ _mixer_module_configuration_setup(E_Mixer_Module_Context *ctxt)
ctxt->conf->version = MOD_CONFIG_FILE_VERSION;
ctxt->desktop_notification = ctxt->conf->desktop_notification;
ctxt->disable_pulse = ctxt->conf->disable_pulse;
}
static const char _act_increase[] = "volume_increase";
@ -1356,8 +1359,13 @@ e_modapi_init(E_Module *m)
_mixer_configure_registry_register();
e_gadcon_provider_register(&_gc_class);
if (!e_mixer_pulse_init()) e_mixer_default_setup();
else _mixer_pulse_setup();
if (!ctxt->disable_pulse)
{
if (!e_mixer_pulse_init()) e_mixer_default_setup();
else _mixer_pulse_setup();
}
else
e_mixer_default_setup();
mixer_mod = m;
return ctxt;

View File

@ -30,6 +30,7 @@ typedef struct E_Mixer_Module_Config
const char *default_gc_id;
Eina_Hash *gadgets;
int desktop_notification;
int disable_pulse;
} E_Mixer_Module_Config;
typedef struct E_Mixer_Instance
@ -75,6 +76,7 @@ typedef struct E_Mixer_Module_Context
E_Action *mute;
} actions;
int desktop_notification;
int disable_pulse;
} E_Mixer_Module_Context;
EAPI extern E_Module_Api e_modapi;