From 9f030ed47653f96bf88a6f7b746555b2581701cf Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Wed, 3 Apr 2013 22:20:18 -0400 Subject: Make MediaPlayerList iteratable instead of providing the "players" property --- src/media-player-list.vala | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/media-player-list.vala b/src/media-player-list.vala index 73f21ce..893ec64 100644 --- a/src/media-player-list.vala +++ b/src/media-player-list.vala @@ -31,10 +31,26 @@ public class MediaPlayerList { this.mpris_watcher.client_disappeared.connect (this.player_disappeared); } - public List players { - owned get { - return this._players.get_values (); + /* only valid while the list is not changed */ + public class Iterator { + HashTableIter iter; + + public Iterator (MediaPlayerList list) { + this.iter = HashTableIter (list._players); } + + public MediaPlayer? next_value () { + MediaPlayer? player; + + if (this.iter.next (null, out player)) + return player; + else + return null; + } + } + + public Iterator iterator () { + return new Iterator (this); } /** -- cgit v1.2.3