aboutsummaryrefslogtreecommitdiff
path: root/src/service.vala
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2013-04-03 19:07:14 -0400
committerLars Uebernickel <lars.uebernickel@canonical.com>2013-04-03 19:07:14 -0400
commitb5d24eeed9528525861d7a7c185327a5e19c7bb7 (patch)
tree002093cfcdf4e246bd7e736317d3a9a5ccadaf91 /src/service.vala
parent1419ef39b81be9d8a42b915ad9f56e81ab4eb03c (diff)
downloadayatana-indicator-sound-b5d24eeed9528525861d7a7c185327a5e19c7bb7.tar.gz
ayatana-indicator-sound-b5d24eeed9528525861d7a7c185327a5e19c7bb7.tar.bz2
ayatana-indicator-sound-b5d24eeed9528525861d7a7c185327a5e19c7bb7.zip
Sync list of media players with gsettings
Diffstat (limited to 'src/service.vala')
-rw-r--r--src/service.vala25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/service.vala b/src/service.vala
index 4ea4a95..8f5280e 100644
--- a/src/service.vala
+++ b/src/service.vala
@@ -1,10 +1,24 @@
public class IndicatorSound.Service {
public Service () {
+ this.settings = new Settings ("com.canonical.indicator.sound");
+
this.volume_control = new VolumeControl ();
this.players = new MediaPlayerList ();
- this.players.player_added.connect (player_added);
+ this.players.player_added.connect (this.player_added);
+
+ this.actions = new SimpleActionGroup ();
+ this.actions.add_entries (action_entries, this);
+ this.actions.add_action (this.create_mute_action ());
+ this.actions.add_action (this.create_volume_action ());
+
+ this.menu = create_base_menu ();
+
+ this.players.sync (settings.get_strv ("preferred-media-players"));
+ this.settings.changed["preferred-media-players"].connect ( () => {
+ this.players.sync (settings.get_strv ("preferred-media-players"));
+ });
}
public int run () {
@@ -30,6 +44,7 @@ public class IndicatorSound.Service {
MainLoop loop;
SimpleActionGroup actions;
Menu menu;
+ Settings settings;
VolumeControl volume_control;
MediaPlayerList players;
uint player_action_update_id;
@@ -97,14 +112,6 @@ public class IndicatorSound.Service {
}
void bus_acquired (DBusConnection connection, string name) {
- this.actions = new SimpleActionGroup ();
- this.actions.add_entries (action_entries, this);
-
- this.actions.add_action (this.create_mute_action ());
- this.actions.add_action (this.create_volume_action ());
-
- this.menu = create_base_menu ();
-
try {
connection.export_action_group ("/com/canonical/indicator/sound", this.actions);
connection.export_menu_model ("/com/canonical/indicator/sound/desktop", this.menu);