Newer
Older
minerva / Userland / Applications / Piano / TrackControlsWidget.h
@minerva minerva on 13 Jul 813 bytes Initial commit
/*
 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
 * Copyright (c) 2019-2020, William McPherson <willmcpherson2@gmail.com>
 * Copyright (c) 2022, the SerenityOS developers.
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include "ProcessorParameterWidget/ParameterWidget.h"
#include <AK/Vector.h>
#include <AK/WeakPtr.h>
#include <LibDSP/Track.h>
#include <LibGUI/Forward.h>

class TrackControlsWidget final : public GUI::Frame {
    C_OBJECT_ABSTRACT(TrackControlsWidget)
public:
    virtual ~TrackControlsWidget() override = default;

    static ErrorOr<NonnullRefPtr<TrackControlsWidget>> try_create(WeakPtr<DSP::Track>);

private:
    TrackControlsWidget(WeakPtr<DSP::Track>);

    WeakPtr<DSP::Track> m_track;
    Vector<NonnullRefPtr<GUI::GroupBox>> m_processor_groups;
};