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 };