I've been spending a bunch of my free time (as I'm not currently employed, that's a lot of time) working on a full-bore replacement to the player application. The code is event based, though all the data retreival, decoding, and playback are done with threads. It actually doesn't do a lot other than displaying some status messages on the LCD and spitting out some IR codes that it recieves.
There is a lot of work to be done, but most all the low-level architecture is done. If you get a chance, check it out and give me some feedback or code.
You can find the code here :
http://www.reza.net/rio/rrr.html
-Reza