[Rhythmbox-devel] Play queue patch #0
- From: Jonathan Matthew <jonathan kaolin hn org>
- To: rhythmbox-devel gnome org
- Subject: [Rhythmbox-devel] Play queue patch #0
- Date: Tue, 8 Nov 2005 15:37:01 +1000
So, at long last, here's a giant evil patch:
http://j.kaolin.hn.org/rhythmbox/rb-play-queue.patch.bz2
This is against current CVS and will probably break in some way with
each and every commit. I imagine I'll be updating it frequently.
You don't need to specify any configure script options to enable it,
it's always compiled in.
This implements the queue as both a source and a sidebar, and allows you
to switch between them using a menu item (or Ctrl-K (shortcut picked at
random)). While this adds what amounts to another preference, I don't
think there's much of an alternative in this case.
At the moment you can only add songs to the queue from library- and
playlist-based sources, which excludes iradio and podcasts. I intend to
allow already-downloaded podcasts, but not radio streams in the next
iteration of this patch. I don't think queueing radio streams makes any
sense.
There are still a few weird crashes in there (if you double-click a song
in the queue, for instance) but it should basically work.
According to the current Rhythmbox release theory, this won't be
committed to CVS until after 0.9.2 is released. Until then, please test
it and tell me what I've broken and what could work better. If anyone
wants to review the code, that'd be really helpful too. I should be
able to break it down into three or four distinct more manageable
patches if needed.
In case anyone's wondering why it's so invasive:
- I split the playlist source into a base class and three subclasses
(static playlists, smart playlists, and the play queue). Having
'if (objecttype == X) { stuff } else { otherstuff }' code in
something that's already part of a class hierarchy is crazy.
- I removed a lot of stuff from RBEntryView to turn it into (mostly)
just a widget. Previously it was being used to iterate the query
model and other such nonsense. rb_entry_view_get_random_entry?
Huh?
- I rewrote the play orders to work off the query model rather than the
entry view. Now the play order holds the knowledge of the current
playing entry rather than the entry view. This also simplifies some
logic in RBShellPlayer.
- Same thing for the song info window.
- oh and I also added the actual play queue stuff.
Enjoy.
-jonathan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]