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;
openSUSE Build Service is sponsored by