File indexing completed on 2025-01-19 06:44:37
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 "mediaplayer.h" 0010 #include "mediaplayer_p.h" 0011 #include "pendingcall.h" 0012 0013 namespace BluezQt 0014 { 0015 static QString equalizerToString(MediaPlayer::Equalizer equalizer) 0016 { 0017 switch (equalizer) { 0018 case MediaPlayer::EqualizerOn: 0019 return QStringLiteral("on"); 0020 default: 0021 return QStringLiteral("off"); 0022 } 0023 } 0024 0025 static QString repeatToString(MediaPlayer::Repeat repeat) 0026 { 0027 switch (repeat) { 0028 case MediaPlayer::RepeatSingleTrack: 0029 return QStringLiteral("singletrack"); 0030 case MediaPlayer::RepeatAllTracks: 0031 return QStringLiteral("alltracks"); 0032 case MediaPlayer::RepeatGroup: 0033 return QStringLiteral("group"); 0034 default: 0035 return QStringLiteral("off"); 0036 } 0037 } 0038 0039 static QString shuffleToString(MediaPlayer::Shuffle shuffle) 0040 { 0041 switch (shuffle) { 0042 case MediaPlayer::ShuffleAllTracks: 0043 return QStringLiteral("alltracks"); 0044 case MediaPlayer::ShuffleGroup: 0045 return QStringLiteral("group"); 0046 default: 0047 return QStringLiteral("off"); 0048 } 0049 } 0050 0051 MediaPlayer::MediaPlayer(const QString &path, const QVariantMap &properties) 0052 : QObject() 0053 , d(new MediaPlayerPrivate(path, properties)) 0054 { 0055 } 0056 0057 MediaPlayer::~MediaPlayer() = default; 0058 0059 MediaPlayerPtr MediaPlayer::toSharedPtr() const 0060 { 0061 return d->q.toStrongRef(); 0062 } 0063 0064 QString MediaPlayer::name() const 0065 { 0066 return d->m_name; 0067 } 0068 0069 MediaPlayer::Equalizer MediaPlayer::equalizer() const 0070 { 0071 return d->m_equalizer; 0072 } 0073 0074 PendingCall *MediaPlayer::setEqualizer(MediaPlayer::Equalizer equalizer) 0075 { 0076 return new PendingCall(d->setDBusProperty(QStringLiteral("Equalizer"), equalizerToString(equalizer)), PendingCall::ReturnVoid, this); 0077 } 0078 0079 MediaPlayer::Repeat MediaPlayer::repeat() const 0080 { 0081 return d->m_repeat; 0082 } 0083 0084 PendingCall *MediaPlayer::setRepeat(MediaPlayer::Repeat repeat) 0085 { 0086 return new PendingCall(d->setDBusProperty(QStringLiteral("Repeat"), repeatToString(repeat)), PendingCall::ReturnVoid, this); 0087 } 0088 0089 MediaPlayer::Shuffle MediaPlayer::shuffle() const 0090 { 0091 return d->m_shuffle; 0092 } 0093 0094 PendingCall *MediaPlayer::setShuffle(MediaPlayer::Shuffle shuffle) 0095 { 0096 return new PendingCall(d->setDBusProperty(QStringLiteral("Shuffle"), shuffleToString(shuffle)), PendingCall::ReturnVoid, this); 0097 } 0098 0099 MediaPlayer::Status MediaPlayer::status() const 0100 { 0101 return d->m_status; 0102 } 0103 0104 MediaPlayerTrack MediaPlayer::track() const 0105 { 0106 return d->m_track; 0107 } 0108 0109 quint32 MediaPlayer::position() const 0110 { 0111 return d->m_position; 0112 } 0113 0114 PendingCall *MediaPlayer::play() 0115 { 0116 return new PendingCall(d->m_bluezMediaPlayer->Play(), PendingCall::ReturnVoid, this); 0117 } 0118 0119 PendingCall *MediaPlayer::pause() 0120 { 0121 return new PendingCall(d->m_bluezMediaPlayer->Pause(), PendingCall::ReturnVoid, this); 0122 } 0123 0124 PendingCall *MediaPlayer::stop() 0125 { 0126 return new PendingCall(d->m_bluezMediaPlayer->Stop(), PendingCall::ReturnVoid, this); 0127 } 0128 0129 PendingCall *MediaPlayer::next() 0130 { 0131 return new PendingCall(d->m_bluezMediaPlayer->Next(), PendingCall::ReturnVoid, this); 0132 } 0133 0134 PendingCall *MediaPlayer::previous() 0135 { 0136 return new PendingCall(d->m_bluezMediaPlayer->Previous(), PendingCall::ReturnVoid, this); 0137 } 0138 0139 PendingCall *MediaPlayer::fastForward() 0140 { 0141 return new PendingCall(d->m_bluezMediaPlayer->FastForward(), PendingCall::ReturnVoid, this); 0142 } 0143 0144 PendingCall *MediaPlayer::rewind() 0145 { 0146 return new PendingCall(d->m_bluezMediaPlayer->Rewind(), PendingCall::ReturnVoid, this); 0147 } 0148 0149 } // namespace BluezQt 0150 0151 #include "moc_mediaplayer.cpp"