Commit Graph

17 Commits

Author SHA1 Message Date
Bart De Vries e9111eb011
Workaround for a qtmultimedia backend issue
Qt multimedia with the ffmpeg backend suddenly started sending
LoadedMedia signals in the PlayingState, even though that should not be
a valid combination according to the docs.  This is messing up the
AudioManager.
2024-04-25 13:44:31 +02:00
Bart De Vries 72043c0dd5 Remove all dbus linking on windows 2024-02-21 17:22:56 +01:00
Bart De Vries 973a5b7ac9 Fix the pause() method toggling pause state for VLC backend
This method should pause the audio. Instead, the VLC backend would
toggle the pause state, i.e. it would start playing again if the audio
stream was already paused.  This caused issues with already paused
streams incorrectly resuming playback after the system woke up from
suspend.

BUG: 474432
2024-01-23 22:16:00 +01:00
Tobias Fella ba9c302352 Port to declarative type registration 2024-01-11 21:52:10 +01:00
Tobias Fella fe6626ebeb Remove some empty descructors 2024-01-11 21:52:10 +01:00
Bart De Vries 2a58b3002e Remove all qt5-only code 2023-09-14 16:26:37 +02:00
Emir SARI c4cb10b7aa Adopt string casings according to HIG
This commit also improve formatting and style in some places.
2023-07-19 12:30:03 +00:00
Bart De Vries 319c579ba0 Fix mMedia nullptr dereference in VLC backend metadata call
CCBUG: 470263
2023-06-18 16:35:29 +02:00
Bart De Vries eac74ecbbb [KMediaSession] Only send MRPIS2 positionChanged signal on seek
Stop spamming the DBus with positionChanged signals if playback is
progressing at the nominal playback rate.  This brings the
implementation in line with the MPRIS2 player spec.  The previous
implementation was causing android battery drain issues with KDEConnect
constantly updating the position (and player details) on the notification
widget.
This implementation will still send the current playback position every
10 seconds to ensure that clients that don't implement the standard
properly or did not receive previous messages, will still get regularly
updated.
This also fixes correct signaling of playback rate changes over DBus.
2023-06-01 10:42:58 +02:00
Bart De Vries 1d28cdfed5 Prepare for KF6 2023-03-01 10:28:23 +01:00
Bart De Vries 780e63c2f2 [KMediaSession] Allow app and desktop entry name to be set in constructor 2023-02-16 13:32:52 +01:00
Heiko Becker a973ce547d cmake: Add an option for the gstreamer audio backend
Otherwise it'll become a so-called automagic dependency with no control
over including support for it or not, other than having it installed on
the system or not.
For LIBVLC CMAKE_DISABLE_FIND_PACKAGE can be used, but for
pkg_check_modules no such things exits and we need an explicit option.
2023-01-30 22:26:55 +01:00
Bart De Vries 48c1cffd4e [KMediaSession] Put compilation of example player behind switch 2023-01-23 20:55:57 +01:00
Bart De Vries 9ead23ff59 Port c++ to qt6 2023-01-20 14:23:30 +00:00
Bart De Vries b7c68996eb Revert disabling video on gstreamer
This was causing audio-only tracks to make gstreamer hang indefinitely.
2023-01-18 21:23:41 +01:00
Bart De Vries e06a90743e [KMediaSession] disable video output for now 2023-01-16 16:29:09 +01:00
Bart De Vries eb07e67f70 [KMediaSession] Implement dynamic audio backend framework
KMediaSession is an audio player library that has an API which is close
to QMediaPlayer and which allows to use --- and dynamically switch
between --- different audio backends. At this moment there is
implementation for libVLC, gstreamer and QtMultimedia. Only QtMultimedia
is a hard dependency in order to at least have one functional backend on
all platforms; all other dependencies are optional.

KMediaSession has out-of-the-box, built-in MPRIS2 support, sleep inhibit,
and basic metadata support.

BUG: 462358

Closes #35
2023-01-16 15:36:54 +01:00