aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2011-02-09 10:56:49 +0000
committerConor Curran <conor.curran@canonical.com>2011-02-09 10:56:49 +0000
commit17f01f35c7b474f4286dd55b129fcf72075760dc (patch)
treef2db8f02e93be83e26fbd54db79935e93bec019d
parent800023f7ab5854c19bdaf426ba86d24feea014ec (diff)
downloadayatana-indicator-sound-17f01f35c7b474f4286dd55b129fcf72075760dc.tar.gz
ayatana-indicator-sound-17f01f35c7b474f4286dd55b129fcf72075760dc.tar.bz2
ayatana-indicator-sound-17f01f35c7b474f4286dd55b129fcf72075760dc.zip
fixed racey active playlist property and commented some debugs
-rw-r--r--src/mpris2-controller.vala19
-rw-r--r--src/player-item.vala16
-rw-r--r--src/transport-menu-item.vala6
3 files changed, 22 insertions, 19 deletions
diff --git a/src/mpris2-controller.vala b/src/mpris2-controller.vala
index 444bdf6..3e06487 100644
--- a/src/mpris2-controller.vala
+++ b/src/mpris2-controller.vala
@@ -64,7 +64,7 @@ public class Mpris2Controller : GLib.Object
HashTable<string, Variant?> changed_properties,
string[] invalid )
{
- debug("properties-changed for interface %s and owner %s", interface_source, this.owner.dbus_name);
+ //debug("properties-changed for interface %s and owner %s", interface_source, this.owner.dbus_name);
if ( changed_properties == null ||
interface_source.has_prefix ( MPRIS_PREFIX ) == false ){
warning("Property-changed hash is null or this is an interface that doesn't concerns us");
@@ -92,7 +92,9 @@ public class Mpris2Controller : GLib.Object
}
Variant? playlist_v = changed_properties.lookup("ActivePlaylist");
if ( playlist_v != null && this.owner.use_playlists == true ){
- this.fetch_active_playlist();
+ // Once again GDBus race condition, the property_changed signal is sent
+ // before the value is set on the respective property.
+ Timeout.add (300, this.fetch_active_playlist);
}
Variant? playlist_count_v = changed_properties.lookup("PlaylistCount");
if ( playlist_count_v != null && this.owner.use_playlists == true ){
@@ -112,7 +114,7 @@ public class Mpris2Controller : GLib.Object
}
private bool ensure_correct_playback_status(){
- debug("TEST playback status = %s", this.player.PlaybackStatus);
+ //debug("TEST playback status = %s", this.player.PlaybackStatus);
TransportMenuitem.state p = (TransportMenuitem.state)this.determine_play_state(this.player.PlaybackStatus);
(this.owner.custom_items[PlayerController.widget_order.TRANSPORT] as TransportMenuitem).change_play_state(p);
return false;
@@ -174,7 +176,7 @@ public class Mpris2Controller : GLib.Object
public void transport_update(TransportMenuitem.action command)
{
- debug("transport_event input = %i", (int)command);
+ //debug("transport_event input = %i", (int)command);
if(command == TransportMenuitem.action.PLAY_PAUSE){
this.player.PlayPause.begin();
}
@@ -219,7 +221,7 @@ public class Mpris2Controller : GLib.Object
}
if( current_playlists != null ){
- debug( "Size of the playlist array = %i", current_playlists.length );
+ //debug( "Size of the playlist array = %i", current_playlists.length );
PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem;
playlists_item.update(current_playlists);
}
@@ -229,13 +231,14 @@ public class Mpris2Controller : GLib.Object
}
}
- private void fetch_active_playlist()
+ private bool fetch_active_playlist()
{
if (this.playlists.ActivePlaylist.valid == false){
- debug("We don't have an active playlist");
- }
+ debug(" We don't have an active playlist");
+ }
PlaylistsMenuitem playlists_item = this.owner.custom_items[PlayerController.widget_order.PLAYLISTS] as PlaylistsMenuitem;
playlists_item.update_active_playlist ( this.playlists.ActivePlaylist.details );
+ return false;
}
public void activate_playlist (ObjectPath path)
diff --git a/src/player-item.vala b/src/player-item.vala
index f883a1e..e146d4a 100644
--- a/src/player-item.vala
+++ b/src/player-item.vala
@@ -52,19 +52,19 @@ public class PlayerItem : Dbusmenu.Menuitem
{
debug("PlayerItem::update()");
if(data == null){
- debug("PlayerItem::Update -> The hashtable was null - just leave it!");
+ warning("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);
+ //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);
+ //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
@@ -75,15 +75,15 @@ public class PlayerItem : Dbusmenu.Menuitem
this.property_set(property, update);
}
else if (v.is_of_type (VariantType.INT32 )){
- debug("with value : %i", v.get_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());
+ //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());
+ //debug("with value : %s", v.get_boolean().to_string());
this.property_set_bool(property, v.get_boolean());
}
}
@@ -93,10 +93,10 @@ public class PlayerItem : Dbusmenu.Menuitem
public bool populated(HashSet<string> attrs)
{
foreach(string prop in attrs){
- debug("populated ? - prop: %s", prop);
+ //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);
+ //debug("populated - prop %s and value %i", prop, value_int);
return true;
}
}
diff --git a/src/transport-menu-item.vala b/src/transport-menu-item.vala
index b8f55b5..b0009d9 100644
--- a/src/transport-menu-item.vala
+++ b/src/transport-menu-item.vala
@@ -42,8 +42,8 @@ public class TransportMenuitem : PlayerItem
public void change_play_state(state update)
{
- debug("UPDATING THE TRANSPORT DBUSMENUITEM PLAY STATE WITH VALUE %i",
- (int)update);
+ //debug("UPDATING THE TRANSPORT DBUSMENUITEM PLAY STATE WITH VALUE %i",
+ // (int)update);
int temp = (int)update;
this.property_set_int(MENUITEM_PLAY_STATE, temp);
}
@@ -60,7 +60,7 @@ public class TransportMenuitem : PlayerItem
}
int32 input = v.get_int32();
- debug("transport menu item -> handle_event with value %s", input.to_string());
+ //debug("transport menu item -> handle_event with value %s", input.to_string());
//debug("transport owner name = %s", this.owner.app_info.get_name());
this.owner.mpris_bridge.transport_update((action)input);
}