Warning, file /multimedia/dragon/src/mpris2/mediaplayer2player.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2012 Eike Hein <hein@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #ifndef DRAGONPLAYER_MEDIAPLAYER2PLAYER_H
0008 #define DRAGONPLAYER_MEDIAPLAYER2PLAYER_H
0009 
0010 #include <QDBusAbstractAdaptor>
0011 #include <QDBusObjectPath>
0012 
0013 #include <phonon/MediaSource>
0014 
0015 class MediaPlayer2Player : public QDBusAbstractAdaptor
0016 {
0017     Q_OBJECT
0018     Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html
0019 
0020     Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus)
0021     Q_PROPERTY(QString LoopStatus READ LoopStatus WRITE setLoopStatus)
0022     Q_PROPERTY(double Rate READ Rate WRITE setRate)
0023     Q_PROPERTY(bool Shuffle READ Shuffle WRITE setShuffle)
0024     Q_PROPERTY(QVariantMap Metadata READ Metadata)
0025     Q_PROPERTY(double Volume READ Volume WRITE setVolume)
0026     Q_PROPERTY(qlonglong Position READ Position)
0027     Q_PROPERTY(double MinimumRate READ MinimumRate)
0028     Q_PROPERTY(double MaximumRate READ MaximumRate)
0029     Q_PROPERTY(bool CanGoNext READ CanGoNext)
0030     Q_PROPERTY(bool CanGoPrevious READ CanGoPrevious)
0031     Q_PROPERTY(bool CanPlay READ CanPlay)
0032     Q_PROPERTY(bool CanPause READ CanPause)
0033     Q_PROPERTY(bool CanSeek READ CanSeek)
0034     Q_PROPERTY(bool CanControl READ CanControl)
0035 
0036 public:
0037     explicit MediaPlayer2Player(QObject *parent);
0038     ~MediaPlayer2Player() override;
0039 
0040     QString PlaybackStatus() const;
0041     QString LoopStatus() const;
0042     void setLoopStatus(const QString &loopStatus) const;
0043     double Rate() const;
0044     void setRate(double rate) const;
0045     bool Shuffle() const;
0046     void setShuffle(bool shuffle) const;
0047     QVariantMap Metadata() const;
0048     double Volume() const;
0049     void setVolume(double volume) const;
0050     qlonglong Position() const;
0051     double MinimumRate() const;
0052     double MaximumRate() const;
0053     bool CanGoNext() const;
0054     bool CanGoPrevious() const;
0055     bool CanPlay() const;
0056     bool CanPause() const;
0057     bool CanSeek() const;
0058     bool CanControl() const;
0059 
0060 Q_SIGNALS:
0061     void Seeked(qlonglong Position) const;
0062 
0063 public Q_SLOTS:
0064     void Next() const;
0065     void Previous() const;
0066     void Pause() const;
0067     void PlayPause() const;
0068     void Stop() const;
0069     void Play() const;
0070     void Seek(qlonglong Offset) const;
0071     void SetPosition(const QDBusObjectPath &TrackId, qlonglong Position) const;
0072     void OpenUri(QString Uri) const;
0073 
0074 private Q_SLOTS:
0075     void tick(qint64 newPos);
0076     void emitMetadataChange() const;
0077     void currentSourceChanged() const;
0078     void stateUpdated() const;
0079     void totalTimeChanged() const;
0080     void seekableChanged(bool seekable) const;
0081     void volumeChanged() const;
0082 
0083 private:
0084     qint64 oldPos;
0085 };
0086 
0087 #endif