Music Hub
..
A session-wide music playback service
|
|
Go to the documentation of this file.
25 #include <QDBusAbstractAdaptor>
26 #include <QDBusConnection>
27 #include <QDBusContext>
28 #include <QDBusObjectPath>
31 #include <QStringList>
35 using namespace mpris;
39 const QString
objectPath = QStringLiteral(
"/org/mpris/MediaPlayer2");
47 Q_CLASSINFO(
"D-Bus Interface",
"org.mpris.MediaPlayer2")
63 QString
identity()
const {
return QStringLiteral(
"core::media::Hub"); }
64 QString
desktopEntry()
const {
return QStringLiteral(
"mediaplayer-app"); }
67 return {
"audio/mpeg3",
"video/mpeg4"};
81 Q_CLASSINFO(
"D-Bus Interface",
"org.mpris.MediaPlayer2.Playlists")
91 QStringList
orderings()
const {
return {
"Alphabetical"}; }
101 Q_CLASSINFO(
"D-Bus Interface",
"org.mpris.MediaPlayer2.Player")
129 None = media::Player::LoopStatus::none,
130 Track = media::Player::LoopStatus::track,
177 void Seek(quint64 microSeconds);
181 void OpenUri(
const QDBusMessage &);
184 void Seeked(quint64 microSeconds);
189 void Error(qint16 code);
203 QDBusConnection m_connection;
213 m_propertyNotifier(connection,
objectPath, this)
221 if (m_player == impl)
return;
224 m_player->disconnect(
this);
229 QObject::connect(impl, &PlayerImplementation::seekedTo,
233 QObject::connect(impl, &PlayerImplementation::mprisPropertiesChanged,
235 m_propertyNotifier.
notify({
236 "CanPlay",
"CanPause",
"CanSeek",
237 "CanGoPrevious",
"CanGoNext",
240 QObject::connect(impl, &PlayerImplementation::playbackStatusChanged,
242 m_propertyNotifier.
notify({
"PlaybackStatus" });
244 QObject::connect(impl, &PlayerImplementation::metadataForCurrentTrackChanged,
246 m_propertyNotifier.
notify({
"Metadata" });
250 m_propertyNotifier.
notify();
260 return QStringLiteral(
"Playing");
262 return QStringLiteral(
"Paused");
264 return QStringLiteral(
"Stopped");
272 int value = QMetaEnum::fromType<LoopStatus>().
273 keyToValue(status.toUtf8().constData(), &ok);
275 MH_ERROR(
"Invalid loop status: %s", qUtf8Printable(status));
284 return QMetaEnum::fromType<LoopStatus>().valueToKey(value);
300 if (!m_player)
return;
303 case lomiri::MediaHubService::Player::PlaybackStatus::ready:
304 case lomiri::MediaHubService::Player::PlaybackStatus::paused:
305 case lomiri::MediaHubService::Player::PlaybackStatus::stopped:
308 case lomiri::MediaHubService::Player::PlaybackStatus::playing:
328 m_connection(QDBusConnection::sessionBus()),
346 return d->m_playerAdaptor->setPlayer(impl);
352 return d->m_playerAdaptor->player();
358 return d->m_playerAdaptor->player();
364 return d->m_connection.registerObject(
objectPath,
this);
367 #include "media_player2.moc"
qint16 audioStreamRole() const
QStringList supportedUriSchemes() const
qint16 typedLoopStatus() const
PlayerAdaptor(const QDBusConnection &connection, QObject *parent)
void setTypedLoopStatus(qint16 status)
void setLoopStatus(const QString &status)
bool canGoPrevious() const
QString desktopEntry() const
void PlaybackStatusChanged(quint16 status)
QStringList orderings() const
void setShuffle(bool shuffle)
void notify(const QStringList &propertyFilter={})
static constexpr const char * paused
void Seek(quint64 microSeconds)
bool isVideoSource() const
void OpenUri(const QDBusMessage &)
QVariantMap metadata() const
void VideoDimensionChanged(quint32 height, quint32 width)
media::PlayerImplementation * player()
QStringList SupportedUriSchemes
void setVolume(double volume)
bool isAudioSource() const
virtual ~RootAdaptor()=default
static constexpr const char * stopped
void setPlayer(media::PlayerImplementation *impl)
virtual ~PlaylistsAdaptor()=default
void setPlaybackRate(double rate)
void Buffering(int percent)
double playbackRate() const
QString playbackStatus() const
bool falseProperty() const
void SetPosition(const QDBusObjectPath &, quint64)
quint32 playlistCount() const
QStringList SupportedMimeTypes
qint16 orientation() const
double minimumRate() const
QStringList supportedMimeTypes() const
double maximumRate() const
void Seeked(quint64 microSeconds)
QString loopStatus() const
const media::PlayerImplementation * player() const
static constexpr const char * playing