Re: [Rhythmbox-devel] Play queue patch #0



A few bugs I noticed.

After finishing the last song from the queue, the focus does not return to the previous source (the library, for instance). It starts playing a song, from the source, but the interface reports as if nothing is played. After that song ends, rhythmbox crashes.

On 11/8/05, Jonathan Matthew <jonathan kaolin hn org> wrote:

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
_______________________________________________
rhythmbox-devel mailing list
rhythmbox-devel gnome org
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]