/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2019-2020, William McPherson * Copyright (c) 2022, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "ProcessorParameterWidget/Dropdown.h" #include "ProcessorParameterWidget/Slider.h" #include #include #include #include #include #include class TrackManager; class MainWidget; class KnobsWidget final : public GUI::Frame { C_OBJECT(KnobsWidget) public: virtual ~KnobsWidget() override = default; void update_knobs(); void cycle_waveform(); private: KnobsWidget(TrackManager&, MainWidget&); TrackManager& m_track_manager; MainWidget& m_main_widget; RefPtr m_labels_container; RefPtr m_volume_label; RefPtr m_octave_label; NonnullRefPtrVector m_synth_labels; NonnullRefPtrVector m_delay_labels; RefPtr m_values_container; RefPtr m_volume_value; RefPtr m_octave_value; NonnullRefPtrVector m_synth_values; NonnullRefPtrVector m_delay_values; RefPtr m_knobs_container; RefPtr m_volume_knob; RefPtr m_octave_knob; RefPtr> m_synth_waveform; NonnullRefPtrVector m_synth_knobs; NonnullRefPtrVector m_delay_knobs; bool m_change_underlying { true }; };