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 = 1 << (DstTraits::BITS - 1);
41 return PcmClamp<F, Traits>(
SL(src * factor));
48 template<SampleFormat F,
class Traits=SampleTraits<F>>
53 typedef typename SrcTraits::value_type
SV;
56 static constexpr DV
factor = 0.5 / (1 << (SrcTraits::BITS - 2));
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