[solved]QTDbus - amarok vs PropertiesChanged
Verfasst: 16. Mai 2011 22:28
Hallo zusammen,
ich versuche verzweifelt das Signal PropertiesChanged von amarok zu "fangen".
amarok füllt das Signal wie folgt:
Und ich versuche es zu "fangen":
Laut connStat konnte die Verbindung auch erstellt werden. Allerdings kommt das Signal niemals in der entsprechenden Funktion an.
Mit Python habe ich es leicht hinbekommen und vermute, dass es an der Liste der Attribute liegt.
Hoffe auf Mithilfe
Matthias
ich versuche verzweifelt das Signal PropertiesChanged von amarok zu "fangen".
amarok füllt das Signal wie folgt:
Code: Alles auswählen
QVariantMap map;
Q_FOREACH( const QByteArray &name, m_changedProperties )
map.insert( name, property( name.data() ) );
m_changedProperties.clear();
QDBusMessage msg = QDBusMessage::createSignal( MPRIS2_OBJECT_PATH, FDO_PROPERTIES_INTERFACE, "PropertiesChanged" );
QVariantList args = QVariantList()
<< MPRIS2_PLAYER_INTERFACE
<< map
<< QStringList();
msg.setArguments( args );
QDBusConnection::sessionBus().send( msg );Code: Alles auswählen
public slots:
void statusChange(const QVariantList &);
private:
QDBusInterface *m_amarokPlayerDbus;
Code: Alles auswählen
m_amarokPlayerDbus = new QDBusInterface( "org.mpris.MediaPlayer2.amarok", "/org/mpris/MediaPlayer2", "");
bool connStat = QDBusConnection::sessionBus().connect("org.mpris.MediaPlayer2.amarok",
"/org/mpris/MediaPlayer2/Player",
"org.freedesktop.DBus.Properties",
"PropertiesChanged",
this,
SLOT(statusChange(const QVariantList & )) );
Mit Python habe ich es leicht hinbekommen und vermute, dass es an der Liste der Attribute liegt.
Hoffe auf Mithilfe
Matthias