2 Copyright (C) 2000-2007 Paul Davis
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #include "pbd/enumwriter.h"
21 #include "midi++/types.h"
23 #include "ardour/audiofilesource.h"
24 #include "ardour/audioregion.h"
25 #include "ardour/delivery.h"
26 #include "ardour/diskstream.h"
27 #include "ardour/export_filename.h"
28 #include "ardour/export_format_base.h"
29 #include "ardour/export_profile_manager.h"
30 #include "ardour/io.h"
31 #include "ardour/location.h"
32 #include "ardour/midi_model.h"
33 #include "ardour/midi_track.h"
34 #include "ardour/mute_master.h"
35 #include "ardour/panner.h"
36 #include "ardour/route_group.h"
37 #include "ardour/session.h"
38 #include "ardour/track.h"
39 #include "ardour/types.h"
43 using namespace ARDOUR
;
51 EnumWriter
& enum_writer (EnumWriter::instance());
55 OverlapType _OverlapType
;
56 AlignStyle _AlignStyle
;
57 AlignChoice _AlignChoice
;
58 MeterPoint _MeterPoint
;
61 ChannelMode _ChannelMode
;
63 MeterFalloff _MeterFalloff
;
66 RegionPoint _RegionPoint
;
68 MonitorModel _MonitorModel
;
69 PFLPosition _PFLPosition
;
70 AFLPosition _AFLPosition
;
71 RemoteModel _RemoteModel
;
72 DenormalModel _DenormalModel
;
73 CrossfadeModel _CrossfadeModel
;
74 LayerModel _LayerModel
;
75 InsertMergePolicy _InsertMergePolicy
;
76 ListenPosition _ListenPosition
;
77 SampleFormat _SampleFormat
;
78 CDMarkerFormat _CDMarkerFormat
;
79 HeaderFormat _HeaderFormat
;
80 PluginType _PluginType
;
81 SyncSource _SyncSource
;
82 ShuttleBehaviour _ShuttleBehaviour
;
83 ShuttleUnits _ShuttleUnits
;
84 Session::RecordState _Session_RecordState
;
85 SessionEvent::Type _SessionEvent_Type
;
86 TimecodeFormat _Session_TimecodeFormat
;
87 Session::PullupFormat _Session_PullupFormat
;
90 AutomationType _AutomationType
;
93 AutoConnectOption _AutoConnectOption
;
94 Session::StateOfTheState _Session_StateOfTheState
;
95 Route::Flag _Route_Flag
;
96 Source::Flag _Source_Flag
;
97 Diskstream::Flag _Diskstream_Flag
;
98 Location::Flags _Location_Flags
;
99 PositionLockStyle _PositionLockStyle
;
100 Track::FreezeState _Track_FreezeState
;
101 AutomationList::InterpolationStyle _AutomationList_InterpolationStyle
;
102 AnyTime::Type _AnyTime_Type
;
103 ExportFilename::TimeFormat _ExportFilename_TimeFormat
;
104 ExportFilename::DateFormat _ExportFilename_DateFormat
;
105 ExportFormatBase::Type _ExportFormatBase_Type
;
106 ExportFormatBase::FormatId _ExportFormatBase_FormatId
;
107 ExportFormatBase::Endianness _ExportFormatBase_Endianness
;
108 ExportFormatBase::SampleFormat _ExportFormatBase_SampleFormat
;
109 ExportFormatBase::DitherType _ExportFormatBase_DitherType
;
110 ExportFormatBase::Quality _ExportFormatBase_Quality
;
111 ExportFormatBase::SampleRate _ExportFormatBase_SampleRate
;
112 ExportFormatBase::SRCQuality _ExportFormatBase_SRCQuality
;
113 ExportProfileManager::TimeFormat _ExportProfileManager_TimeFormat
;
114 Delivery::Role _Delivery_Role
;
115 IO::Direction _IO_Direction
;
116 MuteMaster::MutePoint _MuteMaster_MutePoint
;
117 MidiModel::NoteDiffCommand::Property _MidiModel_NoteDiffCommand_Property
;
118 MidiModel::SysExDiffCommand::Property _MidiModel_SysExDiffCommand_Property
;
119 MidiModel::PatchChangeDiffCommand::Property _MidiModel_PatchChangeDiffCommand_Property
;
120 WaveformScale _WaveformScale
;
121 WaveformShape _WaveformShape
;
122 QuantizeType _QuantizeType
;
123 Session::PostTransportWork _Session_PostTransportWork
;
124 Session::SlaveState _Session_SlaveState
;
125 MTC_Status _MIDI_MTC_Status
;
127 #define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
128 #define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
129 #define REGISTER_ENUM(e) i.push_back (e); s.push_back (#e)
130 #define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
132 REGISTER_ENUM (OverlapNone
);
133 REGISTER_ENUM (OverlapInternal
);
134 REGISTER_ENUM (OverlapStart
);
135 REGISTER_ENUM (OverlapEnd
);
136 REGISTER_ENUM (OverlapExternal
);
137 REGISTER (_OverlapType
);
139 REGISTER_ENUM (GainAutomation
);
140 REGISTER_ENUM (PanAzimuthAutomation
);
141 REGISTER_ENUM (PanElevationAutomation
);
142 REGISTER_ENUM (PanWidthAutomation
);
143 REGISTER_ENUM (PluginAutomation
);
144 REGISTER_ENUM (SoloAutomation
);
145 REGISTER_ENUM (MuteAutomation
);
146 REGISTER_ENUM (MidiCCAutomation
);
147 REGISTER_ENUM (FadeInAutomation
);
148 REGISTER_ENUM (FadeOutAutomation
);
149 REGISTER_ENUM (EnvelopeAutomation
);
150 REGISTER_BITS (_AutomationType
);
153 REGISTER_ENUM (Write
);
154 REGISTER_ENUM (Touch
);
155 REGISTER_ENUM (Play
);
156 REGISTER_BITS (_AutoState
);
158 REGISTER_ENUM (Absolute
);
159 REGISTER_ENUM (Trim
);
160 REGISTER_BITS (_AutoStyle
);
162 REGISTER_ENUM (CaptureTime
);
163 REGISTER_ENUM (ExistingMaterial
);
164 REGISTER (_AlignStyle
);
166 REGISTER_ENUM (UseCaptureTime
);
167 REGISTER_ENUM (UseExistingMaterial
);
168 REGISTER_ENUM (Automatic
);
169 REGISTER (_AlignChoice
);
171 REGISTER_ENUM (MeterInput
);
172 REGISTER_ENUM (MeterPreFader
);
173 REGISTER_ENUM (MeterPostFader
);
174 REGISTER_ENUM (MeterOutput
);
175 REGISTER_ENUM (MeterCustom
);
176 REGISTER (_MeterPoint
);
178 REGISTER_ENUM (Normal
);
179 REGISTER_ENUM (NonLayered
);
180 REGISTER_ENUM (Destructive
);
181 REGISTER (_TrackMode
);
183 REGISTER_ENUM (Sustained
);
184 REGISTER_ENUM (Percussive
);
185 REGISTER (_NoteMode
);
187 REGISTER_ENUM (AllChannels
);
188 REGISTER_ENUM (FilterChannels
);
189 REGISTER_ENUM (ForceChannel
);
190 REGISTER (_ChannelMode
);
192 REGISTER_ENUM (MeterColors
);
193 REGISTER_ENUM (ChannelColors
);
194 REGISTER_ENUM (TrackColor
);
195 REGISTER (_ColorMode
);
197 REGISTER_ENUM (MeterFalloffOff
);
198 REGISTER_ENUM (MeterFalloffSlowest
);
199 REGISTER_ENUM (MeterFalloffSlow
);
200 REGISTER_ENUM (MeterFalloffMedium
);
201 REGISTER_ENUM (MeterFalloffFast
);
202 REGISTER_ENUM (MeterFalloffFaster
);
203 REGISTER_ENUM (MeterFalloffFastest
);
204 REGISTER (_MeterFalloff
);
206 REGISTER_ENUM (MeterHoldOff
);
207 REGISTER_ENUM (MeterHoldShort
);
208 REGISTER_ENUM (MeterHoldMedium
);
209 REGISTER_ENUM (MeterHoldLong
);
210 REGISTER (_MeterHold
);
212 REGISTER_ENUM (Slide
);
213 REGISTER_ENUM (Splice
);
214 REGISTER_ENUM (Lock
);
215 REGISTER (_EditMode
);
217 REGISTER_ENUM (Start
);
219 REGISTER_ENUM (SyncPoint
);
220 REGISTER (_RegionPoint
);
222 REGISTER_ENUM (PreFader
);
223 REGISTER_ENUM (PostFader
);
224 REGISTER (_Placement
);
226 REGISTER_ENUM (HardwareMonitoring
);
227 REGISTER_ENUM (SoftwareMonitoring
);
228 REGISTER_ENUM (ExternalMonitoring
);
229 REGISTER (_MonitorModel
);
231 REGISTER_ENUM (PFLFromBeforeProcessors
);
232 REGISTER_ENUM (PFLFromAfterProcessors
);
233 REGISTER (_PFLPosition
);
235 REGISTER_ENUM (AFLFromBeforeProcessors
);
236 REGISTER_ENUM (AFLFromAfterProcessors
);
237 REGISTER (_AFLPosition
);
239 REGISTER_ENUM (DenormalNone
);
240 REGISTER_ENUM (DenormalFTZ
);
241 REGISTER_ENUM (DenormalDAZ
);
242 REGISTER_ENUM (DenormalFTZDAZ
);
243 REGISTER (_DenormalModel
);
245 REGISTER_ENUM (UserOrdered
);
246 REGISTER_ENUM (MixerOrdered
);
247 REGISTER_ENUM (EditorOrdered
);
248 REGISTER (_RemoteModel
);
250 REGISTER_ENUM (FullCrossfade
);
251 REGISTER_ENUM (ShortCrossfade
);
252 REGISTER (_CrossfadeModel
);
254 REGISTER_ENUM (LaterHigher
);
255 REGISTER_ENUM (MoveAddHigher
);
256 REGISTER_ENUM (AddHigher
);
257 REGISTER (_LayerModel
);
259 REGISTER_ENUM (InsertMergeReject
);
260 REGISTER_ENUM (InsertMergeRelax
);
261 REGISTER_ENUM (InsertMergeReplace
);
262 REGISTER_ENUM (InsertMergeTruncateExisting
);
263 REGISTER_ENUM (InsertMergeTruncateAddition
);
264 REGISTER_ENUM (InsertMergeExtend
);
265 REGISTER (_InsertMergePolicy
);
267 REGISTER_ENUM (AfterFaderListen
);
268 REGISTER_ENUM (PreFaderListen
);
269 REGISTER (_ListenPosition
);
271 REGISTER_ENUM (AutoConnectPhysical
);
272 REGISTER_ENUM (AutoConnectMaster
);
273 REGISTER_BITS (_AutoConnectOption
);
275 REGISTER_ENUM (FormatFloat
);
276 REGISTER_ENUM (FormatInt24
);
277 REGISTER_ENUM (FormatInt16
);
278 REGISTER (_SampleFormat
);
280 REGISTER_ENUM (CDMarkerNone
);
281 REGISTER_ENUM (CDMarkerCUE
);
282 REGISTER_ENUM (CDMarkerTOC
);
283 REGISTER (_CDMarkerFormat
);
286 REGISTER_ENUM (WAVE
);
287 REGISTER_ENUM (WAVE64
);
289 REGISTER_ENUM (AIFF
);
290 REGISTER_ENUM (iXML
);
291 REGISTER_ENUM (RF64
);
292 REGISTER (_HeaderFormat
);
294 REGISTER_ENUM (AudioUnit
);
295 REGISTER_ENUM (LADSPA
);
297 REGISTER (_PluginType
);
300 REGISTER_ENUM (JACK
);
301 REGISTER_ENUM (MIDIClock
);
302 REGISTER (_SyncSource
);
304 REGISTER_ENUM (Sprung
);
305 REGISTER_ENUM (Wheel
);
306 REGISTER (_ShuttleBehaviour
);
308 REGISTER_ENUM (Percentage
);
309 REGISTER_ENUM (Semitones
);
310 REGISTER (_ShuttleUnits
);
312 REGISTER_CLASS_ENUM (Session
, Disabled
);
313 REGISTER_CLASS_ENUM (Session
, Enabled
);
314 REGISTER_CLASS_ENUM (Session
, Recording
);
315 REGISTER (_Session_RecordState
);
317 REGISTER_CLASS_ENUM (SessionEvent
, SetTransportSpeed
);
318 REGISTER_CLASS_ENUM (SessionEvent
, SetTrackSpeed
);
319 REGISTER_CLASS_ENUM (SessionEvent
, Locate
);
320 REGISTER_CLASS_ENUM (SessionEvent
, LocateRoll
);
321 REGISTER_CLASS_ENUM (SessionEvent
, LocateRollLocate
);
322 REGISTER_CLASS_ENUM (SessionEvent
, SetLoop
);
323 REGISTER_CLASS_ENUM (SessionEvent
, PunchIn
);
324 REGISTER_CLASS_ENUM (SessionEvent
, PunchOut
);
325 REGISTER_CLASS_ENUM (SessionEvent
, RangeStop
);
326 REGISTER_CLASS_ENUM (SessionEvent
, RangeLocate
);
327 REGISTER_CLASS_ENUM (SessionEvent
, Overwrite
);
328 REGISTER_CLASS_ENUM (SessionEvent
, SetSyncSource
);
329 REGISTER_CLASS_ENUM (SessionEvent
, Audition
);
330 REGISTER_CLASS_ENUM (SessionEvent
, InputConfigurationChange
);
331 REGISTER_CLASS_ENUM (SessionEvent
, SetPlayAudioRange
);
332 REGISTER_CLASS_ENUM (SessionEvent
, StopOnce
);
333 REGISTER_CLASS_ENUM (SessionEvent
, AutoLoop
);
334 REGISTER (_SessionEvent_Type
);
336 REGISTER_CLASS_ENUM (Session
, Stopped
);
337 REGISTER_CLASS_ENUM (Session
, Waiting
);
338 REGISTER_CLASS_ENUM (Session
, Running
);
339 REGISTER (_Session_SlaveState
);
341 REGISTER_ENUM (MTC_Stopped
);
342 REGISTER_ENUM (MTC_Forward
);
343 REGISTER_ENUM (MTC_Backward
);
344 REGISTER (_MIDI_MTC_Status
);
346 REGISTER_CLASS_ENUM (Session
, PostTransportStop
);
347 REGISTER_CLASS_ENUM (Session
, PostTransportDuration
);
348 REGISTER_CLASS_ENUM (Session
, PostTransportLocate
);
349 REGISTER_CLASS_ENUM (Session
, PostTransportRoll
);
350 REGISTER_CLASS_ENUM (Session
, PostTransportAbort
);
351 REGISTER_CLASS_ENUM (Session
, PostTransportOverWrite
);
352 REGISTER_CLASS_ENUM (Session
, PostTransportSpeed
);
353 REGISTER_CLASS_ENUM (Session
, PostTransportAudition
);
354 REGISTER_CLASS_ENUM (Session
, PostTransportReverse
);
355 REGISTER_CLASS_ENUM (Session
, PostTransportInputChange
);
356 REGISTER_CLASS_ENUM (Session
, PostTransportCurveRealloc
);
357 REGISTER_CLASS_ENUM (Session
, PostTransportClearSubstate
);
358 REGISTER_BITS (_Session_PostTransportWork
);
360 REGISTER_CLASS_ENUM (Session
, Clean
);
361 REGISTER_CLASS_ENUM (Session
, Dirty
);
362 REGISTER_CLASS_ENUM (Session
, CannotSave
);
363 REGISTER_CLASS_ENUM (Session
, Deletion
);
364 REGISTER_CLASS_ENUM (Session
, InitialConnecting
);
365 REGISTER_CLASS_ENUM (Session
, Loading
);
366 REGISTER_CLASS_ENUM (Session
, InCleanup
);
367 REGISTER_BITS (_Session_StateOfTheState
);
369 REGISTER_ENUM (timecode_23976
);
370 REGISTER_ENUM (timecode_24
);
371 REGISTER_ENUM (timecode_24976
);
372 REGISTER_ENUM (timecode_25
);
373 REGISTER_ENUM (timecode_2997
);
374 REGISTER_ENUM (timecode_2997drop
);
375 REGISTER_ENUM (timecode_30
);
376 REGISTER_ENUM (timecode_30drop
);
377 REGISTER_ENUM (timecode_5994
);
378 REGISTER_ENUM (timecode_60
);
379 REGISTER (_Session_TimecodeFormat
);
381 REGISTER_CLASS_ENUM (Session
, pullup_Plus4Plus1
);
382 REGISTER_CLASS_ENUM (Session
, pullup_Plus4
);
383 REGISTER_CLASS_ENUM (Session
, pullup_Plus4Minus1
);
384 REGISTER_CLASS_ENUM (Session
, pullup_Plus1
);
385 REGISTER_CLASS_ENUM (Session
, pullup_None
);
386 REGISTER_CLASS_ENUM (Session
, pullup_Minus1
);
387 REGISTER_CLASS_ENUM (Session
, pullup_Minus4Plus1
);
388 REGISTER_CLASS_ENUM (Session
, pullup_Minus4
);
389 REGISTER_CLASS_ENUM (Session
, pullup_Minus4Minus1
);
390 REGISTER (_Session_PullupFormat
);
392 REGISTER_CLASS_ENUM (Route
, Hidden
);
393 REGISTER_CLASS_ENUM (Route
, MasterOut
);
394 REGISTER_CLASS_ENUM (Route
, MonitorOut
);
395 REGISTER_BITS (_Route_Flag
);
397 REGISTER_CLASS_ENUM (Source
, Writable
);
398 REGISTER_CLASS_ENUM (Source
, CanRename
);
399 REGISTER_CLASS_ENUM (Source
, Broadcast
);
400 REGISTER_CLASS_ENUM (Source
, Removable
);
401 REGISTER_CLASS_ENUM (Source
, RemovableIfEmpty
);
402 REGISTER_CLASS_ENUM (Source
, RemoveAtDestroy
);
403 REGISTER_CLASS_ENUM (Source
, NoPeakFile
);
404 REGISTER_CLASS_ENUM (Source
, Destructive
);
405 REGISTER_BITS (_Source_Flag
);
407 REGISTER_ENUM (FadeLinear
);
408 REGISTER_ENUM (FadeFast
);
409 REGISTER_ENUM (FadeSlow
);
410 REGISTER_ENUM (FadeLogA
);
411 REGISTER_ENUM (FadeLogB
);
412 REGISTER (_FadeShape
);
414 REGISTER_CLASS_ENUM (Diskstream
, Recordable
);
415 REGISTER_CLASS_ENUM (Diskstream
, Hidden
);
416 REGISTER_CLASS_ENUM (Diskstream
, Destructive
);
417 REGISTER_BITS (_Diskstream_Flag
);
419 REGISTER_CLASS_ENUM (Location
, IsMark
);
420 REGISTER_CLASS_ENUM (Location
, IsAutoPunch
);
421 REGISTER_CLASS_ENUM (Location
, IsAutoLoop
);
422 REGISTER_CLASS_ENUM (Location
, IsHidden
);
423 REGISTER_CLASS_ENUM (Location
, IsCDMarker
);
424 REGISTER_CLASS_ENUM (Location
, IsSessionRange
);
425 REGISTER_CLASS_ENUM (Location
, IsRangeMarker
);
426 REGISTER_BITS (_Location_Flags
);
428 REGISTER_CLASS_ENUM (Track
, NoFreeze
);
429 REGISTER_CLASS_ENUM (Track
, Frozen
);
430 REGISTER_CLASS_ENUM (Track
, UnFrozen
);
431 REGISTER (_Track_FreezeState
);
433 REGISTER_CLASS_ENUM (AutomationList
, Discrete
);
434 REGISTER_CLASS_ENUM (AutomationList
, Linear
);
435 REGISTER_CLASS_ENUM (AutomationList
, Curved
);
436 REGISTER (_AutomationList_InterpolationStyle
);
438 REGISTER_CLASS_ENUM (AnyTime
, Timecode
);
439 REGISTER_CLASS_ENUM (AnyTime
, BBT
);
440 REGISTER_CLASS_ENUM (AnyTime
, Frames
);
441 REGISTER_CLASS_ENUM (AnyTime
, Seconds
);
442 REGISTER (_AnyTime_Type
);
444 REGISTER_CLASS_ENUM (ExportFilename
, D_None
);
445 REGISTER_CLASS_ENUM (ExportFilename
, D_ISO
);
446 REGISTER_CLASS_ENUM (ExportFilename
, D_ISOShortY
);
447 REGISTER_CLASS_ENUM (ExportFilename
, D_BE
);
448 REGISTER_CLASS_ENUM (ExportFilename
, D_BEShortY
);
449 REGISTER (_ExportFilename_DateFormat
);
451 REGISTER_CLASS_ENUM (ExportFilename
, T_None
);
452 REGISTER_CLASS_ENUM (ExportFilename
, T_NoDelim
);
453 REGISTER_CLASS_ENUM (ExportFilename
, T_Delim
);
454 REGISTER (_ExportFilename_TimeFormat
);
456 REGISTER_CLASS_ENUM (ExportFormatBase
, T_None
);
457 REGISTER_CLASS_ENUM (ExportFormatBase
, T_Sndfile
);
458 REGISTER (_ExportFormatBase_Type
);
460 REGISTER_CLASS_ENUM (ExportFormatBase
, F_None
);
461 REGISTER_CLASS_ENUM (ExportFormatBase
, F_WAV
);
462 REGISTER_CLASS_ENUM (ExportFormatBase
, F_W64
);
463 REGISTER_CLASS_ENUM (ExportFormatBase
, F_AIFF
);
464 REGISTER_CLASS_ENUM (ExportFormatBase
, F_AU
);
465 REGISTER_CLASS_ENUM (ExportFormatBase
, F_IRCAM
);
466 REGISTER_CLASS_ENUM (ExportFormatBase
, F_RAW
);
467 REGISTER_CLASS_ENUM (ExportFormatBase
, F_FLAC
);
468 REGISTER_CLASS_ENUM (ExportFormatBase
, F_Ogg
);
469 REGISTER (_ExportFormatBase_FormatId
);
471 REGISTER_CLASS_ENUM (ExportFormatBase
, E_FileDefault
);
472 REGISTER_CLASS_ENUM (ExportFormatBase
, E_Little
);
473 REGISTER_CLASS_ENUM (ExportFormatBase
, E_Big
);
474 REGISTER_CLASS_ENUM (ExportFormatBase
, E_Cpu
);
475 REGISTER (_ExportFormatBase_Endianness
);
477 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_None
);
478 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_8
);
479 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_16
);
480 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_24
);
481 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_32
);
482 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_U8
);
483 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_Float
);
484 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_Double
);
485 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_Vorbis
);
486 REGISTER (_ExportFormatBase_SampleFormat
);
488 REGISTER_CLASS_ENUM (ExportFormatBase
, D_None
);
489 REGISTER_CLASS_ENUM (ExportFormatBase
, D_Rect
);
490 REGISTER_CLASS_ENUM (ExportFormatBase
, D_Tri
);
491 REGISTER_CLASS_ENUM (ExportFormatBase
, D_Shaped
);
492 REGISTER (_ExportFormatBase_DitherType
);
494 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_None
);
495 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_Any
);
496 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_LosslessLinear
);
497 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_LosslessCompression
);
498 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_LossyCompression
);
499 REGISTER (_ExportFormatBase_Quality
);
501 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_None
);
502 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_Session
);
503 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_22_05
);
504 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_44_1
);
505 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_48
);
506 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_88_2
);
507 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_96
);
508 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_192
);
509 REGISTER (_ExportFormatBase_SampleRate
);
511 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_SincBest
);
512 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_SincMedium
);
513 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_SincFast
);
514 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_ZeroOrderHold
);
515 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_Linear
);
516 REGISTER (_ExportFormatBase_SRCQuality
);
518 REGISTER_CLASS_ENUM (ExportProfileManager
, Timecode
);
519 REGISTER_CLASS_ENUM (ExportProfileManager
, BBT
);
520 REGISTER_CLASS_ENUM (ExportProfileManager
, MinSec
);
521 REGISTER_CLASS_ENUM (ExportProfileManager
, Frames
);
522 REGISTER (_ExportProfileManager_TimeFormat
);
524 REGISTER_CLASS_ENUM (Delivery
, Insert
);
525 REGISTER_CLASS_ENUM (Delivery
, Send
);
526 REGISTER_CLASS_ENUM (Delivery
, Listen
);
527 REGISTER_CLASS_ENUM (Delivery
, Main
);
528 REGISTER_CLASS_ENUM (Delivery
, Aux
);
529 REGISTER_BITS (_Delivery_Role
);
531 REGISTER_CLASS_ENUM (MuteMaster
, PreFader
);
532 REGISTER_CLASS_ENUM (MuteMaster
, PostFader
);
533 REGISTER_CLASS_ENUM (MuteMaster
, Listen
);
534 REGISTER_CLASS_ENUM (MuteMaster
, Main
);
535 REGISTER_BITS (_MuteMaster_MutePoint
);
537 REGISTER_CLASS_ENUM (IO
, Input
);
538 REGISTER_CLASS_ENUM (IO
, Output
);
539 REGISTER (_IO_Direction
);
541 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, NoteNumber
);
542 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, Channel
);
543 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, Velocity
);
544 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, StartTime
);
545 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, Length
);
546 REGISTER (_MidiModel_NoteDiffCommand_Property
);
548 REGISTER_CLASS_ENUM (MidiModel::SysExDiffCommand
, Time
);
549 REGISTER (_MidiModel_SysExDiffCommand_Property
);
551 REGISTER_CLASS_ENUM (MidiModel::PatchChangeDiffCommand
, Time
);
552 REGISTER_CLASS_ENUM (MidiModel::PatchChangeDiffCommand
, Program
);
553 REGISTER_CLASS_ENUM (MidiModel::PatchChangeDiffCommand
, Bank
);
554 REGISTER (_MidiModel_PatchChangeDiffCommand_Property
);
556 REGISTER_ENUM(Linear
);
557 REGISTER_ENUM(Logarithmic
);
558 REGISTER(_WaveformScale
);
560 REGISTER_ENUM(Traditional
);
561 REGISTER_ENUM(Rectified
);
562 REGISTER(_WaveformShape
);
564 REGISTER_ENUM(Plain
);
565 REGISTER_ENUM(Legato
);
566 REGISTER_ENUM(Groove
);
567 REGISTER(_QuantizeType
);
569 REGISTER_ENUM(AudioTime
);
570 REGISTER_ENUM(MusicTime
);
571 REGISTER(_PositionLockStyle
);
574 } /* namespace ARDOUR */
576 /* deserializing types from ardour/types.h */
578 std::istream
& operator>>(std::istream
& o
, HeaderFormat
& var
)
582 var
= (HeaderFormat
) string_2_enum (s
, var
);
586 std::ostream
& operator<<(std::ostream
& o
, const HeaderFormat
& var
)
588 std::string s
= enum_2_string (var
);
592 std::istream
& operator>>(std::istream
& o
, SampleFormat
& var
)
596 var
= (SampleFormat
) string_2_enum (s
, var
);
600 std::ostream
& operator<<(std::ostream
& o
, const SampleFormat
& var
)
602 std::string s
= enum_2_string (var
);
605 std::istream
& operator>>(std::istream
& o
, AutoConnectOption
& var
)
609 var
= (AutoConnectOption
) string_2_enum (s
, var
);
613 std::ostream
& operator<<(std::ostream
& o
, const AutoConnectOption
& var
)
615 std::string s
= enum_2_string (var
);
619 std::istream
& operator>>(std::istream
& o
, MonitorModel
& var
)
623 var
= (MonitorModel
) string_2_enum (s
, var
);
627 std::ostream
& operator<<(std::ostream
& o
, const MonitorModel
& var
)
629 std::string s
= enum_2_string (var
);
633 std::istream
& operator>>(std::istream
& o
, PFLPosition
& var
)
637 var
= (PFLPosition
) string_2_enum (s
, var
);
641 std::ostream
& operator<<(std::ostream
& o
, const PFLPosition
& var
)
643 std::string s
= enum_2_string (var
);
647 std::istream
& operator>>(std::istream
& o
, AFLPosition
& var
)
651 var
= (AFLPosition
) string_2_enum (s
, var
);
655 std::ostream
& operator<<(std::ostream
& o
, const AFLPosition
& var
)
657 std::string s
= enum_2_string (var
);
661 std::istream
& operator>>(std::istream
& o
, RemoteModel
& var
)
665 var
= (RemoteModel
) string_2_enum (s
, var
);
669 std::ostream
& operator<<(std::ostream
& o
, const RemoteModel
& var
)
671 std::string s
= enum_2_string (var
);
674 std::istream
& operator>>(std::istream
& o
, EditMode
& var
)
678 var
= (EditMode
) string_2_enum (s
, var
);
682 std::ostream
& operator<<(std::ostream
& o
, const EditMode
& var
)
684 std::string s
= enum_2_string (var
);
687 std::istream
& operator>>(std::istream
& o
, ListenPosition
& var
)
691 var
= (ListenPosition
) string_2_enum (s
, var
);
695 std::ostream
& operator<<(std::ostream
& o
, const ListenPosition
& var
)
697 std::string s
= enum_2_string (var
);
700 std::istream
& operator>>(std::istream
& o
, LayerModel
& var
)
704 var
= (LayerModel
) string_2_enum (s
, var
);
708 std::ostream
& operator<<(std::ostream
& o
, const LayerModel
& var
)
710 std::string s
= enum_2_string (var
);
714 std::istream
& operator>>(std::istream
& o
, InsertMergePolicy
& var
)
718 var
= (InsertMergePolicy
) string_2_enum (s
, var
);
721 std::ostream
& operator<<(std::ostream
& o
, const InsertMergePolicy
& var
)
723 std::string s
= enum_2_string (var
);
727 std::istream
& operator>>(std::istream
& o
, CrossfadeModel
& var
)
731 var
= (CrossfadeModel
) string_2_enum (s
, var
);
735 std::ostream
& operator<<(std::ostream
& o
, const CrossfadeModel
& var
)
737 std::string s
= enum_2_string (var
);
740 std::istream
& operator>>(std::istream
& o
, SyncSource
& var
)
744 var
= (SyncSource
) string_2_enum (s
, var
);
748 std::ostream
& operator<<(std::ostream
& o
, const SyncSource
& var
)
750 std::string s
= enum_2_string (var
);
753 std::istream
& operator>>(std::istream
& o
, ShuttleBehaviour
& var
)
757 var
= (ShuttleBehaviour
) string_2_enum (s
, var
);
761 std::ostream
& operator<<(std::ostream
& o
, const ShuttleBehaviour
& var
)
763 std::string s
= enum_2_string (var
);
766 std::istream
& operator>>(std::istream
& o
, ShuttleUnits
& var
)
770 var
= (ShuttleUnits
) string_2_enum (s
, var
);
774 std::ostream
& operator<<(std::ostream
& o
, const ShuttleUnits
& var
)
776 std::string s
= enum_2_string (var
);
779 std::istream
& operator>>(std::istream
& o
, TimecodeFormat
& var
)
783 var
= (TimecodeFormat
) string_2_enum (s
, var
);
787 std::ostream
& operator<<(std::ostream
& o
, const TimecodeFormat
& var
)
789 std::string s
= enum_2_string (var
);
792 std::istream
& operator>>(std::istream
& o
, DenormalModel
& var
)
796 var
= (DenormalModel
) string_2_enum (s
, var
);
800 std::ostream
& operator<<(std::ostream
& o
, const DenormalModel
& var
)
802 std::string s
= enum_2_string (var
);
805 std::istream
& operator>>(std::istream
& o
, WaveformScale
& var
)
809 var
= (WaveformScale
) string_2_enum (s
, var
);
813 std::ostream
& operator<<(std::ostream
& o
, const WaveformScale
& var
)
815 std::string s
= enum_2_string (var
);
818 std::istream
& operator>>(std::istream
& o
, WaveformShape
& var
)
822 var
= (WaveformShape
) string_2_enum (s
, var
);
826 std::ostream
& operator<<(std::ostream
& o
, const WaveformShape
& var
)
828 std::string s
= enum_2_string (var
);
832 std::istream
& operator>>(std::istream
& o
, PositionLockStyle
& var
)
836 var
= (PositionLockStyle
) string_2_enum (s
, var
);
840 std::ostream
& operator<<(std::ostream
& o
, const PositionLockStyle
& var
)
842 std::string s
= enum_2_string (var
);