5 #include "e_mod_system.h"
8 #define MOD_CONFIG_FILE_EPOCH 0x0000
9 #define MOD_CONFIG_FILE_GENERATION 0x0003
10 #define MOD_CONFIG_FILE_VERSION \
11 ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
13 typedef struct E_Mixer_Gadget_Config
17 int keybindings_popup;
19 const char *channel_name;
21 E_Config_Dialog *dialog;
22 struct E_Mixer_Instance *instance;
23 } E_Mixer_Gadget_Config;
25 typedef struct E_Mixer_Module_Config
28 const char *default_gc_id;
30 int desktop_notification;
31 } E_Mixer_Module_Config;
33 typedef struct E_Mixer_Instance
36 E_Gadcon_Popup *popup;
37 Ecore_Timer *popup_timer;
52 Ecore_Event_Handler *mouse_up;
53 Ecore_Event_Handler *key_down;
58 E_Mixer_Channel *channel;
59 E_Mixer_Channel_State mixer_state;
60 E_Mixer_Gadget_Config *conf;
63 typedef struct E_Mixer_Module_Context
65 E_Config_DD *module_conf_edd;
66 E_Config_DD *gadget_conf_edd;
67 E_Mixer_Module_Config *conf;
68 E_Config_Dialog *conf_dialog;
69 E_Mixer_Instance *default_instance;
71 E_Dialog *mixer_dialog;
72 struct st_mixer_actions
78 int desktop_notification;
79 } E_Mixer_Module_Context;
81 typedef int (*E_Mixer_Volume_Set_Cb)(E_Mixer_System *, E_Mixer_Channel *, int, int);
82 typedef int (*E_Mixer_Volume_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, int *, int *);
83 typedef int (*E_Mixer_Mute_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, int *);
84 typedef int (*E_Mixer_Mute_Set_Cb)(E_Mixer_System *, E_Mixer_Channel *, int);
85 typedef int (*E_Mixer_State_Get_Cb)(E_Mixer_System *, E_Mixer_Channel *, E_Mixer_Channel_State *);
86 typedef int (*E_Mixer_Capture_Cb)(E_Mixer_System *, E_Mixer_Channel *);
87 typedef void *(*E_Mixer_Cb)();
89 EAPI extern E_Module_Api e_modapi;
90 EAPI void *e_modapi_init(E_Module *m);
91 EAPI int e_modapi_shutdown(E_Module *m);
92 EAPI int e_modapi_save(E_Module *m);
94 E_Config_Dialog *e_mixer_config_module_dialog_new(E_Container *con, E_Mixer_Module_Context *ctxt);
95 E_Config_Dialog *e_mixer_config_dialog_new(E_Container *con, E_Mixer_Gadget_Config *conf);
96 E_Dialog *e_mixer_app_dialog_new(E_Container *con, void (*func)(E_Dialog *dialog, void *data), void *data);
97 int e_mixer_app_dialog_select(E_Dialog *dialog, const char *card_name, const char *channel_name);
99 int e_mixer_update(E_Mixer_Instance *inst);
100 void e_mixer_default_setup(void);
101 void e_mixer_pulse_setup(void);
102 const char *e_mixer_theme_path(void);
104 void e_mod_mixer_pulse_ready(Eina_Bool);
105 void e_mod_mixer_pulse_update(void);
107 extern Eina_Bool _mixer_using_default;
108 extern E_Mixer_Volume_Get_Cb e_mod_mixer_volume_get;
109 extern E_Mixer_Volume_Set_Cb e_mod_mixer_volume_set;
110 extern E_Mixer_Mute_Get_Cb e_mod_mixer_mute_get;
111 extern E_Mixer_Mute_Set_Cb e_mod_mixer_mute_set;
112 extern E_Mixer_Capture_Cb e_mod_mixer_mutable_get;
113 extern E_Mixer_State_Get_Cb e_mod_mixer_state_get;
114 extern E_Mixer_Capture_Cb e_mod_mixer_capture_get;
115 extern E_Mixer_Cb e_mod_mixer_new;
116 extern E_Mixer_Cb e_mod_mixer_del;
117 extern E_Mixer_Cb e_mod_mixer_channel_default_name_get;
118 extern E_Mixer_Cb e_mod_mixer_channel_get_by_name;
119 extern E_Mixer_Cb e_mod_mixer_channel_name_get;
120 extern E_Mixer_Cb e_mod_mixer_channel_del;
121 extern E_Mixer_Cb e_mod_mixer_channel_free;
122 extern E_Mixer_Cb e_mod_mixer_channels_free;
123 extern E_Mixer_Cb e_mod_mixer_channels_get;
124 extern E_Mixer_Cb e_mod_mixer_channels_names_get;
125 extern E_Mixer_Cb e_mod_mixer_card_name_get;
126 extern E_Mixer_Cb e_mod_mixer_cards_get;
127 extern E_Mixer_Cb e_mod_mixer_cards_free;
128 extern E_Mixer_Cb e_mod_mixer_card_default_get;