ladybird/Userland/Libraries/LibDSP/Effects.cpp
Brian Gianforcaro 69bc04d870 LibDSP: Remove unused Effects::Delay::m_old_delay_size member
SonarCloud flagged this as m_delay_buffer is technically uninitialized
at the point at which the POD types are initialized in a constructor.

I don't check to see if this was actually a real issue, as the member
is ultimately unused. So lets just get rid of it.
2021-09-28 10:58:09 +02:00

65 lines
1.7 KiB
C++

/*
* Copyright (c) 2021, kleines Filmröllchen <malu.bertsch@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "Effects.h"
#include <math.h>
namespace LibDSP::Effects {
Delay::Delay(NonnullRefPtr<Transport> transport)
: EffectProcessor(move(transport))
, m_delay_decay("Decay"sv, 0.01, 0.99, 0.33)
, m_delay_time("Delay Time"sv, 3, 2000, 900)
, m_dry_gain("Dry"sv, 0, 1, 0.9)
{
m_parameters.append(m_delay_decay);
m_parameters.append(m_delay_time);
m_parameters.append(m_dry_gain);
}
void Delay::handle_delay_time_change()
{
// We want a delay buffer that can hold samples filling the specified number of milliseconds.
double seconds = static_cast<double>(m_delay_time) / 1000.0;
size_t sample_count = ceil(seconds * m_transport->sample_rate());
if (sample_count != m_delay_buffer.size()) {
m_delay_buffer.resize(sample_count, true);
m_delay_index %= max(m_delay_buffer.size(), 1);
}
}
Signal Delay::process_impl(Signal const& input_signal)
{
handle_delay_time_change();
Sample const& in = input_signal.get<Sample>();
Sample out;
out += in.log_multiplied(static_cast<double>(m_dry_gain));
out += m_delay_buffer[m_delay_index].log_multiplied(m_delay_decay);
// This is also convenient for disabling the delay effect by setting the buffer size to 0
if (m_delay_buffer.size() >= 1)
m_delay_buffer[m_delay_index++] = out;
if (m_delay_index >= m_delay_buffer.size())
m_delay_index = 0;
return Signal(out);
}
Mastering::Mastering(NonnullRefPtr<Transport> transport)
: EffectProcessor(move(transport))
{
}
Signal Mastering::process_impl([[maybe_unused]] Signal const& input_signal)
{
TODO();
}
}