raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=92d33f8ca276d1ced74dbf8c235cd6959b72d457

commit 92d33f8ca276d1ced74dbf8c235cd6959b72d457
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Jun 7 16:18:32 2021 +0100

    mixer - add actions for vol+- mute of mic/input/source device
---
 src/modules/mixer/backend.c | 81 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 69 insertions(+), 12 deletions(-)

diff --git a/src/modules/mixer/backend.c b/src/modules/mixer/backend.c
index b3c6453e7..7215f673c 100644
--- a/src/modules/mixer/backend.c
+++ b/src/modules/mixer/backend.c
@@ -33,6 +33,9 @@ static void _volume_mute_cb(E_Object *obj, const char 
*params);
 static void _volume_increase_app_cb(E_Object *obj, const char *params);
 static void _volume_decrease_app_cb(E_Object *obj, const char *params);
 static void _volume_mute_app_cb(E_Object *obj, const char *params);
+static void _volume_increase_source_cb(E_Object *obj, const char *params);
+static void _volume_decrease_source_cb(E_Object *obj, const char *params);
+static void _volume_mute_source_cb(E_Object *obj, const char *params);
 static void _actions_register(void);
 static void _actions_unregister(void);
 static void _sink_event(int type, void *info);
@@ -92,6 +95,9 @@ static E_Action *_action_mute = NULL;
 static E_Action *_action_incr_app = NULL;
 static E_Action *_action_decr_app = NULL;
 static E_Action *_action_mute_app = NULL;
+static E_Action *_action_incr_source = NULL;
+static E_Action *_action_decr_source = NULL;
+static E_Action *_action_mute_source = NULL;
 
 static void
 _notify_cb(void *data EINA_UNUSED, unsigned int id)
@@ -179,6 +185,13 @@ _volume_decrease_cb(E_Object *obj EINA_UNUSED, const char 
*params EINA_UNUSED)
    _volume_adjust(-VOLUME_STEP);
 }
 
+static void
+_volume_mute_cb(E_Object *obj EINA_UNUSED, const char *params EINA_UNUSED)
+{
+   EINA_SAFETY_ON_NULL_RETURN(_sink_default);
+   backend_mute_set(!_sink_default->mute);
+}
+
 static void
 _volume_source_adjust(int step)
 {
@@ -214,10 +227,22 @@ _volume_source_adjust(int step)
 }
 
 static void
-_volume_mute_cb(E_Object *obj EINA_UNUSED, const char *params EINA_UNUSED)
+_volume_increase_source_cb(E_Object *obj EINA_UNUSED, const char *params 
EINA_UNUSED)
 {
-   EINA_SAFETY_ON_NULL_RETURN(_sink_default);
-   backend_mute_set(!_sink_default->mute);
+   _volume_source_adjust(VOLUME_STEP);
+}
+
+static void
+_volume_decrease_source_cb(E_Object *obj EINA_UNUSED, const char *params 
EINA_UNUSED)
+{
+   _volume_source_adjust(-VOLUME_STEP);
+}
+
+static void
+_volume_mute_source_cb(E_Object *obj EINA_UNUSED, const char *params 
EINA_UNUSED)
+{
+   EINA_SAFETY_ON_NULL_RETURN(_source_default);
+   backend_source_mute_set(!_source_default->mute);
 }
 
 static void
@@ -266,7 +291,6 @@ _actions_register(void)
         e_action_predef_name_set("Mixer", _("Increase Volume"),
                                  "volume_increase", NULL, NULL, 0);
      }
-
    _action_decr = e_action_add("volume_decrease");
    if (_action_decr)
      {
@@ -274,13 +298,12 @@ _actions_register(void)
         e_action_predef_name_set("Mixer", _("Decrease Volume"),
                                  "volume_decrease", NULL, NULL, 0);
      }
-
    _action_mute = e_action_add("volume_mute");
    if (_action_mute)
      {
         _action_mute->func.go = _volume_mute_cb;
-        e_action_predef_name_set("Mixer", _("Mute volume"), "volume_mute",
-                                 NULL, NULL, 0);
+        e_action_predef_name_set("Mixer", _("Mute volume"),
+                                 "volume_mute", NULL, NULL, 0);
      }
    _action_incr_app = e_action_add("volume_increase_app");
    if (_action_incr_app)
@@ -306,6 +329,27 @@ _actions_register(void)
                                  _("Mute Volume of Focused Application"),
                                  "volume_mute_app", NULL, NULL, 0);
      }
+   _action_incr_source = e_action_add("volume_increase_mic");
+   if (_action_incr_source)
+     {
+        _action_incr_source->func.go = _volume_increase_source_cb;
+        e_action_predef_name_set("Mixer", _("Increase Mic Volume"),
+                                 "volume_increase_mic", NULL, NULL, 0);
+     }
+   _action_decr_source = e_action_add("volume_decrease_mic");
+   if (_action_decr_source)
+     {
+        _action_decr_source->func.go = _volume_decrease_source_cb;
+        e_action_predef_name_set("Mixer", _("Decrease Mic Volume"),
+                                 "volume_decrease_mic", NULL, NULL, 0);
+     }
+   _action_mute_source = e_action_add("volume_mute_mic");
+   if (_action_mute_source)
+     {
+        _action_mute_source->func.go = _volume_mute_source_cb;
+        e_action_predef_name_set("Mixer", _("Mute Mic volume"),
+                                 "volume_mute_mic", NULL, NULL, 0);
+     }
 
    e_comp_canvas_keys_ungrab();
    e_comp_canvas_keys_grab();
@@ -320,21 +364,18 @@ _actions_unregister(void)
         e_action_del("volume_increase");
         _action_incr = NULL;
      }
-
    if (_action_decr)
      {
         e_action_predef_name_del("Mixer", _("Decrease Volume"));
         e_action_del("volume_decrease");
         _action_decr = NULL;
      }
-
    if (_action_mute)
      {
         e_action_predef_name_del("Mixer", _("Mute Volume"));
         e_action_del("volume_mute");
         _action_mute = NULL;
      }
-
    if (_action_incr_app)
      {
         e_action_predef_name_del("Mixer",
@@ -342,7 +383,6 @@ _actions_unregister(void)
         e_action_del("volume_increase_app");
         _action_incr_app = NULL;
      }
-
    if (_action_decr_app)
      {
         e_action_predef_name_del("Mixer",
@@ -350,7 +390,6 @@ _actions_unregister(void)
         e_action_del("volume_decrease_app");
         _action_decr_app = NULL;
      }
-
    if (_action_mute_app)
      {
         e_action_predef_name_del("Mixer",
@@ -358,6 +397,24 @@ _actions_unregister(void)
         e_action_del("volume_mute_app");
         _action_mute_app = NULL;
      }
+   if (_action_incr_source)
+     {
+        e_action_predef_name_del("Mixer", _("Increase Mic Volume"));
+        e_action_del("volume_increase_mic");
+        _action_incr_source = NULL;
+     }
+   if (_action_decr_source)
+     {
+        e_action_predef_name_del("Mixer", _("Decrease Mic Volume"));
+        e_action_del("volume_decrease_mic");
+        _action_decr_source = NULL;
+     }
+   if (_action_mute_source)
+     {
+        e_action_predef_name_del("Mixer", _("Mute Mic Volume"));
+        e_action_del("volume_mute_mic");
+        _action_mute_source = NULL;
+     }
 
    e_comp_canvas_keys_ungrab();
    e_comp_canvas_keys_grab();

-- 


Reply via email to