Bug 136428

Summary: pausing track and then playing different one triggers crossfade (continues playing the paused track for a while)
Product: [Applications] amarok Reporter: Vlastimil Babka (Caster) <caster>
Component: generalAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.4.4   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Check if we happen to be paused before crossfading...

Description Vlastimil Babka (Caster) 2006-10-28 19:18:21 UTC
Version:           1.4.4 (using KDE KDE 3.5.5)
Installed from:    Gentoo Packages
OS:                Linux

I think it should not crossfade from a track that was paused. Didn't try how previous versions behave, I turned fading on manual changes because it's now possible in 1.4.4.
Comment 1 Tuomas Nurmi 2006-10-28 21:24:35 UTC
Created attachment 18307 [details]
Check if we happen to be paused before crossfading...
Comment 2 Alexandre Oliveira 2006-10-28 23:37:59 UTC
SVN commit 599865 by aoliveira:

Amarok won't crossfade if it was paused, and user started another track. 
One more patch by Tuomas Nurmi <tnurmi@edu.kauhajoki.fi>
BUG:  136428)


 M  +2 -0      ChangeLog  
 M  +1 -0      src/engine/xine/xine-engine.cpp  


--- trunk/extragear/multimedia/amarok/ChangeLog #599864:599865
@@ -7,6 +7,8 @@
     * Support for %composer and %genre when guessing tags from filenames.
 
   CHANGES:
+    * Amarok won't crossfade if it was paused, and user started another
+      track. (BR 136428)
     * Amarok now saves playlists with relative paths by default.
 
   BUGFIXES:
--- trunk/extragear/multimedia/amarok/src/engine/xine/xine-engine.cpp #599864:599865
@@ -217,6 +217,7 @@
     Engine::Base::load( url, isStream );
 
     if( m_xfadeLength > 0 && xine_get_status( m_stream ) == XINE_STATUS_PLAY &&
+         xine_get_param( m_stream, XINE_PARAM_SPEED ) != XINE_SPEED_PAUSE &&
         ( m_xfadeNextTrack || //set by engine controller when switching tracks automatically
          (uint) AmarokConfig::crossfadeType() == 0 ||  //crossfade always
          (uint) AmarokConfig::crossfadeType() == 2 ) ) //crossfade when switching tracks manually