File indexing completed on 2024-05-19 04:48:26
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 #pragma once 0009 0010 #include <QObject> 0011 #include <QSharedPointer> 0012 #include <memory> 0013 0014 class MediaPlayer2Player; 0015 class MediaPlayer2; 0016 0017 class Player; 0018 class Playlist; 0019 0020 class Mpris2 : public QObject 0021 { 0022 Q_OBJECT 0023 0024 Q_PROPERTY(QString playerName READ playerName WRITE setPlayerName NOTIFY playerNameChanged) 0025 0026 Q_PROPERTY(Playlist *playListModel READ playListModel WRITE setPlayListModel NOTIFY playListModelChanged) 0027 0028 Q_PROPERTY(Player *audioPlayer READ audioPlayer WRITE setAudioPlayer NOTIFY audioPlayerChanged) 0029 0030 Q_PROPERTY(bool showProgressOnTaskBar READ showProgressOnTaskBar WRITE setShowProgressOnTaskBar NOTIFY showProgressOnTaskBarChanged) 0031 0032 public: 0033 explicit Mpris2(QObject *parent = nullptr); 0034 ~Mpris2() override; 0035 0036 QString playerName() const; 0037 0038 Playlist *playListModel() const; 0039 0040 Player *audioPlayer() const; 0041 0042 bool showProgressOnTaskBar() const; 0043 0044 public Q_SLOTS: 0045 0046 void setPlayerName(const QString &playerName); 0047 0048 void setPlayListModel(Playlist *playListModel); 0049 0050 void setAudioPlayer(Player *audioPlayer); 0051 0052 void setShowProgressOnTaskBar(bool value); 0053 0054 Q_SIGNALS: 0055 void raisePlayer(); 0056 0057 void playerNameChanged(); 0058 0059 void playListModelChanged(); 0060 0061 void audioPlayerChanged(); 0062 0063 void showProgressOnTaskBarChanged(); 0064 0065 private: 0066 void initDBusService(); 0067 0068 #if (defined Q_OS_LINUX || defined Q_OS_FREEBSD) && !defined Q_OS_ANDROID 0069 std::unique_ptr<MediaPlayer2> m_mp2; 0070 std::unique_ptr<MediaPlayer2Player> m_mp2p; 0071 #endif 0072 0073 QString m_playerName; 0074 Playlist *m_playListModel = nullptr; 0075 Player *m_audioPlayer = nullptr; 0076 bool mShowProgressOnTaskBar = true; 0077 }; 0078