aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2010-06-21 11:54:28 +0100
committerConor Curran <conor.curran@canonical.com>2010-06-21 11:54:28 +0100
commit4f84a27c35c47d5833547a4727016514ef98f2b0 (patch)
treeba202e0c545b90e9c849bd5529bc19f671c9acb3
parent869af4c3707c109b725b05bba70da2d8816051c4 (diff)
downloadayatana-indicator-sound-4f84a27c35c47d5833547a4727016514ef98f2b0.tar.gz
ayatana-indicator-sound-4f84a27c35c47d5833547a4727016514ef98f2b0.tar.bz2
ayatana-indicator-sound-4f84a27c35c47d5833547a4727016514ef98f2b0.zip
player item src
-rw-r--r--src/player-item.vala65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/player-item.vala b/src/player-item.vala
new file mode 100644
index 0000000..a0ea25a
--- /dev/null
+++ b/src/player-item.vala
@@ -0,0 +1,65 @@
+/*
+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 PlayerItem : Dbusmenu.Menuitem
+{
+ public MprisController mpris_adaptor;
+
+ public PlayerItem()
+ {
+ }
+
+ public virtual void update(HashMap<string, Value?> data)
+ {
+ debug("PlayerItem::update()");
+ foreach(var key in this.attributes().keys){
+ this.attributes.get(key);
+ }
+ }
+
+ public void set_adaptor(MprisController adaptor)
+ {
+ this.mpris_adaptor = adaptor;
+ }
+
+ // Bespoke constructors for player items
+ // Title item
+ public static PlayerItem new_title_item(dynamic string name)
+ {
+ PlayerItem item = new PlayerItem();
+ item.property_set(MENUITEM_PROP_LABEL, name);
+ item.property_set(MENUITEM_PROP_ICON_NAME, "applications-multimedia");
+ return item;
+ }
+
+ // Separator item
+ public static PlayerItem new_separator_item()
+ {
+ PlayerItem separator = new PlayerItem();
+ separator.property_set(MENUITEM_PROP_TYPE, CLIENT_TYPES_SEPARATOR);
+ return separator;
+ }
+
+
+}
+