File amarok-2.2.2-fix-CD-titleChanged.patch of Package amarok
--- amarok-2.2.2/src/EngineController.cpp.title 2010-01-06 23:19:46.000000000 +0100
+++ amarok-2.2.2/src/EngineController.cpp 2010-01-14 16:43:03.000000000 +0100
@@ -74,6 +74,7 @@
EngineController::EngineController()
: m_playWhenFetched( true )
+ , m_currentCDtrack( 1 )
, m_fadeoutTimer( new QTimer( this ) )
, m_volume( 0 )
, m_currentIsAudioCd( false )
@@ -413,13 +414,13 @@
// return;
- int trackNumber = parts.at( 1 ).toInt();
+ m_currentCDtrack = parts.at( 1 ).toInt();
debug() << "3.2.1...";
m_media->clear();
m_media->setCurrentSource( Phonon::Cd );
debug() << "boom?";
- m_controller->setCurrentTitle( trackNumber );
+ m_controller->setCurrentTitle( m_currentCDtrack );
debug() << "no boom?";
//reconnect it
@@ -1176,9 +1177,10 @@
void EngineController::slotTitleChanged( int titleNumber )
{
DEBUG_BLOCK
- Q_UNUSED( titleNumber );
- slotAboutToFinish();
+ if( titleNumber != m_currentCDtrack )
+ slotAboutToFinish();
+
}
bool EngineController::isPlayingAudioCd()
--- amarok-2.2.2/src/EngineController.h.title 2010-01-06 23:19:46.000000000 +0100
+++ amarok-2.2.2/src/EngineController.h 2010-01-14 16:43:03.000000000 +0100
@@ -353,6 +353,7 @@
QPointer<Meta::MultiPlayableCapability> m_multiPlayback;
QPointer<Meta::MultiSourceCapability> m_multiSource;
bool m_playWhenFetched;
+ int m_currentCDtrack;
QTimer* m_fadeoutTimer;
int m_volume;
bool m_currentIsAudioCd;