1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 20:37:36 +00:00

Piano+LibDSP: Move Track to LibDSP

This is a tangly commit and it fixes all the bugs that a plain move
would have caused (i.e. we need to touch other logic which had wrong
assumptions).
This commit is contained in:
kleines Filmröllchen 2022-07-13 12:44:19 +02:00 committed by Linus Groh
parent 125122a9ab
commit 4941cffdd0
29 changed files with 322 additions and 413 deletions

View file

@ -34,7 +34,7 @@ KnobsWidget::KnobsWidget(TrackManager& track_manager, MainWidget& main_widget)
m_values_container->set_layout<GUI::HorizontalBoxLayout>();
m_values_container->set_fixed_height(10);
m_volume_value = m_values_container->add<GUI::Label>(String::number(m_track_manager.current_track().volume()));
m_volume_value = m_values_container->add<GUI::Label>(String::number(m_track_manager.current_track()->volume()));
m_octave_value = m_values_container->add<GUI::Label>(String::number(m_track_manager.keyboard()->virtual_keyboard_octave()));
m_knobs_container = add<GUI::Widget>();
@ -44,13 +44,13 @@ KnobsWidget::KnobsWidget(TrackManager& track_manager, MainWidget& main_widget)
m_volume_knob = m_knobs_container->add<GUI::VerticalSlider>();
m_volume_knob->set_range(0, volume_max);
m_volume_knob->set_value(volume_max - m_track_manager.current_track().volume());
m_volume_knob->set_value(volume_max - m_track_manager.current_track()->volume());
m_volume_knob->set_step(10);
m_volume_knob->on_change = [this](int value) {
int new_volume = volume_max - value;
if (m_change_underlying)
m_track_manager.current_track().set_volume(new_volume);
VERIFY(new_volume == m_track_manager.current_track().volume());
m_track_manager.current_track()->set_volume(new_volume);
VERIFY(new_volume == m_track_manager.current_track()->volume());
m_volume_value->set_text(String::number(new_volume));
};
@ -67,7 +67,7 @@ KnobsWidget::KnobsWidget(TrackManager& track_manager, MainWidget& main_widget)
m_octave_value->set_text(String::number(new_octave));
};
for (auto& raw_parameter : m_track_manager.current_track().synth()->parameters()) {
for (auto& raw_parameter : m_track_manager.current_track()->synth()->parameters()) {
// The synth has range and enum parameters
switch (raw_parameter.type()) {
case DSP::ParameterType::Range: {
@ -94,7 +94,7 @@ KnobsWidget::KnobsWidget(TrackManager& track_manager, MainWidget& main_widget)
}
}
for (auto& raw_parameter : m_track_manager.current_track().delay()->parameters()) {
for (auto& raw_parameter : m_track_manager.current_track()->delay()->parameters()) {
// FIXME: We shouldn't do that, but we know the effect and it's nice.
auto& parameter = static_cast<DSP::ProcessorRangeParameter&>(raw_parameter);
m_delay_values.append(m_values_container->add<GUI::Label>(String::number(static_cast<double>(parameter.value()))));
@ -116,7 +116,7 @@ void KnobsWidget::update_knobs()
// need to change the slider without changing the underlying value.
m_change_underlying = false;
m_volume_knob->set_value(volume_max - m_track_manager.current_track().volume());
m_volume_knob->set_value(volume_max - m_track_manager.current_track()->volume());
m_octave_knob->set_value(octave_max - m_track_manager.keyboard()->virtual_keyboard_octave());
m_change_underlying = true;