Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin_identifier.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 __SCHEMA_PLUGINS_PLUGIN_IDENTIFIER_H__
11#define __SCHEMA_PLUGINS_PLUGIN_IDENTIFIER_H__
12
13#include "utils/yaml.h"
14
15// typedef struct PluginIdentifier PluginIdentifier;
16
17typedef enum ZPluginSlotType_v1
18{
19 Z_PLUGIN_SLOT_INVALID_v1,
20 Z_PLUGIN_SLOT_INSERT_v1,
21 Z_PLUGIN_SLOT_MIDI_FX_v1,
22 Z_PLUGIN_SLOT_INSTRUMENT_v1,
23 Z_PLUGIN_SLOT_MODULATOR_v1,
24} ZPluginSlotType_v1;
25
26static const cyaml_strval_t plugin_slot_type_strings_v1[] = {
27 { "Invalid", Z_PLUGIN_SLOT_INVALID_v1 },
28 { "Insert", Z_PLUGIN_SLOT_INSERT_v1 },
29 { "MIDI FX", Z_PLUGIN_SLOT_MIDI_FX_v1 },
30 { "Instrument", Z_PLUGIN_SLOT_INSTRUMENT_v1 },
31 { "Modulator", Z_PLUGIN_SLOT_MODULATOR_v1 },
32};
33
34typedef struct PluginIdentifier_v1
35{
36 int schema_version;
37 ZPluginSlotType_v1 slot_type;
38 unsigned int track_name_hash;
39 int slot;
41
42static const cyaml_schema_field_t plugin_identifier_fields_schema_v1[] = {
43 YAML_FIELD_INT (PluginIdentifier_v1, schema_version),
44 YAML_FIELD_ENUM (PluginIdentifier_v1, slot_type, plugin_slot_type_strings_v1),
45 YAML_FIELD_UINT (PluginIdentifier_v1, track_name_hash),
46 YAML_FIELD_INT (PluginIdentifier_v1, slot),
47
48 CYAML_FIELD_END
49};
50
51static const cyaml_schema_value_t plugin_identifier_schema_v1 = {
52 YAML_VALUE_PTR (PluginIdentifier_v1, plugin_identifier_fields_schema_v1),
53};
54
55#endif
YAML utils.