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 #include "declarativemediaplayer.h" 0010 0011 DeclarativeMediaPlayer::DeclarativeMediaPlayer(BluezQt::MediaPlayerPtr mediaPlayer, QObject *parent) 0012 : QObject(parent) 0013 , m_mediaPlayer(mediaPlayer) 0014 { 0015 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::nameChanged, this, &DeclarativeMediaPlayer::nameChanged); 0016 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::equalizerChanged, this, &DeclarativeMediaPlayer::equalizerChanged); 0017 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::repeatChanged, this, &DeclarativeMediaPlayer::repeatChanged); 0018 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::shuffleChanged, this, &DeclarativeMediaPlayer::shuffleChanged); 0019 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::statusChanged, this, &DeclarativeMediaPlayer::statusChanged); 0020 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::positionChanged, this, &DeclarativeMediaPlayer::positionChanged); 0021 0022 connect(m_mediaPlayer.data(), &BluezQt::MediaPlayer::trackChanged, this, [this]() { 0023 updateTrack(); 0024 Q_EMIT trackChanged(m_track); 0025 }); 0026 0027 updateTrack(); 0028 } 0029 0030 QString DeclarativeMediaPlayer::name() const 0031 { 0032 return m_mediaPlayer->name(); 0033 } 0034 0035 BluezQt::MediaPlayer::Equalizer DeclarativeMediaPlayer::equalizer() const 0036 { 0037 return m_mediaPlayer->equalizer(); 0038 } 0039 0040 void DeclarativeMediaPlayer::setEqualizer(BluezQt::MediaPlayer::Equalizer equalizer) 0041 { 0042 m_mediaPlayer->setEqualizer(equalizer); 0043 } 0044 0045 BluezQt::MediaPlayer::Repeat DeclarativeMediaPlayer::repeat() const 0046 { 0047 return m_mediaPlayer->repeat(); 0048 } 0049 0050 void DeclarativeMediaPlayer::setRepeat(BluezQt::MediaPlayer::Repeat repeat) 0051 { 0052 m_mediaPlayer->setRepeat(repeat); 0053 } 0054 0055 BluezQt::MediaPlayer::Shuffle DeclarativeMediaPlayer::shuffle() const 0056 { 0057 return m_mediaPlayer->shuffle(); 0058 } 0059 0060 void DeclarativeMediaPlayer::setShuffle(BluezQt::MediaPlayer::Shuffle shuffle) 0061 { 0062 m_mediaPlayer->setShuffle(shuffle); 0063 } 0064 0065 BluezQt::MediaPlayer::Status DeclarativeMediaPlayer::status() const 0066 { 0067 return m_mediaPlayer->status(); 0068 } 0069 0070 QJsonObject DeclarativeMediaPlayer::track() const 0071 { 0072 return m_track; 0073 } 0074 0075 quint32 DeclarativeMediaPlayer::position() const 0076 { 0077 return m_mediaPlayer->position(); 0078 } 0079 0080 BluezQt::PendingCall *DeclarativeMediaPlayer::play() 0081 { 0082 return m_mediaPlayer->play(); 0083 } 0084 0085 BluezQt::PendingCall *DeclarativeMediaPlayer::pause() 0086 { 0087 return m_mediaPlayer->pause(); 0088 } 0089 0090 BluezQt::PendingCall *DeclarativeMediaPlayer::stop() 0091 { 0092 return m_mediaPlayer->stop(); 0093 } 0094 0095 BluezQt::PendingCall *DeclarativeMediaPlayer::next() 0096 { 0097 return m_mediaPlayer->next(); 0098 } 0099 0100 BluezQt::PendingCall *DeclarativeMediaPlayer::previous() 0101 { 0102 return m_mediaPlayer->previous(); 0103 } 0104 0105 BluezQt::PendingCall *DeclarativeMediaPlayer::fastForward() 0106 { 0107 return m_mediaPlayer->fastForward(); 0108 } 0109 0110 BluezQt::PendingCall *DeclarativeMediaPlayer::rewind() 0111 { 0112 return m_mediaPlayer->rewind(); 0113 } 0114 0115 void DeclarativeMediaPlayer::updateTrack() 0116 { 0117 m_track[QStringLiteral("valid")] = m_mediaPlayer->track().isValid(); 0118 m_track[QStringLiteral("title")] = m_mediaPlayer->track().title(); 0119 m_track[QStringLiteral("artist")] = m_mediaPlayer->track().artist(); 0120 m_track[QStringLiteral("album")] = m_mediaPlayer->track().album(); 0121 m_track[QStringLiteral("genre")] = m_mediaPlayer->track().genre(); 0122 m_track[QStringLiteral("numberOfTracks")] = qint64(m_mediaPlayer->track().numberOfTracks()); 0123 m_track[QStringLiteral("trackNumber")] = qint64(m_mediaPlayer->track().trackNumber()); 0124 m_track[QStringLiteral("duration")] = qint64(m_mediaPlayer->track().duration()); 0125 } 0126 0127 #include "moc_declarativemediaplayer.cpp"