File indexing completed on 2025-01-19 12:42:13
0001 /* 0002 * BluezQt - Asynchronous Bluez wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef DECLARATIVEMEDIAPLAYER_H 0010 #define DECLARATIVEMEDIAPLAYER_H 0011 0012 #include <QJsonObject> 0013 0014 #include "mediaplayer.h" 0015 0016 class DeclarativeMediaPlayer : public QObject 0017 { 0018 Q_OBJECT 0019 Q_PROPERTY(QString name READ name NOTIFY nameChanged) 0020 Q_PROPERTY(BluezQt::MediaPlayer::Equalizer equalizer READ equalizer WRITE setEqualizer NOTIFY equalizerChanged) 0021 Q_PROPERTY(BluezQt::MediaPlayer::Repeat repeat READ repeat WRITE setRepeat NOTIFY repeatChanged) 0022 Q_PROPERTY(BluezQt::MediaPlayer::Shuffle shuffle READ shuffle WRITE setShuffle NOTIFY shuffleChanged) 0023 Q_PROPERTY(BluezQt::MediaPlayer::Status status READ status NOTIFY statusChanged) 0024 Q_PROPERTY(QJsonObject track READ track NOTIFY trackChanged) 0025 Q_PROPERTY(quint32 position READ position NOTIFY positionChanged) 0026 0027 public: 0028 explicit DeclarativeMediaPlayer(BluezQt::MediaPlayerPtr mediaPlayer, QObject *parent = nullptr); 0029 0030 QString name() const; 0031 0032 BluezQt::MediaPlayer::Equalizer equalizer() const; 0033 void setEqualizer(BluezQt::MediaPlayer::Equalizer equalizer); 0034 0035 BluezQt::MediaPlayer::Repeat repeat() const; 0036 void setRepeat(BluezQt::MediaPlayer::Repeat repeat); 0037 0038 BluezQt::MediaPlayer::Shuffle shuffle() const; 0039 void setShuffle(BluezQt::MediaPlayer::Shuffle shuffle); 0040 0041 BluezQt::MediaPlayer::Status status() const; 0042 0043 QJsonObject track() const; 0044 0045 quint32 position() const; 0046 0047 public Q_SLOTS: 0048 BluezQt::PendingCall *play(); 0049 BluezQt::PendingCall *pause(); 0050 BluezQt::PendingCall *stop(); 0051 BluezQt::PendingCall *next(); 0052 BluezQt::PendingCall *previous(); 0053 BluezQt::PendingCall *fastForward(); 0054 BluezQt::PendingCall *rewind(); 0055 0056 Q_SIGNALS: 0057 void nameChanged(const QString &name); 0058 void equalizerChanged(BluezQt::MediaPlayer::Equalizer equalizer); 0059 void repeatChanged(BluezQt::MediaPlayer::Repeat repeat); 0060 void shuffleChanged(BluezQt::MediaPlayer::Shuffle shuffle); 0061 void statusChanged(BluezQt::MediaPlayer::Status status); 0062 void trackChanged(const QJsonObject &track); 0063 void positionChanged(quint32 position); 0064 0065 private: 0066 void updateTrack(); 0067 0068 BluezQt::MediaPlayerPtr m_mediaPlayer; 0069 QJsonObject m_track; 0070 }; 0071 0072 #endif // DECLARATIVEMEDIAPLAYER_H