diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2013-02-14 20:27:59 +0000 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2013-02-14 20:27:59 +0000 |
commit | 8c1d5a21462dbabc95af0d0d176d88c68781b298 (patch) | |
tree | 9c189336c83a5a5731afed260b9d44698f4642d9 /src | |
parent | 8d86519b5e895d7290957776d5cfaa7bb21ad424 (diff) | |
download | enlightenment-8c1d5a21462dbabc95af0d0d176d88c68781b298.tar.gz |
e_mixer: extract mixer API into e_mod_mixer
SVN revision: 83907
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/Makefile_mixer.am | 3 | ||||
-rw-r--r-- | src/modules/mixer/e_mod_main.c | 110 | ||||
-rw-r--r-- | src/modules/mixer/e_mod_main.h | 49 | ||||
-rw-r--r-- | src/modules/mixer/e_mod_mixer.c | 77 | ||||
-rw-r--r-- | src/modules/mixer/e_mod_mixer.h (renamed from src/modules/mixer/e_mod_system.h) | 88 | ||||
-rw-r--r-- | src/modules/mixer/sys_alsa.c | 2 | ||||
-rw-r--r-- | src/modules/mixer/sys_dummy.c | 2 | ||||
-rw-r--r-- | src/modules/mixer/sys_pulse.c | 1 |
8 files changed, 174 insertions, 158 deletions
diff --git a/src/modules/Makefile_mixer.am b/src/modules/Makefile_mixer.am index 3858c12b63..9c491e9949 100644 --- a/src/modules/Makefile_mixer.am +++ b/src/modules/Makefile_mixer.am @@ -14,7 +14,8 @@ mixer_module_la_SOURCES = mixer/e_mod_main.c \ mixer/app_mixer.c \ mixer/conf_gadget.c \ mixer/conf_module.c \ - mixer/e_mod_system.h \ + mixer/e_mod_mixer.h \ + mixer/e_mod_mixer.c \ mixer/msg.c \ mixer/Pulse.h \ mixer/pa.h \ diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c index fea4aec23b..182093508f 100644 --- a/src/modules/mixer/e_mod_main.c +++ b/src/modules/mixer/e_mod_main.c @@ -9,28 +9,6 @@ static char tmpbuf[4096]; /* general purpose buffer, just use immediately */ static const char _conf_domain[] = "module.mixer"; static const char _name[] = "mixer"; const char _e_mixer_Name[] = N_("Mixer"); -Eina_Bool _mixer_using_default = EINA_FALSE; -E_Mixer_Volume_Get_Cb e_mod_mixer_volume_get; -E_Mixer_Volume_Set_Cb e_mod_mixer_volume_set; -E_Mixer_Mute_Get_Cb e_mod_mixer_mute_get; -E_Mixer_Mute_Set_Cb e_mod_mixer_mute_set; -E_Mixer_Capture_Cb e_mod_mixer_mutable_get; -E_Mixer_State_Get_Cb e_mod_mixer_state_get; -E_Mixer_Capture_Cb e_mod_mixer_capture_get; -E_Mixer_Cb e_mod_mixer_new; -E_Mixer_Cb e_mod_mixer_del; -E_Mixer_Cb e_mod_mixer_channel_default_name_get; -E_Mixer_Cb e_mod_mixer_channel_get_by_name; -E_Mixer_Cb e_mod_mixer_channel_name_get; -E_Mixer_Cb e_mod_mixer_channel_del; -E_Mixer_Cb e_mod_mixer_channel_free; -E_Mixer_Cb e_mod_mixer_channels_free; -E_Mixer_Cb e_mod_mixer_channels_get; -E_Mixer_Cb e_mod_mixer_channels_names_get; -E_Mixer_Cb e_mod_mixer_card_name_get; -E_Mixer_Cb e_mod_mixer_cards_get; -E_Mixer_Cb e_mod_mixer_cards_free; -E_Mixer_Cb e_mod_mixer_card_default_get; static void _mixer_actions_unregister(E_Mixer_Module_Context *ctxt); static void _mixer_actions_register(E_Mixer_Module_Context *ctxt); @@ -957,6 +935,25 @@ _mixer_sys_setup_defaults(E_Mixer_Instance *inst) return _mixer_sys_setup_default_channel(inst); } +static void +_mixer_pulse_setup(void) +{ + E_Mixer_Instance *inst; + E_Mixer_Module_Context *ctxt; + Eina_List *l; + + e_mixer_pulse_setup(); + + if (!mixer_mod) return; + + ctxt = mixer_mod->data; + EINA_LIST_FOREACH(ctxt->instances, l, inst) + { + if (!inst->conf->card) + _mixer_gadget_configuration_defaults(inst->conf); + } +} + void e_mod_mixer_pulse_ready(Eina_Bool ready) { @@ -980,7 +977,7 @@ e_mod_mixer_pulse_ready(Eina_Bool ready) inst->sys = NULL; } } - if (ready) e_mixer_pulse_setup(); + if (ready) _mixer_pulse_setup(); else e_mixer_default_setup(); EINA_LIST_FOREACH(ctxt->instances, l, inst) @@ -1466,71 +1463,6 @@ _mixer_actions_unregister(E_Mixer_Module_Context *ctxt) } } -void -e_mixer_default_setup(void) -{ - e_mod_mixer_volume_get = (void *)e_mixer_alsa_get_volume; - e_mod_mixer_volume_set = (void *)e_mixer_alsa_set_volume; - e_mod_mixer_mute_get = (void *)e_mixer_alsa_get_mute; - e_mod_mixer_mute_set = (void *)e_mixer_alsa_set_mute; - e_mod_mixer_mutable_get = (void *)e_mixer_alsa_can_mute; - e_mod_mixer_state_get = (void *)e_mixer_alsa_get_state; - e_mod_mixer_capture_get = (void *)e_mixer_alsa_has_capture; - e_mod_mixer_new = (void *)e_mixer_alsa_new; - e_mod_mixer_del = (void *)e_mixer_alsa_del; - e_mod_mixer_channel_default_name_get = (void *)e_mixer_alsa_get_default_channel_name; - e_mod_mixer_channel_get_by_name = (void *)e_mixer_alsa_get_channel_by_name; - e_mod_mixer_channel_name_get = (void *)e_mixer_alsa_get_channel_name; - e_mod_mixer_channel_del = (void *)e_mixer_alsa_channel_del; - e_mod_mixer_channels_free = (void *)e_mixer_alsa_free_channels; - e_mod_mixer_channels_get = (void *)e_mixer_alsa_get_channels; - e_mod_mixer_channels_names_get = (void *)e_mixer_alsa_get_channels_names; - e_mod_mixer_card_name_get = (void *)e_mixer_alsa_get_card_name; - e_mod_mixer_cards_get = (void *)e_mixer_alsa_get_cards; - e_mod_mixer_cards_free = (void *)e_mixer_alsa_free_cards; - e_mod_mixer_card_default_get = (void *)e_mixer_alsa_get_default_card; - _mixer_using_default = EINA_TRUE; -} - -void -e_mixer_pulse_setup(void) -{ - E_Mixer_Instance *inst; - E_Mixer_Module_Context *ctxt; - Eina_List *l; - - e_mod_mixer_volume_get = (void *)e_mixer_pulse_get_volume; - e_mod_mixer_volume_set = (void *)e_mixer_pulse_set_volume; - e_mod_mixer_mute_get = (void *)e_mixer_pulse_get_mute; - e_mod_mixer_mute_set = (void *)e_mixer_pulse_set_mute; - e_mod_mixer_mutable_get = (void *)e_mixer_pulse_can_mute; - e_mod_mixer_state_get = (void *)e_mixer_pulse_get_state; - e_mod_mixer_capture_get = (void *)e_mixer_pulse_has_capture; - e_mod_mixer_new = (void *)e_mixer_pulse_new; - e_mod_mixer_del = (void *)e_mixer_pulse_del; - e_mod_mixer_channel_default_name_get = (void *)e_mixer_pulse_get_default_channel_name; - e_mod_mixer_channel_get_by_name = (void *)e_mixer_pulse_get_channel_by_name; - e_mod_mixer_channel_name_get = (void *)e_mixer_pulse_get_channel_name; - e_mod_mixer_channel_del = (void *)e_mixer_pulse_channel_del; - e_mod_mixer_channels_free = (void *)e_mixer_pulse_free_channels; - e_mod_mixer_channels_get = (void *)e_mixer_pulse_get_channels; - e_mod_mixer_channels_names_get = (void *)e_mixer_pulse_get_channels_names; - e_mod_mixer_card_name_get = (void *)e_mixer_pulse_get_card_name; - e_mod_mixer_cards_get = (void *)e_mixer_pulse_get_cards; - e_mod_mixer_cards_free = (void *)e_mixer_pulse_free_cards; - e_mod_mixer_card_default_get = (void *)e_mixer_pulse_get_default_card; - _mixer_using_default = EINA_FALSE; - - if (!mixer_mod) return; - - ctxt = mixer_mod->data; - EINA_LIST_FOREACH(ctxt->instances, l, inst) - { - if (!inst->conf->card) - _mixer_gadget_configuration_defaults(inst->conf); - } -} - EAPI void * e_modapi_init(E_Module *m) { @@ -1543,7 +1475,7 @@ 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 e_mixer_pulse_setup(); + else _mixer_pulse_setup(); mixer_mod = m; return ctxt; diff --git a/src/modules/mixer/e_mod_main.h b/src/modules/mixer/e_mod_main.h index cd79174ba0..b0277876c8 100644 --- a/src/modules/mixer/e_mod_main.h +++ b/src/modules/mixer/e_mod_main.h @@ -2,7 +2,7 @@ #define E_MOD_MAIN_H #include "e.h" -#include "e_mod_system.h" +#include "e_mod_mixer.h" /* Increment for Major Changes */ #define MOD_CONFIG_FILE_EPOCH 1 @@ -83,14 +83,6 @@ typedef struct E_Mixer_Module_Context int desktop_notification; } E_Mixer_Module_Context; -typedef int (*E_Mixer_Volume_Set_Cb)(E_Mixer_System *, E_Mixer_Channel *, int, int); -typedef int (*E_Mixer_Volume_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, int *, int *); -typedef int (*E_Mixer_Mute_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, int *); -typedef int (*E_Mixer_Mute_Set_Cb)(E_Mixer_System *, E_Mixer_Channel *, int); -typedef int (*E_Mixer_State_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, E_Mixer_Channel_State *); -typedef int (*E_Mixer_Capture_Cb)(E_Mixer_System *, E_Mixer_Channel *); -typedef void *(*E_Mixer_Cb)(); - EAPI extern E_Module_Api e_modapi; EAPI void *e_modapi_init(E_Module *m); EAPI int e_modapi_shutdown(E_Module *m); @@ -102,48 +94,9 @@ E_Dialog *e_mixer_app_dialog_new(E_Container *con, void (*func)(E_Dialog *dialog int e_mixer_app_dialog_select(E_Dialog *dialog, const char *card_name, const char *channel_name); int e_mixer_update(E_Mixer_Instance *inst); -void e_mixer_default_setup(void); -void e_mixer_pulse_setup(void); const char *e_mixer_theme_path(void); void e_mod_mixer_pulse_ready(Eina_Bool); void e_mod_mixer_pulse_update(void); -extern Eina_Bool _mixer_using_default; -extern E_Mixer_Volume_Get_Cb e_mod_mixer_volume_get; -extern E_Mixer_Volume_Set_Cb e_mod_mixer_volume_set; -extern E_Mixer_Mute_Get_Cb e_mod_mixer_mute_get; -extern E_Mixer_Mute_Set_Cb e_mod_mixer_mute_set; -extern E_Mixer_Capture_Cb e_mod_mixer_mutable_get; -extern E_Mixer_State_Get_Cb e_mod_mixer_state_get; -extern E_Mixer_Capture_Cb e_mod_mixer_capture_get; -extern E_Mixer_Cb e_mod_mixer_new; -extern E_Mixer_Cb e_mod_mixer_del; -extern E_Mixer_Cb e_mod_mixer_channel_default_name_get; -extern E_Mixer_Cb e_mod_mixer_channel_get_by_name; -extern E_Mixer_Cb e_mod_mixer_channel_name_get; -extern E_Mixer_Cb e_mod_mixer_channel_del; -extern E_Mixer_Cb e_mod_mixer_channel_free; -extern E_Mixer_Cb e_mod_mixer_channels_free; -extern E_Mixer_Cb e_mod_mixer_channels_get; -extern E_Mixer_Cb e_mod_mixer_channels_names_get; -extern E_Mixer_Cb e_mod_mixer_card_name_get; -extern E_Mixer_Cb e_mod_mixer_cards_get; -extern E_Mixer_Cb e_mod_mixer_cards_free; -extern E_Mixer_Cb e_mod_mixer_card_default_get; - -/** - * @addtogroup Optional_Devices - * @{ - * - * @defgroup Module_Mixer Audio Mixer (Volume Control) - * - * Controls the audio volume and mute status for both playback - * (output) and record (input) devices. - * - * Can work with ALSA (http://www.alsa-project.org/) or PulseAudio - * (http://www.pulseaudio.org/). - * - * @} - */ #endif diff --git a/src/modules/mixer/e_mod_mixer.c b/src/modules/mixer/e_mod_mixer.c new file mode 100644 index 0000000000..153e27cf15 --- /dev/null +++ b/src/modules/mixer/e_mod_mixer.c @@ -0,0 +1,77 @@ +#include "e_mod_mixer.h" + +Eina_Bool _mixer_using_default = EINA_FALSE; +E_Mixer_Volume_Get_Cb e_mod_mixer_volume_get; +E_Mixer_Volume_Set_Cb e_mod_mixer_volume_set; +E_Mixer_Mute_Get_Cb e_mod_mixer_mute_get; +E_Mixer_Mute_Set_Cb e_mod_mixer_mute_set; +E_Mixer_Capture_Cb e_mod_mixer_mutable_get; +E_Mixer_State_Get_Cb e_mod_mixer_state_get; +E_Mixer_Capture_Cb e_mod_mixer_capture_get; +E_Mixer_Cb e_mod_mixer_new; +E_Mixer_Cb e_mod_mixer_del; +E_Mixer_Cb e_mod_mixer_channel_default_name_get; +E_Mixer_Cb e_mod_mixer_channel_get_by_name; +E_Mixer_Cb e_mod_mixer_channel_name_get; +E_Mixer_Cb e_mod_mixer_channel_del; +E_Mixer_Cb e_mod_mixer_channel_free; +E_Mixer_Cb e_mod_mixer_channels_free; +E_Mixer_Cb e_mod_mixer_channels_get; +E_Mixer_Cb e_mod_mixer_channels_names_get; +E_Mixer_Cb e_mod_mixer_card_name_get; +E_Mixer_Cb e_mod_mixer_cards_get; +E_Mixer_Cb e_mod_mixer_cards_free; +E_Mixer_Cb e_mod_mixer_card_default_get; + +void +e_mixer_default_setup(void) +{ + e_mod_mixer_volume_get = (void *)e_mixer_alsa_get_volume; + e_mod_mixer_volume_set = (void *)e_mixer_alsa_set_volume; + e_mod_mixer_mute_get = (void *)e_mixer_alsa_get_mute; + e_mod_mixer_mute_set = (void *)e_mixer_alsa_set_mute; + e_mod_mixer_mutable_get = (void *)e_mixer_alsa_can_mute; + e_mod_mixer_state_get = (void *)e_mixer_alsa_get_state; + e_mod_mixer_capture_get = (void *)e_mixer_alsa_has_capture; + e_mod_mixer_new = (void *)e_mixer_alsa_new; + e_mod_mixer_del = (void *)e_mixer_alsa_del; + e_mod_mixer_channel_default_name_get = (void *)e_mixer_alsa_get_default_channel_name; + e_mod_mixer_channel_get_by_name = (void *)e_mixer_alsa_get_channel_by_name; + e_mod_mixer_channel_name_get = (void *)e_mixer_alsa_get_channel_name; + e_mod_mixer_channel_del = (void *)e_mixer_alsa_channel_del; + e_mod_mixer_channels_free = (void *)e_mixer_alsa_free_channels; + e_mod_mixer_channels_get = (void *)e_mixer_alsa_get_channels; + e_mod_mixer_channels_names_get = (void *)e_mixer_alsa_get_channels_names; + e_mod_mixer_card_name_get = (void *)e_mixer_alsa_get_card_name; + e_mod_mixer_cards_get = (void *)e_mixer_alsa_get_cards; + e_mod_mixer_cards_free = (void *)e_mixer_alsa_free_cards; + e_mod_mixer_card_default_get = (void *)e_mixer_alsa_get_default_card; + _mixer_using_default = EINA_TRUE; +} + +void +e_mixer_pulse_setup() +{ + e_mod_mixer_volume_get = (void *)e_mixer_pulse_get_volume; + e_mod_mixer_volume_set = (void *)e_mixer_pulse_set_volume; + e_mod_mixer_mute_get = (void *)e_mixer_pulse_get_mute; + e_mod_mixer_mute_set = (void *)e_mixer_pulse_set_mute; + e_mod_mixer_mutable_get = (void *)e_mixer_pulse_can_mute; + e_mod_mixer_state_get = (void *)e_mixer_pulse_get_state; + e_mod_mixer_capture_get = (void *)e_mixer_pulse_has_capture; + e_mod_mixer_new = (void *)e_mixer_pulse_new; + e_mod_mixer_del = (void *)e_mixer_pulse_del; + e_mod_mixer_channel_default_name_get = (void *)e_mixer_pulse_get_default_channel_name; + e_mod_mixer_channel_get_by_name = (void *)e_mixer_pulse_get_channel_by_name; + e_mod_mixer_channel_name_get = (void *)e_mixer_pulse_get_channel_name; + e_mod_mixer_channel_del = (void *)e_mixer_pulse_channel_del; + e_mod_mixer_channels_free = (void *)e_mixer_pulse_free_channels; + e_mod_mixer_channels_get = (void *)e_mixer_pulse_get_channels; + e_mod_mixer_channels_names_get = (void *)e_mixer_pulse_get_channels_names; + e_mod_mixer_card_name_get = (void *)e_mixer_pulse_get_card_name; + e_mod_mixer_cards_get = (void *)e_mixer_pulse_get_cards; + e_mod_mixer_cards_free = (void *)e_mixer_pulse_free_cards; + e_mod_mixer_card_default_get = (void *)e_mixer_pulse_get_default_card; + _mixer_using_default = EINA_FALSE; +} + diff --git a/src/modules/mixer/e_mod_system.h b/src/modules/mixer/e_mod_mixer.h index eaa763b231..8f15c7f822 100644 --- a/src/modules/mixer/e_mod_system.h +++ b/src/modules/mixer/e_mod_mixer.h @@ -1,12 +1,11 @@ -#ifndef E_MOD_SYSTEM_H -#define E_MOD_SYSTEM_H +#ifndef E_MOD_MIXER_H +#define E_MOD_MIXER_H #include "e.h" +typedef void E_Mixer_App; typedef void E_Mixer_System; typedef void E_Mixer_Channel; -typedef void E_Mixer_App; - typedef struct _E_Mixer_Channel_State { @@ -23,55 +22,95 @@ typedef struct _E_Mixer_Channel_Info E_Mixer_App *app; } E_Mixer_Channel_Info; -Eina_List *e_mixer_alsa_get_cards(void); -void e_mixer_alsa_free_cards(Eina_List *cards); -const char *e_mixer_alsa_get_default_card(void); -const char *e_mixer_alsa_get_card_name(const char *card); +typedef int (*E_Mixer_Volume_Set_Cb)(E_Mixer_System *, E_Mixer_Channel *, int, int); +typedef int (*E_Mixer_Volume_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, int *, int *); +typedef int (*E_Mixer_Mute_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, int *); +typedef int (*E_Mixer_Mute_Set_Cb)(E_Mixer_System *, E_Mixer_Channel *, int); +typedef int (*E_Mixer_State_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, E_Mixer_Channel_State *); +typedef int (*E_Mixer_Capture_Cb)(E_Mixer_System *, E_Mixer_Channel *); +typedef void *(*E_Mixer_Cb)(); -Eina_Bool e_mixer_pulse_init(void); +extern Eina_Bool _mixer_using_default; +extern E_Mixer_Volume_Get_Cb e_mod_mixer_volume_get; +extern E_Mixer_Volume_Set_Cb e_mod_mixer_volume_set; +extern E_Mixer_Mute_Get_Cb e_mod_mixer_mute_get; +extern E_Mixer_Mute_Set_Cb e_mod_mixer_mute_set; +extern E_Mixer_Capture_Cb e_mod_mixer_mutable_get; +extern E_Mixer_State_Get_Cb e_mod_mixer_state_get; +extern E_Mixer_Capture_Cb e_mod_mixer_capture_get; +extern E_Mixer_Cb e_mod_mixer_new; +extern E_Mixer_Cb e_mod_mixer_del; +extern E_Mixer_Cb e_mod_mixer_channel_default_name_get; +extern E_Mixer_Cb e_mod_mixer_channel_get_by_name; +extern E_Mixer_Cb e_mod_mixer_channel_name_get; +extern E_Mixer_Cb e_mod_mixer_channel_del; +extern E_Mixer_Cb e_mod_mixer_channel_free; +extern E_Mixer_Cb e_mod_mixer_channels_free; +extern E_Mixer_Cb e_mod_mixer_channels_get; +extern E_Mixer_Cb e_mod_mixer_channels_names_get; +extern E_Mixer_Cb e_mod_mixer_card_name_get; +extern E_Mixer_Cb e_mod_mixer_cards_get; +extern E_Mixer_Cb e_mod_mixer_cards_free; +extern E_Mixer_Cb e_mod_mixer_card_default_get; + +void e_mixer_default_setup(void); +void e_mixer_pulse_setup(); + +/* ALSA */ +int e_mixer_alsa_callback_set(E_Mixer_System *self, int (*func)(void *data, E_Mixer_System *self), void *data); E_Mixer_System *e_mixer_alsa_new(const char *card); void e_mixer_alsa_del(E_Mixer_System *self); -int e_mixer_alsa_callback_set(E_Mixer_System *self, int (*func)(void *data, E_Mixer_System *self), void *data); +Eina_List *e_mixer_alsa_get_cards(void); +void e_mixer_alsa_free_cards(Eina_List *cards); +const char *e_mixer_alsa_get_default_card(void); +const char *e_mixer_alsa_get_card_name(const char *card); +const char *e_mixer_alsa_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel); Eina_List *e_mixer_alsa_get_channels(E_Mixer_System *self); void e_mixer_alsa_free_channels(Eina_List *channels); Eina_List *e_mixer_alsa_get_channels_names(E_Mixer_System *self); void e_mixer_alsa_free_channels_names(Eina_List *channels_names); + const char *e_mixer_alsa_get_default_channel_name(E_Mixer_System *self); E_Mixer_Channel *e_mixer_alsa_get_channel_by_name(E_Mixer_System *self, const char *name); -const char *e_mixer_alsa_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel); void e_mixer_alsa_channel_del(E_Mixer_Channel *channel); - -int e_mixer_alsa_get_state(E_Mixer_System *self, E_Mixer_Channel *channel, E_Mixer_Channel_State *state); -int e_mixer_alsa_set_state(E_Mixer_System *self, E_Mixer_Channel *channel, const E_Mixer_Channel_State *state); +int e_mixer_alsa_has_capture(E_Mixer_System *self, E_Mixer_Channel *channel); int e_mixer_alsa_get_volume(E_Mixer_System *self, E_Mixer_Channel *channel, int *left, int *right); int e_mixer_alsa_set_volume(E_Mixer_System *self, E_Mixer_Channel *channel, int left, int right); +int e_mixer_alsa_can_mute(E_Mixer_System *self, E_Mixer_Channel *channel); int e_mixer_alsa_get_mute(E_Mixer_System *self, E_Mixer_Channel *channel, int *mute); int e_mixer_alsa_set_mute(E_Mixer_System *self, E_Mixer_Channel *channel, int mute); -int e_mixer_alsa_can_mute(E_Mixer_System *self, E_Mixer_Channel *channel); -int e_mixer_alsa_has_capture(E_Mixer_System *self, E_Mixer_Channel *channel); +int e_mixer_alsa_get_state(E_Mixer_System *self, E_Mixer_Channel *channel, E_Mixer_Channel_State *state); +int e_mixer_alsa_set_state(E_Mixer_System *self, E_Mixer_Channel *channel, const E_Mixer_Channel_State *state); +/* PULSE */ int pulse_init(void); Eina_Bool e_mixer_pulse_ready(void); Eina_Bool e_mixer_pulse_init(void); void e_mixer_pulse_shutdown(void); + E_Mixer_System *e_mixer_pulse_new(const char *name); void e_mixer_pulse_del(E_Mixer_System *self); + Eina_List *e_mixer_pulse_get_cards(void); void e_mixer_pulse_free_cards(Eina_List *cards); const char *e_mixer_pulse_get_default_card(void); const char *e_mixer_pulse_get_card_name(const char *card); +const char *e_mixer_pulse_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel); + Eina_List *e_mixer_pulse_get_channels(E_Mixer_System *self); void e_mixer_pulse_free_channels(Eina_List *channels); Eina_List *e_mixer_pulse_get_channels_names(E_Mixer_System *self); void e_mixer_pulse_free_channels_names(Eina_List *channels_names); + const char *e_mixer_pulse_get_default_channel_name(E_Mixer_System *self); E_Mixer_Channel *e_mixer_pulse_get_channel_by_name(E_Mixer_System *self, const char *name); void e_mixer_pulse_channel_del(E_Mixer_Channel *channel); -const char *e_mixer_pulse_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel); + +int e_mixer_pulse_has_capture(E_Mixer_System *self, E_Mixer_Channel *channel); int e_mixer_pulse_get_volume(E_Mixer_System *self, E_Mixer_Channel *channel, int *left, int *right); int e_mixer_pulse_set_volume(E_Mixer_System *self, E_Mixer_Channel *channel, int left, int right); int e_mixer_pulse_can_mute(E_Mixer_System *self, E_Mixer_Channel *channel); @@ -79,6 +118,19 @@ int e_mixer_pulse_get_mute(E_Mixer_System *self, E_Mixer_Channel *channel, int * int e_mixer_pulse_set_mute(E_Mixer_System *self, E_Mixer_Channel *channel, int mute); int e_mixer_pulse_get_state(E_Mixer_System *self, E_Mixer_Channel *channel, E_Mixer_Channel_State *state); int e_mixer_pulse_set_state(E_Mixer_System *self, E_Mixer_Channel *channel, const E_Mixer_Channel_State *state); -int e_mixer_pulse_has_capture(E_Mixer_System *self, E_Mixer_Channel *channel); +/** + * @addtogroup Optional_Devices + * @{ + * + * @defgroup Module_Mixer Audio Mixer (Volume Control) + * + * Controls the audio volume and mute status for both playback + * (output) and record (input) devices. + * + * Can work with ALSA (http://www.alsa-project.org/) or PulseAudio + * (http://www.pulseaudio.org/). + * + * @} + */ #endif /* E_MOD_SYSTEM_H */ diff --git a/src/modules/mixer/sys_alsa.c b/src/modules/mixer/sys_alsa.c index 387f2485b8..b64d42b604 100644 --- a/src/modules/mixer/sys_alsa.c +++ b/src/modules/mixer/sys_alsa.c @@ -1,4 +1,4 @@ -#include "e_mod_system.h" +#include "e_mod_mixer.h" #include <alsa/asoundlib.h> #include <poll.h> diff --git a/src/modules/mixer/sys_dummy.c b/src/modules/mixer/sys_dummy.c index fffce07f5c..9d5a069a3e 100644 --- a/src/modules/mixer/sys_dummy.c +++ b/src/modules/mixer/sys_dummy.c @@ -1,4 +1,4 @@ -#include "e_mod_system.h" +#include "e_mod_mixer.h" static const char *_name = NULL; diff --git a/src/modules/mixer/sys_pulse.c b/src/modules/mixer/sys_pulse.c index 38af163f51..34fbd808e2 100644 --- a/src/modules/mixer/sys_pulse.c +++ b/src/modules/mixer/sys_pulse.c @@ -1,4 +1,5 @@ #include "e_mod_main.h" +#include "e_mod_mixer.h" #include "Pulse.h" #define PULSE_BUS "org.PulseAudio.Core1" |