4#ifndef __SCHEMAS_AUDIO_PORT_IDENTIFIER_H__
5#define __SCHEMAS_AUDIO_PORT_IDENTIFIER_H__
10typedef enum PortFlow_v1
12 Z_PORT_FLOW_UNKNOWN_v1,
14 Z_PORT_FLOW_OUTPUT_v1,
17static const cyaml_strval_t port_flow_strings_v1[] = {
18 {
"unknown", Z_PORT_FLOW_UNKNOWN_v1 },
19 {
"input", Z_PORT_FLOW_INPUT_v1 },
20 {
"output", Z_PORT_FLOW_OUTPUT_v1 },
23typedef enum PortType_v1
26 Z_PORT_TYPE_CONTROL_v1,
32static const cyaml_strval_t port_type_strings_v1[] = {
33 {
"unknown", TYPE_UNKNOWN_v1 },
34 {
"control", Z_PORT_TYPE_CONTROL_v1 },
35 {
"audio", Z_PORT_TYPE_AUDIO_v1 },
36 {
"event", Z_PORT_TYPE_EVENT_v1 },
37 {
"cv", Z_PORT_TYPE_CV_v1 },
40typedef enum PortUnit_v1
52static const cyaml_strval_t port_unit_strings_v1[] = {
53 {
"none", PORT_UNIT_NONE_v1 },
54 {
"Hz", PORT_UNIT_HZ_v1 },
55 {
"MHz", PORT_UNIT_MHZ_v1 },
56 {
"dB", PORT_UNIT_DB_v1 },
57 {
"°", PORT_UNIT_DEGREES_v1 },
58 {
"s", PORT_UNIT_SECONDS_v1 },
59 {
"ms", PORT_UNIT_MS_v1 },
60 {
"μs", PORT_UNIT_US_v1 },
63typedef enum ZPortOwnerType_v1
65 Z_PORT_OWNER_TYPE_AUDIO_ENGINE_v1,
66 Z_PORT_OWNER_TYPE_PLUGIN_v1,
67 Z_PORT_OWNER_TYPE_TRACK_v1,
68 Z_PORT_OWNER_TYPE_CHANNEL_v1,
69 Z_PORT_OWNER_TYPE_FADER_v1,
70 Z_PORT_OWNER_TYPE_CHANNEL_SEND_v1,
71 Z_PORT_OWNER_TYPE_TRACK_PROCESSOR_v1,
72 Z_PORT_OWNER_TYPE_HW_v1,
73 Z_PORT_OWNER_TYPE_TRANSPORT_v1,
74 Z_PORT_OWNER_TYPE_MODULATOR_MACRO_PROCESSOR_v1,
77static const cyaml_strval_t port_owner_type_strings_v1[] = {
78 {
"audio engine", Z_PORT_OWNER_TYPE_AUDIO_ENGINE_v1 },
79 {
"plugin", Z_PORT_OWNER_TYPE_PLUGIN_v1 },
80 {
"track", Z_PORT_OWNER_TYPE_TRACK_v1 },
81 {
"channel", Z_PORT_OWNER_TYPE_CHANNEL_v1 },
82 {
"fader", Z_PORT_OWNER_TYPE_FADER_v1 },
83 {
"channel send", Z_PORT_OWNER_TYPE_CHANNEL_SEND_v1 },
84 {
"track processor", Z_PORT_OWNER_TYPE_TRACK_PROCESSOR_v1 },
85 {
"hw", Z_PORT_OWNER_TYPE_HW_v1 },
86 {
"transport", Z_PORT_OWNER_TYPE_TRANSPORT_v1 },
87 {
"modulator macro processor", Z_PORT_OWNER_TYPE_MODULATOR_MACRO_PROCESSOR_v1 },
93typedef enum ZPortFlags_v1
95 Z_PORT_FLAG_STEREO_L_v1 = 1 << 0,
96 Z_PORT_FLAG_STEREO_R_v1 = 1 << 1,
97 Z_PORT_FLAG_PIANO_ROLL_v1 = 1 << 2,
98 Z_PORT_FLAG_SIDECHAIN_v1 = 1 << 3,
99 Z_PORT_FLAG_MAIN_PORT_v1 = 1 << 4,
100 Z_PORT_FLAG_MANUAL_PRESS_v1 = 1 << 5,
101 Z_PORT_FLAG_AMPLITUDE_v1 = 1 << 6,
102 Z_PORT_FLAG_STEREO_BALANCE_v1 = 1 << 7,
103 Z_PORT_FLAG_WANT_POSITION_v1 = 1 << 8,
104 Z_PORT_FLAG_TRIGGER_v1 = 1 << 9,
105 Z_PORT_FLAG_TOGGLE_v1 = 1 << 10,
106 Z_PORT_FLAG_INTEGER_v1 = 1 << 11,
107 Z_PORT_FLAG_FREEWHEEL_v1 = 1 << 12,
108 Z_PORT_FLAG_REPORTS_LATENCY_v1 = 1 << 13,
109 Z_PORT_FLAG_NOT_ON_GUI_v1 = 1 << 14,
110 Z_PORT_FLAG_PLUGIN_ENABLED_v1 = 1 << 15,
111 Z_PORT_FLAG_PLUGIN_CONTROL_v1 = 1 << 16,
112 Z_PORT_FLAG_CHANNEL_MUTE_v1 = 1 << 17,
113 Z_PORT_FLAG_CHANNEL_FADER_v1 = 1 << 18,
114 Z_PORT_FLAG_AUTOMATABLE_v1 = 1 << 19,
115 Z_PORT_FLAG_MIDI_AUTOMATABLE_v1 = 1 << 20,
116 Z_PORT_FLAG_SEND_RECEIVABLE_v1 = 1 << 21,
117 Z_PORT_FLAG_BPM_v1 = 1 << 22,
118 Z_PORT_FLAG_GENERIC_PLUGIN_PORT_v1 = 1 << 23,
119 Z_PORT_FLAG_PLUGIN_GAIN_v1 = 1 << 24,
120 Z_PORT_FLAG_TP_MONO_v1 = 1 << 25,
121 Z_PORT_FLAG_TP_INPUT_GAIN_v1 = 1 << 26,
122 Z_PORT_FLAG_HW_v1 = 1 << 27,
123 Z_PORT_FLAG_MODULATOR_MACRO_v1 = 1 << 28,
124 Z_PORT_FLAG_LOGARITHMIC_v1 = 1 << 29,
125 Z_PORT_FLAG_IS_PROPERTY_v1 = 1 << 30,
128typedef enum ZPortFlags2_v1
131 Z_PORT_FLAG2_TRANSPORT_ROLL_v1 = 1 << 0,
132 Z_PORT_FLAG2_TRANSPORT_STOP_v1 = 1 << 1,
133 Z_PORT_FLAG2_TRANSPORT_BACKWARD_v1 = 1 << 2,
134 Z_PORT_FLAG2_TRANSPORT_FORWARD_v1 = 1 << 3,
135 Z_PORT_FLAG2_TRANSPORT_LOOP_TOGGLE_v1 = 1 << 4,
136 Z_PORT_FLAG2_TRANSPORT_REC_TOGGLE_v1 = 1 << 5,
137 Z_PORT_FLAG2_SUPPORTS_PATCH_MESSAGE_v1 = 1 << 6,
138 Z_PORT_FLAG2_ENUMERATION_v1 = 1 << 7,
139 Z_PORT_FLAG2_URI_PARAM_v1 = 1 << 8,
140 Z_PORT_FLAG2_SEQUENCE_v1 = 1 << 9,
141 Z_PORT_FLAG2_SUPPORTS_MIDI_v1 = 1 << 10,
142 Z_PORT_FLAG2_TP_OUTPUT_GAIN_v1 = 1 << 11,
143 Z_PORT_FLAG2_MIDI_PITCH_BEND_v1 = 1 << 12,
144 Z_PORT_FLAG2_MIDI_POLY_KEY_PRESSURE_v1 = 1 << 13,
145 Z_PORT_FLAG2_MIDI_CHANNEL_PRESSURE_v1 = 1 << 14,
146 Z_PORT_FLAG2_CHANNEL_SEND_ENABLED_v1 = 1 << 15,
147 Z_PORT_FLAG2_CHANNEL_SEND_AMOUNT_v1 = 1 << 16,
148 Z_PORT_FLAG2_BEATS_PER_BAR_v1 = 1 << 17,
149 Z_PORT_FLAG2_BEAT_UNIT_v1 = 1 << 18,
150 Z_PORT_FLAG2_FADER_SOLO_v1 = 1 << 19,
151 Z_PORT_FLAG2_FADER_LISTEN_v1 = 1 << 20,
152 Z_PORT_FLAG2_FADER_MONO_COMPAT_v1 = 1 << 21,
153 Z_PORT_FLAG2_TRACK_RECORDING_v1 = 1 << 22,
154 Z_PORT_FLAG2_TP_MONITOR_AUDIO_v1 = 1 << 23,
155 Z_PORT_FLAG2_PREFADER_v1 = 1 << 24,
156 Z_PORT_FLAG2_POSTFADER_v1 = 1 << 25,
157 Z_PORT_FLAG2_MONITOR_FADER_v1 = 1 << 26,
158 Z_PORT_FLAG2_SAMPLE_PROCESSOR_FADER_v1 = 1 << 27,
159 Z_PORT_FLAG2_SAMPLE_PROCESSOR_TRACK_v1 = 1 << 28,
160 Z_PORT_FLAG2_FADER_SWAP_PHASE_v1 = 1 << 29,
163static const cyaml_bitdef_t port_flags_bitvals_v1[] = {
164 { .name =
"stereo_l", .offset = 0, .bits = 1 },
165 { .name =
"stereo_r", .offset = 1, .bits = 1 },
166 { .name =
"piano_roll", .offset = 2, .bits = 1 },
167 { .name =
"sidechain", .offset = 3, .bits = 1 },
168 { .name =
"main_port", .offset = 4, .bits = 1 },
169 { .name =
"manual_press", .offset = 5, .bits = 1 },
170 { .name =
"amplitude", .offset = 6, .bits = 1 },
171 { .name =
"stereo_balance", .offset = 7, .bits = 1 },
172 { .name =
"want_position", .offset = 8, .bits = 1 },
173 { .name =
"trigger", .offset = 9, .bits = 1 },
174 { .name =
"toggle", .offset = 10, .bits = 1 },
175 { .name =
"integer", .offset = 11, .bits = 1 },
176 { .name =
"freewheel", .offset = 12, .bits = 1 },
177 { .name =
"reports_latency", .offset = 13, .bits = 1 },
178 { .name =
"not_on_gui", .offset = 14, .bits = 1 },
179 { .name =
"plugin_enabled", .offset = 15, .bits = 1 },
180 { .name =
"plugin_control", .offset = 16, .bits = 1 },
181 { .name =
"fader_mute", .offset = 17, .bits = 1 },
182 { .name =
"channel_fader", .offset = 18, .bits = 1 },
183 { .name =
"automatable", .offset = 19, .bits = 1 },
184 { .name =
"midi_automatable", .offset = 20, .bits = 1 },
185 { .name =
"send_receivable", .offset = 21, .bits = 1 },
186 { .name =
"bpm", .offset = 22, .bits = 1 },
187 { .name =
"generic_plugin_port", .offset = 23, .bits = 1 },
188 { .name =
"plugin_gain", .offset = 24, .bits = 1 },
189 { .name =
"tp_mono", .offset = 25, .bits = 1 },
190 { .name =
"tp_input_gain", .offset = 26, .bits = 1 },
191 { .name =
"hw", .offset = 27, .bits = 1 },
192 { .name =
"modulator_macro", .offset = 28, .bits = 1 },
193 { .name =
"logarithmic", .offset = 29, .bits = 1 },
194 { .name =
"is_property", .offset = 30, .bits = 1 },
197static const cyaml_bitdef_t port_flags2_bitvals_v1[] = {
198 YAML_BITVAL (
"transport_roll", 0),
199 YAML_BITVAL (
"transport_stop", 1),
200 YAML_BITVAL (
"transport_backward", 2),
201 YAML_BITVAL (
"transport_forward", 3),
202 YAML_BITVAL (
"transport_loop_toggle", 4),
203 YAML_BITVAL (
"transport_rec_toggle", 5),
204 YAML_BITVAL (
"patch_message", 6),
205 YAML_BITVAL (
"enumeration", 7),
206 YAML_BITVAL (
"uri_param", 8),
207 YAML_BITVAL (
"sequence", 9),
208 YAML_BITVAL (
"supports_midi", 10),
209 YAML_BITVAL (
"output_gain", 11),
210 YAML_BITVAL (
"pitch_bend", 12),
211 YAML_BITVAL (
"poly_key_pressure", 13),
212 YAML_BITVAL (
"channel_pressure", 14),
213 YAML_BITVAL (
"ch_send_enabled", 15),
214 YAML_BITVAL (
"ch_send_amount", 16),
215 YAML_BITVAL (
"beats_per_bar", 17),
216 YAML_BITVAL (
"beat_unit", 18),
217 YAML_BITVAL (
"fader_solo", 19),
218 YAML_BITVAL (
"fader_listen", 20),
219 YAML_BITVAL (
"fader_mono_compat", 21),
220 YAML_BITVAL (
"track_recording", 22),
221 YAML_BITVAL (
"tp_monitor_audio", 23),
222 YAML_BITVAL (
"prefader", 24),
223 YAML_BITVAL (
"postfader", 25),
224 YAML_BITVAL (
"monitor_fader", 26),
225 YAML_BITVAL (
"sample_processor_fader", 27),
226 YAML_BITVAL (
"sample_processor_track", 28),
227 YAML_BITVAL (
"fader_swap_phase", 29),
228 YAML_BITVAL (
"midi_clock", 30),
238 ZPortOwnerType_v1 owner_type;
242 ZPortFlags2_v1 flags2;
247 unsigned int track_name_hash;
251static const cyaml_schema_field_t port_identifier_fields_schema_v1[] = {
264 YAML_FIELD_MAPPING_EMBEDDED (
267 plugin_identifier_fields_schema_v1),
275static const cyaml_schema_value_t port_identifier_schema_v1 = {
276 CYAML_VALUE_MAPPING (
279 port_identifier_fields_schema_v1),
282static const cyaml_schema_value_t port_identifier_schema_default_v1 = {
283 CYAML_VALUE_MAPPING (
286 port_identifier_fields_schema_v1),