Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
tracklist.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 __SCHEMA_AUDIO_TRACKLIST_H__
11#define __SCHEMA_AUDIO_TRACKLIST_H__
12
14
15typedef struct Tracklist_v1
16{
17 int schema_version;
18 Track_v1 * tracks[3000];
19 int num_tracks;
20 int pinned_tracks_cutoff;
22
23static const cyaml_schema_field_t tracklist_fields_schema_v1[] = {
24 YAML_FIELD_INT (Tracklist_v1, schema_version),
25 YAML_FIELD_FIXED_SIZE_PTR_ARRAY_VAR_COUNT (Tracklist_v1, tracks, track_schema_v1),
26 YAML_FIELD_INT (Tracklist_v1, pinned_tracks_cutoff),
27
28 CYAML_FIELD_END
29};
30
31static const cyaml_schema_value_t tracklist_schema_v1 = {
32 YAML_VALUE_PTR (Tracklist_v1, tracklist_fields_schema_v1),
33};
34
35typedef struct Tracklist_v2
36{
37 int schema_version;
38 Track_v2 * tracks[3000];
39 int num_tracks;
40 int pinned_tracks_cutoff;
42
43static const cyaml_schema_field_t tracklist_fields_schema_v2[] = {
44 YAML_FIELD_INT (Tracklist_v2, schema_version),
45 YAML_FIELD_FIXED_SIZE_PTR_ARRAY_VAR_COUNT (Tracklist_v2, tracks, track_schema_v2),
46 YAML_FIELD_INT (Tracklist_v2, pinned_tracks_cutoff),
47
48 CYAML_FIELD_END
49};
50
51static const cyaml_schema_value_t tracklist_schema_v2 = {
52 YAML_VALUE_PTR (Tracklist_v2, tracklist_fields_schema_v2),
53};
54
56tracklist_upgrade_from_v1 (Tracklist_v1 * old);
57
58#endif
The backend for a timeline track.