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");
|
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
|
gcc_pure
|
||||||
static FloatDuration
|
static FloatDuration
|
||||||
mixramp_interpolate(const char *ramp_list, float required_db) noexcept
|
mixramp_interpolate(const char *ramp_list, float required_db) noexcept
|
||||||
|
@ -97,8 +104,7 @@ CrossFadeSettings::Calculate(SignedSongTime total_time,
|
||||||
unsigned int chunks = 0;
|
unsigned int chunks = 0;
|
||||||
|
|
||||||
if (!IsEnabled() ||
|
if (!IsEnabled() ||
|
||||||
total_time.IsNegative() ||
|
!CanCrossFadeSong(total_time) ||
|
||||||
duration >= std::chrono::duration_cast<FloatDuration>(total_time) ||
|
|
||||||
/* we can't crossfade when the audio formats are different */
|
/* we can't crossfade when the audio formats are different */
|
||||||
af != old_format)
|
af != old_format)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -64,6 +64,13 @@ struct CrossFadeSettings {
|
||||||
const char *mixramp_prev_end,
|
const char *mixramp_prev_end,
|
||||||
AudioFormat af, AudioFormat old_format,
|
AudioFormat af, AudioFormat old_format,
|
||||||
unsigned max_chunks) const noexcept;
|
unsigned max_chunks) const noexcept;
|
||||||
|
|
||||||
|
private:
|
||||||
|
/**
|
||||||
|
* Can the described song be cross-faded?
|
||||||
|
*/
|
||||||
|
[[gnu::pure]]
|
||||||
|
bool CanCrossFadeSong(SignedSongTime total_time) const noexcept;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue