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
41 process_impl (dsp::graph::EngineProcessTimeInfo time_info) noexcept override;
42
43 std::string save_state_impl () const override { return {}; }
44 void load_state_impl (const std::string &) override { }
45
46private Q_SLOTS:
50 void on_configuration_changed (
51 PluginConfiguration * configuration,
52 bool generateNewPluginPortsAndParams);
53
57 void on_ui_visibility_changed ();
58};
59
60} // 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