Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
internal_plugin_base.h
1// SPDX-FileCopyrightText: © 2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "plugins/plugin.h"
7
8namespace zrythm::plugins
9{
10
17{
18 Q_OBJECT
19 QML_ELEMENT
20 QML_UNCREATABLE ("")
21
22public:
31 QObject * parent = nullptr);
32
33 ~InternalPluginBase () override;
34
35protected:
36 void prepare_for_processing_impl (
37 units::sample_rate_t sample_rate,
38 units::sample_u32_t max_block_length) override;
39
40 void process_impl (dsp::graph::ProcessBlockInfo time_info) noexcept override;
41
42 std::string save_state_impl () const override { return {}; }
43 void load_state_impl (const std::string &) override { }
44
45private Q_SLOTS:
49 void on_configuration_changed (
50 PluginConfiguration * configuration,
51 bool generateNewPluginPortsAndParams);
52
56 void on_ui_visibility_changed ();
57};
58
59} // namespace zrythm::plugins
InternalPluginBase(dsp::ProcessorBase::ProcessorBaseDependencies dependencies, QObject *parent=nullptr)
Constructor for InternalPluginBase.
Plugin(ProcessorBaseDependencies dependencies, QObject *parent)
Creates/initializes a plugin and its internal plugin (LV2, etc.) using the given setting.
Common struct to pass around during processing to avoid repeating the data in function arguments.
Definition graph_node.h:51