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