File indexing completed on 2024-04-21 04:48:59
0001 /* 0002 SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #ifndef MANAGEMEDIAPLAYERCONTROL_H 0008 #define MANAGEMEDIAPLAYERCONTROL_H 0009 0010 #include "elisaLib_export.h" 0011 #include <QPersistentModelIndex> 0012 #include <QObject> 0013 0014 0015 class ELISALIB_EXPORT ManageMediaPlayerControl : public QObject 0016 { 0017 0018 Q_OBJECT 0019 0020 Q_PROPERTY(bool playControlEnabled 0021 READ playControlEnabled 0022 NOTIFY playControlEnabledChanged) 0023 0024 Q_PROPERTY(bool skipBackwardControlEnabled 0025 READ skipBackwardControlEnabled 0026 NOTIFY skipBackwardControlEnabledChanged) 0027 0028 Q_PROPERTY(bool skipForwardControlEnabled 0029 READ skipForwardControlEnabled 0030 NOTIFY skipForwardControlEnabledChanged) 0031 0032 Q_PROPERTY(bool musicPlaying 0033 READ musicPlaying 0034 NOTIFY musicPlayingChanged) 0035 0036 Q_PROPERTY(QPersistentModelIndex previousTrack 0037 READ previousTrack 0038 WRITE setPreviousTrack 0039 NOTIFY previousTrackChanged) 0040 0041 Q_PROPERTY(QPersistentModelIndex currentTrack 0042 READ currentTrack 0043 WRITE setCurrentTrack 0044 NOTIFY currentTrackChanged) 0045 0046 Q_PROPERTY(QPersistentModelIndex nextTrack 0047 READ nextTrack 0048 WRITE setNextTrack 0049 NOTIFY nextTrackChanged) 0050 0051 public: 0052 0053 explicit ManageMediaPlayerControl(QObject *parent = nullptr); 0054 0055 [[nodiscard]] bool playControlEnabled() const; 0056 0057 [[nodiscard]] bool skipBackwardControlEnabled() const; 0058 0059 [[nodiscard]] bool skipForwardControlEnabled() const; 0060 0061 [[nodiscard]] bool musicPlaying() const; 0062 0063 [[nodiscard]] QPersistentModelIndex previousTrack() const; 0064 0065 [[nodiscard]] QPersistentModelIndex currentTrack() const; 0066 0067 [[nodiscard]] QPersistentModelIndex nextTrack() const; 0068 0069 Q_SIGNALS: 0070 0071 void playControlEnabledChanged(); 0072 0073 void skipBackwardControlEnabledChanged(); 0074 0075 void skipForwardControlEnabledChanged(); 0076 0077 void musicPlayingChanged(); 0078 0079 void previousTrackChanged(); 0080 0081 void currentTrackChanged(); 0082 0083 void nextTrackChanged(); 0084 0085 public Q_SLOTS: 0086 0087 void playerPausedOrStopped(); 0088 0089 void playerPlaying(); 0090 0091 void setPreviousTrack(const QPersistentModelIndex &previousTrack); 0092 0093 void setCurrentTrack(const QPersistentModelIndex ¤tTrack); 0094 0095 void setNextTrack(const QPersistentModelIndex &nextTrack); 0096 0097 private: 0098 0099 QPersistentModelIndex mPreviousTrack; 0100 0101 QPersistentModelIndex mCurrentTrack; 0102 0103 QPersistentModelIndex mNextTrack; 0104 0105 bool mIsInPlayingState = false; 0106 0107 }; 0108 0109 #endif // MANAGEMEDIAPLAYERCONTROL_H