kdeconnect-kde/plugins/mprisremote/mprisremoteplayer.h
Albert Vaca Cintora 2e0550651e Remove mpris "nowPlaying" field
We've had separate title & artist for a while, and all clients should be
using those by now.

Also fixes the position change not being emitted when the song changes,
and fixes the values being written after emitting that they changed.
2023-06-08 21:58:58 +00:00

67 lines
1.5 KiB
C++

/**
* SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#pragma once
#include <QDBusConnection>
#include <QString>
class NetworkPacket;
class MprisRemotePlugin;
class MprisRemotePlayer : public QObject
{
Q_OBJECT
public:
explicit MprisRemotePlayer(QString id, MprisRemotePlugin *plugin);
~MprisRemotePlayer() override;
void parseNetworkPacket(const NetworkPacket &np);
long position() const;
void setPosition(long position);
int volume() const;
long length() const;
bool playing() const;
QString title() const;
QString artist() const;
QString album() const;
QString identity() const;
bool canSeek() const;
bool canPlay() const;
bool canPause() const;
bool canGoPrevious() const;
bool canGoNext() const;
QDBusConnection &dbus();
Q_SIGNALS:
void controlsChanged();
void trackInfoChanged();
void positionChanged();
void volumeChanged();
void playingChanged();
private:
QString id;
bool m_playing;
bool m_canPlay;
bool m_canPause;
bool m_canGoPrevious;
bool m_canGoNext;
int m_volume;
long m_length;
long m_lastPosition;
qint64 m_lastPositionTime;
QString m_title;
QString m_artist;
QString m_album;
bool m_canSeek;
// Use an unique connection for every player, otherwise we can't distinguish which mpris player is being controlled
QString m_dbusConnectionName;
QDBusConnection m_dbusConnection;
};