aboutsummaryrefslogtreecommitdiff
path: root/src/service.vala
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2013-10-09 15:01:14 +0200
committerLars Uebernickel <lars.uebernickel@canonical.com>2013-10-09 15:01:14 +0200
commit5aa7613689ff9bb097e655334cc829a7c65e16df (patch)
tree6281e6cf0d3ee8721758b6f2ee2b76ad8b3275dc /src/service.vala
parent7ffdaac644f29bd1ee63a861f42a4ea8c26e52eb (diff)
downloadayatana-indicator-sound-5aa7613689ff9bb097e655334cc829a7c65e16df.tar.gz
ayatana-indicator-sound-5aa7613689ff9bb097e655334cc829a7c65e16df.tar.bz2
ayatana-indicator-sound-5aa7613689ff9bb097e655334cc829a7c65e16df.zip
Allow activating the 'volume' action
It does the same as the 'scroll' action except showing a notification.
Diffstat (limited to 'src/service.vala')
-rw-r--r--src/service.vala11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/service.vala b/src/service.vala
index 1611608..e69bca8 100644
--- a/src/service.vala
+++ b/src/service.vala
@@ -87,8 +87,9 @@ public class IndicatorSound.Service {
uint player_action_update_id;
Notify.Notification notification;
+ const double volume_step_percentage = 0.06;
+
void activate_scroll_action (SimpleAction action, Variant? param) {
- const double volume_step_percentage = 0.06;
int delta = param.get_int32(); /* positive for up, negative for down */
double v = this.volume_control.get_volume () + volume_step_percentage * delta;
@@ -202,12 +203,18 @@ public class IndicatorSound.Service {
}
Action create_volume_action () {
- var volume_action = new SimpleAction.stateful ("volume", null, this.volume_control.get_volume ());
+ var volume_action = new SimpleAction.stateful ("volume", VariantType.INT32, this.volume_control.get_volume ());
volume_action.change_state.connect ( (action, val) => {
volume_control.set_volume (val.get_double ());
});
+ /* activating this action changes the volume by the amount given in the parameter */
+ volume_action.activate.connect ( (action, param) => {
+ double v = volume_control.get_volume () + volume_step_percentage * param.get_int32 ();
+ volume_control.set_volume (v.clamp (0.0, 1.0));
+ });
+
this.volume_control.volume_changed.connect (volume_changed);
this.volume_control.bind_property ("ready", volume_action, "enabled", BindingFlags.SYNC_CREATE);