player/CrossFade: move code to CanCrossFadeSong()
This commit is contained in:
		@@ -30,6 +30,13 @@
 | 
			
		||||
 | 
			
		||||
static constexpr Domain cross_fade_domain("cross_fade");
 | 
			
		||||
 | 
			
		||||
inline bool
 | 
			
		||||
CrossFadeSettings::CanCrossFadeSong(SignedSongTime total_time) const noexcept
 | 
			
		||||
{
 | 
			
		||||
	return !total_time.IsNegative() &&
 | 
			
		||||
		duration >= std::chrono::duration_cast<FloatDuration>(total_time);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gcc_pure
 | 
			
		||||
static FloatDuration
 | 
			
		||||
mixramp_interpolate(const char *ramp_list, float required_db) noexcept
 | 
			
		||||
@@ -97,8 +104,7 @@ CrossFadeSettings::Calculate(SignedSongTime total_time,
 | 
			
		||||
	unsigned int chunks = 0;
 | 
			
		||||
 | 
			
		||||
	if (!IsEnabled() ||
 | 
			
		||||
	    total_time.IsNegative() ||
 | 
			
		||||
	    duration >= std::chrono::duration_cast<FloatDuration>(total_time) ||
 | 
			
		||||
	    !CanCrossFadeSong(total_time) ||
 | 
			
		||||
	    /* we can't crossfade when the audio formats are different */
 | 
			
		||||
	    af != old_format)
 | 
			
		||||
		return 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -64,6 +64,13 @@ struct CrossFadeSettings {
 | 
			
		||||
			   const char *mixramp_prev_end,
 | 
			
		||||
			   AudioFormat af, AudioFormat old_format,
 | 
			
		||||
			   unsigned max_chunks) const noexcept;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	/**
 | 
			
		||||
	 * Can the described song be cross-faded?
 | 
			
		||||
	 */
 | 
			
		||||
	[[gnu::pure]]
 | 
			
		||||
	bool CanCrossFadeSong(SignedSongTime total_time) const noexcept;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user