aboutsummaryrefslogtreecommitdiff
path: root/src/mpris-controller.vala
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2010-07-20 12:24:43 +0200
committerConor Curran <conor.curran@canonical.com>2010-07-20 12:24:43 +0200
commitd92a4492dcfca6030f8a9b32c111e582ba4e8f96 (patch)
tree0d199a31ceb30762dd642318edd0bf944806e235 /src/mpris-controller.vala
parent4643e1d7c2569e28f50cabe6262b61fff98e595b (diff)
downloadayatana-indicator-sound-d92a4492dcfca6030f8a9b32c111e582ba4e8f96.tar.gz
ayatana-indicator-sound-d92a4492dcfca6030f8a9b32c111e582ba4e8f96.tar.bz2
ayatana-indicator-sound-d92a4492dcfca6030f8a9b32c111e582ba4e8f96.zip
play pause both graphically and functionally now working
Diffstat (limited to 'src/mpris-controller.vala')
-rw-r--r--src/mpris-controller.vala57
1 files changed, 23 insertions, 34 deletions
diff --git a/src/mpris-controller.vala b/src/mpris-controller.vala
index 5e4dce2..8e43131 100644
--- a/src/mpris-controller.vala
+++ b/src/mpris-controller.vala
@@ -29,9 +29,9 @@ public class MprisController : GLib.Object
struct status {
public int32 playback;
- //public int32 shuffle; // Not used just yet
- //public int32 repeat;
- //public int32 endless;
+ public int32 shuffle;
+ public int32 repeat;
+ public int32 endless;
}
public MprisController(PlayerController ctrl, string inter="org.freedesktop.MediaPlayer"){
@@ -46,7 +46,7 @@ public class MprisController : GLib.Object
}
this.mpris_player = this.connection.get_object ("org.mpris.".concat(this.owner.name.down()) , "/Player", this.mpris_interface);
- debug("just attempting to establish an mpris connection to %s, %s, %s", "org.mpris.".concat(this.owner.name.down()) , "/Player", this.mpris_interface);
+ debug("Attempting to establish an mpris connection to %s, %s, %s", "org.mpris.".concat(this.owner.name.down()) , "/Player", this.mpris_interface);
this.mpris_player.TrackChange += onTrackChange;
this.mpris_player.StatusChange += onStatusChange;
@@ -69,38 +69,12 @@ public class MprisController : GLib.Object
}
- private void onTrackChange(dynamic DBus.Object mpris_client, HashTable<string,Value?> ht)
- {
- debug("onTrackChange");
- this.owner.custom_items[PlayerController.widget_order.METADATA].reset(MetadataMenuitem.attributes_format());
- this.owner.custom_items[PlayerController.widget_order.SCRUB].reset(ScrubMenuitem.attributes_format());
- this.owner.custom_items[PlayerController.widget_order.METADATA].update(ht,
- MetadataMenuitem.attributes_format());
- debug("about to update the duration on the scrub bar");
- this.owner.custom_items[PlayerController.widget_order.SCRUB].update(this.mpris_player.GetMetadata(),
- ScrubMenuitem.attributes_format());
- // temporary fix
- ScrubMenuitem scrub = this.owner.custom_items[PlayerController.widget_order.SCRUB] as ScrubMenuitem;
- scrub.update_position(this.mpris_player.PositionGet());
- }
-
public void transport_event(TransportMenuitem.action command)
{
debug("transport_event input = %i", (int)command);
if(command == TransportMenuitem.action.PLAY_PAUSE){
- status st = this.mpris_player.GetStatus();
- bool play_state = st.playback == 1;
- debug("toggle_playback - initial play state %i", (int)play_state);
- bool new_play_state = !play_state;
- debug("toggle_playback - new play state %i", (int)new_play_state);
- if(new_play_state == true){
- debug("about to play");
- this.mpris_player.Play();
- }
- else{
- debug("about to pause");
- this.mpris_player.Pause();
- }
+ debug("transport_event PLAY_PAUSE");
+ this.mpris_player.Pause();
}
else if(command == TransportMenuitem.action.PREVIOUS){
this.mpris_player.Prev();
@@ -133,7 +107,7 @@ public class MprisController : GLib.Object
private void onStatusChange(dynamic DBus.Object mpris_client, status st)
{
- debug("onStatusChange - signal received");
+ debug("onStatusChange - signal received");
status* status = &st;
unowned ValueArray ar = (ValueArray)status;
int play_state = ar.get_nth(0).get_int();
@@ -144,6 +118,21 @@ public class MprisController : GLib.Object
ht.insert("state", v);
this.owner.custom_items[PlayerController.widget_order.TRANSPORT].update(ht, TransportMenuitem.attributes_format());
}
-
+
+ private void onTrackChange(dynamic DBus.Object mpris_client, HashTable<string,Value?> ht)
+ {
+ debug("onTrackChange");
+ this.owner.custom_items[PlayerController.widget_order.METADATA].reset(MetadataMenuitem.attributes_format());
+ this.owner.custom_items[PlayerController.widget_order.SCRUB].reset(ScrubMenuitem.attributes_format());
+ this.owner.custom_items[PlayerController.widget_order.METADATA].update(ht,
+ MetadataMenuitem.attributes_format());
+ debug("about to update the duration on the scrub bar");
+ this.owner.custom_items[PlayerController.widget_order.SCRUB].update(this.mpris_player.GetMetadata(),
+ ScrubMenuitem.attributes_format());
+ // temporary fix
+ ScrubMenuitem scrub = this.owner.custom_items[PlayerController.widget_order.SCRUB] as ScrubMenuitem;
+ scrub.update_position(this.mpris_player.PositionGet());
+ }
+
}