Bug Fixes in Multimedia
Remove runtime backend switching
This was causing super horrible issues as it gets somewhat ugly when
phonon does not destruct the backend objects completely.
In the past this caused various problems (e.g. in gst callbacks to
objects that were not existing anymore) as well as recreatable
crashes on switching itself, not just of the KCM but *all*
currently running Phonon applications.
Generally speaking it required the backends to implement object
tracking as to destroy the whole backend graph upon backend switch,
which was only implemented in Xine and even there was insanely
complicated given the use.
Talking about use... it was agreed that the benefit of runtime
switching does not justify the work involved to implement and
support across multiple backends. Additionally switching the backend
ought not be something you do every day, but ultimately not ever as
the default backend installed by the user or the distributor should
be of sufficient stability and use. Should this not be the case it
*must* be considered a bug and treated as such. Working around by
switching to another backend does not contribute to the long-term
user experience in any way.
The implementation at hand replaces the backend switching logic with
a QMessageBox informing the user that she will have to restart the
application in order to apply the backend change.
In KDE 4.7's Phonon KCM we will introduce a more visually compelling
way of feedback. Unfortunately, as to maintain support for older
releases both the DBus interface and the handler function must remain
present to provide the silly messagebox feedback :S