352 - bluefunk-status–nicer-code-abounds
The main news on bluefunk today is that the backend used to actually play the music is no longer mpg123! I took libmuine from my Muine install and combined it with some other code from Muine to make bluefunk use the same player that Muine uses (either Xine or GStreamer, depending on a compile-time option).
This gives several benefits, including: more information about what is playing — though this isn’t not hooked into the UI yet — and songs can now be paused! In addition, bluefunk seems to use less memory with the new backend. I have a feeling that there was a large memory leak due to the use of an external process to play the mp3s; I hope that has also gone away. As a bonus, the code is much cleaner and more understandable.
Muine’s code is GPL, which means that it can be included in bluefunk because bluefunk will be GPL too (if I ever release it!). At the moment, however, I am just using the Muine dll and code verbatim. I’d rather cut down my code use from Muine to the minimum before releasing bluefunk. It seems more worthwhile that way, in that I’ll have to do some work on the code rather than just taking it. Maybe I’ll even find and fix some bugs, who knows?
I’ve also cleaned up the UI somewhat. It shortens long song and folder names so that the treeview used to display them doesn’t get really badly proportioned. Bluefunk also saves somethings across sessions, notably the playlist and window size. Both of these additions make bluefunk much nicer to use. It’s the little things, you know.
Right, back to debugging the backend and playlist code: the change has brought out some bugs that the old way of doing things hid from view!