Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
midi_mapping.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2019-2021 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __SCHEMAS_AUDIO_MIDI_MAPPING_H__
11#define __SCHEMAS_AUDIO_MIDI_MAPPING_H__
12
14#include "gui/backend/backend/cyaml_schemas/dsp/port_identifier.h"
15#include "utils/midi.h"
16
17typedef struct MidiMapping_v1
18{
19 int schema_version;
20 midi_byte_t key[3];
21 ExtPort_v1 * device_port;
22 PortIdentifier_v1 dest_id;
23 int enabled;
25
26typedef struct MidiMappings_v1
27{
28 MidiMapping_v1 ** mappings;
29 int num_mappings;
31
32static const cyaml_schema_field_t midi_mapping_fields_schema_v1[] = {
33 YAML_FIELD_INT (MidiMapping_v1, schema_version),
34 YAML_FIELD_FIXED_SIZE_PTR_ARRAY (MidiMapping_v1, key, uint8_t_schema, 3),
35 YAML_FIELD_MAPPING_PTR_OPTIONAL (
37 device_port,
38 ext_port_fields_schema_v1),
39 YAML_FIELD_MAPPING_EMBEDDED (
41 dest_id,
42 port_identifier_fields_schema_v1),
43 YAML_FIELD_INT (MidiMapping_v1, enabled),
44
45 CYAML_FIELD_END
46};
47
48static const cyaml_schema_value_t midi_mapping_schema_v1 = {
49 YAML_VALUE_DEFAULT (MidiMapping_v1, midi_mapping_fields_schema_v1),
50};
51
52static const cyaml_schema_field_t midi_mappings_fields_schema_v1[] = {
53 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
55 mappings,
56 midi_mapping_schema_v1),
57 YAML_FIELD_IGNORE_OPT ("schema_version"),
58
59 CYAML_FIELD_END
60};
61
62static const cyaml_schema_value_t midi_mappings_schema_v1 = {
63 YAML_VALUE_PTR (MidiMappings_v1, midi_mappings_fields_schema_v1),
64};
65
66#endif
External port schema.
uint8_t midi_byte_t
MIDI byte.
Definition types.h:59
MIDI utils.