File indexing completed on 2024-04-28 04:48:39
0001 /* 0002 SPDX-FileCopyrightText: 2012 Eike Hein <hein@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef DRAGONPLAYER_MEDIAPLAYER2_H 0008 #define DRAGONPLAYER_MEDIAPLAYER2_H 0009 0010 #include <QDBusAbstractAdaptor> 0011 #include <QStringList> // Needed for automoc'ed cpp to compile 0012 0013 class MediaPlayer2 : public QDBusAbstractAdaptor 0014 { 0015 Q_OBJECT 0016 Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html 0017 0018 Q_PROPERTY(bool CanQuit READ CanQuit) 0019 Q_PROPERTY(bool CanRaise READ CanRaise) 0020 0021 Q_PROPERTY(bool Fullscreen READ Fullscreen WRITE setFullscreen) 0022 Q_PROPERTY(bool CanSetFullscreen READ CanSetFullscreen) 0023 0024 Q_PROPERTY(bool HasTrackList READ HasTrackList) 0025 0026 Q_PROPERTY(QString Identity READ Identity) 0027 Q_PROPERTY(QString DesktopEntry READ DesktopEntry) 0028 0029 Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes) 0030 Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes) 0031 0032 public: 0033 explicit MediaPlayer2(QObject *parent); 0034 ~MediaPlayer2() override; 0035 0036 bool CanQuit() const; 0037 bool CanRaise() const; 0038 0039 bool Fullscreen() const; 0040 void setFullscreen(bool fullscreen) const; 0041 bool CanSetFullscreen() const; 0042 0043 bool HasTrackList() const; 0044 0045 QString Identity() const; 0046 QString DesktopEntry() const; 0047 0048 QStringList SupportedUriSchemes() const; 0049 QStringList SupportedMimeTypes() const; 0050 0051 public Q_SLOTS: 0052 void Raise() const; 0053 void Quit() const; 0054 0055 private Q_SLOTS: 0056 void emitFullscreenChange(bool fullscreen) const; 0057 }; 0058 0059 #endif