mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-23 01:09:42 +01:00
TWK-883: Prevent failed tracks from being displayed as recently played in the dashboard
This commit is contained in:
parent
4b28c15850
commit
337423c52f
@ -158,14 +158,18 @@ AudioEngine::pause()
|
||||
|
||||
|
||||
void
|
||||
AudioEngine::stop()
|
||||
AudioEngine::stop(AudioErrorCode errorCode)
|
||||
{
|
||||
tDebug( LOGEXTRA ) << Q_FUNC_INFO;
|
||||
|
||||
if ( isStopped() )
|
||||
return;
|
||||
|
||||
setState( Stopped );
|
||||
if(errorCode == NoError)
|
||||
setState( Stopped );
|
||||
else
|
||||
setState( Error );
|
||||
|
||||
m_mediaObject->stop();
|
||||
emit stopped();
|
||||
|
||||
@ -467,6 +471,7 @@ AudioEngine::loadTrack( const Tomahawk::result_ptr& result )
|
||||
}
|
||||
m_input = io;
|
||||
m_mediaObject->play();
|
||||
|
||||
emit started( m_currentTrack );
|
||||
|
||||
if ( TomahawkSettings::instance()->privateListeningMode() != TomahawkSettings::FullyPrivate )
|
||||
@ -661,14 +666,19 @@ AudioEngine::onStateChanged( Phonon::State newState, Phonon::State oldState )
|
||||
|
||||
if ( newState == Phonon::ErrorState )
|
||||
{
|
||||
stop();
|
||||
stop( UnknownError );
|
||||
|
||||
tLog() << "Phonon Error:" << m_mediaObject->errorString() << m_mediaObject->errorType();
|
||||
|
||||
emit error( UnknownError );
|
||||
setState(Error);
|
||||
|
||||
return;
|
||||
}
|
||||
if ( newState == Phonon::PlayingState )
|
||||
{
|
||||
setState( Playing );
|
||||
}
|
||||
|
||||
if ( oldState == Phonon::PlayingState )
|
||||
{
|
||||
@ -782,10 +792,13 @@ AudioEngine::setCurrentTrack( const Tomahawk::result_ptr& result )
|
||||
Tomahawk::result_ptr lastTrack = m_currentTrack;
|
||||
if ( !lastTrack.isNull() )
|
||||
{
|
||||
if ( TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening )
|
||||
{
|
||||
DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( lastTrack, DatabaseCommand_LogPlayback::Finished, m_timeElapsed );
|
||||
Database::instance()->enqueue( QSharedPointer<DatabaseCommand>(cmd) );
|
||||
if(m_state != Error)
|
||||
{
|
||||
if ( TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening )
|
||||
{
|
||||
DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( lastTrack, DatabaseCommand_LogPlayback::Finished, m_timeElapsed );
|
||||
Database::instance()->enqueue( QSharedPointer<DatabaseCommand>(cmd) );
|
||||
}
|
||||
}
|
||||
|
||||
emit finished( lastTrack );
|
||||
|
@ -43,8 +43,8 @@ class DLLEXPORT AudioEngine : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum AudioErrorCode { StreamReadError, AudioDeviceError, DecodeError, UnknownError };
|
||||
enum AudioState { Stopped, Playing, Paused };
|
||||
enum AudioErrorCode { StreamReadError, AudioDeviceError, DecodeError, UnknownError, NoError };
|
||||
enum AudioState { Stopped, Playing, Paused, Error };
|
||||
|
||||
static AudioEngine* instance();
|
||||
|
||||
@ -76,7 +76,7 @@ public slots:
|
||||
void playPause();
|
||||
void play();
|
||||
void pause();
|
||||
void stop();
|
||||
void stop(AudioErrorCode errorCode = NoError);
|
||||
|
||||
void previous();
|
||||
void next();
|
||||
|
Loading…
x
Reference in New Issue
Block a user