diff --git a/src/kmediasession/CMakeLists.txt b/src/kmediasession/CMakeLists.txt index 854701cd..c6ad7272 100644 --- a/src/kmediasession/CMakeLists.txt +++ b/src/kmediasession/CMakeLists.txt @@ -9,7 +9,10 @@ find_package(Qt6 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Qml Multim find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS CoreAddons I18n) if (NOT ANDROID) - find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS DBus Widgets) + if (NOT WIN32) + find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS DBus) + endif() + find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets) endif() find_package(LIBVLC) @@ -79,14 +82,16 @@ ecm_qt_declare_logging_category(KMediaSession if(ANDROID) target_sources(KMediaSession PRIVATE androidlogging.h) else() - set(KMediaSession_dbus_srcs "") - qt_add_dbus_interface(KMediaSession_dbus_srcs dbus-interfaces/org.freedesktop.PowerManagement.Inhibit.xml inhibitinterface) - qt_add_dbus_interface(KMediaSession_dbus_srcs dbus-interfaces/org.gnome.SessionManager.xml gnomesessioninterface) - target_sources(KMediaSession PRIVATE - mpris2/mediaplayer2.cpp - mpris2/mediaplayer2player.cpp - ${KMediaSession_dbus_srcs} - ) + if (NOT WIN32) + set(KMediaSession_dbus_srcs "") + qt_add_dbus_interface(KMediaSession_dbus_srcs dbus-interfaces/org.freedesktop.PowerManagement.Inhibit.xml inhibitinterface) + qt_add_dbus_interface(KMediaSession_dbus_srcs dbus-interfaces/org.gnome.SessionManager.xml gnomesessioninterface) + target_sources(KMediaSession PRIVATE + mpris2/mediaplayer2.cpp + mpris2/mediaplayer2player.cpp + ${KMediaSession_dbus_srcs} + ) + endif() endif() if (LIBVLC_FOUND) @@ -148,7 +153,7 @@ if (GSTREAMER_FOUND) target_link_libraries(KMediaSession PRIVATE PkgConfig::GSTREAMER) endif() -if (ANDROID) +if (ANDROID OR WIN32) else() target_link_libraries(KMediaSession PRIVATE Qt::DBus) endif() diff --git a/src/kmediasession/mpris2/mpris2.cpp b/src/kmediasession/mpris2/mpris2.cpp index 1aec5c0f..9956ad04 100644 --- a/src/kmediasession/mpris2/mpris2.cpp +++ b/src/kmediasession/mpris2/mpris2.cpp @@ -11,7 +11,7 @@ #include "mpris2logging.h" #include -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN #include #endif @@ -22,7 +22,7 @@ #endif #include "kmediasession.h" -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN #include "mediaplayer2.h" #include "mediaplayer2player.h" #endif @@ -33,7 +33,7 @@ Mpris2::Mpris2(QObject *parent) { qCDebug(Mpris2Log) << "Mpris2::Mpris2()"; -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN connect(m_audioPlayer, &KMediaSession::playerNameChanged, this, [this]() { bool success = true; if (m_mp2) { @@ -52,7 +52,7 @@ Mpris2::Mpris2(QObject *parent) void Mpris2::initDBusService(const QString &playerName) { qCDebug(Mpris2Log) << "Mpris2::initDBusService(" << playerName << ")"; -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN QString tryPlayerName = playerName; QString mpris2Name(QStringLiteral("org.mpris.MediaPlayer2.") + tryPlayerName); @@ -63,11 +63,8 @@ void Mpris2::initDBusService(const QString &playerName) // or the name is already taken. In that event the MPRIS2 spec wants the // following: if (!success) { -#if defined Q_OS_WIN - tryPlayerName = tryPlayerName + QLatin1String(".instance") + QString::number(GetCurrentProcessId()); -#else tryPlayerName = tryPlayerName + QLatin1String(".instance") + QString::number(getpid()); -#endif + success = QDBusConnection::sessionBus().registerService(QStringLiteral("org.mpris.MediaPlayer2.") + tryPlayerName); } @@ -86,7 +83,7 @@ void Mpris2::initDBusService(const QString &playerName) bool Mpris2::unregisterDBusService(const QString &playerName) { bool success = true; -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN QString oldMpris2Name(QStringLiteral("org.mpris.MediaPlayer2.") + playerName); success = QDBusConnection::sessionBus().unregisterService(oldMpris2Name); @@ -108,7 +105,7 @@ bool Mpris2::showProgressOnTaskBar() const void Mpris2::setShowProgressOnTaskBar(bool value) { qCDebug(Mpris2Log) << "Mpris2::setShowProgressOnTaskBar" << value << ")"; -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN m_mp2p->setShowProgressOnTaskBar(value); #endif m_ShowProgressOnTaskBar = value; diff --git a/src/kmediasession/mpris2/mpris2.h b/src/kmediasession/mpris2/mpris2.h index e116e0be..91c17f27 100644 --- a/src/kmediasession/mpris2/mpris2.h +++ b/src/kmediasession/mpris2/mpris2.h @@ -14,7 +14,7 @@ #include #include -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN class MediaPlayer2Player; class MediaPlayer2; #endif @@ -42,7 +42,7 @@ private: void initDBusService(const QString &playerName); bool unregisterDBusService(const QString &playerName); -#if !defined Q_OS_ANDROID +#if !defined Q_OS_ANDROID && !defined Q_OS_WIN std::unique_ptr m_mp2; std::unique_ptr m_mp2p; #endif