diff options
author | Conor Curran <conor.curran@canonical.com> | 2010-06-17 16:41:54 +0100 |
---|---|---|
committer | Conor Curran <conor.curran@canonical.com> | 2010-06-17 16:41:54 +0100 |
commit | 05e82f2c6a8a72aeb3a589b702e5a9f1d68251d9 (patch) | |
tree | 1e0de7f106d14e59585926bed28db184f1434572 /src/mpris-controller.vala | |
parent | 4125fd9e2eb0de55d04482b3c035aa91fe7d547a (diff) | |
download | ayatana-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.vala | 42 |
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>(); |