1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-06-02 14:05:06 +02:00

* Clear audio buffers when manually starting a new track.

This commit is contained in:
Christian Muehlhaeuser 2010-11-30 12:17:16 +01:00
parent 70993450d9
commit 9c379647aa
2 changed files with 16 additions and 2 deletions

View File

@ -102,6 +102,7 @@ void
AudioEngine::previous()
{
qDebug() << Q_FUNC_INFO;
clearBuffers();
loadPreviousTrack();
}
@ -110,6 +111,7 @@ void
AudioEngine::next()
{
qDebug() << Q_FUNC_INFO;
clearBuffers();
loadNextTrack();
}
@ -285,8 +287,11 @@ AudioEngine::playItem( PlaylistInterface* playlist, const Tomahawk::result_ptr&
{
qDebug() << Q_FUNC_INFO;
clearBuffers();
m_playlist = playlist;
m_currentTrackPlaylist = playlist;
loadTrack( result );
}
@ -327,6 +332,14 @@ AudioEngine::timerTriggered( unsigned int seconds )
}
void
AudioEngine::clearBuffers()
{
QMutexLocker lock( &m_mutex );
m_audio->clearBuffers();
}
void
AudioEngine::run()
{
@ -398,14 +411,14 @@ AudioEngine::loop()
!m_audio->isPaused() )
{
qDebug() << "Starting next track then";
next();
loadNextTrack();
// will need data immediately:
nextdelay = 0;
}
else if ( !m_input.isNull() && !m_input->isOpen() )
{
qDebug() << "AudioEngine IODev closed. errorString:" << m_input->errorString();
next();
loadNextTrack();
nextdelay = 0;
}

View File

@ -82,6 +82,7 @@ private slots:
private:
void run();
void clearBuffers();
QSharedPointer<QIODevice> m_input;
QSharedPointer<TranscodeInterface> m_transcode;