Warning, file /network/kdeconnect-kde/plugins/mprisremote/mprisremoteplayermediaplayer2player.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: 2019 Matthijs Tijink <matthijstijink@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 #pragma once
0007 
0008 #include <QDBusAbstractAdaptor>
0009 #include <QDBusObjectPath>
0010 #include <QVariantMap>
0011 
0012 class MprisRemotePlayer;
0013 class MprisRemotePlugin;
0014 
0015 class MprisRemotePlayerMediaPlayer2Player : public QDBusAbstractAdaptor
0016 {
0017     Q_OBJECT
0018     Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player")
0019 
0020     Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus)
0021     Q_PROPERTY(double Rate READ Rate CONSTANT)
0022     Q_PROPERTY(QVariantMap Metadata READ Metadata)
0023     Q_PROPERTY(double Volume READ Volume WRITE setVolume)
0024     Q_PROPERTY(qlonglong Position READ Position)
0025     Q_PROPERTY(double MinimumRate READ MinimumRate)
0026     Q_PROPERTY(double MaximumRate READ MaximumRate)
0027     Q_PROPERTY(bool CanGoNext READ CanGoNext)
0028     Q_PROPERTY(bool CanGoPrevious READ CanGoPrevious)
0029     Q_PROPERTY(bool CanPlay READ CanPlay)
0030     Q_PROPERTY(bool CanPause READ CanPause)
0031     Q_PROPERTY(bool CanSeek READ CanSeek CONSTANT)
0032     Q_PROPERTY(bool CanControl READ CanControl CONSTANT)
0033 
0034 public:
0035     explicit MprisRemotePlayerMediaPlayer2Player(MprisRemotePlayer *parent, MprisRemotePlugin *plugin);
0036 
0037 public Q_SLOTS:
0038     void Next();
0039     void Previous();
0040     void Pause();
0041     void PlayPause();
0042     void Stop();
0043     void Play();
0044     void Seek(qlonglong Offset);
0045     void SetPosition(QDBusObjectPath TrackId, qlonglong Position);
0046     void OpenUri(QString Uri);
0047 
0048 public:
0049     QString PlaybackStatus() const;
0050     double Rate() const;
0051     QVariantMap Metadata() const;
0052     double Volume() const;
0053     void setVolume(double volume) const;
0054     qlonglong Position() const;
0055     double MinimumRate() const;
0056     double MaximumRate() const;
0057     bool CanGoNext() const;
0058     bool CanGoPrevious() const;
0059     bool CanPlay() const;
0060     bool CanPause() const;
0061     bool CanSeek() const;
0062     bool CanControl() const;
0063 
0064 Q_SIGNALS:
0065     void Seeked(qlonglong position);
0066 
0067 private:
0068     MprisRemotePlayer *m_parent;
0069     MprisRemotePlugin *m_plugin;
0070 
0071     bool m_controlsChanged;
0072     bool m_trackInfoChanged;
0073     bool m_positionChanged;
0074     bool m_volumeChanged;
0075     bool m_playingChanged;
0076 
0077     void controlsChanged();
0078     void trackInfoChanged();
0079     void positionChanged();
0080     void volumeChanged();
0081     void playingChanged();
0082     void emitPropertiesChanged();
0083 };