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
9#include "juce_wrapper.h"
10
11namespace zrythm::plugins
12{
13
14class Protocol : public QObject
15{
16 Q_OBJECT
17 QML_ELEMENT
18 QML_NAMED_ELEMENT (ProtocolType)
19
20public:
24 enum class ProtocolType : std::uint8_t
25 {
28 LV2,
29 DSSI,
30 LADSPA,
31 VST,
32 VST3,
33 AudioUnit,
34 SFZ,
35 SF2,
36 CLAP,
37 JSFX,
38 };
39 Q_ENUM (ProtocolType)
40
41public:
42 static std::string to_string (ProtocolType prot);
43
44 static ProtocolType from_string (const std::string &str);
45
46 static ProtocolType from_juce_format_name (const juce::String &str);
47 static juce::String to_juce_format_name (ProtocolType prot);
48
49 static bool is_supported (ProtocolType protocol);
50
51 static std::string get_icon_name (ProtocolType prot);
52};
53
54} // namespace zrythm::plugins
@ Internal
Dummy protocol for tests.