aboutsummaryrefslogtreecommitdiff
path: root/src/player-controller.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/player-controller.vala')
-rw-r--r--src/player-controller.vala37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/player-controller.vala b/src/player-controller.vala
index dcb428b..4c09c12 100644
--- a/src/player-controller.vala
+++ b/src/player-controller.vala
@@ -1,12 +1,35 @@
+/*
+This service primarily controls PulseAudio and is driven by the sound indicator menu on the panel.
+Copyright 2010 Canonical Ltd.
+
+Authors:
+ Conor Curran <conor.curran@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 3, as published
+by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
using Dbusmenu;
using Gee;
public class PlayerController : GLib.Object
{
+ private const int METADATA = 2;
private Dbusmenu.Menuitem root_menu;
private string name;
private bool is_active;
private ArrayList<Dbusmenu.Menuitem> custom_items;
+ private MprisController mpris_adaptor;
// TODO: pass in the appropriate position for the menu (to handle multiple players)
public PlayerController(Dbusmenu.Menuitem root, string client_name, bool active)
@@ -16,6 +39,12 @@ public class PlayerController : GLib.Object
this.is_active = active;
this.custom_items = new ArrayList<Dbusmenu.Menuitem>();
self_construct();
+ // Temporary scenario to handle both v1 and v2 of MPRIS.
+ if(this.name == "Vlc"){
+ this.mpris_adaptor = new MprisControllerV2(this.name, this);
+ }else{
+ this.mpris_adaptor = new MprisController(this.name, this);
+ }
}
public void vanish()
@@ -52,7 +81,13 @@ public class PlayerController : GLib.Object
}
return true;
}
-
+
+ public void update_playing_info(HashMap<string, string> data)
+ {
+ debug("PlayerController - update_playing_info");
+ MetadataMenuitem item = (MetadataMenuitem)this.custom_items[METADATA];
+ item.update(data);
+ }
private static string format_client_name(string client_name)
{