Improve Kaffeine support in Kopete now listening plugin

(cherry picked from commit f670853164)
v3.5.13-sru
Slávek Banko 13 years ago
parent 3575dbebe7
commit ef4a78ff54

@ -40,7 +40,7 @@ void NLKaffeine::update()
m_newTrack = false; m_newTrack = false;
TQString newTrack; TQString newTrack;
bool error = true; // Asume we have a error first. bool error = true; // Asume we have a error first.
TQCString kaffeineIface("Kaffeine"), kaffeineGetTrack("getTitle()"); TQCString kaffeineIface("KaffeineIface"), kaffeineGetTrack("title()");
// see if kaffeine is registered with DCOP // see if kaffeine is registered with DCOP
if ( m_client->isApplicationRegistered( "kaffeine" ) ) if ( m_client->isApplicationRegistered( "kaffeine" ) )
@ -52,10 +52,10 @@ void NLKaffeine::update()
if ( !m_client->call( "kaffeine", kaffeineIface, "isPlaying()", data, if ( !m_client->call( "kaffeine", kaffeineIface, "isPlaying()", data,
replyType, replyData ) ) replyType, replyData ) )
{ {
kdDebug ( 14307 ) << k_funcinfo << " Trying DCOP interface of Kaffeine >= 0.5" << endl; kdDebug ( 14307 ) << k_funcinfo << " Trying DCOP interface of Kaffeine < 0.5" << endl;
// Trying with the new Kaffeine DCOP interface (>=0.5) // Trying with the old Kaffeine DCOP interface (<0.5)
kaffeineIface = "KaffeineIface"; kaffeineIface = "Kaffeine";
kaffeineGetTrack = "title()"; kaffeineGetTrack = "getTitle()";
if( !m_client->call( "kaffeine", kaffeineIface, "isPlaying()", data, replyType, replyData ) ) if( !m_client->call( "kaffeine", kaffeineIface, "isPlaying()", data, replyType, replyData ) )
{ {
kdDebug( 14307 ) << k_funcinfo << " DCOP error on Kaffeine." << endl; kdDebug( 14307 ) << k_funcinfo << " DCOP error on Kaffeine." << endl;
@ -94,6 +94,31 @@ void NLKaffeine::update()
m_newTrack = true; m_newTrack = true;
m_track = newTrack; m_track = newTrack;
} }
if ( kaffeineIface == "Kaffeine" )
{
// old Kaffeine DCOP interface (<0.5)
return;
}
if ( m_client->call( "kaffeine", kaffeineIface, "album()", data,
replyType, replyData ) )
{
TQDataStream reply( replyData, IO_ReadOnly );
if ( replyType == TQSTRING_OBJECT_NAME_STRING ) {
reply >> m_album;
}
}
if ( m_client->call( "kaffeine", kaffeineIface, "artist()", data,
replyType, replyData ) )
{
TQDataStream reply( replyData, IO_ReadOnly );
if ( replyType == TQSTRING_OBJECT_NAME_STRING ) {
reply >> m_artist;
}
}
} }
else else
kdDebug ( 14307 ) << "Kaffeine is not running!\n" << endl; kdDebug ( 14307 ) << "Kaffeine is not running!\n" << endl;

Loading…
Cancel
Save