File indexing completed on 2024-05-19 04:48:28

0001 #pragma once
0002 
0003 #include <QObject>
0004 #include <QtMultimedia/QMediaPlayer>
0005 
0006 class PowerManagementInterface;
0007 class Player : public QObject
0008 {
0009     Q_OBJECT
0010     Q_PROPERTY(QUrl url READ getUrl WRITE setUrl NOTIFY urlChanged)
0011     Q_PROPERTY(int volume READ getVolume WRITE setVolume NOTIFY volumeChanged)
0012     Q_PROPERTY(QMediaPlayer::State state READ getState NOTIFY stateChanged)
0013     Q_PROPERTY(int duration READ getDuration NOTIFY durationChanged)
0014     Q_PROPERTY(bool playing READ getPlaying NOTIFY playingChanged)
0015     Q_PROPERTY(int pos READ getPos WRITE setPos NOTIFY posChanged)
0016 
0017 public:
0018     explicit Player(QObject *parent = nullptr);
0019 
0020     void setUrl(const QUrl &value);
0021     QUrl getUrl() const;
0022 
0023     void setVolume(const int &value);
0024     int getVolume() const;
0025 
0026     int getDuration() const;
0027 
0028     QMediaPlayer::State getState() const;
0029     bool getPlaying() const;
0030 
0031     int getPos() const;
0032     void setPos(const int &value);
0033 
0034 public Q_SLOTS:
0035     static QString transformTime(const int &value);
0036     void stop();
0037 
0038     bool play() const;
0039     void pause() const;
0040 
0041 private:
0042     QMediaPlayer *player;
0043     QUrl url;
0044     PowerManagementInterface *m_power;
0045     int amountBuffers = 0;
0046     int volume = 100;
0047 
0048 Q_SIGNALS:
0049     void durationChanged();
0050     void urlChanged();
0051     void volumeChanged();
0052     void posChanged();
0053     void stateChanged();
0054     void playingChanged();
0055     void finished();
0056 };