diff options
Diffstat (limited to 'Userland/Libraries/LibAudio/Sample.h')
-rw-r--r-- | Userland/Libraries/LibAudio/Sample.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Userland/Libraries/LibAudio/Sample.h b/Userland/Libraries/LibAudio/Sample.h index ec52cd90c1..b3b5e57e2f 100644 --- a/Userland/Libraries/LibAudio/Sample.h +++ b/Userland/Libraries/LibAudio/Sample.h @@ -97,8 +97,10 @@ struct Sample { double const pi_over_2 = AK::Pi<double> * 0.5; double const root_over_2 = AK::sqrt(2.0) * 0.5; double const angle = position * pi_over_2 * 0.5; - left *= root_over_2 * (AK::cos(angle) - AK::sin(angle)); - right *= root_over_2 * (AK::cos(angle) + AK::sin(angle)); + double s, c; + AK::sincos(angle, s, c); + left *= root_over_2 * (c - s); + right *= root_over_2 * (c + s); return *this; } @@ -116,7 +118,7 @@ struct Sample { return *this; } - constexpr Sample operator*(double const mult) + constexpr Sample operator*(double const mult) const { return { left * mult, right * mult }; } @@ -134,7 +136,7 @@ struct Sample { return *this; } - constexpr Sample operator+(Sample const& other) + constexpr Sample operator+(Sample const& other) const { return { left + other.left, right + other.right }; } |