File indexing completed on 2024-05-12 15:32:33

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"