Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2018-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __SCHEMAS_PLUGINS_PLUGIN_H__
11#define __SCHEMAS_PLUGINS_PLUGIN_H__
12
13#include "zrythm-config.h"
14
20#include "utils/types.h"
21
22typedef struct Plugin_v1
23{
24 int schema_version;
26 PluginSetting_v1 * setting;
27 Port_v1 ** in_ports;
28 int num_in_ports;
29 Port_v1 ** out_ports;
30 int num_out_ports;
31 PluginBank_v1 ** banks;
32 int num_banks;
33 PluginPresetIdentifier_v1 selected_bank;
34 PluginPresetIdentifier_v1 selected_preset;
35 bool visible;
36 char * state_dir;
37} Plugin_v1;
38
39static const cyaml_schema_field_t plugin_fields_schema_v1[] = {
40 YAML_FIELD_INT (Plugin_v1, schema_version),
41 YAML_FIELD_MAPPING_EMBEDDED (Plugin_v1, id, plugin_identifier_fields_schema_v1),
42 YAML_FIELD_MAPPING_PTR (Plugin_v1, setting, plugin_setting_fields_schema_v1),
43 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT (Plugin_v1, in_ports, port_schema_v1),
44 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT (Plugin_v1, out_ports, port_schema_v1),
45 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (Plugin_v1, banks, plugin_bank_schema_v1),
46 YAML_FIELD_MAPPING_EMBEDDED (
48 selected_bank,
49 plugin_preset_identifier_fields_schema_v1),
50 YAML_FIELD_MAPPING_EMBEDDED (
52 selected_preset,
53 plugin_preset_identifier_fields_schema_v1),
54 YAML_FIELD_INT (Plugin_v1, visible),
55 YAML_FIELD_STRING_PTR_OPTIONAL (Plugin_v1, state_dir),
56
57 CYAML_FIELD_END
58};
59
60static const cyaml_schema_value_t plugin_schema_v1 = {
61 CYAML_VALUE_MAPPING (
62 CYAML_FLAG_POINTER_NULL_STR,
64 plugin_fields_schema_v1),
65};
66
67#endif
Port schema.
Plugin identifier.
Plugin preset schemas.
Plugin settings schemas.
Definition port.h:18
Custom types.