1 #ifndef E_CLIENT_VOLUME_H_ 2 #define E_CLIENT_VOLUME_H_ 3 4 typedef struct _E_Client_Volume_Sink E_Client_Volume_Sink; 5 typedef struct _E_Event_Client_Volume_Sink E_Event_Client_Volume_Sink; 6 7 typedef void (*E_Client_Volume_Sink_Get)(int *volume, Eina_Bool *mute, void *data); 8 typedef void (*E_Client_Volume_Sink_Set)(int volume, Eina_Bool mute, void *data); 9 typedef int (*E_Client_Volume_Sink_Min_Get)(void *data); 10 typedef int (*E_Client_Volume_Sink_Max_Get)(void *data); 11 typedef const char *(*E_Client_Volume_Sink_Name_Get)(void *data); 12 13 E_API extern int E_EVENT_CLIENT_VOLUME; 14 E_API extern int E_EVENT_CLIENT_MUTE; 15 E_API extern int E_EVENT_CLIENT_UNMUTE; 16 E_API extern int E_EVENT_CLIENT_VOLUME_SINK_ADD; 17 E_API extern int E_EVENT_CLIENT_VOLUME_SINK_DEL; 18 E_API extern int E_EVENT_CLIENT_VOLUME_SINK_CHANGED; 19 20 struct _E_Client_Volume_Sink 21 { 22 E_Client_Volume_Sink_Get func_get; 23 E_Client_Volume_Sink_Set func_set; 24 E_Client_Volume_Sink_Min_Get func_min_get; 25 E_Client_Volume_Sink_Max_Get func_max_get; 26 E_Client_Volume_Sink_Name_Get func_name_get; 27 void *data; 28 Eina_List *clients; 29 }; 30 31 struct _E_Event_Client_Volume_Sink 32 { 33 E_Client *ec; 34 E_Client_Volume_Sink *sink; 35 }; 36 37 38 EINTERN int e_client_volume_init(void); 39 EINTERN void e_client_volume_shutdown(void); 40 41 E_API void e_client_volume_set(E_Client *ec, int volume); 42 E_API void e_client_volume_mute_set(E_Client *ec, Eina_Bool mute); 43 44 E_API Evas_Object *e_client_volume_object_add(E_Client *ec, Evas *evas); 45 46 E_API E_Client_Volume_Sink *e_client_volume_sink_new(E_Client_Volume_Sink_Get func_get, E_Client_Volume_Sink_Set func_set, E_Client_Volume_Sink_Min_Get func_min_get, E_Client_Volume_Sink_Max_Get func_max_get, E_Client_Volume_Sink_Name_Get func_name_get, void *data); 47 E_API void e_client_volume_sink_del(E_Client_Volume_Sink *mixer); 48 E_API void e_client_volume_sink_set(E_Client_Volume_Sink *mixer, int volume, Eina_Bool mute); 49 E_API void e_client_volume_sink_get(const E_Client_Volume_Sink *mixer, int *volume, Eina_Bool *mute); 50 E_API int e_client_volume_sink_min_get(const E_Client_Volume_Sink *mixer); 51 E_API int e_client_volume_sink_max_get(const E_Client_Volume_Sink *mixer); 52 E_API const char * e_client_volume_sink_name_get(const E_Client_Volume_Sink *mixer); 53 E_API void e_client_volume_sink_append(E_Client *ec, E_Client_Volume_Sink *mixer); 54 E_API void e_client_volume_sink_remove(E_Client *ec, E_Client_Volume_Sink *mixer); 55 E_API void e_client_volume_sink_update(E_Client_Volume_Sink *mixer); 56 57 E_API void e_client_volume_display_set(E_Client *ec, int volume, Eina_Bool mute); 58 E_API void e_client_volume_object_emit(E_Client *ec, const char *sig, const char *src); 59 60 #endif 61