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 &currentTrack);
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