player/CrossFade: move code to CanCrossFadeSong()
This commit is contained in:
parent
ec52b13449
commit
46d00dd85f
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue