X-Git-Url: http://git.code-monkey.de/?p=euphoria.git;a=blobdiff_plain;f=lib%2Fplaylist.rb;h=9406a5b52ccb7734167a2bf9e8a554aa7a2df58b;hp=e695e972d36571777cf4e7e662e621bc7e819616;hb=HEAD;hpb=37dca508bab3a170cac31ba5dd74896b76040e20 diff --git a/lib/playlist.rb b/lib/playlist.rb index e695e97..9406a5b 100644 --- a/lib/playlist.rb +++ b/lib/playlist.rb @@ -12,7 +12,7 @@ class Playlist < Array @eet = nil @container = nil - @xmms.playlist.entries.notifier { |res| push(*res.value) } + query_contents @xmms.playlist.current_pos.notifier do |res| begin @@ -31,15 +31,18 @@ class Playlist < Array current_item.hilighted = true end + @xmms.broadcast_playlist_loaded. + notifier(&method(:on_playlist_loaded)) + @xmms.broadcast_playlist_changed.notifier do |res| case res.value[:type] - when Xmms::Result::PLAYLIST_CHANGED_ADD + when Xmms::Playlist::ADD self << res.value[:id] - when Xmms::Result::PLAYLIST_CHANGED_REMOVE + when Xmms::Playlist::REMOVE # the daemon sends the position of the song, not the # unique mlib id delete(self[res.value[:position]]) - when Xmms::Result::PLAYLIST_CHANGED_CLEAR + when Xmms::Playlist::CLEAR clear end end @@ -159,6 +162,7 @@ class Playlist < Array @ee = Ecore::Evas::SoftwareX11.new @ee.title = "Euphoria Playlist" @ee.borderless = true + @ee.evas.font_hinting = Evas::Evas::AUTO @ee.on_pre_render { Edje::thaw } @ee.on_post_render { Edje::freeze } @@ -191,4 +195,15 @@ class Playlist < Array @ee.shaped = !@edje.data("shaped").nil? end + + def query_contents + @xmms.playlist.entries.notifier do |res| + push(*res.value) + end + end + + def on_playlist_loaded(res) + clear + query_contents + end end