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

List:       kde-commits
Subject:    extragear/multimedia/amarok/src/engine/xine
From:       Paul Cifarelli <paulc2 () optonline ! net>
Date:       2007-01-16 2:38:25
Message-ID: 1168915105.297660.21084.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 623939 by cifarelli:

properly respect the fadeout length in the Playback dialog here too



 M  +7 -6      xine-engine.cpp  
 M  +4 -3      xine-engine.h  


--- trunk/extragear/multimedia/amarok/src/engine/xine/xine-engine.cpp #623938:623939
@@ -102,7 +102,7 @@
 
     if( AmarokConfig::fadeoutOnExit() ) {
         bool terminateFader = false;
-        fadeOut( &terminateFader, true ); // true == exiting
+        fadeOut( AmarokConfig::fadeoutLength(), &terminateFader, true ); // true == exiting
     }
 
     if( m_xine )       xine_config_save( m_xine, configPath() );
@@ -378,7 +378,7 @@
 
     if( AmarokConfig::fadeout() && !m_fadeOutRunning || state() == Engine::Paused )
     {
-        s_outfader = new OutFader( this );
+        s_outfader = new OutFader( this, AmarokConfig::fadeoutLength() );
         s_outfader->start();
         ::usleep( 100 ); //to be sure engine state won't be changed before it is checked in fadeOut()
         m_url = KURL(); //to ensure we return Empty from state()
@@ -530,7 +530,7 @@
 }
 
 void
-XineEngine::fadeOut( bool* terminate, bool exiting )
+XineEngine::fadeOut( uint fadeLength, bool* terminate, bool exiting )
 {
     if( m_fadeOutRunning ) //Let us not start another fadeout...
         return;
@@ -540,7 +540,7 @@
     const float originalVol = Engine::Base::makeVolumeLogarithmic( m_volume ) * m_preamp;
 
     // On shutdown, limit fadeout to 3 secs max, so that we don't risk getting killed
-    const int length = exiting ? QMIN( AmarokConfig::fadeoutLength(), 3000 ) : m_xfadeLength;
+    const int length = exiting ? QMIN( fadeLength, 3000 ) : fadeLength;
 
     if( length > 0 && isPlaying )
     {
@@ -1287,11 +1287,12 @@
 /// class OutFader
 //////////////////////////////////////////////////////////////////////////////
 
-OutFader::OutFader( XineEngine *engine )
+OutFader::OutFader( XineEngine *engine, uint fadeLength )
    : QObject( engine )
    , QThread()
    , m_engine( engine )
    , m_terminated( false )
+   , m_fadeLength( fadeLength )
 {
     DEBUG_BLOCK
 }
@@ -1310,7 +1311,7 @@
 {
     DEBUG_BLOCK
 
-    m_engine->fadeOut( &m_terminated );
+    m_engine->fadeOut( m_fadeLength, &m_terminated );
 
     xine_stop( m_engine->m_stream );
     xine_close( m_engine->m_stream );
--- trunk/extragear/multimedia/amarok/src/engine/xine/xine-engine.h #623938:623939
@@ -53,7 +53,7 @@
     virtual void setEqualizerEnabled( bool );
     virtual void setEqualizerParameters( int preamp, const QValueList<int>& );
     virtual void setVolumeSW( uint );
-    virtual void fadeOut( bool* terminate, bool exiting = false );
+    virtual void fadeOut( uint fadeLength, bool* terminate, bool exiting = false );
 
     static  void XineEventListener( void*, const xine_event_t* );
     virtual void customEvent( QCustomEvent* );
@@ -124,12 +124,13 @@
 class OutFader : public QObject, public QThread
 {
     XineEngine *m_engine;
-    bool m_terminated;
+    bool        m_terminated;
+    uint        m_fadeLength;
 
     virtual void run();
 
 public:
-    OutFader( XineEngine * );
+    OutFader( XineEngine *, uint fadeLengthMs );
     ~OutFader();
 
    void finish();
[prev in list] [next in list] [prev in thread] [next in thread] 

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