aboutsummaryrefslogtreecommitdiff
path: root/src/player-item.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/player-item.vala')
-rw-r--r--src/player-item.vala154
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;
+ }
}