1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 16:37:47 +00:00

Piano: Allow per-track controls (again)

This makes Piano exactly as usable as when I started the large refactor
some years ago, which *sounds* like I'm a terrible person but now it (1)
looks nicer and (2) has a flexible backend that can already deal with
aribtrary kinds of processors on any track.
This commit is contained in:
kleines Filmröllchen 2023-02-27 15:31:43 +01:00 committed by Jelle Raaijmakers
parent d757027638
commit 0ab19dc4cd
9 changed files with 92 additions and 45 deletions

View file

@ -11,11 +11,12 @@
class AudioPlayerLoop;
class TrackManager;
class MainWidget;
class PlayerWidget final : public GUI::Toolbar {
C_OBJECT(PlayerWidget)
C_OBJECT_ABSTRACT(PlayerWidget)
public:
static ErrorOr<NonnullRefPtr<PlayerWidget>> create(TrackManager&, AudioPlayerLoop&);
static ErrorOr<NonnullRefPtr<PlayerWidget>> try_create(TrackManager&, MainWidget&, AudioPlayerLoop&);
virtual ~PlayerWidget() override = default;
void add_track();
@ -23,11 +24,12 @@ public:
void toggle_paused();
private:
explicit PlayerWidget(TrackManager&, AudioPlayerLoop&);
explicit PlayerWidget(TrackManager&, MainWidget&, AudioPlayerLoop&);
ErrorOr<void> initialize();
TrackManager& m_track_manager;
MainWidget& m_main_widget;
AudioPlayerLoop& m_audio_loop;
Vector<DeprecatedString> m_track_number_choices;