diff --git a/src/minimediaplayer.cpp b/src/minimediaplayer.cpp index 1a2d17d67d51aa804851c43916e42b063f13a534..f257a2d01fb9d487aee5922577ea530541b5a02a 100644 --- a/src/minimediaplayer.cpp +++ b/src/minimediaplayer.cpp @@ -28,6 +28,7 @@ MiniMediaPlayer::MiniMediaPlayer(QObject *parent) : QObject(parent) connect(m_player,SIGNAL(stateChanged(QMediaPlayer::State)),this,SLOT(mediaStateChanged(QMediaPlayer::State))); connect(m_player,SIGNAL(durationChanged(qint64)),this,SLOT(durationChanged(qint64))); connect(m_player,SIGNAL(positionChanged(qint64)),this,SLOT(positionChanged(qint64))); + connect(m_player,&QMediaPlayer::volumeChanged,this,&MiniMediaPlayer::mediaVolumeChanged); } diff --git a/src/minimediaplayer.h b/src/minimediaplayer.h index 51a73ee1f25efe2dbdd9639182030835d9f13ad9..3da3d6115f305aa1c8b1913d217807c9154b0f1b 100644 --- a/src/minimediaplayer.h +++ b/src/minimediaplayer.h @@ -56,6 +56,7 @@ signals: void playlistChanged(QStringList trackTitles); void trackDurationChanged(qint64 length); void trackPositionChanged(qint64 position); + void mediaVolumeChanged(int volume); private slots: void mediaStatusChanged(QMediaPlayer::MediaStatus status); diff --git a/src/mprisinterface.cpp b/src/mprisinterface.cpp index df9edc3f8caceb3a6975f193170a7bab9687b3b5..218d0c371ccdbf8737a7adff4d04c12bcca18612 100644 --- a/src/mprisinterface.cpp +++ b/src/mprisinterface.cpp @@ -56,6 +56,28 @@ QStringList MPRISInterface::SupportedUriSchemes() MPRISPlayerInterface::MPRISPlayerInterface(MiniMediaPlayer *player,QObject* parent) : QDBusAbstractAdaptor(parent),player(player) { + //Connected Changed values from media player. + +} + +void MPRISPlayerInterface::mediaPositionChanged(qint64 position) +{ + emit positionChanged(Position()); +} + +void MPRISPlayerInterface::mediaStateChanged(QMediaPlayer::State state) +{ + emit playbackStatusChanged(PlaybackStatus()); +} + +void MPRISPlayerInterface::mediaVolumeChanged(int volume) +{ + emit volumeChanged(Volume()); +} + +void MPRISPlayerInterface::mediaPlaylistChanged(QStringList playlist) +{ + emit metadataChanged(Metadata()); } bool MPRISPlayerInterface::CanControl() diff --git a/src/mprisinterface.h b/src/mprisinterface.h index fae223ff3e4e68c013b671416aba8fd7c3d135cb..361f524c9500d8a3dda851a61109912fd4f11bef 100644 --- a/src/mprisinterface.h +++ b/src/mprisinterface.h @@ -54,11 +54,11 @@ class MPRISPlayerInterface : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface","org.mpris.MediaPlayer2.Player") - Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus) + Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus NOTIFY playbackStatusChanged) Q_PROPERTY(double Rate READ Rate WRITE setRate) - Q_PROPERTY(QMapMetadata READ Metadata) - Q_PROPERTY(double Volume READ Volume WRITE setVolume) - Q_PROPERTY(qlonglong Position READ Position) + Q_PROPERTY(QMapMetadata READ Metadata NOTIFY metadataChanged) + Q_PROPERTY(double Volume READ Volume WRITE setVolume NOTIFY volumeChanged) + Q_PROPERTY(qlonglong Position READ Position NOTIFY positionChanged) Q_PROPERTY(double MinimumRate READ MinimumRate) Q_PROPERTY(double MaximumRate READ MaximumRate) Q_PROPERTY(bool CanGoNext READ CanGoNext) @@ -95,7 +95,16 @@ public slots: Q_NOREPLY void SetPosition(QDBusObjectPath trackId,qlonglong position) {}; Q_NOREPLY void OpenUri(QString uri); signals: - void Seeked(qlonglong position); + void Seeked(qlonglong position); //Not used + void playbackStatusChanged(QString status); + void metadataChanged(QMap metadata); + void volumeChanged(double volume); + void positionChanged(qlonglong position); +private slots: + void mediaStateChanged(QMediaPlayer::State state); + void mediaPositionChanged(qint64 position); + void mediaVolumeChanged(int volume); + void mediaPlaylistChanged(QStringList playlist); private: MiniMediaPlayer *player; };