Commit 46d00dd8 authored by Max Kellermann's avatar Max Kellermann

player/CrossFade: move code to CanCrossFadeSong()

parent ec52b134
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment