Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
region_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 __SCHEMAS_AUDIO_REGION_IDENTIFIER_H__
11#define __SCHEMAS_AUDIO_REGION_IDENTIFIER_H__
12
13#include "utils/yaml.h"
14
15typedef enum RegionType_v1
16{
17 REGION_TYPE_MIDI_v1 = 1 << 0,
18 REGION_TYPE_AUDIO_v1 = 1 << 1,
19 REGION_TYPE_AUTOMATION_v1 = 1 << 2,
20 REGION_TYPE_CHORD_v1 = 1 << 3,
21} RegionType_v1;
22
23static const cyaml_bitdef_t region_type_bitvals_v1[] = {
24 { .name = "midi", .offset = 0, .bits = 1 },
25 { .name = "audio", .offset = 1, .bits = 1 },
26 { .name = "automation", .offset = 2, .bits = 1 },
27 { .name = "chord", .offset = 3, .bits = 1 },
28};
29
30typedef struct RegionIdentifier_v1
31{
32 int schema_version;
33 RegionType_v1 type;
34 int link_group;
35 unsigned int track_name_hash;
36 int lane_pos;
37 int at_idx;
38 int idx;
40
41static const cyaml_schema_field_t region_identifier_fields_schema_v1[] = {
42 YAML_FIELD_INT (RegionIdentifier_v1, schema_version),
43 YAML_FIELD_BITFIELD (RegionIdentifier_v1, type, region_type_bitvals_v1),
44 YAML_FIELD_INT (RegionIdentifier_v1, link_group),
45 YAML_FIELD_UINT (RegionIdentifier_v1, track_name_hash),
46 YAML_FIELD_INT (RegionIdentifier_v1, lane_pos),
47 YAML_FIELD_INT (RegionIdentifier_v1, at_idx),
48 YAML_FIELD_INT (RegionIdentifier_v1, idx),
49
50 CYAML_FIELD_END
51};
52
53static const cyaml_schema_value_t region_identifier_schema_v1 = {
54 YAML_VALUE_PTR (RegionIdentifier_v1, region_identifier_fields_schema_v1),
55};
56
57static const cyaml_schema_value_t region_identifier_schema_default_v1 = {
58 YAML_VALUE_DEFAULT (RegionIdentifier_v1, region_identifier_fields_schema_v1),
59};
60
61#endif
YAML utils.