
Just to let you know, I have to take a month off of KDE involvement to concentrate on my studies. I tried to do both for a long time now and it didn't work. So I'm resorting to more drastic measures. I'll be back on March 22nd. That's the date of the upcoming exam.
Just a short note of the things I did in KDE lately:
- KInstance -> KComponentData: I made KComponentData an explicitely shared class (instead of pointer based) which is kept alive by KConfig objects, so that dirty KConfig objects that live longer than the main() function don't crash the application. Subsequently porting all the rest of KDE was a full week of mostly boring work.
- Device switching: You can define the preference of audio devices in Phonon's KCM (kcmshell kcm_phonon). The application can override the device; the device change takes effect immediately. If the device is not overridden by the application it will always follow the preference list, so if device B has higher preference than device A, but B is unplugged then the app will fall back to A. As soon as B is plugged in the application automatically switches output to that device and informs you over knotify. The notification popup also gives you a link to revert the device switch. Unplugging B again makes the app fall back to A again. (This needs a fix to libxine. libxine simply aborts in such a situation unless you apply the patch I sent to the xine mailinglist.)
- Support for post plugins in the xine backend: As a first plugin I implemented the VolumeFaderEffect class. The next post plugins I want to write are simple "tee" and "adder" plugins that make it possible to arbitrarily connect producers, paths and outputs.
- I implemented the aspect ratio and scale mode properties of VideoWidget in the xine backend.
- I used the xine xcb video output work of Christoph Pfister to cleanly implement the xine VideoWidget. No X errors or hangs anymore because libxcb is threadsafe.
- The SeekSlider and VolumeSlider widgets look better and should be bug free now. I also used those widgets to reduce the JuK code and make seeking work in JuK again.
- many little fixes to make the xine backend more robust
What else is happening in Phonon?
- Tim Beaulen is doing great work on the GStreamer backend.
- Christophe and Christoph of Kaffeine fame are looking into making Phonon feature complete for Kaffeine usage. Christophe added the code for DVD mouse navigation and video zooming. Christoph just recently added API to show arbitrary QWidgets as overlays on the VideoWidget. Also because of the many discussion with them I have quite a nice list of ideas what to do next (and how).
Thanks a lot guys!
Now I surely forgot many things. But the update is long enough I think. 
Until March 22nd then...