Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
undo_stack.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: © 2020-2021 Alexandros Theodotou <alex@zrythm.org>
3 *
4 * SPDX-License-Identifier: LicenseRef-ZrythmLicense
5 */
6
12
13#ifndef __SCHEMAS_UNDO_UNDO_STACK_H__
14#define __SCHEMAS_UNDO_UNDO_STACK_H__
15
16#include "gui/backend/backend/cyaml_schemas/actions/arranger_selections.h"
17#include "gui/backend/backend/cyaml_schemas/actions/channel_send_action.h"
18#include "gui/backend/backend/cyaml_schemas/actions/midi_mapping_action.h"
19#include "gui/backend/backend/cyaml_schemas/actions/mixer_selections_action.h"
20#include "gui/backend/backend/cyaml_schemas/actions/port_action.h"
21#include "gui/backend/backend/cyaml_schemas/actions/port_connection_action.h"
22#include "gui/backend/backend/cyaml_schemas/actions/range_action.h"
23#include "gui/backend/backend/cyaml_schemas/actions/tracklist_selections.h"
24#include "gui/backend/backend/cyaml_schemas/actions/transport_action.h"
26#include "utils/yaml.h"
27
28typedef struct UndoStack_v1
29{
30 int schema_version;
31 Stack_v1 * stack;
32 ArrangerSelectionsAction_v1 ** as_actions;
33 size_t num_as_actions;
34 size_t as_actions_size;
35 MixerSelectionsAction_v1 ** mixer_selections_actions;
36 size_t num_mixer_selections_actions;
37 size_t mixer_selections_actions_size;
38 TracklistSelectionsAction_v1 ** tracklist_selections_actions;
39 size_t num_tracklist_selections_actions;
40 size_t tracklist_selections_actions_size;
41 ChannelSendAction_v1 ** channel_send_actions;
42 size_t num_channel_send_actions;
43 size_t channel_send_actions_size;
44 PortConnectionAction_v1 ** port_connection_actions;
45 size_t num_port_connection_actions;
46 size_t port_connection_actions_size;
47 PortAction_v1 ** port_actions;
48 size_t num_port_actions;
49 size_t port_actions_size;
50 MidiMappingAction_v1 ** midi_mapping_actions;
51 size_t num_midi_mapping_actions;
52 size_t midi_mapping_actions_size;
53 RangeAction_v1 ** range_actions;
54 size_t num_range_actions;
55 size_t range_actions_size;
56 TransportAction_v1 ** transport_actions;
57 size_t num_transport_actions;
58 size_t transport_actions_size;
60
61static const cyaml_schema_field_t undo_stack_fields_schema_v1[] = {
62 YAML_FIELD_INT (UndoStack_v1, schema_version),
63 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
65 as_actions,
66 arranger_selections_action_schema_v1_v1),
67 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
69 mixer_selections_actions,
70 mixer_selections_action_schema_v1),
71 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
73 tracklist_selections_actions,
74 tracklist_selections_action_schema_v1),
75 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
77 channel_send_actions,
78 channel_send_action_schema_v1),
79 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
81 port_connection_actions,
82 port_connection_action_schema_v1),
83 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
85 port_actions,
86 port_action_schema_v1),
87 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
89 midi_mapping_actions,
90 midi_mapping_action_schema_v1),
91 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
93 range_actions,
94 range_action_schema_v1),
95 YAML_FIELD_DYN_PTR_ARRAY_VAR_COUNT_OPT (
97 transport_actions,
98 transport_action_schema_v1),
99 YAML_FIELD_MAPPING_PTR (UndoStack_v1, stack, stack_fields_schema_v1),
100
101 CYAML_FIELD_END
102};
103
104static const cyaml_schema_value_t undo_stack_schema_v1 = {
105 YAML_VALUE_PTR (UndoStack_v1, undo_stack_fields_schema_v1),
106};
107
108#endif
Stack schema.
YAML utils.