From 86cfc9b7190b81c67d9dc43bc6489c04514f6654 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 16 May 2013 15:45:22 +0200 Subject: [PATCH] UnLogPlaybackify AudioEngine. --- src/libtomahawk/Track.cpp | 21 +++++++++++++++++++++ src/libtomahawk/Track.h | 4 ++++ src/libtomahawk/audio/AudioEngine.cpp | 7 ++----- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/Track.cpp b/src/libtomahawk/Track.cpp index fefa64ad9..cdb9a5316 100644 --- a/src/libtomahawk/Track.cpp +++ b/src/libtomahawk/Track.cpp @@ -23,6 +23,7 @@ #include "database/Database.h" #include "database/DatabaseImpl.h" +#include "database/DatabaseCommand_LogPlayback.h" #include "Album.h" #include "collection/Collection.h" #include "Pipeline.h" @@ -162,6 +163,26 @@ Track::trackId() const } +void +Track::startPlaying() +{ + DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( weakRef().toStrongRef(), + DatabaseCommand_LogPlayback::Started ); + Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) ); +} + + +void +Track::finishPlaying( int timeElapsed ) +{ + DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( weakRef().toStrongRef(), + DatabaseCommand_LogPlayback::Finished, + timeElapsed ); + Database::instance()->enqueue( QSharedPointer< DatabaseCommand >( cmd ) ); + +} + + void Track::updateSortNames() { diff --git a/src/libtomahawk/Track.h b/src/libtomahawk/Track.h index ff69f05f7..8160cc93d 100644 --- a/src/libtomahawk/Track.h +++ b/src/libtomahawk/Track.h @@ -28,6 +28,7 @@ #include "DllMacro.h" + namespace Tomahawk { @@ -107,6 +108,9 @@ public: QWeakPointer< Tomahawk::Track > weakRef() { return m_ownRef; } void setWeakRef( QWeakPointer< Tomahawk::Track > weakRef ) { m_ownRef = weakRef; } + void startPlaying(); + void finishPlaying( int timeElapsed ); + signals: void coverChanged(); void socialActionsLoaded(); diff --git a/src/libtomahawk/audio/AudioEngine.cpp b/src/libtomahawk/audio/AudioEngine.cpp index 5f1eec315..b83857c51 100644 --- a/src/libtomahawk/audio/AudioEngine.cpp +++ b/src/libtomahawk/audio/AudioEngine.cpp @@ -26,7 +26,6 @@ #include "SourcePlaylistInterface.h" #include "TomahawkSettings.h" #include "database/Database.h" -#include "database/DatabaseCommand_LogPlayback.h" #include "network/Servent.h" #include "utils/Qnr_IoDeviceStream.h" #include "utils/Closure.h" @@ -522,8 +521,7 @@ AudioEngine::performLoadTrack( const Tomahawk::result_ptr& result, QSharedPointe if ( TomahawkSettings::instance()->privateListeningMode() != TomahawkSettings::FullyPrivate ) { - DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( m_currentTrack->track(), DatabaseCommand_LogPlayback::Started ); - Database::instance()->enqueue( QSharedPointer(cmd) ); + m_currentTrack->track()->startPlaying(); } sendNowPlayingNotification( Tomahawk::InfoSystem::InfoNowPlaying ); @@ -990,8 +988,7 @@ AudioEngine::setCurrentTrack( const Tomahawk::result_ptr& result ) { if ( m_state != Error && TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening ) { - DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( m_currentTrack->track(), DatabaseCommand_LogPlayback::Finished, m_timeElapsed ); - Database::instance()->enqueue( QSharedPointer(cmd) ); + m_currentTrack->track()->finishPlaying( m_timeElapsed ); } emit finished( m_currentTrack );