From 248e3e7a4a2dee83770daaacda8678d9e833de5e Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Tue, 19 Apr 2011 16:36:01 -0400 Subject: [PATCH] Rename some values and make slots and other functions use const values, for sanity checking --- .../infosystem/infoplugins/echonestplugin.cpp | 109 ++++++++++-------- .../infosystem/infoplugins/echonestplugin.h | 19 +-- .../infosystem/infoplugins/lastfmplugin.cpp | 60 +++++----- .../infosystem/infoplugins/lastfmplugin.h | 18 +-- .../infoplugins/musixmatchplugin.cpp | 30 ++--- .../infosystem/infoplugins/musixmatchplugin.h | 12 +- src/libtomahawk/infosystem/infosystem.cpp | 4 +- src/libtomahawk/infosystem/infosystem.h | 16 ++- .../infosystem/infosystemcache.cpp | 10 +- src/libtomahawk/infosystem/infosystemcache.h | 8 +- 10 files changed, 155 insertions(+), 131 deletions(-) diff --git a/src/libtomahawk/infosystem/infoplugins/echonestplugin.cpp b/src/libtomahawk/infosystem/infoplugins/echonestplugin.cpp index 73dd3b7b2..a153525e5 100644 --- a/src/libtomahawk/infosystem/infoplugins/echonestplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/echonestplugin.cpp @@ -39,22 +39,23 @@ EchoNestPlugin::~EchoNestPlugin() qDebug() << Q_FUNC_INFO; } -void EchoNestPlugin::getInfo(const QString &caller, const InfoType type, const QVariant& data, InfoCustomData customData) +void +EchoNestPlugin::getInfo(const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData) { switch (type) { case Tomahawk::InfoSystem::InfoArtistBiography: - return getArtistBiography(caller, data, customData); + return getArtistBiography(caller, input, customData); case Tomahawk::InfoSystem::InfoArtistFamiliarity: - return getArtistFamiliarity(caller, data, customData); + return getArtistFamiliarity(caller, input, customData); case Tomahawk::InfoSystem::InfoArtistHotttness: - return getArtistHotttnesss(caller, data, customData); + return getArtistHotttnesss(caller, input, customData); case Tomahawk::InfoSystem::InfoArtistTerms: - return getArtistTerms(caller, data, customData); + return getArtistTerms(caller, input, customData); case Tomahawk::InfoSystem::InfoTrackEnergy: - return getSongProfile(caller, data, customData, "energy"); + return getSongProfile(caller, input, customData, "energy"); case Tomahawk::InfoSystem::InfoMiscTopTerms: - return getMiscTopTerms(caller, data, customData); + return getMiscTopTerms(caller, input, customData); default: { emit info(caller, Tomahawk::InfoSystem::InfoNoInfo, QVariant(), QVariant(), customData); @@ -63,82 +64,88 @@ void EchoNestPlugin::getInfo(const QString &caller, const InfoType type, const Q } } -void EchoNestPlugin::getSongProfile(const QString &caller, const QVariant& data, InfoCustomData &customData, const QString &item) +void +EchoNestPlugin::getSongProfile(const QString &caller, const QVariant &input, const InfoCustomData &customData, const QString &item) { //WARNING: Totally not implemented yet Q_UNUSED( item ); - if( !isValidTrackData( caller, data, customData ) ) + if( !isValidTrackData( caller, input, customData ) ) return; -// Track track( data.toString() ); -// Artist artist( customData.data()->property("artistName").toString() ); +// Track track( input.toString() ); +// Artist artist( customData.input()->property("artistName").toString() ); // reply->setProperty("artist", QVariant::fromValue(artist)); -// reply->setProperty( "data", data ); +// reply->setProperty( "input", input ); // m_replyMap[reply] = customData; // connect(reply, SIGNAL(finished()), SLOT(getArtistBiographySlot())); } -void EchoNestPlugin::getArtistBiography(const QString &caller, const QVariant& data, InfoCustomData &customData) +void +EchoNestPlugin::getArtistBiography(const QString &caller, const QVariant &input, const InfoCustomData &customData) { - if( !isValidArtistData( caller, data, customData ) ) + if( !isValidArtistData( caller, input, customData ) ) return; - Echonest::Artist artist( data.toString() ); + Echonest::Artist artist( input.toString() ); QNetworkReply *reply = artist.fetchBiographies(); reply->setProperty("artist", QVariant::fromValue(artist)); - reply->setProperty( "data", data ); + reply->setProperty( "input", input ); m_replyMap[reply] = customData; m_callerMap[reply] = caller; connect(reply, SIGNAL(finished()), SLOT(getArtistBiographySlot())); } -void EchoNestPlugin::getArtistFamiliarity(const QString &caller, const QVariant& data, InfoCustomData &customData) +void +EchoNestPlugin::getArtistFamiliarity(const QString &caller, const QVariant &input, const InfoCustomData &customData) { - if( !isValidArtistData( caller, data, customData ) ) + if( !isValidArtistData( caller, input, customData ) ) return; - qDebug() << "Fetching artist familiarity!" << data; - Echonest::Artist artist( data.toString() ); + qDebug() << "Fetching artist familiarity!" << input; + Echonest::Artist artist( input.toString() ); QNetworkReply* reply = artist.fetchFamiliarity(); reply->setProperty( "artist", QVariant::fromValue(artist)); - reply->setProperty( "data", data ); + reply->setProperty( "input", input ); m_replyMap[reply] = customData; m_callerMap[reply] = caller; connect(reply, SIGNAL(finished()), SLOT(getArtistFamiliaritySlot())); } -void EchoNestPlugin::getArtistHotttnesss(const QString &caller, const QVariant& data, InfoCustomData &customData) +void +EchoNestPlugin::getArtistHotttnesss(const QString &caller, const QVariant &input, const InfoCustomData &customData) { - if( !isValidArtistData( caller, data, customData ) ) + if( !isValidArtistData( caller, input, customData ) ) return; - Echonest::Artist artist( data.toString() ); + Echonest::Artist artist( input.toString() ); QNetworkReply* reply = artist.fetchHotttnesss(); reply->setProperty( "artist", QVariant::fromValue(artist)); - reply->setProperty( "data", data ); + reply->setProperty( "input", input ); m_replyMap[reply] = customData; m_callerMap[reply] = caller; connect(reply, SIGNAL(finished()), SLOT(getArtistHotttnesssSlot())); } -void EchoNestPlugin::getArtistTerms(const QString &caller, const QVariant& data, InfoCustomData &customData) +void +EchoNestPlugin::getArtistTerms(const QString &caller, const QVariant &input, const InfoCustomData &customData) { - if( !isValidArtistData( caller, data, customData ) ) + if( !isValidArtistData( caller, input, customData ) ) return; - Echonest::Artist artist( data.toString() ); + Echonest::Artist artist( input.toString() ); QNetworkReply* reply = artist.fetchTerms( Echonest::Artist::Weight ); reply->setProperty( "artist", QVariant::fromValue(artist)); - reply->setProperty( "data", data ); + reply->setProperty( "input", input ); m_replyMap[reply] = customData; m_callerMap[reply] = caller; connect(reply, SIGNAL(finished()), SLOT(getArtistTermsSlot())); } -void EchoNestPlugin::getMiscTopTerms(const QString &caller, const QVariant& data, InfoCustomData& customData) +void +EchoNestPlugin::getMiscTopTerms(const QString &caller, const QVariant &input, const InfoCustomData& customData) { - Q_UNUSED( data ); + Q_UNUSED( input ); QNetworkReply* reply = Echonest::Artist::topTerms( 20 ); m_replyMap[reply] = customData; m_callerMap[reply] = caller; @@ -146,7 +153,8 @@ void EchoNestPlugin::getMiscTopTerms(const QString &caller, const QVariant& data } -void EchoNestPlugin::getArtistBiographySlot() +void +EchoNestPlugin::getArtistBiographySlot() { QNetworkReply* reply = qobject_cast( sender() ); Echonest::Artist artist = artistFromReply( reply ); @@ -162,35 +170,38 @@ void EchoNestPlugin::getArtistBiographySlot() biographyMap[biography.site()]["attribution"] = biography.license().url.toString(); } - emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistBiography, reply->property( "data" ), QVariant::fromValue(biographyMap), m_replyMap[reply] ); + emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistBiography, reply->property( "input" ), QVariant::fromValue(biographyMap), m_replyMap[reply] ); m_replyMap.remove(reply); m_callerMap.remove(reply); reply->deleteLater(); } -void EchoNestPlugin::getArtistFamiliaritySlot() +void +EchoNestPlugin::getArtistFamiliaritySlot() { QNetworkReply* reply = qobject_cast( sender() ); Echonest::Artist artist = artistFromReply( reply ); qreal familiarity = artist.familiarity(); - emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistFamiliarity, reply->property( "data" ), familiarity, m_replyMap[reply] ); + emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistFamiliarity, reply->property( "input" ), familiarity, m_replyMap[reply] ); m_replyMap.remove(reply); m_callerMap.remove(reply); reply->deleteLater(); } -void EchoNestPlugin::getArtistHotttnesssSlot() +void +EchoNestPlugin::getArtistHotttnesssSlot() { QNetworkReply* reply = qobject_cast( sender() ); Echonest::Artist artist = artistFromReply( reply ); qreal hotttnesss = artist.hotttnesss(); - emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistHotttness, reply->property( "data" ), hotttnesss, m_replyMap[reply] ); + emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistHotttness, reply->property( "input" ), hotttnesss, m_replyMap[reply] ); m_replyMap.remove(reply); m_callerMap.remove(reply); reply->deleteLater(); } -void EchoNestPlugin::getArtistTermsSlot() +void +EchoNestPlugin::getArtistTermsSlot() { QNetworkReply* reply = qobject_cast( sender() ); Echonest::Artist artist = artistFromReply( reply ); @@ -202,13 +213,14 @@ void EchoNestPlugin::getArtistTermsSlot() termMap[ "frequency" ] = QString::number(term.frequency()); termsMap[ term.name() ] = termMap; } - emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistTerms, reply->property( "data" ), QVariant::fromValue(termsMap), m_replyMap[reply] ); + emit info( m_callerMap[reply], Tomahawk::InfoSystem::InfoArtistTerms, reply->property( "input" ), QVariant::fromValue(termsMap), m_replyMap[reply] ); m_replyMap.remove(reply); m_callerMap.remove(reply); reply->deleteLater(); } -void EchoNestPlugin::getMiscTopSlot() +void +EchoNestPlugin::getMiscTopSlot() { QNetworkReply* reply = qobject_cast( sender() ); TermList terms = Echonest::Artist::parseTopTerms( reply ); @@ -225,14 +237,15 @@ void EchoNestPlugin::getMiscTopSlot() reply->deleteLater(); } -bool EchoNestPlugin::isValidArtistData(const QString &caller, const QVariant& data, InfoCustomData &customData) +bool +EchoNestPlugin::isValidArtistData(const QString &caller, const QVariant &input, const InfoCustomData &customData) { - if (data.isNull() || !data.isValid() || !data.canConvert()) + if (input.isNull() || !input.isValid() || !input.canConvert()) { emit info(caller, Tomahawk::InfoSystem::InfoNoInfo, QVariant(), QVariant(), customData); return false; } - QString artistName = data.toString(); + QString artistName = input.toString(); if (artistName.isEmpty() ) { emit info(caller, Tomahawk::InfoSystem::InfoNoInfo, QVariant(), QVariant(), customData); @@ -241,14 +254,15 @@ bool EchoNestPlugin::isValidArtistData(const QString &caller, const QVariant& da return true; } -bool EchoNestPlugin::isValidTrackData(const QString &caller, const QVariant& data, InfoCustomData &customData) +bool +EchoNestPlugin::isValidTrackData(const QString &caller, const QVariant &input, const InfoCustomData &customData) { - if (data.isNull() || !data.isValid() || !data.canConvert()) + if (input.isNull() || !input.isValid() || !input.canConvert()) { emit info(caller, Tomahawk::InfoSystem::InfoNoInfo, QVariant(), QVariant(), customData); return false; } - QString trackName = data.toString(); + QString trackName = input.toString(); if (trackName.isEmpty() ) { emit info(caller, Tomahawk::InfoSystem::InfoNoInfo, QVariant(), QVariant(), customData); @@ -260,7 +274,8 @@ bool EchoNestPlugin::isValidTrackData(const QString &caller, const QVariant& dat return true; } -Artist EchoNestPlugin::artistFromReply(QNetworkReply* reply) +Artist +EchoNestPlugin::artistFromReply(QNetworkReply* reply) { Echonest::Artist artist = reply->property("artist").value(); try { diff --git a/src/libtomahawk/infosystem/infoplugins/echonestplugin.h b/src/libtomahawk/infosystem/infoplugins/echonestplugin.h index 25276c373..b443960c8 100644 --- a/src/libtomahawk/infosystem/infoplugins/echonestplugin.h +++ b/src/libtomahawk/infosystem/infoplugins/echonestplugin.h @@ -42,18 +42,19 @@ public: EchoNestPlugin(QObject *parent); virtual ~EchoNestPlugin(); - void getInfo( const QString &caller, const InfoType type, const QVariant &data, InfoCustomData customData ); +protected slots: + virtual void getInfo( const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ); private: - void getSongProfile( const QString &caller, const QVariant &data, InfoCustomData &customData, const QString &item = QString() ); - void getArtistBiography ( const QString &caller, const QVariant &data, InfoCustomData &customData ); - void getArtistFamiliarity( const QString &caller, const QVariant &data, InfoCustomData &customData ); - void getArtistHotttnesss( const QString &caller, const QVariant &data, InfoCustomData &customData ); - void getArtistTerms( const QString &caller, const QVariant &data, InfoCustomData &customData ); - void getMiscTopTerms( const QString &caller, const QVariant &data, InfoCustomData &customData ); + void getSongProfile( const QString &caller, const QVariant &input, const InfoCustomData &customData, const QString &item = QString() ); + void getArtistBiography ( const QString &caller, const QVariant &input, const InfoCustomData &customData ); + void getArtistFamiliarity( const QString &caller, const QVariant &input, const InfoCustomData &customData ); + void getArtistHotttnesss( const QString &caller, const QVariant &input, const InfoCustomData &customData ); + void getArtistTerms( const QString &caller, const QVariant &input, const InfoCustomData &customData ); + void getMiscTopTerms( const QString &caller, const QVariant &input, const InfoCustomData &customData ); - bool isValidArtistData( const QString &caller, const QVariant& data, InfoCustomData& customData ); - bool isValidTrackData( const QString &caller, const QVariant& data, InfoCustomData& customData ); + bool isValidArtistData( const QString &caller, const QVariant &input, const InfoCustomData& customData ); + bool isValidTrackData( const QString &caller, const QVariant &input, const InfoCustomData& customData ); Echonest::Artist artistFromReply( QNetworkReply* ); private slots: diff --git a/src/libtomahawk/infosystem/infoplugins/lastfmplugin.cpp b/src/libtomahawk/infosystem/infoplugins/lastfmplugin.cpp index d34367008..c7c892944 100644 --- a/src/libtomahawk/infosystem/infoplugins/lastfmplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/lastfmplugin.cpp @@ -95,54 +95,54 @@ LastFmPlugin::~LastFmPlugin() void -LastFmPlugin::dataError( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ) +LastFmPlugin::dataError( const QString &caller, const Tomahawk::InfoSystem::InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ) { - emit info( caller, type, data, QVariant(), customData ); + emit info( caller, type, input, QVariant(), customData ); return; } void -LastFmPlugin::getInfo( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData customData ) +LastFmPlugin::getInfo( const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ) { qDebug() << Q_FUNC_INFO; switch ( type ) { case InfoMiscSubmitNowPlaying: - nowPlaying( caller, type, data, customData ); + nowPlaying( caller, type, input, customData ); break; case InfoMiscSubmitScrobble: - scrobble( caller, type, data, customData ); + scrobble( caller, type, input, customData ); break; case InfoArtistImages: - fetchArtistImages( caller, type, data, customData ); + fetchArtistImages( caller, type, input, customData ); break; case InfoAlbumCoverArt: - fetchCoverArt( caller, type, data, customData ); + fetchCoverArt( caller, type, input, customData ); break; default: - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); } } void -LastFmPlugin::nowPlaying( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ) +LastFmPlugin::nowPlaying( const QString &caller, const InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ) { - if ( !data.canConvert< Tomahawk::InfoSystem::InfoCriteriaHash >() || !m_scrobbler ) + if ( !input.canConvert< Tomahawk::InfoSystem::InfoCriteriaHash >() || !m_scrobbler ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } - InfoCriteriaHash hash = data.value< Tomahawk::InfoSystem::InfoCriteriaHash >(); + InfoCriteriaHash hash = input.value< Tomahawk::InfoSystem::InfoCriteriaHash >(); if ( !hash.contains( "title" ) || !hash.contains( "artist" ) || !hash.contains( "album" ) || !hash.contains( "duration" ) ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } @@ -157,18 +157,18 @@ LastFmPlugin::nowPlaying( const QString &caller, const InfoType type, const QVar m_track.setSource( lastfm::Track::Player ); m_scrobbler->nowPlaying( m_track ); - emit info( caller, type, data, QVariant(), customData ); + emit info( caller, type, input, QVariant(), customData ); } void -LastFmPlugin::scrobble( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ) +LastFmPlugin::scrobble( const QString &caller, const InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ) { Q_ASSERT( QThread::currentThread() == thread() ); if ( !m_scrobbler || m_track.isNull() ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } @@ -176,23 +176,23 @@ LastFmPlugin::scrobble( const QString &caller, const InfoType type, const QVaria m_scrobbler->cache( m_track ); m_scrobbler->submit(); - emit info( caller, type, data, QVariant(), customData ); + emit info( caller, type, input, QVariant(), customData ); } void -LastFmPlugin::fetchCoverArt( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ) +LastFmPlugin::fetchCoverArt( const QString &caller, const InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ) { qDebug() << Q_FUNC_INFO; - if ( !data.canConvert< Tomahawk::InfoSystem::InfoCriteriaHash >() ) + if ( !input.canConvert< Tomahawk::InfoSystem::InfoCriteriaHash >() ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } - InfoCriteriaHash hash = data.value< Tomahawk::InfoSystem::InfoCriteriaHash >(); + InfoCriteriaHash hash = input.value< Tomahawk::InfoSystem::InfoCriteriaHash >(); if ( !hash.contains( "artist" ) || !hash.contains( "album" ) ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } @@ -200,35 +200,35 @@ LastFmPlugin::fetchCoverArt( const QString &caller, const InfoType type, const Q criteria["artist"] = hash["artist"]; criteria["album"] = hash["album"]; - emit getCachedInfo( criteria, 2419200000, caller, type, data, customData ); + emit getCachedInfo( criteria, 2419200000, caller, type, input, customData ); } void -LastFmPlugin::fetchArtistImages( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ) +LastFmPlugin::fetchArtistImages( const QString &caller, const InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ) { qDebug() << Q_FUNC_INFO; - if ( !data.canConvert< Tomahawk::InfoSystem::InfoCriteriaHash >() ) + if ( !input.canConvert< Tomahawk::InfoSystem::InfoCriteriaHash >() ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } - InfoCriteriaHash hash = data.value< Tomahawk::InfoSystem::InfoCriteriaHash >(); + InfoCriteriaHash hash = input.value< Tomahawk::InfoSystem::InfoCriteriaHash >(); if ( !hash.contains( "artist" ) ) { - dataError( caller, type, data, customData ); + dataError( caller, type, input, customData ); return; } Tomahawk::InfoSystem::InfoCriteriaHash criteria; criteria["artist"] = hash["artist"]; - emit getCachedInfo( criteria, 2419200000, caller, type, data, customData ); + emit getCachedInfo( criteria, 2419200000, caller, type, input, customData ); } void -LastFmPlugin::notInCacheSlot( QHash criteria, QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, Tomahawk::InfoSystem::InfoCustomData customData ) +LastFmPlugin::notInCacheSlot( const QHash criteria, const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ) { qDebug() << Q_FUNC_INFO; diff --git a/src/libtomahawk/infosystem/infoplugins/lastfmplugin.h b/src/libtomahawk/infosystem/infoplugins/lastfmplugin.h index 55fb6b034..d42ee411b 100644 --- a/src/libtomahawk/infosystem/infoplugins/lastfmplugin.h +++ b/src/libtomahawk/infosystem/infoplugins/lastfmplugin.h @@ -43,8 +43,6 @@ public: LastFmPlugin( QObject *parent ); virtual ~LastFmPlugin(); - void getInfo( const QString &caller, const InfoType type, const QVariant &data, InfoCustomData customData ); - public slots: void settingsChanged(); @@ -52,17 +50,19 @@ public slots: void coverArtReturned(); void artistImagesReturned(); - virtual void notInCacheSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteria, QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, Tomahawk::InfoSystem::InfoCustomData customData ); - +protected slots: + virtual void getInfo( const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ); + virtual void notInCacheSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ); + private: - void fetchCoverArt( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ); - void fetchArtistImages( const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData ); + void fetchCoverArt( const QString &caller, const Tomahawk::InfoSystem::InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ); + void fetchArtistImages( const QString &caller, const Tomahawk::InfoSystem::InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ); void createScrobbler(); - void scrobble( const QString &caller, const InfoType type, const QVariant& data, InfoCustomData &customData ); - void nowPlaying( const QString &caller, const InfoType type, const QVariant& data, InfoCustomData &customData ); + void scrobble( const QString &caller, const Tomahawk::InfoSystem::InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ); + void nowPlaying( const QString &caller, const Tomahawk::InfoSystem::InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ); - void dataError( const QString &caller, const InfoType type, const QVariant& data, InfoCustomData &customData ); + void dataError( const QString &caller, const Tomahawk::InfoSystem::InfoType type, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ); lastfm::MutableTrack m_track; lastfm::Audioscrobbler* m_scrobbler; diff --git a/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.cpp b/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.cpp index 914a29e27..c595843c9 100644 --- a/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.cpp @@ -42,17 +42,18 @@ MusixMatchPlugin::~MusixMatchPlugin() qDebug() << Q_FUNC_INFO; } -void MusixMatchPlugin::getInfo(const QString &caller, const InfoType type, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData customData) +void +MusixMatchPlugin::getInfo( const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ) { qDebug() << Q_FUNC_INFO; - if( !isValidTrackData(caller, data, customData) || !data.canConvert()) + if( !isValidTrackData(caller, input, customData) || !input.canConvert()) return; - Tomahawk::InfoSystem::InfoCustomData hash = data.value(); + Tomahawk::InfoSystem::InfoCustomData hash = input.value(); QString artist = hash["artistName"].toString(); QString track = hash["trackName"].toString(); if( artist.isEmpty() || track.isEmpty() ) { - emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, data, QVariant(), customData); + emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, input, QVariant(), customData); return; } qDebug() << "artist is " << artist << ", track is " << track; @@ -63,38 +64,40 @@ void MusixMatchPlugin::getInfo(const QString &caller, const InfoType type, const url.addQueryItem("q_track", track); QNetworkReply* reply = TomahawkUtils::nam()->get(QNetworkRequest(url)); reply->setProperty("customData", QVariant::fromValue(customData)); - reply->setProperty("origData", data); + reply->setProperty("origData", input); reply->setProperty("caller", caller); connect(reply, SIGNAL(finished()), SLOT(trackSearchSlot())); } -bool MusixMatchPlugin::isValidTrackData(const QString &caller, const QVariant& data, Tomahawk::InfoSystem::InfoCustomData &customData) +bool +MusixMatchPlugin::isValidTrackData( const QString &caller, const QVariant &input, const Tomahawk::InfoSystem::InfoCustomData &customData ) { qDebug() << Q_FUNC_INFO; - if (data.isNull() || !data.isValid() || !data.canConvert()) + if (input.isNull() || !input.isValid() || !input.canConvert()) { - emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, data, QVariant(), customData); + emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, input, QVariant(), customData); qDebug() << "MusixMatchPlugin::isValidTrackData: Data null, invalid, or can't convert"; return false; } - InfoCustomData hash = data.value(); + InfoCustomData hash = input.value(); if (hash["trackName"].toString().isEmpty() ) { - emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, data, QVariant(), customData); + emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, input, QVariant(), customData); qDebug() << "MusixMatchPlugin::isValidTrackData: Track name is empty"; return false; } if (hash["artistName"].toString().isEmpty() ) { - emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, data, QVariant(), customData); + emit info(caller, Tomahawk::InfoSystem::InfoTrackLyrics, input, QVariant(), customData); qDebug() << "MusixMatchPlugin::isValidTrackData: No artist name found"; return false; } return true; } -void MusixMatchPlugin::trackSearchSlot() +void +MusixMatchPlugin::trackSearchSlot() { qDebug() << Q_FUNC_INFO; QNetworkReply* oldReply = qobject_cast( sender() ); @@ -124,7 +127,8 @@ void MusixMatchPlugin::trackSearchSlot() connect(newReply, SIGNAL(finished()), SLOT(trackLyricsSlot())); } -void MusixMatchPlugin::trackLyricsSlot() +void +MusixMatchPlugin::trackLyricsSlot() { qDebug() << Q_FUNC_INFO; QNetworkReply* reply = qobject_cast( sender() ); diff --git a/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.h b/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.h index 3fcb1ded7..0f816dc0f 100644 --- a/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.h +++ b/src/libtomahawk/infosystem/infoplugins/musixmatchplugin.h @@ -34,19 +34,19 @@ class MusixMatchPlugin : public InfoPlugin Q_OBJECT public: - MusixMatchPlugin(QObject *parent); + MusixMatchPlugin( QObject *parent ); virtual ~MusixMatchPlugin(); - void getInfo(const QString &caller, const InfoType type, const QVariant &data, InfoCustomData customData); - -private: - bool isValidTrackData( const QString &caller, const QVariant& data, InfoCustomData &customData ); - public slots: void trackSearchSlot(); void trackLyricsSlot(); +protected slots: + virtual void getInfo( const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ); + private: + bool isValidTrackData( const QString &caller, const QVariant &input, const InfoCustomData &customData ); + QString m_apiKey; }; diff --git a/src/libtomahawk/infosystem/infosystem.cpp b/src/libtomahawk/infosystem/infosystem.cpp index 8567a3b8b..fba9efb22 100644 --- a/src/libtomahawk/infosystem/infosystem.cpp +++ b/src/libtomahawk/infosystem/infosystem.cpp @@ -148,7 +148,7 @@ QLinkedList< InfoPluginPtr > InfoSystem::determineOrderedMatches(const InfoType return providers; } -void InfoSystem::getInfo(const QString &caller, const InfoType type, const QVariant& data, InfoCustomData customData) +void InfoSystem::getInfo(const QString &caller, const InfoType type, const QVariant& input, InfoCustomData customData) { qDebug() << Q_FUNC_INFO; QLinkedList< InfoPluginPtr > providers = determineOrderedMatches(type); @@ -169,7 +169,7 @@ void InfoSystem::getInfo(const QString &caller, const InfoType type, const QVari m_dataTracker[caller][type] = m_dataTracker[caller][type] + 1; qDebug() << "current count in dataTracker for type" << type << "is" << m_dataTracker[caller][type]; - ptr.data()->getInfo(caller, type, data, customData); + QMetaObject::invokeMethod( ptr.data(), "getInfo", Qt::QueuedConnection, Q_ARG( QString, caller ), Q_ARG( Tomahawk::InfoSystem::InfoType, type ), Q_ARG( QVariant, input ), Q_ARG( Tomahawk::InfoSystem::InfoCustomData, customData ) ); } void InfoSystem::getInfo(const QString &caller, const InfoMap &input, InfoCustomData customData) diff --git a/src/libtomahawk/infosystem/infosystem.h b/src/libtomahawk/infosystem/infosystem.h index 2ccabc1aa..d90eb3e80 100644 --- a/src/libtomahawk/infosystem/infosystem.h +++ b/src/libtomahawk/infosystem/infosystem.h @@ -111,17 +111,17 @@ public: qDebug() << Q_FUNC_INFO; } - virtual void getInfo( const QString &caller, const InfoType type, const QVariant &data, InfoCustomData customData ) = 0; - signals: void getCachedInfo( Tomahawk::InfoSystem::InfoCriteriaHash criteria, qint64 newMaxAge, QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, Tomahawk::InfoSystem::InfoCustomData customData ); void updateCache( Tomahawk::InfoSystem::InfoCriteriaHash criteria, qint64, Tomahawk::InfoSystem::InfoType type, QVariant output ); void info( QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, QVariant output, Tomahawk::InfoSystem::InfoCustomData customData ); void finished( QString, Tomahawk::InfoSystem::InfoType ); -public slots: +protected slots: + virtual void getInfo( const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant data, const Tomahawk::InfoSystem::InfoCustomData customData ) = 0; + //FIXME: Make pure virtual when everything supports it - virtual void notInCacheSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteria, QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, Tomahawk::InfoSystem::InfoCustomData customData ) + virtual void notInCacheSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ) { Q_UNUSED( criteria ); Q_UNUSED( caller ); @@ -132,6 +132,10 @@ public slots: protected: InfoType m_type; + +private: + friend class InfoSystem; + friend class InfoSystemCache; }; typedef QWeakPointer< InfoPlugin > InfoPluginPtr; @@ -148,7 +152,7 @@ public: void registerInfoTypes( const InfoPluginPtr &plugin, const QSet< InfoType > &types ); - void getInfo( const QString &caller, const InfoType type, const QVariant &data, InfoCustomData customData ); + void getInfo( const QString &caller, const InfoType type, const QVariant &input, InfoCustomData customData ); void getInfo( const QString &caller, const InfoMap &input, InfoCustomData customData ); InfoSystemCache* getCache() { return m_cache; } @@ -158,7 +162,7 @@ signals: void finished( QString target ); public slots: - void infoSlot( QString target, Tomahawk::InfoSystem::InfoType type, QVariant input, QVariant output, Tomahawk::InfoSystem::InfoCustomData customData ); + void infoSlot( const QString target, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const QVariant output, const Tomahawk::InfoSystem::InfoCustomData customData ); private: QLinkedList< InfoPluginPtr > determineOrderedMatches( const InfoType type ) const; diff --git a/src/libtomahawk/infosystem/infosystemcache.cpp b/src/libtomahawk/infosystem/infosystemcache.cpp index f212cad48..d3f49a2c1 100644 --- a/src/libtomahawk/infosystem/infosystemcache.cpp +++ b/src/libtomahawk/infosystem/infosystemcache.cpp @@ -98,7 +98,7 @@ InfoSystemCache::syncTimerFired() void -InfoSystemCache::getCachedInfoSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteria, qint64 newMaxAge, QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, Tomahawk::InfoSystem::InfoCustomData customData ) +InfoSystemCache::getCachedInfoSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const qint64 newMaxAge, const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ) { qDebug() << Q_FUNC_INFO; if ( !m_dataCache.contains( type ) || !m_dataCache[type].contains( criteria ) ) @@ -110,7 +110,7 @@ InfoSystemCache::getCachedInfoSlot( Tomahawk::InfoSystem::InfoCriteriaHash crite if ( m_cacheRemainingToLoad > 0 ) { qDebug() << "Cache not fully loaded, punting request for a bit"; - QMetaObject::invokeMethod( this, "getCachedInfoSlot", Qt::QueuedConnection, Q_ARG( Tomahawk::InfoSystem::InfoCriteriaHash, criteria ), Q_ARG( qint64, newMaxAge ), Q_ARG( QString, caller ), Q_ARG( Tomahawk::InfoSystem::InfoType, type ), Q_ARG( Tomahawk::InfoSystem::InfoCustomData, customData ) ); + QMetaObject::invokeMethod( this, "getCachedInfoSlot", Qt::QueuedConnection, Q_ARG( Tomahawk::InfoSystem::InfoCriteriaHash, criteria ), Q_ARG( qint64, newMaxAge ), Q_ARG( QString, caller ), Q_ARG( Tomahawk::InfoSystem::InfoType, type ), Q_ARG( QVariant, input ), Q_ARG( Tomahawk::InfoSystem::InfoCustomData, customData ) ); return; } @@ -143,7 +143,7 @@ InfoSystemCache::getCachedInfoSlot( Tomahawk::InfoSystem::InfoCriteriaHash crite void -InfoSystemCache::updateCacheSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteria, qint64 maxAge, Tomahawk::InfoSystem::InfoType type, QVariant output ) +InfoSystemCache::updateCacheSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const qint64 maxAge, const Tomahawk::InfoSystem::InfoType type, const QVariant output ) { qDebug() << Q_FUNC_INFO; QHash< InfoCriteriaHash, QVariant > typedatacache = m_dataCache[type]; @@ -160,7 +160,7 @@ InfoSystemCache::updateCacheSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteri void -InfoSystemCache::loadCache( Tomahawk::InfoSystem::InfoType type, const QString &cacheDir ) +InfoSystemCache::loadCache( const Tomahawk::InfoSystem::InfoType type, const QString cacheDir ) { qDebug() << Q_FUNC_INFO; @@ -210,7 +210,7 @@ InfoSystemCache::loadCache( Tomahawk::InfoSystem::InfoType type, const QString & void -InfoSystemCache::saveCache( Tomahawk::InfoSystem::InfoType type, const QString &cacheDir ) +InfoSystemCache::saveCache( const Tomahawk::InfoSystem::InfoType type, const QString cacheDir ) { qDebug() << Q_FUNC_INFO; QDir dir( cacheDir ); diff --git a/src/libtomahawk/infosystem/infosystemcache.h b/src/libtomahawk/infosystem/infosystemcache.h index 1e117e3d6..a5ec7d518 100644 --- a/src/libtomahawk/infosystem/infosystemcache.h +++ b/src/libtomahawk/infosystem/infosystemcache.h @@ -46,13 +46,13 @@ signals: void info( QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, QVariant output, Tomahawk::InfoSystem::InfoCustomData customData ); public slots: - void getCachedInfoSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteria, qint64 newMaxAge, QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, Tomahawk::InfoSystem::InfoCustomData customData ); - void updateCacheSlot( Tomahawk::InfoSystem::InfoCriteriaHash criteria, qint64 maxAge, Tomahawk::InfoSystem::InfoType type, QVariant output ); + void getCachedInfoSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const qint64 newMaxAge, const QString caller, const Tomahawk::InfoSystem::InfoType type, const QVariant input, const Tomahawk::InfoSystem::InfoCustomData customData ); + void updateCacheSlot( const Tomahawk::InfoSystem::InfoCriteriaHash criteria, const qint64 maxAge, const Tomahawk::InfoSystem::InfoType type, const QVariant output ); private slots: void syncTimerFired(); - void loadCache( Tomahawk::InfoSystem::InfoType type, const QString &cacheDir ); - void saveCache( Tomahawk::InfoSystem::InfoType type, const QString &cacheDir ); + void loadCache( const Tomahawk::InfoSystem::InfoType type, const QString cacheDir ); + void saveCache( const Tomahawk::InfoSystem::InfoType type, const QString cacheDir ); private: QHash< InfoType, QHash< InfoCriteriaHash, QVariant > > m_dataCache;