Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin_preset.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2020-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __SCHEMAS_PLUGINS_PLUGIN_PRESET_H__
11#define __SCHEMAS_PLUGINS_PLUGIN_PRESET_H__
12
14#include "utils/yaml.h"
15
17{
18 int schema_version;
19 int idx;
20 int bank_idx;
21 PluginIdentifier_v1 plugin_id;
23
24static const cyaml_schema_field_t plugin_preset_identifier_fields_schema_v1[] = {
25 YAML_FIELD_INT (PluginPresetIdentifier_v1, schema_version),
26 YAML_FIELD_INT (PluginPresetIdentifier_v1, idx),
27 YAML_FIELD_INT (PluginPresetIdentifier_v1, bank_idx),
28 YAML_FIELD_MAPPING_EMBEDDED (
30 plugin_id,
31 plugin_identifier_fields_schema_v1),
32
33 CYAML_FIELD_END
34};
35
36static const cyaml_schema_value_t plugin_preset_identifier_schema_v1 = {
37 YAML_VALUE_PTR (
39 plugin_preset_identifier_fields_schema_v1),
40};
41
42typedef struct PluginPreset_v1
43{
44 int schema_version;
45 char * name;
46 char * uri;
47 int carla_program;
50
51static const cyaml_schema_field_t plugin_preset_fields_schema_v1[] = {
52 YAML_FIELD_INT (PluginPreset_v1, schema_version),
53 YAML_FIELD_STRING_PTR (PluginPreset_v1, name),
54 YAML_FIELD_STRING_PTR_OPTIONAL (PluginPreset_v1, uri),
55 YAML_FIELD_INT (PluginPreset_v1, carla_program),
56 YAML_FIELD_MAPPING_EMBEDDED (
58 id,
59 plugin_preset_identifier_fields_schema_v1),
60
61 CYAML_FIELD_END
62};
63
64static const cyaml_schema_value_t plugin_preset_schema_v1 = {
65 YAML_VALUE_PTR (PluginPreset_v1, plugin_preset_fields_schema_v1),
66};
67
68typedef struct PluginBank_v1
69{
70 int schema_version;
71 PluginPreset_v1 ** presets;
72 int num_presets;
73 size_t presets_size;
74 char * uri;
75 char * name;
78
79static const cyaml_schema_field_t plugin_bank_fields_schema_v1[] = {
80 YAML_FIELD_STRING_PTR (PluginBank_v1, schema_version),
81 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT (
83 presets,
84 plugin_preset_schema_v1),
85 YAML_FIELD_STRING_PTR (PluginBank_v1, name),
86 YAML_FIELD_STRING_PTR_OPTIONAL (PluginBank_v1, uri),
87 YAML_FIELD_MAPPING_EMBEDDED (
89 id,
90 plugin_preset_identifier_fields_schema_v1),
91
92 CYAML_FIELD_END
93};
94
95static const cyaml_schema_value_t plugin_bank_schema_v1 = {
96 YAML_VALUE_PTR (PluginBank_v1, plugin_bank_fields_schema_v1),
97};
98
99#endif
Plugin identifier.
YAML utils.