diff options
Diffstat (limited to 'src/player-item.vala')
-rw-r--r-- | src/player-item.vala | 154 |
1 files changed, 77 insertions, 77 deletions
diff --git a/src/player-item.vala b/src/player-item.vala index 51471d1..c80a17d 100644 --- a/src/player-item.vala +++ b/src/player-item.vala @@ -22,86 +22,86 @@ using Gee; public class PlayerItem : Dbusmenu.Menuitem { - public PlayerController owner {get; construct;} - public string item_type { get; construct; } - private const int EMPTY = -1; + public PlayerController owner {get; construct;} + public string item_type { get; construct; } + private const int EMPTY = -1; - public PlayerItem(string type) - { - Object(item_type: type); - } - - construct { - this.property_set(MENUITEM_PROP_TYPE, item_type); - } + public PlayerItem(string type) + { + Object(item_type: type); + } + + construct { + this.property_set(MENUITEM_PROP_TYPE, item_type); + } - public void reset(HashSet<string> attrs){ - foreach(string s in attrs){ - debug("attempting to set prop %s to EMPTY", s); - this.property_set_int(s, EMPTY); - } - } - - /** - * update() - * Base update method for playeritems, takes the attributes and the incoming updates - * and attmepts to update the appropriate props on the object. - * Album art is handled separately to deal with remote and local file paths. - */ - public void update(HashTable<string, Value?> data, HashSet<string> attributes) - { - debug("PlayerItem::update()"); - if(data == null){ - debug("PlayerItem::Update -> The hashtable was null - just leave it!"); - return; - } - - foreach(string property in attributes){ - string[] input_keys = property.split("-"); - string search_key = input_keys[input_keys.length-1 : input_keys.length][0]; - debug("search key = %s", search_key); - Value? v = data.lookup(search_key); - - if (v.holds (typeof (string))){ - string update = v.get_string().strip(); - debug("with value : %s", update); - if(property.contains("mpris:artUrl")){ - // We know its a metadata instance because thats the only - // object with the arturl prop - MetadataMenuitem metadata = this as MetadataMenuitem; - metadata.fetch_art(update.strip(), property); - continue; - } - this.property_set(property, update); - } - else if (v.holds (typeof (int))){ - debug("with value : %i", v.get_int()); - this.property_set_int(property, v.get_int()); - } - else if (v.holds (typeof (int64))){ - debug("with value : %i", (int)v.get_int64()); - this.property_set_int(property, (int)v.get_int64()); - } - else if(v.holds (typeof (bool))){ - debug("with value : %s", v.get_boolean().to_string()); - this.property_set_bool(property, v.get_boolean()); - } - } + public void reset(HashSet<string> attrs){ + foreach(string s in attrs){ + debug("attempting to set prop %s to EMPTY", s); + this.property_set_int(s, EMPTY); + } + } + + /** + * update() + * Base update method for playeritems, takes the attributes and the incoming updates + * and attmepts to update the appropriate props on the object. + * Album art is handled separately to deal with remote and local file paths. + */ + public void update(HashTable<string, Variant?> data, HashSet<string> attributes) + { + debug("PlayerItem::update()"); + if(data == null){ + debug("PlayerItem::Update -> The hashtable was null - just leave it!"); + return; + } + + foreach(string property in attributes){ + string[] input_keys = property.split("-"); + string search_key = input_keys[input_keys.length-1 : input_keys.length][0]; + debug("search key = %s", search_key); + Variant? v = data.lookup(search_key); + + if (v.is_of_type ( VariantType.STRING )){ + string update = v.get_string().strip(); + debug("with value : %s", update); + if(property.contains("mpris:artUrl")){ + // We know its a metadata instance because thats the only + // object with the arturl prop + MetadataMenuitem metadata = this as MetadataMenuitem; + metadata.fetch_art ( update, property ); + continue; + } + this.property_set(property, update); + } + else if (v.is_of_type (VariantType.INT32 )){ + debug("with value : %i", v.get_int32()); + this.property_set_int(property, v.get_int32()); + } + else if (v.is_of_type (VariantType.INT64 )){ + debug("with value : %i", (int)v.get_int64()); + this.property_set_int(property, (int)v.get_int64()); + } + else if(v.is_of_type ( VariantType.BOOLEAN )){ + debug("with value : %s", v.get_boolean().to_string()); + this.property_set_bool(property, v.get_boolean()); + } + } this.property_set_bool(MENUITEM_PROP_VISIBLE, populated(attributes)); - } - - public bool populated(HashSet<string> attrs) - { - foreach(string prop in attrs){ - debug("populated ? - prop: %s", prop); - int value_int = property_get_int(prop); - if(property_get_int(prop) != EMPTY){ - debug("populated - prop %s and value %i", prop, value_int); - return true; - } - } - return false; - } + } + + public bool populated(HashSet<string> attrs) + { + foreach(string prop in attrs){ + debug("populated ? - prop: %s", prop); + int value_int = property_get_int(prop); + if(property_get_int(prop) != EMPTY){ + debug("populated - prop %s and value %i", prop, value_int); + return true; + } + } + return false; + } } |