[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/runtime/phonon/xine
From:       Matthias Kretz <kretz () kde ! org>
Date:       2007-11-23 12:38:51
Message-ID: 1195821531.097051.32469.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 740514 by mkretz:

- add currentSourceChanged signal
- some comments to the complicated fake state handling (and making it a bit safer)

 M  +7 -6      mediaobject.cpp  
 M  +1 -0      mediaobject.h  


--- trunk/KDE/kdebase/runtime/phonon/xine/mediaobject.cpp #740513:740514
@@ -316,16 +316,16 @@
 
 void MediaObject::handleStateChange(Phonon::State newstate, Phonon::State oldstate)
 {
-    if (m_state == newstate) {
-        if (m_fakingBuffering) {
-            Q_ASSERT(m_state == BufferingState);
-            m_fakingBuffering = false;
-            kDebug(610) << blue << "end faking" << normal;
-        }
+    if (m_state == newstate && m_state == BufferingState) {
+        m_fakingBuffering = false;
+        kDebug(610) << blue << "end faking" << normal;
         // BufferingState -> BufferingState, nothing to do
         return;
     } else if (m_state != oldstate) {
+        // m_state == oldstate always, except when faking buffering:
         Q_ASSERT(m_fakingBuffering);
+
+        // so we're faking BufferingState, then m_state must be in BufferingState
         Q_ASSERT(m_state == BufferingState);
         if (newstate == PlayingState || newstate == ErrorState) {
             m_fakingBuffering = false;
@@ -494,6 +494,7 @@
         }
         break;
     }
+    emit currentSourceChanged(m_mediaSource);
 //X     if (state() != Phonon::LoadingState) {
 //X         stop();
 //X     }
--- trunk/KDE/kdebase/runtime/phonon/xine/mediaobject.h #740513:740514
@@ -112,6 +112,7 @@
         void finished();
         void prefinishMarkReached(qint32 msec);
         void totalTimeChanged(qint64 length);
+        void currentSourceChanged(const MediaSource &);
 
         void stateChanged(Phonon::State newstate, Phonon::State oldstate);
         void tick(qint64 time);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic