File indexing completed on 2024-05-05 04:50:35

0001 /***************************************************************************
0002    SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <sujith.haridasan@kdemail.net>
0003    SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <ashishmadeti@gmail.com>
0004    SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr>
0005 
0006    SPDX-License-Identifier: GPL-3.0-or-later
0007  ***************************************************************************/
0008 
0009 #ifndef MEDIACENTER_MEDIAPLAYER2_H
0010 #define MEDIACENTER_MEDIAPLAYER2_H
0011 
0012 #include "elisaLib_export.h"
0013 
0014 #include <QDBusAbstractAdaptor>
0015 #include <QStringList>
0016 
0017 
0018 class ELISALIB_EXPORT MediaPlayer2 : public QDBusAbstractAdaptor
0019 {
0020     Q_OBJECT
0021     Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html
0022 
0023     Q_PROPERTY(bool CanQuit READ CanQuit CONSTANT)
0024     Q_PROPERTY(bool CanRaise READ CanRaise CONSTANT)
0025     Q_PROPERTY(bool HasTrackList READ HasTrackList CONSTANT)
0026 
0027     Q_PROPERTY(QString Identity READ Identity CONSTANT)
0028     Q_PROPERTY(QString DesktopEntry READ DesktopEntry CONSTANT)
0029 
0030     Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes CONSTANT)
0031     Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes CONSTANT)
0032 
0033 public:
0034     explicit MediaPlayer2(QObject* parent = nullptr);
0035     ~MediaPlayer2() override;
0036 
0037     [[nodiscard]] bool CanQuit() const;
0038     [[nodiscard]] bool CanRaise() const;
0039     [[nodiscard]] bool HasTrackList() const;
0040 
0041     [[nodiscard]] QString Identity() const;
0042     [[nodiscard]] QString DesktopEntry() const;
0043 
0044     [[nodiscard]] QStringList SupportedUriSchemes() const;
0045     [[nodiscard]] QStringList SupportedMimeTypes() const;
0046 
0047 public Q_SLOTS:
0048     void Quit();
0049     void Raise();
0050 
0051 Q_SIGNALS:
0052     void raisePlayer();
0053 
0054 };
0055 
0056 #endif //MEDIACENTER_MEDIAPLAYER2_H