20 #ifndef MPD_PCM_FLOAT_CONVERT_HXX 21 #define MPD_PCM_FLOAT_CONVERT_HXX 28 template<SampleFormat F,
class Traits=SampleTraits<F>>
35 typedef typename DstTraits::value_type
DV;
37 static constexpr
SV factor = uintmax_t(1) << (DstTraits::BITS - 1);
38 static_assert(
factor > 0,
"Wrong factor");
42 return PcmClamp<F, Traits>(
SL(src *
factor));
49 template<SampleFormat F,
class Traits=SampleTraits<F>>
54 typedef typename SrcTraits::value_type
SV;
58 static_assert(
factor > 0,
"Wrong factor");
Convert from float to an integer sample format.
static gcc_const DV Convert(SV src) noexcept
static constexpr SV factor
SampleTraits< SampleFormat::FLOAT > DstTraits
Convert from an integer sample format to float.
SampleTraits< SampleFormat::FLOAT > SrcTraits
static constexpr DV factor
static gcc_const DV Convert(SV src) noexcept