10#ifndef __SCHEMAS_PLUGINS_PLUGIN_DESCRIPTOR_H__
11#define __SCHEMAS_PLUGINS_PLUGIN_DESCRIPTOR_H__
15typedef enum ZPluginCategory_v1
17 ZPLUGIN_CATEGORY_NONE_v1,
18 Z_PLUGIN_CATEGORY_DELAY_v1,
19 Z_PLUGIN_CATEGORY_REVERB_v1,
20 Z_PLUGIN_CATEGORY_DISTORTION_v1,
21 Z_PLUGIN_CATEGORY_WAVESHAPER_v1,
22 Z_PLUGIN_CATEGORY_DYNAMICS_v1,
23 Z_PLUGIN_CATEGORY_AMPLIFIER_v1,
24 Z_PLUGIN_CATEGORY_COMPRESSOR_v1,
25 Z_PLUGIN_CATEGORY_ENVELOPE_v1,
26 Z_PLUGIN_CATEGORY_EXPANDER_v1,
27 Z_PLUGIN_CATEGORY_GATE_v1,
28 Z_PLUGIN_CATEGORY_LIMITER_v1,
29 Z_PLUGIN_CATEGORY_FILTER_v1,
30 Z_PLUGIN_CATEGORY_ALLPASS_FILTER_v1,
31 Z_PLUGIN_CATEGORY_BANDPASS_FILTER_v1,
32 Z_PLUGIN_CATEGORY_COMB_FILTER_v1,
33 Z_PLUGIN_CATEGORY_EQ_v1,
34 Z_PLUGIN_CATEGORY_MULTI_EQ_v1,
35 Z_PLUGIN_CATEGORY_PARA_EQ_v1,
36 Z_PLUGIN_CATEGORY_HIGHPASS_FILTER_v1,
37 Z_PLUGIN_CATEGORY_LOWPASS_FILTER_v1,
38 Z_PLUGIN_CATEGORY_GENERATOR_v1,
39 Z_PLUGIN_CATEGORY_CONSTANT_v1,
40 Z_PLUGIN_CATEGORY_INSTRUMENT_v1,
41 Z_PLUGIN_CATEGORY_OSCILLATOR_v1,
42 Z_PLUGIN_CATEGORY_MIDI_v1,
43 Z_PLUGIN_CATEGORY_MODULATOR_v1,
44 Z_PLUGIN_CATEGORY_CHORUS_v1,
45 Z_PLUGIN_CATEGORY_FLANGER_v1,
46 Z_PLUGIN_CATEGORY_PHASER_v1,
47 Z_PLUGIN_CATEGORY_SIMULATOR_v1,
48 Z_PLUGIN_CATEGORY_SIMULATOR_REVERB_v1,
49 Z_PLUGIN_CATEGORY_SPATIAL_v1,
50 Z_PLUGIN_CATEGORY_SPECTRAL_v1,
51 Z_PLUGIN_CATEGORY_PITCH_v1,
52 Z_PLUGIN_CATEGORY_UTILITY_v1,
53 Z_PLUGIN_CATEGORY_ANALYZER_v1,
54 Z_PLUGIN_CATEGORY_CONVERTER_v1,
55 Z_PLUGIN_CATEGORY_FUNCTION_v1,
56 Z_PLUGIN_CATEGORY_MIXER_v1,
59static const cyaml_strval_t plugin_descriptor_category_strings_v1[] = {
60 {
"None", ZPLUGIN_CATEGORY_NONE_v1 },
61 {
"Delay", Z_PLUGIN_CATEGORY_DELAY_v1 },
62 {
"Reverb", Z_PLUGIN_CATEGORY_REVERB_v1 },
63 {
"Distortion", Z_PLUGIN_CATEGORY_DISTORTION_v1 },
64 {
"Waveshaper", Z_PLUGIN_CATEGORY_WAVESHAPER_v1 },
65 {
"Dynamics", Z_PLUGIN_CATEGORY_DYNAMICS_v1 },
66 {
"Amplifier", Z_PLUGIN_CATEGORY_AMPLIFIER_v1 },
67 {
"Compressor", Z_PLUGIN_CATEGORY_COMPRESSOR_v1 },
68 {
"Envelope", Z_PLUGIN_CATEGORY_ENVELOPE_v1 },
69 {
"Expander", Z_PLUGIN_CATEGORY_EXPANDER_v1 },
70 {
"Gate", Z_PLUGIN_CATEGORY_GATE_v1 },
71 {
"Limiter", Z_PLUGIN_CATEGORY_LIMITER_v1 },
72 {
"Filter", Z_PLUGIN_CATEGORY_FILTER_v1 },
73 {
"Allpass Filter", Z_PLUGIN_CATEGORY_ALLPASS_FILTER_v1 },
74 {
"Bandpass Filter", Z_PLUGIN_CATEGORY_BANDPASS_FILTER_v1 },
75 {
"Comb Filter", Z_PLUGIN_CATEGORY_COMB_FILTER_v1 },
76 {
"EQ", Z_PLUGIN_CATEGORY_EQ_v1 },
77 {
"Multi-EQ", Z_PLUGIN_CATEGORY_MULTI_EQ_v1 },
78 {
"Parametric EQ", Z_PLUGIN_CATEGORY_PARA_EQ_v1 },
79 {
"Highpass Filter", Z_PLUGIN_CATEGORY_HIGHPASS_FILTER_v1 },
80 {
"Lowpass Filter", Z_PLUGIN_CATEGORY_LOWPASS_FILTER_v1 },
81 {
"Generator", Z_PLUGIN_CATEGORY_GENERATOR_v1 },
82 {
"Constant", Z_PLUGIN_CATEGORY_CONSTANT_v1 },
83 {
"Instrument", Z_PLUGIN_CATEGORY_INSTRUMENT_v1 },
84 {
"Oscillator", Z_PLUGIN_CATEGORY_OSCILLATOR_v1 },
85 {
"MIDI", Z_PLUGIN_CATEGORY_MIDI_v1 },
86 {
"Modulator", Z_PLUGIN_CATEGORY_MODULATOR_v1 },
87 {
"Chorus", Z_PLUGIN_CATEGORY_CHORUS_v1 },
88 {
"Flanger", Z_PLUGIN_CATEGORY_FLANGER_v1 },
89 {
"Phaser", Z_PLUGIN_CATEGORY_PHASER_v1 },
90 {
"Simulator", Z_PLUGIN_CATEGORY_SIMULATOR_v1 },
91 {
"Simulator Reverb", Z_PLUGIN_CATEGORY_SIMULATOR_REVERB_v1 },
92 {
"Spatial", Z_PLUGIN_CATEGORY_SPATIAL_v1 },
93 {
"Spectral", Z_PLUGIN_CATEGORY_SPECTRAL_v1 },
94 {
"Pitch", Z_PLUGIN_CATEGORY_PITCH_v1 },
95 {
"Utility", Z_PLUGIN_CATEGORY_UTILITY_v1 },
96 {
"Analyzer", Z_PLUGIN_CATEGORY_ANALYZER_v1 },
97 {
"Converter", Z_PLUGIN_CATEGORY_CONVERTER_v1 },
98 {
"Function", Z_PLUGIN_CATEGORY_FUNCTION_v1 },
99 {
"Mixer", Z_PLUGIN_CATEGORY_MIXER_v1 },
102typedef enum PluginProtocol_v1
117static const cyaml_strval_t plugin_protocol_strings_v1[] = {
118 {
"Dummy", PROT_DUMMY_v1 },
119 {
"LV2", PROT_LV2_v1 },
120 {
"DSSI", PROT_DSSI_v1 },
121 {
"LADSPA", PROT_LADSPA_v1 },
122 {
"VST", PROT_VST_v1 },
123 {
"VST3", PROT_VST3_v1 },
124 {
"AU", PROT_AU_v1 },
125 {
"SFZ", PROT_SFZ_v1 },
126 {
"SF2", PROT_SF2_v1 },
127 {
"CLAP", PROT_CLAP_v1 },
128 {
"JSFX", PROT_JSFX_v1 },
131typedef enum PluginArchitecture_v1
133 Z_PLUGIN_ARCHITECTURE_32_v1,
134 Z_PLUGIN_ARCHITECTURE_64_v1,
135} PluginArchitecture_v1;
137static const cyaml_strval_t plugin_architecture_strings_v1[] = {
138 {
"32-bit", Z_PLUGIN_ARCHITECTURE_32_v1 },
139 {
"64-bit", Z_PLUGIN_ARCHITECTURE_64_v1 },
142typedef enum ZCarlaBridgeMode_v1
144 Z_CARLA_BRIDGE_NONE_v1,
145 Z_CARLA_BRIDGE_UI_v1,
146 Z_CARLA_BRIDGE_FULL_v1,
147} ZCarlaBridgeMode_v1;
149static const cyaml_strval_t carla_bridge_mode_strings_v1[] = {
150 {
"None", Z_CARLA_BRIDGE_NONE_v1 },
151 {
"UI", Z_CARLA_BRIDGE_UI_v1 },
152 {
"Full", Z_CARLA_BRIDGE_FULL_v1 },
165 ZPluginCategory_v1 category;
175 PluginArchitecture_v1 arch;
176 PluginProtocol_v1 protocol;
180 ZCarlaBridgeMode_v1 min_bridge_mode;
185static const cyaml_schema_field_t plugin_descriptor_fields_schema_v1[] = {
193 plugin_descriptor_category_strings_v1),
211 carla_bridge_mode_strings_v1),
218static const cyaml_schema_value_t plugin_descriptor_schema_v1 = {