Revision d1344b6...
Go back to digest for 16th September 2012Optimization in Multimedia
implement runtime KSNI updates
previously kmix would throw away the KSNI and completely recreate it to
pick up mixer changes. incidentally enough doing that triggers repaints
and rescaling in plasma leading to utterly silly flickering. paritcularly
since pulseaudio stream changes (e.g. a track change in amarok) would
cause such an "update" you'd have a steady flow of flickering systray
the situation was resolved by introducing a MetaMixer in the DockWidget.
MetaMixer behaves like an abstraction wrapper around the actual Mixer. it
replicates the necessary interfaces/signals/slots and internally
controls the wiring to the actual mixer. that way the dockwidget can
connect() once to the metamixer signals while internally the mixer might
be constantly changing. then when an update is required the new update()
function is called, which calls reset() on the metamixer, which rewires
against the new master mixer and then automatically triggers UI updates
File Changes
- apps/kmix.cpp
- gui/kmixdockwidget.cpp
- gui/kmixdockwidget.h