/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2019-2020, William McPherson * Copyright (c) 2022, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ #include "TrackControlsWidget.h" #include "ProcessorParameterWidget/ParameterWidget.h" #include #include #include #include TrackControlsWidget::TrackControlsWidget(WeakPtr track) : m_track(move(track)) { } ErrorOr> TrackControlsWidget::try_create(WeakPtr track) { auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) TrackControlsWidget(move(track)))); widget->set_layout(); widget->set_preferred_width(GUI::SpecialDimension::Grow); widget->set_fill_with_background_color(true); auto& mastering_parameters = widget->add(); mastering_parameters.set_layout(); auto strong_track = widget->m_track.value(); for (auto& parameter : strong_track->track_mastering()->parameters()) mastering_parameters.add(parameter); TRY(widget->m_processor_groups.try_append(mastering_parameters)); widget->add_spacer(); for (auto& processor : strong_track->processor_chain()) { auto& processor_parameters = widget->add(); processor_parameters.set_layout(); for (auto& parameter : processor->parameters()) processor_parameters.add(parameter); TRY(widget->m_processor_groups.try_append(processor_parameters)); } return widget; }