mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-13 01:24:11 +02:00
Merge pull request #190 from f1ori/autogenerate-dbus-mpris
autogenerate dbus adaptors for mpris
This commit is contained in:
@@ -9,6 +9,8 @@ if(NOT Qt5Core_DIR)
|
|||||||
${THIRDPARTY_DIR}/libqnetwm/libqnetwm/netwm.cpp
|
${THIRDPARTY_DIR}/libqnetwm/libqnetwm/netwm.cpp
|
||||||
)
|
)
|
||||||
SET(FDO_LINK_LIBRARIES ${LINK_LIBRARIES} ${X11_LIBRARIES})
|
SET(FDO_LINK_LIBRARIES ${LINK_LIBRARIES} ${X11_LIBRARIES})
|
||||||
|
qt4_add_dbus_interface(fdo_srcs fdonotify/org.freedesktop.Notifications.xml
|
||||||
|
FreedesktopNotificationsProxy)
|
||||||
|
|
||||||
tomahawk_add_plugin(fdonotify
|
tomahawk_add_plugin(fdonotify
|
||||||
TYPE infoplugin EXPORT_MACRO INFOPLUGINDLLEXPORT_PRO
|
TYPE infoplugin EXPORT_MACRO INFOPLUGINDLLEXPORT_PRO
|
||||||
@@ -18,12 +20,16 @@ if(NOT Qt5Core_DIR)
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
SET(mpris_srcs
|
SET(mpris_srcs
|
||||||
mpris/MprisPluginRootAdaptor.cpp
|
|
||||||
mpris/MprisPluginPlayerAdaptor.cpp
|
|
||||||
mpris/MprisPlugin.cpp
|
mpris/MprisPlugin.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
qt4_add_dbus_adaptor(mpris_srcs mpris/MprisPluginRootAdaptor.xml
|
||||||
|
mpris/MprisPlugin.h Tomahawk::InfoSystem::MprisPlugin MprisPluginRootAdaptor MprisPluginRootAdaptor)
|
||||||
|
qt4_add_dbus_adaptor(mpris_srcs mpris/MprisPluginPlayerAdaptor.xml
|
||||||
|
mpris/MprisPlugin.h Tomahawk::InfoSystem::MprisPlugin MprisPluginPlayerAdaptor MprisPluginPlayerAdaptor)
|
||||||
|
|
||||||
tomahawk_add_plugin(mpris
|
tomahawk_add_plugin(mpris
|
||||||
TYPE infoplugin EXPORT_MACRO INFOPLUGINDLLEXPORT_PRO
|
TYPE infoplugin EXPORT_MACRO INFOPLUGINDLLEXPORT_PRO
|
||||||
SOURCES "${mpris_srcs}"
|
SOURCES "${mpris_srcs}"
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
#include "FdoNotifyPlugin.h"
|
#include "FdoNotifyPlugin.h"
|
||||||
#include "utils/TomahawkUtils.h"
|
#include "utils/TomahawkUtils.h"
|
||||||
#include "ImageConverter.h"
|
#include "ImageConverter.h"
|
||||||
|
#include "FreedesktopNotificationsProxy.h"
|
||||||
|
|
||||||
#include "TomahawkSettings.h"
|
#include "TomahawkSettings.h"
|
||||||
|
|
||||||
@@ -66,8 +67,12 @@ FdoNotifyPlugin::FdoNotifyPlugin()
|
|||||||
m_supportedPushTypes << InfoNotifyUser << InfoNowPlaying << InfoTrackUnresolved << InfoNowStopped << InfoInboxReceived;
|
m_supportedPushTypes << InfoNotifyUser << InfoNowPlaying << InfoTrackUnresolved << InfoNowStopped << InfoInboxReceived;
|
||||||
|
|
||||||
// Query the window manager for its capabilties in styling notifications.
|
// Query the window manager for its capabilties in styling notifications.
|
||||||
QDBusMessage message = QDBusMessage::createMethodCall( "org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", "GetCapabilities" );
|
notifications_interface = new org::freedesktop::Notifications("org.freedesktop.Notifications", "/org/freedesktop/Notifications",
|
||||||
QDBusConnection::sessionBus().callWithCallback( message, this, SLOT( dbusCapabiltiesReplyReceived( QDBusMessage ) ) );
|
QDBusConnection::sessionBus(), this);
|
||||||
|
QDBusPendingReply<QStringList> reply = notifications_interface->GetCapabilities();
|
||||||
|
|
||||||
|
QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(reply, this);
|
||||||
|
connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(dbusCapabilitiesReplyReceived(QDBusPendingCallWatcher*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -78,24 +83,17 @@ FdoNotifyPlugin::~FdoNotifyPlugin()
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
FdoNotifyPlugin::dbusCapabiltiesReplyReceived( const QDBusMessage& reply )
|
FdoNotifyPlugin::dbusCapabilitiesReplyReceived( QDBusPendingCallWatcher* watcher )
|
||||||
{
|
{
|
||||||
if ( reply.type() != QDBusMessage::ReplyMessage )
|
QDBusMessage reply = watcher->reply();
|
||||||
{
|
watcher->deleteLater();
|
||||||
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Did not receive a ReplyMessage";
|
|
||||||
|
if (reply.type() == QDBusMessage::ErrorMessage) {
|
||||||
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Failed to request capabilities of notifications";
|
||||||
}
|
}
|
||||||
|
|
||||||
const QStringList &list = reply.arguments().at( 0 ).toStringList();
|
const QStringList &capability_list = reply.arguments().at( 0 ).toStringList();
|
||||||
QListIterator<QString> iter( list );
|
m_wmSupportsBodyMarkup = capability_list.contains("body-markup");
|
||||||
while ( iter.hasNext() )
|
|
||||||
{
|
|
||||||
QString capabilty = iter.next();
|
|
||||||
if ( capabilty.compare( "body-markup" ) == 0 )
|
|
||||||
{
|
|
||||||
m_wmSupportsBodyMarkup = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -151,23 +149,19 @@ FdoNotifyPlugin::getNotificationIconHeight()
|
|||||||
void
|
void
|
||||||
FdoNotifyPlugin::notifyUser( const QString& messageText )
|
FdoNotifyPlugin::notifyUser( const QString& messageText )
|
||||||
{
|
{
|
||||||
QDBusMessage message = QDBusMessage::createMethodCall( "org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", "Notify" );
|
QVariantMap hints;
|
||||||
|
hints["desktop-entry"] = QString( "tomahawk" );
|
||||||
QList<QVariant> arguments;
|
hints[ "image_data" ] = ImageConverter::variantForImage( QImage( RESPATH "icons/tomahawk-icon-512x512.png" ).scaledToHeight( getNotificationIconHeight() ) );
|
||||||
arguments << QString( "Tomahawk" ); //app_name
|
notifications_interface->Notify(
|
||||||
arguments << quint32( 0 ); //notification_id
|
"Tomahawk", // app_name
|
||||||
arguments << QString(); //app_icon
|
0, // notification_id
|
||||||
arguments << QString( "Tomahawk" ); //summary
|
"", // app_icon
|
||||||
arguments << QString( messageText ); //body
|
"Tomahawk", // summary
|
||||||
arguments << QStringList(); //actions
|
messageText, // body
|
||||||
|
QStringList(), // actions
|
||||||
QVariantMap dict;
|
hints, // hints
|
||||||
dict["desktop-entry"] = QString( "tomahawk" );
|
-1 // expire_timeout
|
||||||
dict[ "image_data" ] = ImageConverter::variantForImage( QImage( RESPATH "icons/tomahawk-icon-512x512.png" ).scaledToHeight( getNotificationIconHeight() ) );
|
);
|
||||||
arguments << dict; //hints
|
|
||||||
arguments << qint32( -1 ); //expire_timeout
|
|
||||||
message.setArguments( arguments );
|
|
||||||
QDBusConnection::sessionBus().send( message );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FdoNotifyPlugin::inboxReceived(const QVariant &input)
|
void FdoNotifyPlugin::inboxReceived(const QVariant &input)
|
||||||
@@ -216,26 +210,21 @@ void FdoNotifyPlugin::inboxReceived(const QVariant &input)
|
|||||||
|
|
||||||
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "sending message" << messageText;
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "sending message" << messageText;
|
||||||
|
|
||||||
QDBusMessage message = QDBusMessage::createMethodCall( "org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", "Notify" );
|
QVariantMap hints;
|
||||||
QList<QVariant> arguments;
|
hints["desktop-entry"] = QString( "tomahawk" );
|
||||||
arguments << QString( "Tomahawk" ); //app_name
|
|
||||||
arguments << m_nowPlayingId; //notification_id
|
|
||||||
arguments << QString(); //app_icon
|
|
||||||
arguments << QString( "Tomahawk - Track received" ); //summary
|
|
||||||
arguments << messageText; //body
|
|
||||||
arguments << QStringList(); //actions
|
|
||||||
QVariantMap dict;
|
|
||||||
dict["desktop-entry"] = QString( "tomahawk" );
|
|
||||||
|
|
||||||
// Convert image to QVariant and scale to a consistent size.
|
// Convert image to QVariant and scale to a consistent size.
|
||||||
dict[ "image_data" ] = ImageConverter::variantForImage( QImage( RESPATH "images/inbox-512x512.png" ).scaledToHeight( getNotificationIconHeight() ) );
|
hints[ "image_data" ] = ImageConverter::variantForImage( QImage( RESPATH "images/inbox-512x512.png" ).scaledToHeight( getNotificationIconHeight() ) );
|
||||||
|
notifications_interface->Notify(
|
||||||
arguments << dict; //hints
|
"Tomahawk", // app_name
|
||||||
arguments << qint32( -1 ); //expire_timeout
|
m_nowPlayingId, // notification_id
|
||||||
message.setArguments( arguments );
|
"", // app_icon
|
||||||
|
"Tomahawk - Track received", // summary
|
||||||
// Handle reply in a callback, so that this a non-blocking call
|
messageText, // body
|
||||||
QDBusConnection::sessionBus().send( message );
|
QStringList(), // actions
|
||||||
|
hints, // hints
|
||||||
|
-1 // expire_timeout
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -286,16 +275,8 @@ FdoNotifyPlugin::nowPlaying( const QVariant& input )
|
|||||||
|
|
||||||
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "sending message" << messageText;
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "sending message" << messageText;
|
||||||
|
|
||||||
QDBusMessage message = QDBusMessage::createMethodCall( "org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", "Notify" );
|
QVariantMap hints;
|
||||||
QList<QVariant> arguments;
|
hints["desktop-entry"] = QString( "tomahawk" );
|
||||||
arguments << QString( "Tomahawk" ); //app_name
|
|
||||||
arguments << m_nowPlayingId; //notification_id
|
|
||||||
arguments << QString(); //app_icon
|
|
||||||
arguments << QString( "Tomahawk - Now Playing" ); //summary
|
|
||||||
arguments << messageText; //body
|
|
||||||
arguments << QStringList(); //actions
|
|
||||||
QVariantMap dict;
|
|
||||||
dict["desktop-entry"] = QString( "tomahawk" );
|
|
||||||
|
|
||||||
// If there is a cover availble use it, else use Tomahawk logo as default.
|
// If there is a cover availble use it, else use Tomahawk logo as default.
|
||||||
QImage image;
|
QImage image;
|
||||||
@@ -304,14 +285,24 @@ FdoNotifyPlugin::nowPlaying( const QVariant& input )
|
|||||||
else
|
else
|
||||||
image = QImage( RESPATH "icons/tomahawk-icon-512x512.png" );
|
image = QImage( RESPATH "icons/tomahawk-icon-512x512.png" );
|
||||||
// Convert image to QVariant and scale to a consistent size.
|
// Convert image to QVariant and scale to a consistent size.
|
||||||
dict[ "image_data" ] = ImageConverter::variantForImage( image.scaledToHeight( getNotificationIconHeight() ) );
|
hints[ "image_data" ] = ImageConverter::variantForImage( image.scaledToHeight( getNotificationIconHeight() ) );
|
||||||
|
|
||||||
arguments << dict; //hints
|
|
||||||
arguments << qint32( -1 ); //expire_timeout
|
|
||||||
message.setArguments( arguments );
|
|
||||||
|
|
||||||
// Handle reply in a callback, so that this a non-blocking call
|
QDBusPendingReply<> reply = notifications_interface->Notify(
|
||||||
QDBusConnection::sessionBus().callWithCallback( message, this, SLOT( dbusPlayingReplyReceived( QDBusMessage ) ) );
|
"Tomahawk", // app_name
|
||||||
|
m_nowPlayingId, // notification_id
|
||||||
|
"", // app_icon
|
||||||
|
"Tomahawk - Now Playing", // summary
|
||||||
|
messageText, // body
|
||||||
|
QStringList(), // actions
|
||||||
|
hints, // hints
|
||||||
|
-1 // expire_timeout
|
||||||
|
);
|
||||||
|
|
||||||
|
QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(reply, this);
|
||||||
|
connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
|
||||||
|
this, SLOT(RegisterFinished(dbusPlayingReplyReceived*)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -319,8 +310,15 @@ FdoNotifyPlugin::nowPlaying( const QVariant& input )
|
|||||||
* Handle the DBus reply triggered by FdoNotifyPlugin::nowPlaying
|
* Handle the DBus reply triggered by FdoNotifyPlugin::nowPlaying
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
FdoNotifyPlugin::dbusPlayingReplyReceived( const QDBusMessage& reply )
|
FdoNotifyPlugin::dbusPlayingReplyReceived( QDBusPendingCallWatcher* watcher )
|
||||||
{
|
{
|
||||||
|
QDBusMessage reply = watcher->reply();
|
||||||
|
watcher->deleteLater();
|
||||||
|
if (reply.type() == QDBusMessage::ErrorMessage) {
|
||||||
|
tLog(LOGVERBOSE) << "Failed to grab media keys" << reply.errorName() << reply.errorMessage();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const QVariantList& list = reply.arguments();
|
const QVariantList& list = reply.arguments();
|
||||||
if ( list.count() > 0 )
|
if ( list.count() > 0 )
|
||||||
m_nowPlayingId = list.at( 0 ).toInt();
|
m_nowPlayingId = list.at( 0 ).toInt();
|
||||||
|
@@ -23,8 +23,9 @@
|
|||||||
#include "../../InfoPluginDllMacro.h"
|
#include "../../InfoPluginDllMacro.h"
|
||||||
|
|
||||||
#include "infosystem/InfoSystem.h"
|
#include "infosystem/InfoSystem.h"
|
||||||
|
#include "FreedesktopNotificationsProxy.h"
|
||||||
|
|
||||||
#include <QDBusMessage>
|
#include <QtDBus>
|
||||||
|
|
||||||
namespace Tomahawk
|
namespace Tomahawk
|
||||||
{
|
{
|
||||||
@@ -45,8 +46,8 @@ public:
|
|||||||
protected slots:
|
protected slots:
|
||||||
virtual void init() {}
|
virtual void init() {}
|
||||||
|
|
||||||
virtual void dbusPlayingReplyReceived( const QDBusMessage& reply );
|
virtual void dbusPlayingReplyReceived( QDBusPendingCallWatcher* watcher );
|
||||||
virtual void dbusCapabiltiesReplyReceived( const QDBusMessage& reply );
|
virtual void dbusCapabilitiesReplyReceived( QDBusPendingCallWatcher* watcher );
|
||||||
|
|
||||||
virtual void getInfo( Tomahawk::InfoSystem::InfoRequestData requestData )
|
virtual void getInfo( Tomahawk::InfoSystem::InfoRequestData requestData )
|
||||||
{
|
{
|
||||||
@@ -72,6 +73,7 @@ private:
|
|||||||
|
|
||||||
// Does the window manger support basic XML-based markup (a small HTML subset), see Desktop Notifications specification
|
// Does the window manger support basic XML-based markup (a small HTML subset), see Desktop Notifications specification
|
||||||
bool m_wmSupportsBodyMarkup;
|
bool m_wmSupportsBodyMarkup;
|
||||||
|
org::freedesktop::Notifications* notifications_interface;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||||
|
<node>
|
||||||
|
<interface name="org.freedesktop.Notifications">
|
||||||
|
<signal name="NotificationClosed">
|
||||||
|
<arg name="id" type="u" direction="out"/>
|
||||||
|
<arg name="reason" type="u" direction="out"/>
|
||||||
|
</signal>
|
||||||
|
<signal name="ActionInvoked">
|
||||||
|
<arg name="id" type="u" direction="out"/>
|
||||||
|
<arg name="action_key" type="s" direction="out"/>
|
||||||
|
</signal>
|
||||||
|
<method name="GetServerInformation">
|
||||||
|
<arg name="return_name" type="s" direction="out"/>
|
||||||
|
<arg name="return_vendor" type="s" direction="out"/>
|
||||||
|
<arg name="return_version" type="s" direction="out"/>
|
||||||
|
<arg name="return_spec_version" type="s" direction="out"/>
|
||||||
|
</method>
|
||||||
|
<method name="GetCapabilities">
|
||||||
|
<arg name="return_caps" type="as" direction="out"/>
|
||||||
|
</method>
|
||||||
|
<method name="CloseNotification">
|
||||||
|
<arg name="id" type="u" direction="in"/>
|
||||||
|
</method>
|
||||||
|
<method name="Notify">
|
||||||
|
<arg name="app_name" type="s" direction="in"/>
|
||||||
|
<arg name="id" type="u" direction="in"/>
|
||||||
|
<arg name="icon" type="s" direction="in"/>
|
||||||
|
<arg name="summary" type="s" direction="in"/>
|
||||||
|
<arg name="body" type="s" direction="in"/>
|
||||||
|
<arg name="actions" type="as" direction="in"/>
|
||||||
|
<arg name="hints" type="a{sv}" direction="in"/>
|
||||||
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In6" value="QVariantMap"/>
|
||||||
|
<arg name="timeout" type="i" direction="in"/>
|
||||||
|
<arg name="return_id" type="u" direction="out"/>
|
||||||
|
</method>
|
||||||
|
</interface>
|
||||||
|
</node>
|
@@ -1,205 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file was generated by qdbusxml2cpp version 0.7
|
|
||||||
* Command line was: qdbusxml2cpp -a mprispluginplayeradaptor -c MprisPluginPlayerAdaptor MprisPluginPlayerAdaptor.xml
|
|
||||||
*
|
|
||||||
* qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
|
||||||
*
|
|
||||||
* This is an auto-generated file.
|
|
||||||
* Do not edit! All changes made to it will be lost.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "MprisPluginPlayerAdaptor.h"
|
|
||||||
#include <QtCore/QMetaObject>
|
|
||||||
#include <QtCore/QByteArray>
|
|
||||||
#include <QtCore/QList>
|
|
||||||
#include <QtCore/QMap>
|
|
||||||
#include <QtCore/QString>
|
|
||||||
#include <QtCore/QStringList>
|
|
||||||
#include <QtCore/QVariant>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Implementation of adaptor class MprisPluginPlayerAdaptor
|
|
||||||
*/
|
|
||||||
|
|
||||||
MprisPluginPlayerAdaptor::MprisPluginPlayerAdaptor(QObject *parent)
|
|
||||||
: QDBusAbstractAdaptor(parent)
|
|
||||||
{
|
|
||||||
// constructor
|
|
||||||
setAutoRelaySignals(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
MprisPluginPlayerAdaptor::~MprisPluginPlayerAdaptor()
|
|
||||||
{
|
|
||||||
// destructor
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::canControl() const
|
|
||||||
{
|
|
||||||
// get the value of property CanControl
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanControl"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::canGoNext() const
|
|
||||||
{
|
|
||||||
// get the value of property CanGoNext
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanGoNext"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::canGoPrevious() const
|
|
||||||
{
|
|
||||||
// get the value of property CanGoPrevious
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanGoPrevious"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::canPause() const
|
|
||||||
{
|
|
||||||
// get the value of property CanPause
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanPause"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::canPlay() const
|
|
||||||
{
|
|
||||||
// get the value of property CanPlay
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanPlay"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::canSeek() const
|
|
||||||
{
|
|
||||||
// get the value of property CanSeek
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanSeek"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QString MprisPluginPlayerAdaptor::loopStatus() const
|
|
||||||
{
|
|
||||||
// get the value of property LoopStatus
|
|
||||||
return qvariant_cast< QString >(parent()->property("LoopStatus"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::setLoopStatus(const QString &value)
|
|
||||||
{
|
|
||||||
// set the value of property LoopStatus
|
|
||||||
parent()->setProperty("LoopStatus", qVariantFromValue(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
double MprisPluginPlayerAdaptor::maximumRate() const
|
|
||||||
{
|
|
||||||
// get the value of property MaximumRate
|
|
||||||
return qvariant_cast< double >(parent()->property("MaximumRate"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariantMap MprisPluginPlayerAdaptor::metadata() const
|
|
||||||
{
|
|
||||||
// get the value of property Metadata
|
|
||||||
return qvariant_cast< QVariantMap >(parent()->property("Metadata"));
|
|
||||||
}
|
|
||||||
|
|
||||||
double MprisPluginPlayerAdaptor::minimumRate() const
|
|
||||||
{
|
|
||||||
// get the value of property MinimumRate
|
|
||||||
return qvariant_cast< double >(parent()->property("MinimumRate"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QString MprisPluginPlayerAdaptor::playbackStatus() const
|
|
||||||
{
|
|
||||||
// get the value of property PlaybackStatus
|
|
||||||
return qvariant_cast< QString >(parent()->property("PlaybackStatus"));
|
|
||||||
}
|
|
||||||
|
|
||||||
qlonglong MprisPluginPlayerAdaptor::position() const
|
|
||||||
{
|
|
||||||
// get the value of property Position
|
|
||||||
return qvariant_cast< qlonglong >(parent()->property("Position"));
|
|
||||||
}
|
|
||||||
|
|
||||||
double MprisPluginPlayerAdaptor::rate() const
|
|
||||||
{
|
|
||||||
// get the value of property Rate
|
|
||||||
return qvariant_cast< double >(parent()->property("Rate"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::setRate(double value)
|
|
||||||
{
|
|
||||||
// set the value of property Rate
|
|
||||||
parent()->setProperty("Rate", qVariantFromValue(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginPlayerAdaptor::shuffle() const
|
|
||||||
{
|
|
||||||
// get the value of property Shuffle
|
|
||||||
return qvariant_cast< bool >(parent()->property("Shuffle"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::setShuffle(bool value)
|
|
||||||
{
|
|
||||||
// set the value of property Shuffle
|
|
||||||
parent()->setProperty("Shuffle", qVariantFromValue(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
double MprisPluginPlayerAdaptor::volume() const
|
|
||||||
{
|
|
||||||
// get the value of property Volume
|
|
||||||
return qvariant_cast< double >(parent()->property("Volume"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::setVolume(double value)
|
|
||||||
{
|
|
||||||
// set the value of property Volume
|
|
||||||
parent()->setProperty("Volume", qVariantFromValue(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::Next()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.Next
|
|
||||||
QMetaObject::invokeMethod(parent(), "Next");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::OpenUri(const QString &Uri)
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.OpenUri
|
|
||||||
QMetaObject::invokeMethod(parent(), "OpenUri", Q_ARG(QString, Uri));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::Pause()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.Pause
|
|
||||||
QMetaObject::invokeMethod(parent(), "Pause");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::Play()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.Play
|
|
||||||
QMetaObject::invokeMethod(parent(), "Play");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::PlayPause()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.PlayPause
|
|
||||||
QMetaObject::invokeMethod(parent(), "PlayPause");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::Previous()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.Previous
|
|
||||||
QMetaObject::invokeMethod(parent(), "Previous");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::Seek(qlonglong Offset)
|
|
||||||
{
|
|
||||||
qDebug() << Q_FUNC_INFO;
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.Seek
|
|
||||||
QMetaObject::invokeMethod(parent(), "Seek", Q_ARG(qlonglong, Offset));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::SetPosition(const QDBusObjectPath &TrackId, qlonglong Position)
|
|
||||||
{
|
|
||||||
qDebug() << Q_FUNC_INFO;
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.SetPosition
|
|
||||||
QMetaObject::invokeMethod(parent(), "SetPosition", Q_ARG(QDBusObjectPath, TrackId), Q_ARG(qlonglong, Position));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginPlayerAdaptor::Stop()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Player.Stop
|
|
||||||
QMetaObject::invokeMethod(parent(), "Stop");
|
|
||||||
}
|
|
||||||
|
|
@@ -1,140 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file was generated by qdbusxml2cpp version 0.7
|
|
||||||
* Command line was: qdbusxml2cpp -a mprispluginplayeradaptor -c MprisPluginPlayerAdaptor MprisPluginPlayerAdaptor.xml
|
|
||||||
*
|
|
||||||
* qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
|
||||||
*
|
|
||||||
* This is an auto-generated file.
|
|
||||||
* This file may have been hand-edited. Look for HAND-EDIT comments
|
|
||||||
* before re-generating it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MPRISPLUGINPLAYERADAPTOR_H_1313089554
|
|
||||||
#define MPRISPLUGINPLAYERADAPTOR_H_1313089554
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
#include <QtDBus/QtDBus>
|
|
||||||
|
|
||||||
class QByteArray;
|
|
||||||
template<class T> class QList;
|
|
||||||
template<class Key, class Value> class QMap;
|
|
||||||
class QString;
|
|
||||||
class QStringList;
|
|
||||||
class QVariant;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Adaptor class for interface org.mpris.MediaPlayer2.Player
|
|
||||||
*/
|
|
||||||
class MprisPluginPlayerAdaptor: public QDBusAbstractAdaptor
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player")
|
|
||||||
Q_CLASSINFO("D-Bus Introspection", ""
|
|
||||||
" <interface name=\"org.mpris.MediaPlayer2.Player\">\n"
|
|
||||||
" <method name=\"Next\"/>\n"
|
|
||||||
" <method name=\"Previous\"/>\n"
|
|
||||||
" <method name=\"Pause\"/>\n"
|
|
||||||
" <method name=\"PlayPause\"/>\n"
|
|
||||||
" <method name=\"Stop\"/>\n"
|
|
||||||
" <method name=\"Play\"/>\n"
|
|
||||||
" <method name=\"Seek\">\n"
|
|
||||||
" <arg direction=\"in\" type=\"x\" name=\"Offset\"/>\n"
|
|
||||||
" </method>\n"
|
|
||||||
" <method name=\"SetPosition\">\n"
|
|
||||||
" <arg direction=\"in\" type=\"o\" name=\"TrackId\"/>\n"
|
|
||||||
" <arg direction=\"in\" type=\"x\" name=\"Position\"/>\n"
|
|
||||||
" </method>\n"
|
|
||||||
" <method name=\"OpenUri\">\n"
|
|
||||||
" <arg direction=\"in\" type=\"s\" name=\"Uri\"/>\n"
|
|
||||||
" </method>\n"
|
|
||||||
" <signal name=\"Seeked\">\n"
|
|
||||||
" <arg direction=\"out\" type=\"x\" name=\"Position\"/>\n"
|
|
||||||
" </signal>\n"
|
|
||||||
" <property access=\"read\" type=\"s\" name=\"PlaybackStatus\"/>\n"
|
|
||||||
" <property access=\"readwrite\" type=\"s\" name=\"LoopStatus\"/>\n"
|
|
||||||
" <property access=\"readwrite\" type=\"d\" name=\"Rate\"/>\n"
|
|
||||||
" <property access=\"readwrite\" type=\"b\" name=\"Shuffle\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"a{sv}\" name=\"Metadata\">\n"
|
|
||||||
" <annotation value=\"QVariantMap\" name=\"com.trolltech.QtDBus.QtTypeName\"/>\n"
|
|
||||||
" </property>\n"
|
|
||||||
" <property access=\"readwrite\" type=\"d\" name=\"Volume\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"x\" name=\"Position\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"d\" name=\"MinimumRate\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"d\" name=\"MaximumRate\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanGoNext\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanGoPrevious\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanPlay\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanPause\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanSeek\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanControl\"/>\n"
|
|
||||||
" </interface>\n"
|
|
||||||
"")
|
|
||||||
public:
|
|
||||||
MprisPluginPlayerAdaptor(QObject *parent);
|
|
||||||
virtual ~MprisPluginPlayerAdaptor();
|
|
||||||
|
|
||||||
public: // PROPERTIES
|
|
||||||
Q_PROPERTY(bool CanControl READ canControl)
|
|
||||||
bool canControl() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool CanGoNext READ canGoNext)
|
|
||||||
bool canGoNext() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool CanGoPrevious READ canGoPrevious)
|
|
||||||
bool canGoPrevious() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool CanPause READ canPause)
|
|
||||||
bool canPause() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool CanPlay READ canPlay)
|
|
||||||
bool canPlay() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool CanSeek READ canSeek)
|
|
||||||
bool canSeek() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QString LoopStatus READ loopStatus WRITE setLoopStatus)
|
|
||||||
QString loopStatus() const;
|
|
||||||
void setLoopStatus(const QString &value);
|
|
||||||
|
|
||||||
Q_PROPERTY(double MaximumRate READ maximumRate)
|
|
||||||
double maximumRate() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QVariantMap Metadata READ metadata)
|
|
||||||
QVariantMap metadata() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(double MinimumRate READ minimumRate)
|
|
||||||
double minimumRate() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QString PlaybackStatus READ playbackStatus)
|
|
||||||
QString playbackStatus() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(qlonglong Position READ position)
|
|
||||||
qlonglong position() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(double Rate READ rate WRITE setRate)
|
|
||||||
double rate() const;
|
|
||||||
void setRate(double value);
|
|
||||||
|
|
||||||
Q_PROPERTY(bool Shuffle READ shuffle WRITE setShuffle)
|
|
||||||
bool shuffle() const;
|
|
||||||
void setShuffle(bool value);
|
|
||||||
|
|
||||||
Q_PROPERTY(double Volume READ volume WRITE setVolume)
|
|
||||||
double volume() const;
|
|
||||||
void setVolume(double value);
|
|
||||||
|
|
||||||
public Q_SLOTS: // METHODS
|
|
||||||
void Next();
|
|
||||||
void OpenUri(const QString &Uri);
|
|
||||||
void Pause();
|
|
||||||
void Play();
|
|
||||||
void PlayPause();
|
|
||||||
void Previous();
|
|
||||||
void Seek(qlonglong Offset);
|
|
||||||
void SetPosition(const QDBusObjectPath &TrackId, qlonglong Position);
|
|
||||||
void Stop();
|
|
||||||
Q_SIGNALS: // SIGNALS
|
|
||||||
void Seeked(qlonglong Position);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,92 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file was generated by qdbusxml2cpp version 0.7
|
|
||||||
* Command line was: qdbusxml2cpp -a mprispluginrootadaptor -c MprisPluginRootAdaptor MprisPluginRootAdaptor.xml
|
|
||||||
*
|
|
||||||
* qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
|
||||||
*
|
|
||||||
* This is an auto-generated file.
|
|
||||||
* Do not edit! All changes made to it will be lost.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "MprisPluginRootAdaptor.h"
|
|
||||||
#include <QtCore/QMetaObject>
|
|
||||||
#include <QtCore/QByteArray>
|
|
||||||
#include <QtCore/QList>
|
|
||||||
#include <QtCore/QMap>
|
|
||||||
#include <QtCore/QString>
|
|
||||||
#include <QtCore/QStringList>
|
|
||||||
#include <QtCore/QVariant>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Implementation of adaptor class MprisPluginRootAdaptor
|
|
||||||
*/
|
|
||||||
|
|
||||||
MprisPluginRootAdaptor::MprisPluginRootAdaptor(QObject *parent)
|
|
||||||
: QDBusAbstractAdaptor(parent)
|
|
||||||
{
|
|
||||||
// constructor
|
|
||||||
setAutoRelaySignals(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
MprisPluginRootAdaptor::~MprisPluginRootAdaptor()
|
|
||||||
{
|
|
||||||
// destructor
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginRootAdaptor::canQuit() const
|
|
||||||
{
|
|
||||||
// get the value of property CanQuit
|
|
||||||
return qvariant_cast< bool >(parent()->property("CanQuit"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginRootAdaptor::canRaise() const
|
|
||||||
{
|
|
||||||
qDebug() << Q_FUNC_INFO;
|
|
||||||
// get the value of property CanRaise
|
|
||||||
bool ret = qvariant_cast< bool >(parent()->property("CanRaise"));
|
|
||||||
qDebug() << "ret: " << ret;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString MprisPluginRootAdaptor::desktopEntry() const
|
|
||||||
{
|
|
||||||
// get the value of property DesktopEntry
|
|
||||||
return qvariant_cast< QString >(parent()->property("DesktopEntry"));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MprisPluginRootAdaptor::hasTrackList() const
|
|
||||||
{
|
|
||||||
// get the value of property HasTrackList
|
|
||||||
return qvariant_cast< bool >(parent()->property("HasTrackList"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QString MprisPluginRootAdaptor::identity() const
|
|
||||||
{
|
|
||||||
// get the value of property Identity
|
|
||||||
return qvariant_cast< QString >(parent()->property("Identity"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList MprisPluginRootAdaptor::supportedMimeTypes() const
|
|
||||||
{
|
|
||||||
// get the value of property SupportedMimeTypes
|
|
||||||
return qvariant_cast< QStringList >(parent()->property("SupportedMimeTypes"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList MprisPluginRootAdaptor::supportedUriSchemes() const
|
|
||||||
{
|
|
||||||
// get the value of property SupportedUriSchemes
|
|
||||||
return qvariant_cast< QStringList >(parent()->property("SupportedUriSchemes"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginRootAdaptor::Quit()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Quit
|
|
||||||
QMetaObject::invokeMethod(parent(), "Quit");
|
|
||||||
}
|
|
||||||
|
|
||||||
void MprisPluginRootAdaptor::Raise()
|
|
||||||
{
|
|
||||||
// handle method call org.mpris.MediaPlayer2.Raise
|
|
||||||
QMetaObject::invokeMethod(parent(), "Raise");
|
|
||||||
}
|
|
||||||
|
|
@@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file was generated by qdbusxml2cpp version 0.7
|
|
||||||
* Command line was: qdbusxml2cpp -a mprispluginrootadaptor -c MprisPluginRootAdaptor MprisPluginRootAdaptor.xml
|
|
||||||
*
|
|
||||||
* qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
|
||||||
*
|
|
||||||
* This is an auto-generated file.
|
|
||||||
* This file may have been hand-edited. Look for HAND-EDIT comments
|
|
||||||
* before re-generating it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MPRISPLUGINROOTADAPTOR_H_1312900930
|
|
||||||
#define MPRISPLUGINROOTADAPTOR_H_1312900930
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
#include <QtDBus/QtDBus>
|
|
||||||
|
|
||||||
class QByteArray;
|
|
||||||
template<class T> class QList;
|
|
||||||
template<class Key, class Value> class QMap;
|
|
||||||
class QString;
|
|
||||||
class QStringList;
|
|
||||||
class QVariant;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Adaptor class for interface org.mpris.MediaPlayer2
|
|
||||||
*/
|
|
||||||
class MprisPluginRootAdaptor: public QDBusAbstractAdaptor
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2")
|
|
||||||
Q_CLASSINFO("D-Bus Introspection", ""
|
|
||||||
" <interface name=\"org.mpris.MediaPlayer2\">\n"
|
|
||||||
" <method name=\"Raise\"/>\n"
|
|
||||||
" <method name=\"Quit\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanQuit\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"CanRaise\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"b\" name=\"HasTrackList\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"s\" name=\"Identity\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"s\" name=\"DesktopEntry\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"as\" name=\"SupportedUriSchemes\"/>\n"
|
|
||||||
" <property access=\"read\" type=\"as\" name=\"SupportedMimeTypes\"/>\n"
|
|
||||||
" </interface>\n"
|
|
||||||
"")
|
|
||||||
public:
|
|
||||||
MprisPluginRootAdaptor(QObject *parent);
|
|
||||||
virtual ~MprisPluginRootAdaptor();
|
|
||||||
|
|
||||||
public: // PROPERTIES
|
|
||||||
Q_PROPERTY(bool CanQuit READ canQuit)
|
|
||||||
bool canQuit() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool CanRaise READ canRaise)
|
|
||||||
bool canRaise() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QString DesktopEntry READ desktopEntry)
|
|
||||||
QString desktopEntry() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(bool HasTrackList READ hasTrackList)
|
|
||||||
bool hasTrackList() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QString Identity READ identity)
|
|
||||||
QString identity() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QStringList SupportedMimeTypes READ supportedMimeTypes)
|
|
||||||
QStringList supportedMimeTypes() const;
|
|
||||||
|
|
||||||
Q_PROPERTY(QStringList SupportedUriSchemes READ supportedUriSchemes)
|
|
||||||
QStringList supportedUriSchemes() const;
|
|
||||||
|
|
||||||
public Q_SLOTS: // METHODS
|
|
||||||
void Quit();
|
|
||||||
void Raise();
|
|
||||||
Q_SIGNALS: // SIGNALS
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
Reference in New Issue
Block a user