From 146eaa226f1b031cf882baeb533e4d7e7ee2b057 Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Thu, 25 Aug 2011 23:49:40 -0400 Subject: [PATCH] Add debug and some logic to disconnect sourceplaylistinterface connections --- src/libtomahawk/audio/audioengine.cpp | 8 ++++++++ src/libtomahawk/sourceplaylistinterface.cpp | 11 ++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/audio/audioengine.cpp b/src/libtomahawk/audio/audioengine.cpp index 7beb26b4a..1619b7db1 100644 --- a/src/libtomahawk/audio/audioengine.cpp +++ b/src/libtomahawk/audio/audioengine.cpp @@ -204,6 +204,7 @@ AudioEngine::next() bool AudioEngine::canGoNext() { + tDebug( LOGEXTRA ) << Q_FUNC_INFO; if ( m_playlist.isNull() ) return false; @@ -211,6 +212,8 @@ AudioEngine::canGoNext() m_playlist.data()->skipRestrictions() == PlaylistInterface::NoSkipForwards ) return false; + tDebug( LOGEXTRA ) << Q_FUNC_INFO << "playlist has next item? " << m_playlist.data()->hasNextItem(); + return m_playlist.data()->hasNextItem(); } @@ -613,10 +616,15 @@ void AudioEngine::setPlaylist( PlaylistInterface* playlist ) { if ( !m_playlist.isNull() ) + { + if ( m_playlist.data()->object() && m_playlist.data()->retryMode() == PlaylistInterface::Retry ) + disconnect( m_playlist.data()->object(), SIGNAL( nextTrackReady() ) ); m_playlist.data()->reset(); + } if ( !playlist ) return; + m_playlist = playlist->getSharedPointer(); if ( m_playlist.data()->object() && m_playlist.data()->retryMode() == PlaylistInterface::Retry ) diff --git a/src/libtomahawk/sourceplaylistinterface.cpp b/src/libtomahawk/sourceplaylistinterface.cpp index 02b9e3c4b..2226bf309 100644 --- a/src/libtomahawk/sourceplaylistinterface.cpp +++ b/src/libtomahawk/sourceplaylistinterface.cpp @@ -47,16 +47,16 @@ SourcePlaylistInterface::siblingItem( int itemsAway ) Tomahawk::result_ptr SourcePlaylistInterface::nextItem() { - qDebug() << Q_FUNC_INFO; + tDebug( LOGEXTRA ) << Q_FUNC_INFO; if ( m_source.isNull() || m_source->currentTrack().isNull() || m_source->currentTrack()->results().isEmpty() ) { - qDebug() << Q_FUNC_INFO << " Results were empty for current track or source no longer valid"; + tDebug( LOGEXTRA ) << Q_FUNC_INFO << " Results were empty for current track or source no longer valid"; m_currentItem = Tomahawk::result_ptr(); return m_currentItem; } else if ( !m_gotNextItem ) { - qDebug() << Q_FUNC_INFO << " This song was already fetched"; + tDebug( LOGEXTRA ) << Q_FUNC_INFO << " This song was already fetched"; return Tomahawk::result_ptr(); } @@ -69,6 +69,7 @@ SourcePlaylistInterface::nextItem() bool SourcePlaylistInterface::hasNextItem() { + tDebug( LOGEXTRA ) << Q_FUNC_INFO; if ( m_source.isNull() || m_source->currentTrack().isNull() || m_source->currentTrack()->results().isEmpty() ) return false; @@ -96,7 +97,7 @@ SourcePlaylistInterface::reset() void SourcePlaylistInterface::onSourcePlaybackStarted( const Tomahawk::query_ptr& query ) { - qDebug() << Q_FUNC_INFO; + tDebug( LOGEXTRA ) << Q_FUNC_INFO; connect( query.data(), SIGNAL( resolvingFinished( bool ) ), SLOT( resolvingFinished( bool ) ) ); Pipeline::instance()->resolve( query, true ); m_gotNextItem = true; @@ -106,7 +107,7 @@ SourcePlaylistInterface::onSourcePlaybackStarted( const Tomahawk::query_ptr& que void SourcePlaylistInterface::resolvingFinished( bool hasResults ) { - qDebug() << Q_FUNC_INFO << " and has results? : " << (hasResults ? "true" : "false"); + tDebug( LOGEXTRA ) << Q_FUNC_INFO << " and has results? : " << (hasResults ? "true" : "false"); if ( hasResults ) emit nextTrackReady(); } \ No newline at end of file