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