yoz pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=939ac0b93d580bd6bdd12eb6b29871abd91d5061

commit 939ac0b93d580bd6bdd12eb6b29871abd91d5061
Author: Michael Bouchaud <michael.bouch...@ext.actia.fr>
Date:   Mon Feb 20 00:40:48 2017 +0100

    e_client_volume: add sink_name_get API to e_client_volume
---
 src/bin/e_client_volume.c      | 12 +++++++++++-
 src/bin/e_client_volume.h      |  5 ++++-
 src/modules/mixer/e_mod_main.c | 18 ++++++++++++++----
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_client_volume.c b/src/bin/e_client_volume.c
index 6526b20..a53082d 100644
--- a/src/bin/e_client_volume.c
+++ b/src/bin/e_client_volume.c
@@ -117,7 +117,7 @@ e_client_volume_shutdown(void)
 }
 
 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, void *data)
+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)
 {
    E_Client_Volume_Sink *sink;
 
@@ -126,6 +126,7 @@ e_client_volume_sink_new(E_Client_Volume_Sink_Get func_get, 
E_Client_Volume_Sink
    sink->func_get = func_get;
    sink->func_min_get = func_min_get;
    sink->func_max_get = func_max_get;
+   sink->func_name_get = func_name_get;
    sink->data = data;
 
    return sink;
@@ -179,6 +180,15 @@ e_client_volume_sink_max_get(const E_Client_Volume_Sink 
*sink)
    return 0;
 }
 
+E_API const char *
+e_client_volume_sink_name_get(const E_Client_Volume_Sink *sink)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sink, 0);
+   if (sink->func_name_get)
+     return sink->func_name_get(sink->data);
+   return NULL;
+}
+
 E_API void
 e_client_volume_sink_append(E_Client *ec, E_Client_Volume_Sink *sink)
 {
diff --git a/src/bin/e_client_volume.h b/src/bin/e_client_volume.h
index 3ef0e16..44de594 100644
--- a/src/bin/e_client_volume.h
+++ b/src/bin/e_client_volume.h
@@ -7,6 +7,7 @@ typedef void (*E_Client_Volume_Sink_Get)(int *volume, Eina_Bool 
*mute, void *dat
 typedef void (*E_Client_Volume_Sink_Set)(int volume, Eina_Bool mute, void 
*data);
 typedef int (*E_Client_Volume_Sink_Min_Get)(void *data);
 typedef int (*E_Client_Volume_Sink_Max_Get)(void *data);
+typedef const char *(*E_Client_Volume_Sink_Name_Get)(void *data);
 
 E_API extern int E_EVENT_CLIENT_VOLUME;
 E_API extern int E_EVENT_CLIENT_MUTE;
@@ -18,6 +19,7 @@ struct _E_Client_Volume_Sink
    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;
    Eina_List *clients;
 };
@@ -31,12 +33,13 @@ E_API void         e_client_volume_mute_set(E_Client *ec, 
Eina_Bool mute);
 
 E_API Evas_Object *e_client_volume_object_add(E_Client *ec, Evas *evas);
 
-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, void *data);
+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);
 E_API void         e_client_volume_sink_del(E_Client_Volume_Sink *mixer);
 E_API void         e_client_volume_sink_set(E_Client_Volume_Sink *mixer, int 
volume, Eina_Bool mute);
 E_API void         e_client_volume_sink_get(const E_Client_Volume_Sink *mixer, 
int *volume, Eina_Bool *mute);
 E_API int          e_client_volume_sink_min_get(const E_Client_Volume_Sink 
*mixer);
 E_API int          e_client_volume_sink_max_get(const E_Client_Volume_Sink 
*mixer);
+E_API const char * e_client_volume_sink_name_get(const E_Client_Volume_Sink 
*mixer);
 E_API void         e_client_volume_sink_append(E_Client *ec, 
E_Client_Volume_Sink *mixer);
 E_API void         e_client_volume_sink_remove(E_Client *ec, 
E_Client_Volume_Sink *mixer);
 E_API void         e_client_volume_sink_update(E_Client_Volume_Sink *mixer);
diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index 51c7e1f..5c1880d 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -871,6 +871,15 @@ _sink_input_max_get(void *data EINA_UNUSED)
    return emix_max_volume_get();
 }
 
+static const char *
+_sink_input_name_get(void *data)
+{
+   Emix_Sink_Input *input;
+
+   input = data;
+   return input->name;
+}
+
 static pid_t
 _get_ppid(pid_t pid)
 {
@@ -926,10 +935,11 @@ _sink_input_event(int type, Emix_Sink_Input *input)
                         DBG("Sink found the client %s",
                             e_client_util_name_get(ec));
                         sink = e_client_volume_sink_new(_sink_input_get,
-                                                 _sink_input_set,
-                                                 _sink_input_min_get,
-                                                 _sink_input_max_get,
-                                                 input);
+                                                        _sink_input_set,
+                                                        _sink_input_min_get,
+                                                        _sink_input_max_get,
+                                                        _sink_input_name_get,
+                                                        input);
                         e_client_volume_sink_append(ec, sink);
                         _client_sinks = eina_list_append(_client_sinks, sink);
                         return;

-- 


Reply via email to