/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2019-2020, William McPherson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "ProcessorParameterSlider.h" #include #include class TrackManager; class MainWidget; class KnobsWidget final : public GUI::Frame { C_OBJECT(KnobsWidget) public: virtual ~KnobsWidget() override; void update_knobs(); private: KnobsWidget(TrackManager&, MainWidget&); TrackManager& m_track_manager; MainWidget& m_main_widget; RefPtr m_labels_container; RefPtr m_volume_label; RefPtr m_octave_label; RefPtr m_wave_label; RefPtr m_attack_label; RefPtr m_decay_label; RefPtr m_sustain_label; RefPtr m_release_label; NonnullRefPtrVector m_delay_labels; RefPtr m_values_container; RefPtr m_volume_value; RefPtr m_octave_value; RefPtr m_wave_value; RefPtr m_attack_value; RefPtr m_decay_value; RefPtr m_sustain_value; RefPtr m_release_value; NonnullRefPtrVector m_delay_values; RefPtr m_knobs_container; RefPtr m_volume_knob; RefPtr m_octave_knob; RefPtr m_wave_knob; RefPtr m_attack_knob; RefPtr m_decay_knob; RefPtr m_sustain_knob; RefPtr m_release_knob; NonnullRefPtrVector m_delay_knobs; bool m_change_underlying { true }; };