[Rhythmbox-devel] Will work on shuffle/random.



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I plan to work on the shuffle and random algorithms over the next week
or so. I expect to be done by the end of next weekend, but it could take
me over thanksgiving.

In the thread starting with
http://mail.gnome.org/archives/rhythmbox-devel/2003-November/msg00100.html,
I see 4 options for the "right" behavior. Adding linear, these are:

1) Linear
2) Shuffle (re-randomize on repeat)
3) Random (repeat meaningless so disabled, but history can be used.)
~  a) songs have equal probabilities
~  b) songs weighted by log(time since play) (Code at
http://mail.gnome.org/archives/rhythmbox-devel/2003-November/msg00145.html)
~  c) songs weighted by rating (unrated=3)
There may be more, but that's what I'm implementing for now.

Coming from the C++ tradition, I plan to implement these as a class
heirarchy (methods for get_next() and get_previous()). Which one is
instantiated will be up to a GConf option, but I'll leave the UI up to
you guys. ;) I'll probably attach the object to the player but give it a
reference to the entry-view and let it define callbacks.

This architecture should isolate the GConf accesses for this to the
instance picking and should allow us to easily add new random behaviors.
Even if we wind up picking only two of these, having the others around
for a time will help us pick correctly.

You can keep track of what I'm doing by watching
jyasskin@mail.utexas.edu--2003/rhythmbox--shuffle-random--0.7

What do people think?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE/tyOGfjbRRQT0l5URApSeAKChsAYJEIqFd+89wCyVIvxGcLAuGQCcCQO5
XfJ2PYWGwkhnCdnLdpmqDAQ=
=Uzr3
-----END PGP SIGNATURE-----




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