From 6e001f4e0606bce9d3eb070df97d44a7b10081c5 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 21 Jun 2010 19:36:21 +0100 Subject: wip --- src/common-defs.h | 2 +- src/metadata-menu-item.vala | 13 +------------ src/mpris-controller.vala | 13 +++++++------ src/player-controller.vala | 17 ++++++++--------- src/player-item.vala | 32 +++++++++++++++++++++++++++++--- src/transport-menu-item.vala | 8 ++++---- 6 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/common-defs.h b/src/common-defs.h index 1e53e07..c12d9c1 100644 --- a/src/common-defs.h +++ b/src/common-defs.h @@ -33,4 +33,4 @@ with this program. If not, see . #define DBUSMENU_METADATA_MENUITEM_TEXT_ARTIST "x-canonical-metadata-text-artist" #define DBUSMENU_METADATA_MENUITEM_TEXT_TITLE "x-canonical-metadata-text-title" #define DBUSMENU_METADATA_MENUITEM_TEXT_ALBUM "x-canonical-metadata-text-album" -#define DBUSMENU_METADATA_MENUITEM_ARTURL "x-canonical-metadata-image" +#define DBUSMENU_METADATA_MENUITEM_ARTURL "x-canonical-metadata-arturl" diff --git a/src/metadata-menu-item.vala b/src/metadata-menu-item.vala index 5464074..8d626ca 100644 --- a/src/metadata-menu-item.vala +++ b/src/metadata-menu-item.vala @@ -33,19 +33,8 @@ public class MetadataMenuitem : PlayerItem results.set(MENUITEM_TEXT_TITLE, typeof(string)); results.set(MENUITEM_TEXT_ARTIST, typeof(string)); results.set(MENUITEM_TEXT_ALBUM, typeof(string)); - results.set(MENUITEM_TEXT_ARTURL, typeof(string)); + results.set(MENUITEM_ARTURL, typeof(string)); return results; } - - public static HashMap format_updates(HashMap data) - { - HashMap results = new HashMap(); - - results.set(MENUITEM_TEXT_TITLE, (string)data.lookup("title").strip()); - results.set(MENUITEM_TEXT_ARTIST, (string)data.lookup("artist").strip()); - results.set(MENUITEM_TEXT_ALBUM, (string)data.lookup("album").strip(), typeof(string)); - results.set(MENUITEM_TEXT_ARTURL, sanitize_image_path((string)data.lookup("arturl").strip()), typeof(string)); - return results; - } } \ No newline at end of file diff --git a/src/mpris-controller.vala b/src/mpris-controller.vala index 98473ad..c71662a 100644 --- a/src/mpris-controller.vala +++ b/src/mpris-controller.vala @@ -44,17 +44,18 @@ public class MprisController : GLib.Object this.mpris_player = this.connection.get_object ("org.mpris.".concat(name.down()) , "/Player", mpris_interface); this.mpris_player.TrackChange += onTrackChange; this.mpris_player.StatusChange += onStatusChange; - this.controller.update_playing_info(get_track_data()); + //this.controller.update_playing_info(get_track_data()); } - public HashMap get_track_data() - { - return format_metadata(this.mpris_player.GetMetadata()); - } + //public HashMap get_track_data() + //{ + //return format_metadata(this.mpris_player.GetMetadata()); + //} private void onTrackChange(dynamic DBus.Object mpris_client, HashTable ht) { - this.controller.update_playing_info(MetadataMenuitem.format_updates(ht)); + this.controller.custom_items[this.controller.METADATA].update(ht, + MetadataMenuitem.attributes_format()); } /** diff --git a/src/player-controller.vala b/src/player-controller.vala index ef1e130..862bb29 100644 --- a/src/player-controller.vala +++ b/src/player-controller.vala @@ -23,13 +23,13 @@ using Gee; public class PlayerController : GLib.Object { - private const int METADATA = 2; + public const int METADATA = 2; private const int TRANSPORT = 3; private Dbusmenu.Menuitem root_menu; private string name; private bool is_active; - private ArrayList custom_items; + public ArrayList custom_items; private MprisController mpris_adaptor; public PlayerController(Dbusmenu.Menuitem root, string client_name, bool active) @@ -47,7 +47,6 @@ public class PlayerController : GLib.Object else{ this.mpris_adaptor = new MprisController(this.name, this); } - this.custom_items[TRANSPORT].set_adaptor(this.mpris_adaptor); } @@ -81,12 +80,12 @@ public class PlayerController : GLib.Object return true; } - public void update_playing_info(HashMap data) - { - debug("PlayerController - update_playing_info"); - MetadataMenuitem item = this.custom_items[METADATA] as MetadataMenuitem; - item.update(data); - } + //public void update_playing_info(HashMap data) + //{ + // debug("PlayerController - update_playing_info"); + // MetadataMenuitem item = this.custom_items[METADATA] as MetadataMenuitem; + // item.update(data, MetadataMenuitem.attributes_format()); + //} private static string format_client_name(string client_name) { diff --git a/src/player-item.vala b/src/player-item.vala index 10dedc2..ee09074 100644 --- a/src/player-item.vala +++ b/src/player-item.vala @@ -29,11 +29,26 @@ public class PlayerItem : Dbusmenu.Menuitem { } - public void update(HashMap data, Type type) + public void update(HashTable data, HashMap attributes) { debug("PlayerItem::update()"); - HashMap attributes = type.attributes_format(); - foreach(var property in data){ + foreach(var property in attributes){ + //debug("property value = %s", attributes.get(property.key).name()); + GLib.Object obj = GLib.Object.new(attributes.get(property.key)); + debug("bang line"); + Type t = obj.get_type(); + if(t.is_a(typeof(string)) == true){ + debug("obj is a string !!! we can tell -halla fucking lula!"); + } + //string[] input_keys = property.key.split("-"); + //string search_key = input_keys[input_keys.length-1 : input_keys.length][0]; + //debug("key parsed from properties is %s", search_key); + //debug("and the bloody type should be %s", property.value.name()); + //var input_value = data.lookup(search_key) as property.value.name(); + //foreach(var s in input_keys){ + // debug("string = %s", s); + //} + //string[] st = input_keys[input_keys.length-1 : input_keys.length]; //property.value as attributes.get(property.key) //this.property_set(property.key, ); } @@ -44,6 +59,17 @@ public class PlayerItem : Dbusmenu.Menuitem this.mpris_adaptor = adaptor; } + public static HashMap format_updates(HashTable ht) + { + HashMap results = new HashMap(); + //HashMap attrs = attributes_format(); + //results.set(MENUITEM_TEXT_TITLE, (string)data.lookup("title").strip()); + //results.set(MENUITEM_TEXT_ARTIST, (string)data.lookup("artist").strip()); + //results.set(MENUITEM_TEXT_ALBUM, (string)data.lookup("album").strip(), typeof(string)); + //results.set(MENUITEM_TEXT_ARTURL, sanitize_image_path((string)data.lookup("arturl").strip()), typeof(string)); + return results; + } + // Bespoke constructors for player items // Title item public static PlayerItem new_title_item(dynamic string name) diff --git a/src/transport-menu-item.vala b/src/transport-menu-item.vala index 7dc1c7f..bfa81d3 100644 --- a/src/transport-menu-item.vala +++ b/src/transport-menu-item.vala @@ -34,10 +34,10 @@ public class TransportMenuitem : PlayerItem debug("transport on the vala side"); } - public override void update(HashMap data) - { - debug("TransportMenuitem::update()"); - } + //public override void update(HashMap data) + //{ + // debug("TransportMenuitem::update()"); + //} public override void handle_event(string name, GLib.Value input_value, uint timestamp) { -- cgit v1.2.3