Templateify MidiBuffer iterators (avoid code duplication since they're about to get...
[ardour.git] / libs / ardour / enums.cc
index 71b699396b433e62e6a7422e34fd18cb05ab2341..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
@@ -29,6 +29,9 @@
 #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;
@@ -47,6 +50,7 @@ setup_enum_writer ()
        TrackMode _TrackMode;
        NoteMode _NoteMode;
        ChannelMode _ChannelMode;
+       ColorMode _ColorMode;
        MeterFalloff _MeterFalloff;
        MeterHold _MeterHold;
        EditMode _EditMode;
@@ -59,6 +63,7 @@ setup_enum_writer ()
        LayerModel _LayerModel;
        SoloModel _SoloModel;
        SampleFormat _SampleFormat;
+       CDMarkerFormat _CDMarkerFormat;
        HeaderFormat _HeaderFormat;
        PluginType _PluginType;
        SlaveSource _SlaveSource;
@@ -86,6 +91,18 @@ setup_enum_writer ()
        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()
@@ -103,7 +120,7 @@ setup_enum_writer ()
        REGISTER_ENUM (OverlapEnd);
        REGISTER_ENUM (OverlapExternal);
        REGISTER (_OverlapType);
-       
+
        REGISTER_ENUM (GainAutomation);
        REGISTER_ENUM (PanAutomation);
        REGISTER_ENUM (PluginAutomation);
@@ -126,27 +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);
@@ -155,7 +177,7 @@ setup_enum_writer ()
        REGISTER_ENUM (MeterFalloffFaster);
        REGISTER_ENUM (MeterFalloffFastest);
        REGISTER (_MeterFalloff);
-       
+
        REGISTER_ENUM (MeterHoldOff);
        REGISTER_ENUM (MeterHoldShort);
        REGISTER_ENUM (MeterHoldMedium);
@@ -163,12 +185,12 @@ 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);
@@ -197,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);
@@ -213,13 +235,18 @@ setup_enum_writer ()
        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);
@@ -229,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);
@@ -379,10 +407,95 @@ setup_enum_writer ()
        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);
 }