1 #include "../stdafx.h"
\r
3 #include "audio_transform.h"
\r
5 namespace caspar { namespace core {
\r
7 audio_transform::audio_transform()
\r
11 void audio_transform::set_gain(double value)
\r
16 double audio_transform::get_gain() const
\r
21 void audio_transform::set_has_audio(bool value)
\r
26 bool audio_transform::get_has_audio() const
\r
31 audio_transform& audio_transform::operator*=(const audio_transform &other)
\r
33 gain_ *= other.gain_;
\r
34 audio_ &= other.audio_;
\r
38 const audio_transform audio_transform::operator*(const audio_transform &other) const
\r
40 return audio_transform(*this) *= other;
\r
43 template<typename T>
\r
44 T mix(const T& lhs, const T& rhs, float alpha)
\r
46 return (1.0f - alpha) * lhs + alpha * rhs;
\r
49 audio_transform lerp(const audio_transform& lhs, const audio_transform& rhs, float alpha)
\r
51 audio_transform result;
\r
52 result.set_gain(mix(lhs.get_gain(), rhs.get_gain(), alpha));
\r
53 result.set_has_audio(lhs.get_has_audio() || rhs.get_has_audio());
\r