Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin_all.h
1// SPDX-FileCopyrightText: © 2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6// #include "plugins/carla_native_plugin.h"
7#include "plugins/clap_plugin.h"
8#include "plugins/internal_plugin_base.h"
9#include "plugins/juce_plugin.h"
10
11namespace zrythm::plugins
12{
13inline auto
14plugin_ptr_variant_to_base (const PluginPtrVariant &var)
15{
16 return std::visit ([] (auto &&pl) -> Plugin * { return pl; }, var);
17}
18
19inline auto
20plugin_base_to_ptr_variant (Plugin * pl) -> PluginPtrVariant
21{
22 if (auto * clap = dynamic_cast<ClapPlugin *> (pl))
23 {
24 return clap;
25 }
26 if (auto * juce = dynamic_cast<JucePlugin *> (pl))
27 {
28 return juce;
29 }
30 if (auto * internal = dynamic_cast<InternalPluginBase *> (pl))
31 {
32 return internal;
33 }
34 throw std::invalid_argument ("Invalid plugin ptr");
35}
36} // namespace zrythm::plugins
CLAP-based plugin host implementation.
Definition clap_plugin.h:24
A base class for internal plugins.
JUCE-based plugin host implementation.
Definition juce_plugin.h:20
DSP processing plugin.
Definition plugin.h:30