File indexing completed on 2024-05-19 04:49:36

0001 /***********************************************************************
0002  * Copyright 2012  Eike Hein <hein@kde.org>
0003  *
0004  * This program is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU General Public License as
0006  * published by the Free Software Foundation; either version 2 of
0007  * the License or (at your option) version 3 or any later version
0008  * accepted by the membership of KDE e.V. (or its successor approved
0009  * by the membership of KDE e.V.), which shall act as a proxy
0010  * defined in Section 14 of version 3 of the license.
0011  *
0012  * This program is distributed in the hope that it will be useful,
0013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0015  * GNU General Public License for more details.
0016  *
0017  * You should have received a copy of the GNU General Public License
0018  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0019  ***********************************************************************/
0020 
0021 #ifndef AMAROK_MEDIAPLAYER2_H
0022 #define AMAROK_MEDIAPLAYER2_H
0023 
0024 #include "DBusAbstractAdaptor.h"
0025 #include <QStringList>
0026 
0027 namespace Amarok {
0028     class MediaPlayer2 : public DBusAbstractAdaptor
0029     {
0030         Q_OBJECT
0031         Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2") // Docs: http://www.mpris.org/2.1/spec/Root_Node.html
0032 
0033         Q_PROPERTY(bool CanRaise READ CanRaise)
0034         Q_PROPERTY(bool CanQuit READ CanQuit)
0035         Q_PROPERTY(bool CanSetFullscreen READ CanSetFullscreen)
0036         Q_PROPERTY(bool Fullscreen READ Fullscreen)
0037 
0038         Q_PROPERTY(bool HasTrackList READ HasTrackList)
0039 
0040         Q_PROPERTY(QString Identity READ Identity)
0041         Q_PROPERTY(QString DesktopEntry READ DesktopEntry)
0042 
0043         Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes)
0044         Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes)
0045 
0046         public:
0047             explicit MediaPlayer2(QObject* parent);
0048             ~MediaPlayer2() override;
0049 
0050             bool CanRaise() const;
0051             bool CanQuit() const;
0052             bool CanSetFullscreen() const;
0053             bool Fullscreen() const;
0054 
0055             bool HasTrackList() const;
0056 
0057             QString Identity() const;
0058             QString DesktopEntry() const;
0059 
0060             QStringList SupportedUriSchemes() const;
0061             QStringList SupportedMimeTypes() const;
0062 
0063         public Q_SLOTS:
0064             void Raise() const;
0065             void Quit() const;
0066     };
0067 }
0068 
0069 #endif // AMAROK_MEDIAPLAYER2_H