Phonon/Releases/Core/4.9.0

From KDE Community Wiki
< Phonon‎ | Releases‎ | Core
URL http://download.kde.org/stable/phonon/4.9.0/phonon-4.9.0.tar.xz.mirrorlist
SHA256 bb74b40f18ade1d9ab89ffcd7aeb7555be797ca395f1224c488b394da6deb0e0

Changes

  • Builsystem helpers are now installed to CMAKE_INSTALL_DATAROOTDIR
  • CMake 2.8.9 is required to use GNUInstallDirs and for the Qt5 code branches
  • automoc4 support was removed. Building always use the cmake built-in solution now.
  • Qt5 and Qt4 builds use different CMake configurations now
    • Qt4 is as it always has been
    • Qt5 moved away from crudely ported Qt4 configurations to using extra-cmake-modules' KDE compiler and cmake flags.
    • Installation paths and so forth are still jointly configured as to retain backwards compatibility (i.e. Qt5 build does not follow ECM's KDEInstallationPaths)

Bug Fixes

  • VolumeSlider has seen async behavior improvements making the slider not hop around when changing the volume rapidly and the backend is lagging a bit behind. The volume change now occurs upon slider release rather than instantly.
  • Fixed a duble encoding issue with local paths that contain percent encoded characters being double-encoded [#356218]

New API

  • New AudioOutputInterface49 for backends to implement. This interface implements long-existing frontend interfaces for muting, giving the backend easier access and control.
    • setMuted(bool) mutes an AudioOuput (without the 4.9 interface this is done via setVolume(0.0) on the backend)
    • mutedChanged(bool) signal emitted by the backend to asyncronuously notify of the mute application
    • The interface is only used if PulseSupport is not intercepting calls
  • New methods to differntiate states of PulseSupport
    • request(bool) is used by backends to request PulseAudio usage but no interception, this essentially enables device listing but lets everything else fall through to the backend (the existing isActive() method will not return true after request(true), which makes it different from enable(true))
    • isRequested() is a getter for request()'s state
    • isUsable() is part of the previouys isActive() behavior, it is true iff pulseaudio can be used (daemon running, connected etc)
    • isUsed() is a combination of isRequested() and isUsable() (i.e. active but not intercepting)
    • The existing isActive() communicates the same state as before (active and intercepting) but now also takes requested into consideration
    • Enabling always implies requsting automatically, so request(false) and enable(true) will ultimately still restul in isRequested==true