mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-06 22:26:32 +02:00
* Clear audio buffers when manually starting a new track.
This commit is contained in:
@@ -102,6 +102,7 @@ void
|
|||||||
AudioEngine::previous()
|
AudioEngine::previous()
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
|
clearBuffers();
|
||||||
loadPreviousTrack();
|
loadPreviousTrack();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,6 +111,7 @@ void
|
|||||||
AudioEngine::next()
|
AudioEngine::next()
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
|
clearBuffers();
|
||||||
loadNextTrack();
|
loadNextTrack();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,8 +287,11 @@ AudioEngine::playItem( PlaylistInterface* playlist, const Tomahawk::result_ptr&
|
|||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
|
|
||||||
|
clearBuffers();
|
||||||
|
|
||||||
m_playlist = playlist;
|
m_playlist = playlist;
|
||||||
m_currentTrackPlaylist = playlist;
|
m_currentTrackPlaylist = playlist;
|
||||||
|
|
||||||
loadTrack( result );
|
loadTrack( result );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,6 +332,14 @@ AudioEngine::timerTriggered( unsigned int seconds )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AudioEngine::clearBuffers()
|
||||||
|
{
|
||||||
|
QMutexLocker lock( &m_mutex );
|
||||||
|
m_audio->clearBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AudioEngine::run()
|
AudioEngine::run()
|
||||||
{
|
{
|
||||||
@@ -398,14 +411,14 @@ AudioEngine::loop()
|
|||||||
!m_audio->isPaused() )
|
!m_audio->isPaused() )
|
||||||
{
|
{
|
||||||
qDebug() << "Starting next track then";
|
qDebug() << "Starting next track then";
|
||||||
next();
|
loadNextTrack();
|
||||||
// will need data immediately:
|
// will need data immediately:
|
||||||
nextdelay = 0;
|
nextdelay = 0;
|
||||||
}
|
}
|
||||||
else if ( !m_input.isNull() && !m_input->isOpen() )
|
else if ( !m_input.isNull() && !m_input->isOpen() )
|
||||||
{
|
{
|
||||||
qDebug() << "AudioEngine IODev closed. errorString:" << m_input->errorString();
|
qDebug() << "AudioEngine IODev closed. errorString:" << m_input->errorString();
|
||||||
next();
|
loadNextTrack();
|
||||||
nextdelay = 0;
|
nextdelay = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -82,6 +82,7 @@ private slots:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void run();
|
void run();
|
||||||
|
void clearBuffers();
|
||||||
|
|
||||||
QSharedPointer<QIODevice> m_input;
|
QSharedPointer<QIODevice> m_input;
|
||||||
QSharedPointer<TranscodeInterface> m_transcode;
|
QSharedPointer<TranscodeInterface> m_transcode;
|
||||||
|
Reference in New Issue
Block a user