diff --git a/src/TomahawkApp.cpp b/src/TomahawkApp.cpp index 942a4f77a..ddfe92424 100644 --- a/src/TomahawkApp.cpp +++ b/src/TomahawkApp.cpp @@ -467,6 +467,7 @@ TomahawkApp::registerMetaTypes() qRegisterMetaType< Tomahawk::playlistinterface_ptr >("Tomahawk::playlistinterface_ptr"); qRegisterMetaType< Tomahawk::dynplaylist_ptr >("Tomahawk::dynplaylist_ptr"); qRegisterMetaType< Tomahawk::geninterface_ptr >("Tomahawk::geninterface_ptr"); + qRegisterMetaType< Tomahawk::PlaybackLog >("Tomahawk::PlaybackLog"); qRegisterMetaType< QList >("QList"); qRegisterMetaType< QList >("QList"); qRegisterMetaType< QList >("QList"); diff --git a/src/libtomahawk/Source.cpp b/src/libtomahawk/Source.cpp index 1dd523862..7664a122c 100644 --- a/src/libtomahawk/Source.cpp +++ b/src/libtomahawk/Source.cpp @@ -459,10 +459,10 @@ Source::onPlaybackStarted( const Tomahawk::track_ptr& track, unsigned int durati void -Source::onPlaybackFinished( const Tomahawk::track_ptr& track, unsigned int playtime, unsigned int secsPlayed ) +Source::onPlaybackFinished( const Tomahawk::track_ptr& track, const Tomahawk::PlaybackLog& log ) { tDebug() << Q_FUNC_INFO << track->toString(); - emit playbackFinished( track, playtime, secsPlayed ); + emit playbackFinished( track, log ); m_currentTrack.clear(); emit stateChanged(); diff --git a/src/libtomahawk/Source.h b/src/libtomahawk/Source.h index 0f93c8f86..842665cf2 100644 --- a/src/libtomahawk/Source.h +++ b/src/libtomahawk/Source.h @@ -114,7 +114,7 @@ signals: void stats( const QVariantMap& ); void playbackStarted( const Tomahawk::track_ptr& track ); - void playbackFinished( const Tomahawk::track_ptr& track, unsigned int playtime, unsigned int secsPlayed ); + void playbackFinished( const Tomahawk::track_ptr& track, const Tomahawk::PlaybackLog& log ); void stateChanged(); void commandsFinished(); @@ -139,7 +139,7 @@ private slots: void onStateChanged( DBSyncConnection::State newstate, DBSyncConnection::State oldstate, const QString& info ); void onPlaybackStarted( const Tomahawk::track_ptr& track, unsigned int duration ); - void onPlaybackFinished( const Tomahawk::track_ptr& track, unsigned int playtime, unsigned int secsPlayed ); + void onPlaybackFinished( const Tomahawk::track_ptr& track, const Tomahawk::PlaybackLog& log ); void trackTimerFired(); void executeCommands(); diff --git a/src/libtomahawk/database/DatabaseCommand_LogPlayback.cpp b/src/libtomahawk/database/DatabaseCommand_LogPlayback.cpp index 2178e5b23..75066241c 100644 --- a/src/libtomahawk/database/DatabaseCommand_LogPlayback.cpp +++ b/src/libtomahawk/database/DatabaseCommand_LogPlayback.cpp @@ -39,8 +39,8 @@ DatabaseCommand_LogPlayback::postCommitHook() { connect( this, SIGNAL( trackPlaying( Tomahawk::track_ptr, unsigned int ) ), source().data(), SLOT( onPlaybackStarted( Tomahawk::track_ptr, unsigned int ) ), Qt::QueuedConnection ); - connect( this, SIGNAL( trackPlayed( Tomahawk::track_ptr, unsigned int, unsigned int ) ), - source().data(), SLOT( onPlaybackFinished( Tomahawk::track_ptr, unsigned int, unsigned int ) ), Qt::QueuedConnection ); + connect( this, SIGNAL( trackPlayed( Tomahawk::track_ptr, Tomahawk::PlaybackLog ) ), + source().data(), SLOT( onPlaybackFinished( Tomahawk::track_ptr, Tomahawk::PlaybackLog ) ), Qt::QueuedConnection ); track_ptr track = Track::get( m_artist, m_track, QString() ); if ( !track ) @@ -48,7 +48,12 @@ DatabaseCommand_LogPlayback::postCommitHook() if ( m_action == Finished ) { - emit trackPlayed( track, m_playtime, m_secsPlayed ); + PlaybackLog log; + log.source = source(); + log.timestamp = m_playtime; + log.secsPlayed = m_secsPlayed; + + emit trackPlayed( track, log ); } // if the play time is more than 10 minutes in the past, ignore else if ( m_action == Started && QDateTime::fromTime_t( playtime() ).secsTo( QDateTime::currentDateTime() ) < STARTED_THRESHOLD ) diff --git a/src/libtomahawk/database/DatabaseCommand_LogPlayback.h b/src/libtomahawk/database/DatabaseCommand_LogPlayback.h index 34504d533..2f74b8ea6 100644 --- a/src/libtomahawk/database/DatabaseCommand_LogPlayback.h +++ b/src/libtomahawk/database/DatabaseCommand_LogPlayback.h @@ -91,7 +91,7 @@ public: signals: void trackPlaying( const Tomahawk::track_ptr& track, unsigned int duration ); - void trackPlayed( const Tomahawk::track_ptr& track, unsigned int playtime, unsigned int secsPlayed ); + void trackPlayed( const Tomahawk::track_ptr& track, const Tomahawk::PlaybackLog& log ); private: QString m_artist;