Templateify MidiBuffer iterators (avoid code duplication since they're about to get...
[ardour.git] / libs / ardour / enums.cc
index 5a65135f758e85548ebe97c69e6021d8a18c95da..0c307d060565239caeb1b0d12bc07bcfa19f61ba 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2000-2007 Paul Davis 
+    Copyright (C) 2000-2007 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #include <ardour/route_group.h>
 #include <ardour/panner.h>
 #include <ardour/track.h>
+#include <ardour/midi_track.h>
+#include <ardour/export_filename.h>
+#include <ardour/export_format_base.h>
+#include <ardour/export_profile_manager.h>
 
 using namespace std;
 using namespace PBD;
@@ -44,6 +48,9 @@ setup_enum_writer ()
        AlignStyle _AlignStyle;
        MeterPoint _MeterPoint;
        TrackMode _TrackMode;
+       NoteMode _NoteMode;
+       ChannelMode _ChannelMode;
+       ColorMode _ColorMode;
        MeterFalloff _MeterFalloff;
        MeterHold _MeterHold;
        EditMode _EditMode;
@@ -56,6 +63,7 @@ setup_enum_writer ()
        LayerModel _LayerModel;
        SoloModel _SoloModel;
        SampleFormat _SampleFormat;
+       CDMarkerFormat _CDMarkerFormat;
        HeaderFormat _HeaderFormat;
        PluginType _PluginType;
        SlaveSource _SlaveSource;
@@ -80,7 +88,21 @@ setup_enum_writer ()
        Location::Flags _Location_Flags;
        RouteGroup::Flag _RouteGroup_Flag;
        Region::Flag _Region_Flag;
+       Region::PositionLockStyle _Region_PositionLockStyle;
        Track::FreezeState _Track_FreezeState;
+       AutomationList::InterpolationStyle _AutomationList_InterpolationStyle;
+       AnyTime::Type _AnyTime_Type;
+       ExportFilename::TimeFormat _ExportFilename_TimeFormat;
+       ExportFilename::DateFormat _ExportFilename_DateFormat;
+       ExportFormatBase::Type _ExportFormatBase_Type;
+       ExportFormatBase::FormatId _ExportFormatBase_FormatId;
+       ExportFormatBase::Endianness _ExportFormatBase_Endianness;
+       ExportFormatBase::SampleFormat _ExportFormatBase_SampleFormat;
+       ExportFormatBase::DitherType _ExportFormatBase_DitherType;
+       ExportFormatBase::Quality _ExportFormatBase_Quality;
+       ExportFormatBase::SampleRate _ExportFormatBase_SampleRate;
+       ExportFormatBase::SRCQuality _ExportFormatBase_SRCQuality;
+       ExportProfileManager::TimeFormat _ExportProfileManager_TimeFormat;
 
 #define REGISTER(e) enum_writer->register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
 #define REGISTER_BITS(e) enum_writer->register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
@@ -98,7 +120,7 @@ setup_enum_writer ()
        REGISTER_ENUM (OverlapEnd);
        REGISTER_ENUM (OverlapExternal);
        REGISTER (_OverlapType);
-       
+
        REGISTER_ENUM (GainAutomation);
        REGISTER_ENUM (PanAutomation);
        REGISTER_ENUM (PluginAutomation);
@@ -121,18 +143,32 @@ setup_enum_writer ()
        REGISTER_BITS (_AutoStyle);
 
        REGISTER_ENUM (CaptureTime);
-       REGISTER_ENUM (ExistingMaterial);       
+       REGISTER_ENUM (ExistingMaterial);
        REGISTER (_AlignStyle);
 
        REGISTER_ENUM (MeterInput);
        REGISTER_ENUM (MeterPreFader);
-       REGISTER_ENUM (MeterPostFader); 
+       REGISTER_ENUM (MeterPostFader);
        REGISTER (_MeterPoint);
 
        REGISTER_ENUM (Normal);
        REGISTER_ENUM (Destructive);
        REGISTER (_TrackMode);
 
+       REGISTER_ENUM (Sustained);
+       REGISTER_ENUM (Percussive);
+       REGISTER (_NoteMode);
+
+       REGISTER_ENUM (AllChannels);
+       REGISTER_ENUM (FilterChannels);
+       REGISTER_ENUM (ForceChannel);
+       REGISTER (_ChannelMode);
+
+       REGISTER_ENUM (MeterColors);
+       REGISTER_ENUM (ChannelColors);
+       REGISTER_ENUM (TrackColor);
+       REGISTER (_ColorMode);
+       
        REGISTER_ENUM (MeterFalloffOff);
        REGISTER_ENUM (MeterFalloffSlowest);
        REGISTER_ENUM (MeterFalloffSlow);
@@ -141,7 +177,7 @@ setup_enum_writer ()
        REGISTER_ENUM (MeterFalloffFaster);
        REGISTER_ENUM (MeterFalloffFastest);
        REGISTER (_MeterFalloff);
-       
+
        REGISTER_ENUM (MeterHoldOff);
        REGISTER_ENUM (MeterHoldShort);
        REGISTER_ENUM (MeterHoldMedium);
@@ -149,15 +185,14 @@ setup_enum_writer ()
        REGISTER (_MeterHold);
 
        REGISTER_ENUM (Slide);
-       REGISTER_ENUM (Splice); 
+       REGISTER_ENUM (Splice);
        REGISTER (_EditMode);
 
        REGISTER_ENUM (Start);
        REGISTER_ENUM (End);
-       REGISTER_ENUM (SyncPoint);      
+       REGISTER_ENUM (SyncPoint);
        REGISTER (_RegionPoint);
 
-
        REGISTER_ENUM (PreFader);
        REGISTER_ENUM (PostFader);
        REGISTER (_Placement);
@@ -184,11 +219,11 @@ setup_enum_writer ()
 
        REGISTER_ENUM (LaterHigher);
        REGISTER_ENUM (MoveAddHigher);
-       REGISTER_ENUM (AddHigher);      
+       REGISTER_ENUM (AddHigher);
        REGISTER (_LayerModel);
 
        REGISTER_ENUM (InverseMute);
-       REGISTER_ENUM (SoloBus);        
+       REGISTER_ENUM (SoloBus);
        REGISTER (_SoloModel);
 
        REGISTER_ENUM (AutoConnectPhysical);
@@ -197,15 +232,21 @@ setup_enum_writer ()
 
        REGISTER_ENUM (FormatFloat);
        REGISTER_ENUM (FormatInt24);
+       REGISTER_ENUM (FormatInt16);
        REGISTER (_SampleFormat);
 
+       REGISTER_ENUM (CDMarkerNone);
+       REGISTER_ENUM (CDMarkerCUE);
+       REGISTER_ENUM (CDMarkerTOC);
+       REGISTER (_CDMarkerFormat);
+
        REGISTER_ENUM (BWF);
        REGISTER_ENUM (WAVE);
        REGISTER_ENUM (WAVE64);
        REGISTER_ENUM (CAF);
        REGISTER_ENUM (AIFF);
        REGISTER_ENUM (iXML);
-       REGISTER_ENUM (RF64);   
+       REGISTER_ENUM (RF64);
        REGISTER (_HeaderFormat);
 
        REGISTER_ENUM (AudioUnit);
@@ -215,15 +256,16 @@ setup_enum_writer ()
 
        REGISTER_ENUM (None);
        REGISTER_ENUM (MTC);
-       REGISTER_ENUM (JACK);   
+       REGISTER_ENUM (JACK);
+       REGISTER_ENUM (MIDIClock);
        REGISTER (_SlaveSource);
 
        REGISTER_ENUM (Sprung);
-       REGISTER_ENUM (Wheel);  
+       REGISTER_ENUM (Wheel);
        REGISTER (_ShuttleBehaviour);
 
        REGISTER_ENUM (Percentage);
-       REGISTER_ENUM (Semitones);      
+       REGISTER_ENUM (Semitones);
        REGISTER (_ShuttleUnits);
 
        REGISTER_CLASS_ENUM (Session, Disabled);
@@ -235,6 +277,7 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Session::Event, SetDiskstreamSpeed);
        REGISTER_CLASS_ENUM (Session::Event, Locate);
        REGISTER_CLASS_ENUM (Session::Event, LocateRoll);
+       REGISTER_CLASS_ENUM (Session::Event, LocateRollLocate);
        REGISTER_CLASS_ENUM (Session::Event, SetLoop);
        REGISTER_CLASS_ENUM (Session::Event, PunchIn);
        REGISTER_CLASS_ENUM (Session::Event, PunchOut);
@@ -356,9 +399,103 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Region, DoNotSaveState);
        REGISTER_BITS (_Region_Flag);
 
+       REGISTER_CLASS_ENUM (Region, AudioTime);
+       REGISTER_CLASS_ENUM (Region, MusicTime);
+       REGISTER_BITS (_Region_PositionLockStyle);
+
        REGISTER_CLASS_ENUM (Track, NoFreeze);
        REGISTER_CLASS_ENUM (Track, Frozen);
        REGISTER_CLASS_ENUM (Track, UnFrozen);
        REGISTER (_Track_FreezeState);
-       
+
+       REGISTER_CLASS_ENUM (AutomationList, Discrete);
+       REGISTER_CLASS_ENUM (AutomationList, Linear);
+       REGISTER_CLASS_ENUM (AutomationList, Curved);
+       REGISTER (_AutomationList_InterpolationStyle);
+
+       REGISTER_CLASS_ENUM (AnyTime, SMPTE);
+       REGISTER_CLASS_ENUM (AnyTime, BBT);
+       REGISTER_CLASS_ENUM (AnyTime, Frames);
+       REGISTER_CLASS_ENUM (AnyTime, Seconds);
+       REGISTER (_AnyTime_Type);
+
+       REGISTER_CLASS_ENUM (ExportFilename, D_None);
+       REGISTER_CLASS_ENUM (ExportFilename, D_ISO);
+       REGISTER_CLASS_ENUM (ExportFilename, D_ISOShortY);
+       REGISTER_CLASS_ENUM (ExportFilename, D_BE);
+       REGISTER_CLASS_ENUM (ExportFilename, D_BEShortY);
+       REGISTER (_ExportFilename_DateFormat);
+
+       REGISTER_CLASS_ENUM (ExportFilename, T_None);
+       REGISTER_CLASS_ENUM (ExportFilename, T_NoDelim);
+       REGISTER_CLASS_ENUM (ExportFilename, T_Delim);
+       REGISTER (_ExportFilename_TimeFormat);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, T_None);
+       REGISTER_CLASS_ENUM (ExportFormatBase, T_Sndfile);
+       REGISTER (_ExportFormatBase_Type);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_None);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_WAV);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_W64);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_AIFF);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_AU);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_IRCAM);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_RAW);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_FLAC);
+       REGISTER_CLASS_ENUM (ExportFormatBase, F_Ogg);
+       REGISTER (_ExportFormatBase_FormatId);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, E_FileDefault);
+       REGISTER_CLASS_ENUM (ExportFormatBase, E_Little);
+       REGISTER_CLASS_ENUM (ExportFormatBase, E_Big);
+       REGISTER_CLASS_ENUM (ExportFormatBase, E_Cpu);
+       REGISTER (_ExportFormatBase_Endianness);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_None);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_8);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_16);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_24);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_32);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_U8);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_Float);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_Double);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SF_Vorbis);
+       REGISTER (_ExportFormatBase_SampleFormat);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, D_None);
+       REGISTER_CLASS_ENUM (ExportFormatBase, D_Rect);
+       REGISTER_CLASS_ENUM (ExportFormatBase, D_Tri);
+       REGISTER_CLASS_ENUM (ExportFormatBase, D_Shaped);
+       REGISTER (_ExportFormatBase_DitherType);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, Q_None);
+       REGISTER_CLASS_ENUM (ExportFormatBase, Q_Any);
+       REGISTER_CLASS_ENUM (ExportFormatBase, Q_LosslessLinear);
+       REGISTER_CLASS_ENUM (ExportFormatBase, Q_LosslessCompression);
+       REGISTER_CLASS_ENUM (ExportFormatBase, Q_LossyCompression);
+       REGISTER (_ExportFormatBase_Quality);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_None);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_22_05);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_44_1);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_48);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_88_2);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_96);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_192);
+       REGISTER (_ExportFormatBase_SampleRate);
+
+       REGISTER_CLASS_ENUM (ExportFormatBase, SRC_SincBest);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SRC_SincMedium);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SRC_SincFast);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SRC_ZeroOrderHold);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SRC_Linear);
+       REGISTER (_ExportFormatBase_SRCQuality);
+
+       REGISTER_CLASS_ENUM (ExportProfileManager, SMPTE);
+       REGISTER_CLASS_ENUM (ExportProfileManager, BBT);
+       REGISTER_CLASS_ENUM (ExportProfileManager, MinSec);
+       REGISTER_CLASS_ENUM (ExportProfileManager, Frames);
+       REGISTER_CLASS_ENUM (ExportProfileManager, Off);
+       REGISTER (_ExportProfileManager_TimeFormat);
 }