[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src
From: Daniel Caleb Jones <danielcjones () gmail ! com>
Date: 2008-08-22 3:11:28
Message-ID: 1219374688.231137.4939.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 850697 by djones:
Try to prevent the engine from enqueuing the next track while in the midst of a track \
change. I think this will take care of that bug for good. But I realize its a very \
rare race condition so let me know if it does happen again.
CCBUG: 168594
M +9 -2 EngineController.cpp
M +1 -0 EngineController.h
--- trunk/extragear/multimedia/amarok/src/EngineController.cpp #850696:850697
@@ -62,8 +62,9 @@
EngineController::EngineController()
: m_media( 0 )
, m_audio( 0 )
- , m_playWhenFetched(true)
+ , m_playWhenFetched( true )
, m_fadeoutTimer( new QTimer( this ) )
+ , m_trackChangeInProgress( false )
{
DEBUG_BLOCK
@@ -481,6 +482,8 @@
{
play( track );
}
+
+ m_trackChangeInProgress = false;
}
@@ -540,11 +543,13 @@
EngineController::slotAboutToFinish()
{
// For some reason, phonon emits this when it's done buffering.
- if( m_media->state() == Phonon::BufferingState )
+ if( m_trackChangeInProgress || m_media->state() == Phonon::BufferingState )
return;
DEBUG_BLOCK
+ m_trackChangeInProgress = true;
+
if( m_multi )
{
m_mutex.lock();
@@ -651,6 +656,8 @@
playUrl( url, 0 );
m_mutex.unlock();
}
+
+ m_trackChangeInProgress = false;
}
void
--- trunk/extragear/multimedia/amarok/src/EngineController.h #850696:850697
@@ -145,6 +145,7 @@
QTimer* m_fadeoutTimer;
QMutex m_mutex;
+ bool m_trackChangeInProgress;
};
namespace The {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic