diff options
Diffstat (limited to 'src/player-controller.vala')
-rw-r--r-- | src/player-controller.vala | 37 |
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) { |