You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
12 KiB
C++
337 lines
12 KiB
C++
// -*- c++ -*-
|
|
|
|
/*!
|
|
*
|
|
* Copyright (C) 2015 Jolla Ltd.
|
|
*
|
|
* Contact: Valerio Valerio <valerio.valerio@jolla.com>
|
|
* Author: Andres Gomez <andres.gomez@jolla.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
|
|
//
|
|
// W A R N I N G
|
|
// -------------
|
|
//
|
|
// This file is not part of the public API. This header file may
|
|
// change from version to version without notice, or even be
|
|
// removed.
|
|
//
|
|
// We mean it.
|
|
//
|
|
//
|
|
|
|
|
|
#ifndef MPRISCONTROLLER_P_H
|
|
#define MPRISCONTROLLER_P_H
|
|
|
|
#include "qtdbusextended/dbusextendedabstractinterface.h"
|
|
|
|
#include <QtCore/QObject>
|
|
#include <QtCore/QByteArray>
|
|
#include <QtCore/QList>
|
|
#include <QtCore/QMap>
|
|
#include <QtCore/QString>
|
|
#include <QtCore/QStringList>
|
|
#include <QtCore/QVariant>
|
|
#include <QtDBus/QtDBus>
|
|
|
|
/*
|
|
* Proxy class for interface org.mpris.MediaPlayer2
|
|
*/
|
|
class MprisRootInterface: public DBusExtendedAbstractInterface
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
static inline const char *staticInterfaceName()
|
|
{ return "org.mpris.MediaPlayer2"; }
|
|
|
|
public:
|
|
MprisRootInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
|
|
|
|
~MprisRootInterface();
|
|
|
|
Q_PROPERTY(bool CanQuit READ canQuit NOTIFY canQuitChanged)
|
|
inline bool canQuit()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanQuit", &m_canQuit)); }
|
|
|
|
Q_PROPERTY(bool CanRaise READ canRaise NOTIFY canRaiseChanged)
|
|
inline bool canRaise()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanRaise", &m_canRaise)); }
|
|
|
|
Q_PROPERTY(bool CanSetFullscreen READ canSetFullscreen NOTIFY canSetFullscreenChanged)
|
|
inline bool canSetFullscreen()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanSetFullscreen", &m_canSetFullscreen)); }
|
|
|
|
Q_PROPERTY(QString DesktopEntry READ desktopEntry NOTIFY desktopEntryChanged)
|
|
inline QString desktopEntry()
|
|
{ return qvariant_cast< QString >(internalPropGet("DesktopEntry", &m_desktopEntry)); }
|
|
|
|
Q_PROPERTY(bool Fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
|
|
inline bool fullscreen()
|
|
{ return qvariant_cast< bool >(internalPropGet("Fullscreen", &m_fullscreen)); }
|
|
inline void setFullscreen(bool value)
|
|
{ m_fullscreen = value; internalPropSet("Fullscreen", QVariant::fromValue(value), &m_fullscreen); }
|
|
|
|
Q_PROPERTY(bool HasTrackList READ hasTrackList NOTIFY hasTrackListChanged)
|
|
inline bool hasTrackList()
|
|
{ return qvariant_cast< bool >(internalPropGet("HasTrackList", &m_hasTrackList)); }
|
|
|
|
Q_PROPERTY(QString Identity READ identity NOTIFY identityChanged)
|
|
inline QString identity()
|
|
{ return qvariant_cast< QString >(internalPropGet("Identity", &m_identity)); }
|
|
|
|
Q_PROPERTY(QStringList SupportedMimeTypes READ supportedMimeTypes NOTIFY supportedMimeTypesChanged)
|
|
inline QStringList supportedMimeTypes()
|
|
{ return qvariant_cast< QStringList >(internalPropGet("SupportedMimeTypes", &m_supportedMimeTypes)); }
|
|
|
|
Q_PROPERTY(QStringList SupportedUriSchemes READ supportedUriSchemes NOTIFY supportedUriSchemesChanged)
|
|
inline QStringList supportedUriSchemes()
|
|
{ return qvariant_cast< QStringList >(internalPropGet("SupportedUriSchemes", &m_supportedUriSchemes)); }
|
|
|
|
public Q_SLOTS: // METHODS
|
|
inline QDBusPendingReply<> Quit()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Quit"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> Raise()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Raise"), argumentList);
|
|
}
|
|
|
|
Q_SIGNALS: // SIGNALS
|
|
void canQuitChanged(bool canQuit);
|
|
void canRaiseChanged(bool canRaise);
|
|
void canSetFullscreenChanged(bool canSetFullscreen);
|
|
void desktopEntryChanged(const QString &desktopEntry);
|
|
void fullscreenChanged(bool fullscreen);
|
|
void hasTrackListChanged(bool hasTrackList);
|
|
void identityChanged(const QString &identity);
|
|
void supportedMimeTypesChanged(const QStringList &supportedMimeTypes);
|
|
void supportedUriSchemesChanged(const QStringList &supportedUriSchemes);
|
|
|
|
private Q_SLOTS:
|
|
void onPropertyChanged(const QString &propertyName, const QVariant &value);
|
|
|
|
private:
|
|
bool m_canQuit;
|
|
bool m_canRaise;
|
|
bool m_canSetFullscreen;
|
|
QString m_desktopEntry;
|
|
bool m_fullscreen;
|
|
bool m_hasTrackList;
|
|
QString m_identity;
|
|
QStringList m_supportedUriSchemes;
|
|
QStringList m_supportedMimeTypes;
|
|
};
|
|
|
|
namespace org {
|
|
namespace mpris {
|
|
typedef ::MprisRootInterface MediaPlayer2;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* Proxy class for interface org.mpris.MediaPlayer2
|
|
*/
|
|
class MprisPlayerInterface: public DBusExtendedAbstractInterface
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
static inline const char *staticInterfaceName()
|
|
{ return "org.mpris.MediaPlayer2.Player"; }
|
|
|
|
public:
|
|
MprisPlayerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
|
|
|
|
~MprisPlayerInterface();
|
|
|
|
Q_PROPERTY(bool CanControl READ canControl NOTIFY canControlChanged)
|
|
inline bool canControl()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanControl", &m_canControl)); }
|
|
|
|
Q_PROPERTY(bool CanGoNext READ canGoNext NOTIFY canGoNextChanged)
|
|
inline bool canGoNext()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanGoNext", &m_canGoNext)); }
|
|
|
|
Q_PROPERTY(bool CanGoPrevious READ canGoPrevious NOTIFY canGoPreviousChanged)
|
|
inline bool canGoPrevious()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanGoPrevious", &m_canGoPrevious)); }
|
|
|
|
Q_PROPERTY(bool CanPause READ canPause NOTIFY canPauseChanged)
|
|
inline bool canPause()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanPause", &m_canPause)); }
|
|
|
|
Q_PROPERTY(bool CanPlay READ canPlay NOTIFY canPlayChanged)
|
|
inline bool canPlay()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanPlay", &m_canPlay)); }
|
|
|
|
Q_PROPERTY(bool CanSeek READ canSeek NOTIFY canSeekChanged)
|
|
inline bool canSeek()
|
|
{ return qvariant_cast< bool >(internalPropGet("CanSeek", &m_canSeek)); }
|
|
|
|
Q_PROPERTY(QString LoopStatus READ loopStatus WRITE setLoopStatus NOTIFY loopStatusChanged)
|
|
inline QString loopStatus()
|
|
{ return qvariant_cast< QString >(internalPropGet("LoopStatus", &m_loopStatus)); }
|
|
inline void setLoopStatus(const QString &value)
|
|
{ m_loopStatus = value; internalPropSet("LoopStatus", QVariant::fromValue(value), &m_loopStatus); }
|
|
|
|
Q_PROPERTY(double MaximumRate READ maximumRate NOTIFY maximumRateChanged)
|
|
inline double maximumRate()
|
|
{ return qvariant_cast< double >(internalPropGet("MaximumRate", &m_maximumRate)); }
|
|
|
|
Q_PROPERTY(QVariantMap Metadata READ metadata NOTIFY metadataChanged)
|
|
inline QVariantMap metadata()
|
|
{ return qvariant_cast< QVariantMap >(internalPropGet("Metadata", &m_metadata)); }
|
|
|
|
Q_PROPERTY(double MinimumRate READ minimumRate NOTIFY minimumRateChanged)
|
|
inline double minimumRate()
|
|
{ return qvariant_cast< double >(internalPropGet("MinimumRate", &m_minimumRate)); }
|
|
|
|
Q_PROPERTY(QString PlaybackStatus READ playbackStatus NOTIFY playbackStatusChanged)
|
|
inline QString playbackStatus()
|
|
{ return qvariant_cast< QString >(internalPropGet("PlaybackStatus", &m_playbackStatus)); }
|
|
|
|
Q_PROPERTY(qlonglong Position READ position NOTIFY positionChanged)
|
|
inline qlonglong position()
|
|
{ return qvariant_cast< qlonglong >(internalPropGet("Position", &m_position)); }
|
|
|
|
Q_PROPERTY(double Rate READ rate WRITE setRate NOTIFY rateChanged)
|
|
inline double rate()
|
|
{ return qvariant_cast< double >(internalPropGet("Rate", &m_rate)); }
|
|
inline void setRate(double value)
|
|
{ m_rate = value; internalPropSet("Rate", QVariant::fromValue(value), &m_rate); }
|
|
|
|
Q_PROPERTY(bool Shuffle READ shuffle WRITE setShuffle NOTIFY shuffleChanged)
|
|
inline bool shuffle()
|
|
{ return qvariant_cast< bool >(internalPropGet("Shuffle", &m_shuffle)); }
|
|
inline void setShuffle(bool value)
|
|
{ m_shuffle = value; internalPropSet("Shuffle", QVariant::fromValue(value), &m_shuffle); }
|
|
|
|
Q_PROPERTY(double Volume READ volume WRITE setVolume NOTIFY volumeChanged)
|
|
inline double volume()
|
|
{ return qvariant_cast< double >(internalPropGet("Volume", &m_volume)); }
|
|
inline void setVolume(double value)
|
|
{ m_volume = value; internalPropSet("Volume", QVariant::fromValue(value), &m_volume); }
|
|
|
|
public Q_SLOTS: // METHODS
|
|
inline QDBusPendingReply<> Next()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Next"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> OpenUri(const QString &Uri)
|
|
{
|
|
QList<QVariant> argumentList;
|
|
argumentList << QVariant::fromValue(Uri);
|
|
return asyncCallWithArgumentList(QLatin1String("OpenUri"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> Pause()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Pause"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> Play()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Play"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> PlayPause()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("PlayPause"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> Previous()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Previous"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> Seek(qlonglong Offset)
|
|
{
|
|
QList<QVariant> argumentList;
|
|
argumentList << QVariant::fromValue(Offset);
|
|
return asyncCallWithArgumentList(QLatin1String("Seek"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> SetPosition(const QDBusObjectPath &TrackId, qlonglong Position)
|
|
{
|
|
QList<QVariant> argumentList;
|
|
argumentList << QVariant::fromValue(TrackId) << QVariant::fromValue(Position);
|
|
return asyncCallWithArgumentList(QLatin1String("SetPosition"), argumentList);
|
|
}
|
|
|
|
inline QDBusPendingReply<> Stop()
|
|
{
|
|
QList<QVariant> argumentList;
|
|
return asyncCallWithArgumentList(QLatin1String("Stop"), argumentList);
|
|
}
|
|
|
|
Q_SIGNALS: // SIGNALS
|
|
void canControlChanged(bool canControl);
|
|
void canGoNextChanged(bool canGoNext);
|
|
void canGoPreviousChanged(bool canGoPrevious);
|
|
void canPauseChanged(bool canPause);
|
|
void canPlayChanged(bool canPlay);
|
|
void canSeekChanged(bool canSeek);
|
|
void loopStatusChanged(const QString &loopStatus);
|
|
void maximumRateChanged(double maximumRate);
|
|
void metadataChanged(const QVariantMap &metadata);
|
|
void minimumRateChanged(double minimumRate);
|
|
void playbackStatusChanged(const QString &playbackStatus);
|
|
void positionChanged(qlonglong rate);
|
|
void rateChanged(double rate);
|
|
void shuffleChanged(bool shuffle);
|
|
void volumeChanged(double volume);
|
|
void seeked(qlonglong Position);
|
|
|
|
private Q_SLOTS:
|
|
void onPropertyChanged(const QString &propertyName, const QVariant &value);
|
|
|
|
private:
|
|
bool m_canControl;
|
|
bool m_canGoNext;
|
|
bool m_canGoPrevious;
|
|
bool m_canPause;
|
|
bool m_canPlay;
|
|
bool m_canSeek;
|
|
QString m_loopStatus;
|
|
double m_maximumRate;
|
|
QVariantMap m_metadata;
|
|
double m_minimumRate;
|
|
QString m_playbackStatus;
|
|
qlonglong m_position;
|
|
double m_rate;
|
|
bool m_shuffle;
|
|
double m_volume;
|
|
};
|
|
|
|
namespace MediaPlayer2 {
|
|
typedef ::MprisPlayerInterface Player;
|
|
}
|
|
|
|
#endif /* MPRISROOTINTERFACE_P_H */
|