Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin_protocol.h
1// SPDX-FileCopyrightText: © 2024-2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include <QObject>
7#include <QtQmlIntegration/qqmlintegration.h>
8
9namespace juce
10{
11class String;
12}
13
14namespace zrythm::plugins
15{
16
17class Protocol : public QObject
18{
19 Q_OBJECT
20 QML_ELEMENT
21 QML_NAMED_ELEMENT (ProtocolType)
22
23public:
27 enum class ProtocolType : std::uint8_t
28 {
31 LV2,
32 DSSI,
33 LADSPA,
34 VST,
35 VST3,
36 AudioUnit,
37 SFZ,
38 SF2,
39 CLAP,
40 JSFX,
41 };
42 Q_ENUM (ProtocolType)
43
44public:
45 static std::string to_string (ProtocolType prot);
46
47 static ProtocolType from_string (const std::string &str);
48
49 static ProtocolType from_juce_format_name (const juce::String &str);
50 static juce::String to_juce_format_name (ProtocolType prot);
51
52 static bool is_supported (ProtocolType protocol);
53
54 static std::string get_icon_name (ProtocolType prot);
55};
56
57} // namespace zrythm::plugins
@ Internal
Dummy protocol for tests.