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 MeterPoint _MeterPoint
;
60 ChannelMode _ChannelMode
;
62 MeterFalloff _MeterFalloff
;
65 RegionPoint _RegionPoint
;
67 MonitorModel _MonitorModel
;
68 RemoteModel _RemoteModel
;
69 DenormalModel _DenormalModel
;
70 CrossfadeModel _CrossfadeModel
;
71 LayerModel _LayerModel
;
72 InsertMergePolicy _InsertMergePolicy
;
73 ListenPosition _ListenPosition
;
74 SampleFormat _SampleFormat
;
75 CDMarkerFormat _CDMarkerFormat
;
76 HeaderFormat _HeaderFormat
;
77 PluginType _PluginType
;
78 SyncSource _SyncSource
;
79 ShuttleBehaviour _ShuttleBehaviour
;
80 ShuttleUnits _ShuttleUnits
;
81 Session::RecordState _Session_RecordState
;
82 SessionEvent::Type _SessionEvent_Type
;
83 TimecodeFormat _Session_TimecodeFormat
;
84 Session::PullupFormat _Session_PullupFormat
;
87 AutomationType _AutomationType
;
90 AutoConnectOption _AutoConnectOption
;
91 Session::StateOfTheState _Session_StateOfTheState
;
92 Route::Flag _Route_Flag
;
93 Source::Flag _Source_Flag
;
94 Diskstream::Flag _Diskstream_Flag
;
95 Location::Flags _Location_Flags
;
96 PositionLockStyle _PositionLockStyle
;
97 Track::FreezeState _Track_FreezeState
;
98 AutomationList::InterpolationStyle _AutomationList_InterpolationStyle
;
99 AnyTime::Type _AnyTime_Type
;
100 ExportFilename::TimeFormat _ExportFilename_TimeFormat
;
101 ExportFilename::DateFormat _ExportFilename_DateFormat
;
102 ExportFormatBase::Type _ExportFormatBase_Type
;
103 ExportFormatBase::FormatId _ExportFormatBase_FormatId
;
104 ExportFormatBase::Endianness _ExportFormatBase_Endianness
;
105 ExportFormatBase::SampleFormat _ExportFormatBase_SampleFormat
;
106 ExportFormatBase::DitherType _ExportFormatBase_DitherType
;
107 ExportFormatBase::Quality _ExportFormatBase_Quality
;
108 ExportFormatBase::SampleRate _ExportFormatBase_SampleRate
;
109 ExportFormatBase::SRCQuality _ExportFormatBase_SRCQuality
;
110 ExportProfileManager::TimeFormat _ExportProfileManager_TimeFormat
;
111 Delivery::Role _Delivery_Role
;
112 IO::Direction _IO_Direction
;
113 MuteMaster::MutePoint _MuteMaster_MutePoint
;
114 MidiModel::NoteDiffCommand::Property _MidiModel_NoteDiffCommand_Property
;
115 MidiModel::SysExDiffCommand::Property _MidiModel_SysExDiffCommand_Property
;
116 MidiModel::PatchChangeDiffCommand::Property _MidiModel_PatchChangeDiffCommand_Property
;
117 WaveformScale _WaveformScale
;
118 WaveformShape _WaveformShape
;
119 QuantizeType _QuantizeType
;
120 Session::PostTransportWork _Session_PostTransportWork
;
121 Session::SlaveState _Session_SlaveState
;
122 MTC_Status _MIDI_MTC_Status
;
124 #define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
125 #define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
126 #define REGISTER_ENUM(e) i.push_back (e); s.push_back (#e)
127 #define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
129 REGISTER_ENUM (OverlapNone
);
130 REGISTER_ENUM (OverlapInternal
);
131 REGISTER_ENUM (OverlapStart
);
132 REGISTER_ENUM (OverlapEnd
);
133 REGISTER_ENUM (OverlapExternal
);
134 REGISTER (_OverlapType
);
136 REGISTER_ENUM (GainAutomation
);
137 REGISTER_ENUM (PanAzimuthAutomation
);
138 REGISTER_ENUM (PanElevationAutomation
);
139 REGISTER_ENUM (PanWidthAutomation
);
140 REGISTER_ENUM (PluginAutomation
);
141 REGISTER_ENUM (SoloAutomation
);
142 REGISTER_ENUM (MuteAutomation
);
143 REGISTER_ENUM (MidiCCAutomation
);
144 REGISTER_ENUM (FadeInAutomation
);
145 REGISTER_ENUM (FadeOutAutomation
);
146 REGISTER_ENUM (EnvelopeAutomation
);
147 REGISTER_BITS (_AutomationType
);
150 REGISTER_ENUM (Write
);
151 REGISTER_ENUM (Touch
);
152 REGISTER_ENUM (Play
);
153 REGISTER_BITS (_AutoState
);
155 REGISTER_ENUM (Absolute
);
156 REGISTER_ENUM (Trim
);
157 REGISTER_BITS (_AutoStyle
);
159 REGISTER_ENUM (CaptureTime
);
160 REGISTER_ENUM (ExistingMaterial
);
161 REGISTER (_AlignStyle
);
163 REGISTER_ENUM (MeterInput
);
164 REGISTER_ENUM (MeterPreFader
);
165 REGISTER_ENUM (MeterPostFader
);
166 REGISTER_ENUM (MeterCustom
);
167 REGISTER (_MeterPoint
);
169 REGISTER_ENUM (Normal
);
170 REGISTER_ENUM (NonLayered
);
171 REGISTER_ENUM (Destructive
);
172 REGISTER (_TrackMode
);
174 REGISTER_ENUM (Sustained
);
175 REGISTER_ENUM (Percussive
);
176 REGISTER (_NoteMode
);
178 REGISTER_ENUM (AllChannels
);
179 REGISTER_ENUM (FilterChannels
);
180 REGISTER_ENUM (ForceChannel
);
181 REGISTER (_ChannelMode
);
183 REGISTER_ENUM (MeterColors
);
184 REGISTER_ENUM (ChannelColors
);
185 REGISTER_ENUM (TrackColor
);
186 REGISTER (_ColorMode
);
188 REGISTER_ENUM (MeterFalloffOff
);
189 REGISTER_ENUM (MeterFalloffSlowest
);
190 REGISTER_ENUM (MeterFalloffSlow
);
191 REGISTER_ENUM (MeterFalloffMedium
);
192 REGISTER_ENUM (MeterFalloffFast
);
193 REGISTER_ENUM (MeterFalloffFaster
);
194 REGISTER_ENUM (MeterFalloffFastest
);
195 REGISTER (_MeterFalloff
);
197 REGISTER_ENUM (MeterHoldOff
);
198 REGISTER_ENUM (MeterHoldShort
);
199 REGISTER_ENUM (MeterHoldMedium
);
200 REGISTER_ENUM (MeterHoldLong
);
201 REGISTER (_MeterHold
);
203 REGISTER_ENUM (Slide
);
204 REGISTER_ENUM (Splice
);
205 REGISTER (_EditMode
);
207 REGISTER_ENUM (Start
);
209 REGISTER_ENUM (SyncPoint
);
210 REGISTER (_RegionPoint
);
212 REGISTER_ENUM (PreFader
);
213 REGISTER_ENUM (PostFader
);
214 REGISTER (_Placement
);
216 REGISTER_ENUM (HardwareMonitoring
);
217 REGISTER_ENUM (SoftwareMonitoring
);
218 REGISTER_ENUM (ExternalMonitoring
);
219 REGISTER (_MonitorModel
);
221 REGISTER_ENUM (DenormalNone
);
222 REGISTER_ENUM (DenormalFTZ
);
223 REGISTER_ENUM (DenormalDAZ
);
224 REGISTER_ENUM (DenormalFTZDAZ
);
225 REGISTER (_DenormalModel
);
227 REGISTER_ENUM (UserOrdered
);
228 REGISTER_ENUM (MixerOrdered
);
229 REGISTER_ENUM (EditorOrdered
);
230 REGISTER (_RemoteModel
);
232 REGISTER_ENUM (FullCrossfade
);
233 REGISTER_ENUM (ShortCrossfade
);
234 REGISTER (_CrossfadeModel
);
236 REGISTER_ENUM (LaterHigher
);
237 REGISTER_ENUM (MoveAddHigher
);
238 REGISTER_ENUM (AddHigher
);
239 REGISTER (_LayerModel
);
241 REGISTER_ENUM (InsertMergeReject
);
242 REGISTER_ENUM (InsertMergeRelax
);
243 REGISTER_ENUM (InsertMergeReplace
);
244 REGISTER_ENUM (InsertMergeTruncateExisting
);
245 REGISTER_ENUM (InsertMergeTruncateAddition
);
246 REGISTER_ENUM (InsertMergeExtend
);
247 REGISTER (_InsertMergePolicy
);
249 REGISTER_ENUM (AfterFaderListen
);
250 REGISTER_ENUM (PreFaderListen
);
251 REGISTER (_ListenPosition
);
253 REGISTER_ENUM (AutoConnectPhysical
);
254 REGISTER_ENUM (AutoConnectMaster
);
255 REGISTER_BITS (_AutoConnectOption
);
257 REGISTER_ENUM (FormatFloat
);
258 REGISTER_ENUM (FormatInt24
);
259 REGISTER_ENUM (FormatInt16
);
260 REGISTER (_SampleFormat
);
262 REGISTER_ENUM (CDMarkerNone
);
263 REGISTER_ENUM (CDMarkerCUE
);
264 REGISTER_ENUM (CDMarkerTOC
);
265 REGISTER (_CDMarkerFormat
);
268 REGISTER_ENUM (WAVE
);
269 REGISTER_ENUM (WAVE64
);
271 REGISTER_ENUM (AIFF
);
272 REGISTER_ENUM (iXML
);
273 REGISTER_ENUM (RF64
);
274 REGISTER (_HeaderFormat
);
276 REGISTER_ENUM (AudioUnit
);
277 REGISTER_ENUM (LADSPA
);
279 REGISTER (_PluginType
);
282 REGISTER_ENUM (JACK
);
283 REGISTER_ENUM (MIDIClock
);
284 REGISTER (_SyncSource
);
286 REGISTER_ENUM (Sprung
);
287 REGISTER_ENUM (Wheel
);
288 REGISTER (_ShuttleBehaviour
);
290 REGISTER_ENUM (Percentage
);
291 REGISTER_ENUM (Semitones
);
292 REGISTER (_ShuttleUnits
);
294 REGISTER_CLASS_ENUM (Session
, Disabled
);
295 REGISTER_CLASS_ENUM (Session
, Enabled
);
296 REGISTER_CLASS_ENUM (Session
, Recording
);
297 REGISTER (_Session_RecordState
);
299 REGISTER_CLASS_ENUM (SessionEvent
, SetTransportSpeed
);
300 REGISTER_CLASS_ENUM (SessionEvent
, SetTrackSpeed
);
301 REGISTER_CLASS_ENUM (SessionEvent
, Locate
);
302 REGISTER_CLASS_ENUM (SessionEvent
, LocateRoll
);
303 REGISTER_CLASS_ENUM (SessionEvent
, LocateRollLocate
);
304 REGISTER_CLASS_ENUM (SessionEvent
, SetLoop
);
305 REGISTER_CLASS_ENUM (SessionEvent
, PunchIn
);
306 REGISTER_CLASS_ENUM (SessionEvent
, PunchOut
);
307 REGISTER_CLASS_ENUM (SessionEvent
, RangeStop
);
308 REGISTER_CLASS_ENUM (SessionEvent
, RangeLocate
);
309 REGISTER_CLASS_ENUM (SessionEvent
, Overwrite
);
310 REGISTER_CLASS_ENUM (SessionEvent
, SetSyncSource
);
311 REGISTER_CLASS_ENUM (SessionEvent
, Audition
);
312 REGISTER_CLASS_ENUM (SessionEvent
, InputConfigurationChange
);
313 REGISTER_CLASS_ENUM (SessionEvent
, SetPlayAudioRange
);
314 REGISTER_CLASS_ENUM (SessionEvent
, StopOnce
);
315 REGISTER_CLASS_ENUM (SessionEvent
, AutoLoop
);
316 REGISTER (_SessionEvent_Type
);
318 REGISTER_CLASS_ENUM (Session
, Stopped
);
319 REGISTER_CLASS_ENUM (Session
, Waiting
);
320 REGISTER_CLASS_ENUM (Session
, Running
);
321 REGISTER (_Session_SlaveState
);
323 REGISTER_ENUM (MTC_Stopped
);
324 REGISTER_ENUM (MTC_Forward
);
325 REGISTER_ENUM (MTC_Backward
);
326 REGISTER (_MIDI_MTC_Status
);
328 REGISTER_CLASS_ENUM (Session
, PostTransportStop
);
329 REGISTER_CLASS_ENUM (Session
, PostTransportDisableRecord
);
330 REGISTER_CLASS_ENUM (Session
, PostTransportPosition
);
331 REGISTER_CLASS_ENUM (Session
, PostTransportDidRecord
);
332 REGISTER_CLASS_ENUM (Session
, PostTransportDuration
);
333 REGISTER_CLASS_ENUM (Session
, PostTransportLocate
);
334 REGISTER_CLASS_ENUM (Session
, PostTransportRoll
);
335 REGISTER_CLASS_ENUM (Session
, PostTransportAbort
);
336 REGISTER_CLASS_ENUM (Session
, PostTransportOverWrite
);
337 REGISTER_CLASS_ENUM (Session
, PostTransportSpeed
);
338 REGISTER_CLASS_ENUM (Session
, PostTransportAudition
);
339 REGISTER_CLASS_ENUM (Session
, PostTransportScrub
);
340 REGISTER_CLASS_ENUM (Session
, PostTransportReverse
);
341 REGISTER_CLASS_ENUM (Session
, PostTransportInputChange
);
342 REGISTER_CLASS_ENUM (Session
, PostTransportCurveRealloc
);
343 REGISTER_CLASS_ENUM (Session
, PostTransportClearSubstate
);
344 REGISTER_BITS (_Session_PostTransportWork
);
346 REGISTER_CLASS_ENUM (Session
, Clean
);
347 REGISTER_CLASS_ENUM (Session
, Dirty
);
348 REGISTER_CLASS_ENUM (Session
, CannotSave
);
349 REGISTER_CLASS_ENUM (Session
, Deletion
);
350 REGISTER_CLASS_ENUM (Session
, InitialConnecting
);
351 REGISTER_CLASS_ENUM (Session
, Loading
);
352 REGISTER_CLASS_ENUM (Session
, InCleanup
);
353 REGISTER_BITS (_Session_StateOfTheState
);
355 REGISTER_ENUM (timecode_23976
);
356 REGISTER_ENUM (timecode_24
);
357 REGISTER_ENUM (timecode_24976
);
358 REGISTER_ENUM (timecode_25
);
359 REGISTER_ENUM (timecode_2997
);
360 REGISTER_ENUM (timecode_2997drop
);
361 REGISTER_ENUM (timecode_30
);
362 REGISTER_ENUM (timecode_30drop
);
363 REGISTER_ENUM (timecode_5994
);
364 REGISTER_ENUM (timecode_60
);
365 REGISTER (_Session_TimecodeFormat
);
367 REGISTER_CLASS_ENUM (Session
, pullup_Plus4Plus1
);
368 REGISTER_CLASS_ENUM (Session
, pullup_Plus4
);
369 REGISTER_CLASS_ENUM (Session
, pullup_Plus4Minus1
);
370 REGISTER_CLASS_ENUM (Session
, pullup_Plus1
);
371 REGISTER_CLASS_ENUM (Session
, pullup_None
);
372 REGISTER_CLASS_ENUM (Session
, pullup_Minus1
);
373 REGISTER_CLASS_ENUM (Session
, pullup_Minus4Plus1
);
374 REGISTER_CLASS_ENUM (Session
, pullup_Minus4
);
375 REGISTER_CLASS_ENUM (Session
, pullup_Minus4Minus1
);
376 REGISTER (_Session_PullupFormat
);
378 REGISTER_CLASS_ENUM (Route
, Hidden
);
379 REGISTER_CLASS_ENUM (Route
, MasterOut
);
380 REGISTER_CLASS_ENUM (Route
, MonitorOut
);
381 REGISTER_BITS (_Route_Flag
);
383 REGISTER_CLASS_ENUM (Source
, Writable
);
384 REGISTER_CLASS_ENUM (Source
, CanRename
);
385 REGISTER_CLASS_ENUM (Source
, Broadcast
);
386 REGISTER_CLASS_ENUM (Source
, Removable
);
387 REGISTER_CLASS_ENUM (Source
, RemovableIfEmpty
);
388 REGISTER_CLASS_ENUM (Source
, RemoveAtDestroy
);
389 REGISTER_CLASS_ENUM (Source
, NoPeakFile
);
390 REGISTER_CLASS_ENUM (Source
, Destructive
);
391 REGISTER_BITS (_Source_Flag
);
393 REGISTER_ENUM (FadeLinear
);
394 REGISTER_ENUM (FadeFast
);
395 REGISTER_ENUM (FadeSlow
);
396 REGISTER_ENUM (FadeLogA
);
397 REGISTER_ENUM (FadeLogB
);
398 REGISTER (_FadeShape
);
400 REGISTER_CLASS_ENUM (Diskstream
, Recordable
);
401 REGISTER_CLASS_ENUM (Diskstream
, Hidden
);
402 REGISTER_CLASS_ENUM (Diskstream
, Destructive
);
403 REGISTER_BITS (_Diskstream_Flag
);
405 REGISTER_CLASS_ENUM (Location
, IsMark
);
406 REGISTER_CLASS_ENUM (Location
, IsAutoPunch
);
407 REGISTER_CLASS_ENUM (Location
, IsAutoLoop
);
408 REGISTER_CLASS_ENUM (Location
, IsHidden
);
409 REGISTER_CLASS_ENUM (Location
, IsCDMarker
);
410 REGISTER_CLASS_ENUM (Location
, IsSessionRange
);
411 REGISTER_CLASS_ENUM (Location
, IsRangeMarker
);
412 REGISTER_BITS (_Location_Flags
);
414 REGISTER_CLASS_ENUM (Track
, NoFreeze
);
415 REGISTER_CLASS_ENUM (Track
, Frozen
);
416 REGISTER_CLASS_ENUM (Track
, UnFrozen
);
417 REGISTER (_Track_FreezeState
);
419 REGISTER_CLASS_ENUM (AutomationList
, Discrete
);
420 REGISTER_CLASS_ENUM (AutomationList
, Linear
);
421 REGISTER_CLASS_ENUM (AutomationList
, Curved
);
422 REGISTER (_AutomationList_InterpolationStyle
);
424 REGISTER_CLASS_ENUM (AnyTime
, Timecode
);
425 REGISTER_CLASS_ENUM (AnyTime
, BBT
);
426 REGISTER_CLASS_ENUM (AnyTime
, Frames
);
427 REGISTER_CLASS_ENUM (AnyTime
, Seconds
);
428 REGISTER (_AnyTime_Type
);
430 REGISTER_CLASS_ENUM (ExportFilename
, D_None
);
431 REGISTER_CLASS_ENUM (ExportFilename
, D_ISO
);
432 REGISTER_CLASS_ENUM (ExportFilename
, D_ISOShortY
);
433 REGISTER_CLASS_ENUM (ExportFilename
, D_BE
);
434 REGISTER_CLASS_ENUM (ExportFilename
, D_BEShortY
);
435 REGISTER (_ExportFilename_DateFormat
);
437 REGISTER_CLASS_ENUM (ExportFilename
, T_None
);
438 REGISTER_CLASS_ENUM (ExportFilename
, T_NoDelim
);
439 REGISTER_CLASS_ENUM (ExportFilename
, T_Delim
);
440 REGISTER (_ExportFilename_TimeFormat
);
442 REGISTER_CLASS_ENUM (ExportFormatBase
, T_None
);
443 REGISTER_CLASS_ENUM (ExportFormatBase
, T_Sndfile
);
444 REGISTER (_ExportFormatBase_Type
);
446 REGISTER_CLASS_ENUM (ExportFormatBase
, F_None
);
447 REGISTER_CLASS_ENUM (ExportFormatBase
, F_WAV
);
448 REGISTER_CLASS_ENUM (ExportFormatBase
, F_W64
);
449 REGISTER_CLASS_ENUM (ExportFormatBase
, F_AIFF
);
450 REGISTER_CLASS_ENUM (ExportFormatBase
, F_AU
);
451 REGISTER_CLASS_ENUM (ExportFormatBase
, F_IRCAM
);
452 REGISTER_CLASS_ENUM (ExportFormatBase
, F_RAW
);
453 REGISTER_CLASS_ENUM (ExportFormatBase
, F_FLAC
);
454 REGISTER_CLASS_ENUM (ExportFormatBase
, F_Ogg
);
455 REGISTER (_ExportFormatBase_FormatId
);
457 REGISTER_CLASS_ENUM (ExportFormatBase
, E_FileDefault
);
458 REGISTER_CLASS_ENUM (ExportFormatBase
, E_Little
);
459 REGISTER_CLASS_ENUM (ExportFormatBase
, E_Big
);
460 REGISTER_CLASS_ENUM (ExportFormatBase
, E_Cpu
);
461 REGISTER (_ExportFormatBase_Endianness
);
463 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_None
);
464 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_8
);
465 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_16
);
466 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_24
);
467 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_32
);
468 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_U8
);
469 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_Float
);
470 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_Double
);
471 REGISTER_CLASS_ENUM (ExportFormatBase
, SF_Vorbis
);
472 REGISTER (_ExportFormatBase_SampleFormat
);
474 REGISTER_CLASS_ENUM (ExportFormatBase
, D_None
);
475 REGISTER_CLASS_ENUM (ExportFormatBase
, D_Rect
);
476 REGISTER_CLASS_ENUM (ExportFormatBase
, D_Tri
);
477 REGISTER_CLASS_ENUM (ExportFormatBase
, D_Shaped
);
478 REGISTER (_ExportFormatBase_DitherType
);
480 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_None
);
481 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_Any
);
482 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_LosslessLinear
);
483 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_LosslessCompression
);
484 REGISTER_CLASS_ENUM (ExportFormatBase
, Q_LossyCompression
);
485 REGISTER (_ExportFormatBase_Quality
);
487 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_None
);
488 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_Session
);
489 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_22_05
);
490 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_44_1
);
491 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_48
);
492 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_88_2
);
493 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_96
);
494 REGISTER_CLASS_ENUM (ExportFormatBase
, SR_192
);
495 REGISTER (_ExportFormatBase_SampleRate
);
497 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_SincBest
);
498 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_SincMedium
);
499 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_SincFast
);
500 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_ZeroOrderHold
);
501 REGISTER_CLASS_ENUM (ExportFormatBase
, SRC_Linear
);
502 REGISTER (_ExportFormatBase_SRCQuality
);
504 REGISTER_CLASS_ENUM (ExportProfileManager
, Timecode
);
505 REGISTER_CLASS_ENUM (ExportProfileManager
, BBT
);
506 REGISTER_CLASS_ENUM (ExportProfileManager
, MinSec
);
507 REGISTER_CLASS_ENUM (ExportProfileManager
, Frames
);
508 REGISTER_CLASS_ENUM (ExportProfileManager
, Off
);
509 REGISTER (_ExportProfileManager_TimeFormat
);
511 REGISTER_CLASS_ENUM (Delivery
, Insert
);
512 REGISTER_CLASS_ENUM (Delivery
, Send
);
513 REGISTER_CLASS_ENUM (Delivery
, Listen
);
514 REGISTER_CLASS_ENUM (Delivery
, Main
);
515 REGISTER_CLASS_ENUM (Delivery
, Aux
);
516 REGISTER_BITS (_Delivery_Role
);
518 REGISTER_CLASS_ENUM (MuteMaster
, PreFader
);
519 REGISTER_CLASS_ENUM (MuteMaster
, PostFader
);
520 REGISTER_CLASS_ENUM (MuteMaster
, Listen
);
521 REGISTER_CLASS_ENUM (MuteMaster
, Main
);
522 REGISTER_BITS (_MuteMaster_MutePoint
);
524 REGISTER_CLASS_ENUM (IO
, Input
);
525 REGISTER_CLASS_ENUM (IO
, Output
);
526 REGISTER (_IO_Direction
);
528 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, NoteNumber
);
529 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, Channel
);
530 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, Velocity
);
531 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, StartTime
);
532 REGISTER_CLASS_ENUM (MidiModel::NoteDiffCommand
, Length
);
533 REGISTER (_MidiModel_NoteDiffCommand_Property
);
535 REGISTER_CLASS_ENUM (MidiModel::SysExDiffCommand
, Time
);
536 REGISTER (_MidiModel_SysExDiffCommand_Property
);
538 REGISTER_CLASS_ENUM (MidiModel::PatchChangeDiffCommand
, Time
);
539 REGISTER_CLASS_ENUM (MidiModel::PatchChangeDiffCommand
, Program
);
540 REGISTER_CLASS_ENUM (MidiModel::PatchChangeDiffCommand
, Bank
);
541 REGISTER (_MidiModel_PatchChangeDiffCommand_Property
);
543 REGISTER_ENUM(Linear
);
544 REGISTER_ENUM(Logarithmic
);
545 REGISTER(_WaveformScale
);
547 REGISTER_ENUM(Traditional
);
548 REGISTER_ENUM(Rectified
);
549 REGISTER(_WaveformShape
);
551 REGISTER_ENUM(Plain
);
552 REGISTER_ENUM(Legato
);
553 REGISTER_ENUM(Groove
);
554 REGISTER(_QuantizeType
);
556 REGISTER_ENUM(AudioTime
);
557 REGISTER_ENUM(MusicTime
);
558 REGISTER(_PositionLockStyle
);
561 } /* namespace ARDOUR */
563 /* deserializing types from ardour/types.h */
565 std::istream
& operator>>(std::istream
& o
, HeaderFormat
& var
)
569 var
= (HeaderFormat
) string_2_enum (s
, var
);
573 std::ostream
& operator<<(std::ostream
& o
, const HeaderFormat
& var
)
575 std::string s
= enum_2_string (var
);
579 std::istream
& operator>>(std::istream
& o
, SampleFormat
& var
)
583 var
= (SampleFormat
) string_2_enum (s
, var
);
587 std::ostream
& operator<<(std::ostream
& o
, const SampleFormat
& var
)
589 std::string s
= enum_2_string (var
);
592 std::istream
& operator>>(std::istream
& o
, AutoConnectOption
& var
)
596 var
= (AutoConnectOption
) string_2_enum (s
, var
);
600 std::ostream
& operator<<(std::ostream
& o
, const AutoConnectOption
& var
)
602 std::string s
= enum_2_string (var
);
605 std::istream
& operator>>(std::istream
& o
, MonitorModel
& var
)
609 var
= (MonitorModel
) string_2_enum (s
, var
);
613 std::ostream
& operator<<(std::ostream
& o
, const MonitorModel
& var
)
615 std::string s
= enum_2_string (var
);
618 std::istream
& operator>>(std::istream
& o
, RemoteModel
& var
)
622 var
= (RemoteModel
) string_2_enum (s
, var
);
626 std::ostream
& operator<<(std::ostream
& o
, const RemoteModel
& var
)
628 std::string s
= enum_2_string (var
);
631 std::istream
& operator>>(std::istream
& o
, EditMode
& var
)
635 var
= (EditMode
) string_2_enum (s
, var
);
639 std::ostream
& operator<<(std::ostream
& o
, const EditMode
& var
)
641 std::string s
= enum_2_string (var
);
644 std::istream
& operator>>(std::istream
& o
, ListenPosition
& var
)
648 var
= (ListenPosition
) string_2_enum (s
, var
);
652 std::ostream
& operator<<(std::ostream
& o
, const ListenPosition
& var
)
654 std::string s
= enum_2_string (var
);
657 std::istream
& operator>>(std::istream
& o
, LayerModel
& var
)
661 var
= (LayerModel
) string_2_enum (s
, var
);
665 std::ostream
& operator<<(std::ostream
& o
, const LayerModel
& var
)
667 std::string s
= enum_2_string (var
);
671 std::istream
& operator>>(std::istream
& o
, InsertMergePolicy
& var
)
675 var
= (InsertMergePolicy
) string_2_enum (s
, var
);
678 std::ostream
& operator<<(std::ostream
& o
, const InsertMergePolicy
& var
)
680 std::string s
= enum_2_string (var
);
684 std::istream
& operator>>(std::istream
& o
, CrossfadeModel
& var
)
688 var
= (CrossfadeModel
) string_2_enum (s
, var
);
692 std::ostream
& operator<<(std::ostream
& o
, const CrossfadeModel
& var
)
694 std::string s
= enum_2_string (var
);
697 std::istream
& operator>>(std::istream
& o
, SyncSource
& var
)
701 var
= (SyncSource
) string_2_enum (s
, var
);
705 std::ostream
& operator<<(std::ostream
& o
, const SyncSource
& var
)
707 std::string s
= enum_2_string (var
);
710 std::istream
& operator>>(std::istream
& o
, ShuttleBehaviour
& var
)
714 var
= (ShuttleBehaviour
) string_2_enum (s
, var
);
718 std::ostream
& operator<<(std::ostream
& o
, const ShuttleBehaviour
& var
)
720 std::string s
= enum_2_string (var
);
723 std::istream
& operator>>(std::istream
& o
, ShuttleUnits
& var
)
727 var
= (ShuttleUnits
) string_2_enum (s
, var
);
731 std::ostream
& operator<<(std::ostream
& o
, const ShuttleUnits
& var
)
733 std::string s
= enum_2_string (var
);
736 std::istream
& operator>>(std::istream
& o
, TimecodeFormat
& var
)
740 var
= (TimecodeFormat
) string_2_enum (s
, var
);
744 std::ostream
& operator<<(std::ostream
& o
, const TimecodeFormat
& var
)
746 std::string s
= enum_2_string (var
);
749 std::istream
& operator>>(std::istream
& o
, DenormalModel
& var
)
753 var
= (DenormalModel
) string_2_enum (s
, var
);
757 std::ostream
& operator<<(std::ostream
& o
, const DenormalModel
& var
)
759 std::string s
= enum_2_string (var
);
762 std::istream
& operator>>(std::istream
& o
, WaveformScale
& var
)
766 var
= (WaveformScale
) string_2_enum (s
, var
);
770 std::ostream
& operator<<(std::ostream
& o
, const WaveformScale
& var
)
772 std::string s
= enum_2_string (var
);
775 std::istream
& operator>>(std::istream
& o
, WaveformShape
& var
)
779 var
= (WaveformShape
) string_2_enum (s
, var
);
783 std::ostream
& operator<<(std::ostream
& o
, const WaveformShape
& var
)
785 std::string s
= enum_2_string (var
);
789 std::istream
& operator>>(std::istream
& o
, PositionLockStyle
& var
)
793 var
= (PositionLockStyle
) string_2_enum (s
, var
);
797 std::ostream
& operator<<(std::ostream
& o
, const PositionLockStyle
& var
)
799 std::string s
= enum_2_string (var
);