GSoC has officially come to a close, and in a very short time I have managed to make a more or less working version of In The Mood in C. On the plus side, it does seem to be more efficient, using less memory, and it gets rid of any possible command-line-parsing errors. Also, I’ve re-done the vector file storage so that it’s in subfolders, so there’s guaranteed to be unique names (basically the complete path for each song is copied over into ./gnome/rhythmbox/inthemood), and I’ve left the .mp3 or .ogg extension to make them easier to locate in the database (might be a little confusing if you ever look at those files, but they are indeed text). On the down side, anyone who tried the python version, you’ll have to re-analyze your database, due to this reorganization of vector files. Sorry!
You can check out the source by running “svn checkout http://rhythmbox-predictive-playback.googlecode.com/svn/branches/c_rewri… inthemood”. Since C plugins have to be built from within the Rhythmbox source code, I’ve created a diff file that can be used to patch the svn version of Rhythmbox (it just modifies configure.ac and plugins/Makefile.am), and from there you can just put the entire “inthemood” folder into rhythmbox/plugins/. Make sure you have all the dependencies described in the original install instructions, and then just run ./autogen.sh —enable-inthemood (along with whatever other flags you usually use) in the rhythmbox top level directory. After that, the usual make && sudo make install should do the trick.
There’s a few bugs that I have yet to iron out, but they didn’t seem important enough to prevent me from sharing this with the world. You can add multiple songs to the “In The Mood” playlist, but only the last one will be used to append new songs, which will only occur while it is playing. Also, if you add songs that haven’t been analyzed, they’ll be added, but ignored when choosing a new song (i.e. you need to play an analyzed song to get a new one added). Basically, the best way to keep it safe is just to pick one song and go from there (deletions should be fine) - for some reason I couldn’t get rhythmbox to remove an entry from the playlist, so I’ll keep working on that.
I’m sad to say that the summer is over, I’ve had a great time working with Philip Van Hoof and the rest of the GNOME community. I don’t really plan on stopping anytime soon - my project has a ton of things I’d like to add/fix, and there are many other things that I have resisted working on due to the need to finish this one up. The next couple weeks will be super busy as I get ready to move across the country - ditch enough stuff so that I can fit my apartment into a Honda Civic, tie up loose ends in Ontario, and figure out where I’m going to sleep in various locations along the way. However, I’ll still be hanging out on irc from time to time (Charbucks is the name), and I’m sure I’ll pop up on Planet GNOME and various mailing lists. Thanks again for a great summer GNOME!