aboutsummaryrefslogtreecommitdiff
path: root/src/mpris-controller.vala
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2010-06-17 16:41:54 +0100
committerConor Curran <conor.curran@canonical.com>2010-06-17 16:41:54 +0100
commit05e82f2c6a8a72aeb3a589b702e5a9f1d68251d9 (patch)
tree1e0de7f106d14e59585926bed28db184f1434572 /src/mpris-controller.vala
parent4125fd9e2eb0de55d04482b3c035aa91fe7d547a (diff)
downloadayatana-indicator-sound-05e82f2c6a8a72aeb3a589b702e5a9f1d68251d9.tar.gz
ayatana-indicator-sound-05e82f2c6a8a72aeb3a589b702e5a9f1d68251d9.tar.bz2
ayatana-indicator-sound-05e82f2c6a8a72aeb3a589b702e5a9f1d68251d9.zip
transport plugged in
Diffstat (limited to 'src/mpris-controller.vala')
-rw-r--r--src/mpris-controller.vala42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/mpris-controller.vala b/src/mpris-controller.vala
index f606b32..7e65594 100644
--- a/src/mpris-controller.vala
+++ b/src/mpris-controller.vala
@@ -17,13 +17,22 @@ PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
using Gee;
+
public class MprisController : GLib.Object
{
private DBus.Connection connection;
- private dynamic DBus.Object mpris_player;
+ public dynamic DBus.Object mpris_player;
private PlayerController controller;
+ struct status {
+ public int32 playback;
+ public int32 shuffle;
+ public int32 repeat;
+ public int32 endless;
+ }
+
public MprisController(string name, PlayerController controller, string mpris_interface="org.freedesktop.MediaPlayer"){
try {
@@ -34,6 +43,7 @@ public class MprisController : GLib.Object
this.controller = controller;
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());
}
@@ -47,6 +57,36 @@ public class MprisController : GLib.Object
this.controller.update_playing_info(format_metadata(ht));
}
+ /**
+ * TRUE => Playing
+ * FALSE => Paused
+ **/
+ public void toggle_playback(bool state)
+ {
+ if(state == true){
+ debug("about to play");
+ this.mpris_player.Play();
+ }
+ else{
+ debug("about to pause");
+ this.mpris_player.Pause();
+ }
+ }
+
+ private void onStatusChange(dynamic DBus.Object mpris_client, status st)
+ {
+ debug("onStatusChange - signal received");
+ //ValueArray a = new ValueArray(4);
+ //Value v = new Value(typeof(int32));
+ //v.set_int(st.playback);
+ //a.append(v);
+ //debug("onStatusChange - play %i", a.get_nth(0).get_int());
+ //int playback = (ValueArray)st.get_nth(0).get_int();
+ //int shuffle = ar.get_nth(1).get_int();
+ //int repeat = ar.get_nth(2).get_int();
+ //int endless = ar.get_nth(3).get_int();
+ }
+
private static HashMap<string, string> format_metadata(HashTable<string,Value?> data)
{
HashMap<string,string> results = new HashMap<string, string>();