File indexing completed on 2024-05-19 08:41:44
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_MPRIS2_H 0010 #define MEDIACENTER_MPRIS2_H 0011 0012 #include "elisaLib_export.h" 0013 0014 #include <QObject> 0015 #include <QSharedPointer> 0016 #include <memory> 0017 #include "manageaudioplayer.h" 0018 #include "manageheaderbar.h" 0019 #include "managemediaplayercontrol.h" 0020 0021 class MediaPlayer2Player; 0022 class MediaPlayer2; 0023 class MediaPlayListProxyModel; 0024 class AudioWrapper; 0025 0026 class ELISALIB_EXPORT Mpris2 : public QObject 0027 { 0028 Q_OBJECT 0029 0030 Q_PROPERTY(QString playerName 0031 READ playerName 0032 WRITE setPlayerName 0033 NOTIFY playerNameChanged) 0034 0035 Q_PROPERTY(MediaPlayListProxyModel* playListModel 0036 READ playListModel 0037 WRITE setPlayListModel 0038 NOTIFY playListModelChanged) 0039 0040 Q_PROPERTY(ManageAudioPlayer* audioPlayerManager 0041 READ audioPlayerManager 0042 WRITE setAudioPlayerManager 0043 NOTIFY audioPlayerManagerChanged) 0044 0045 Q_PROPERTY(ManageMediaPlayerControl* manageMediaPlayerControl 0046 READ manageMediaPlayerControl 0047 WRITE setManageMediaPlayerControl 0048 NOTIFY manageMediaPlayerControlChanged) 0049 0050 Q_PROPERTY(ManageHeaderBar* headerBarManager 0051 READ headerBarManager 0052 WRITE setHeaderBarManager 0053 NOTIFY headerBarManagerChanged) 0054 0055 Q_PROPERTY(AudioWrapper* audioPlayer 0056 READ audioPlayer 0057 WRITE setAudioPlayer 0058 NOTIFY audioPlayerChanged) 0059 0060 Q_PROPERTY(bool showProgressOnTaskBar 0061 READ showProgressOnTaskBar 0062 WRITE setShowProgressOnTaskBar 0063 NOTIFY showProgressOnTaskBarChanged) 0064 0065 public: 0066 explicit Mpris2(QObject* parent = nullptr); 0067 ~Mpris2() override; 0068 0069 [[nodiscard]] QString playerName() const; 0070 0071 [[nodiscard]] MediaPlayListProxyModel* playListModel() const; 0072 0073 [[nodiscard]] ManageAudioPlayer* audioPlayerManager() const; 0074 0075 [[nodiscard]] ManageMediaPlayerControl* manageMediaPlayerControl() const; 0076 0077 [[nodiscard]] ManageHeaderBar* headerBarManager() const; 0078 0079 [[nodiscard]] AudioWrapper* audioPlayer() const; 0080 0081 [[nodiscard]] bool showProgressOnTaskBar() const; 0082 0083 public Q_SLOTS: 0084 0085 void setPlayerName(const QString &playerName); 0086 0087 void setPlayListModel(MediaPlayListProxyModel* playListModel); 0088 0089 void setAudioPlayerManager(ManageAudioPlayer* audioPlayerManager); 0090 0091 void setManageMediaPlayerControl(ManageMediaPlayerControl* manageMediaPlayerControl); 0092 0093 void setHeaderBarManager(ManageHeaderBar* headerBarManager); 0094 0095 void setAudioPlayer(AudioWrapper* audioPlayer); 0096 0097 void setShowProgressOnTaskBar(bool value); 0098 0099 Q_SIGNALS: 0100 void raisePlayer(); 0101 0102 void playerNameChanged(); 0103 0104 void playListModelChanged(); 0105 0106 void audioPlayerManagerChanged(); 0107 0108 void manageMediaPlayerControlChanged(); 0109 0110 void headerBarManagerChanged(); 0111 0112 void audioPlayerChanged(); 0113 0114 void showProgressOnTaskBarChanged(); 0115 0116 private: 0117 0118 void initDBusService(); 0119 0120 std::unique_ptr<MediaPlayer2> m_mp2; 0121 std::unique_ptr<MediaPlayer2Player> m_mp2p; 0122 QString m_playerName; 0123 MediaPlayListProxyModel* m_playListModel = nullptr; 0124 ManageAudioPlayer* m_manageAudioPlayer = nullptr; 0125 ManageMediaPlayerControl* m_manageMediaPlayerControl = nullptr; 0126 ManageHeaderBar* m_manageHeaderBar = nullptr; 0127 AudioWrapper* m_audioPlayer = nullptr; 0128 bool mShowProgressOnTaskBar = true; 0129 }; 0130 0131 #endif //MEDIACENTER_MPRIS2_H