Use sigc::slots rather than templates + function ptrs for a foreach_region and foreac...
[ardour.git] / libs / ardour / enums.cc
index 345fbe771dbe8b4daaae55003d4da98243bd7ddf..7767381499d6b73c4f7e40e949581dd5e5d34c59 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 <pbd/enumwriter.h>
-
-#include <ardour/types.h>
-#include <ardour/session.h>
-#include <ardour/location.h>
-#include <ardour/audiofilesource.h>
-#include <ardour/diskstream.h>
-#include <ardour/audioregion.h>
-#include <ardour/route_group.h>
-#include <ardour/panner.h>
-#include <ardour/track.h>
+#include "pbd/enumwriter.h"
+
+#include "ardour/types.h"
+#include "ardour/delivery.h"
+#include "ardour/session.h"
+#include "ardour/location.h"
+#include "ardour/audiofilesource.h"
+#include "ardour/diskstream.h"
+#include "ardour/audioregion.h"
+#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 +49,9 @@ setup_enum_writer ()
        AlignStyle _AlignStyle;
        MeterPoint _MeterPoint;
        TrackMode _TrackMode;
+       NoteMode _NoteMode;
+       ChannelMode _ChannelMode;
+       ColorMode _ColorMode;
        MeterFalloff _MeterFalloff;
        MeterHold _MeterHold;
        EditMode _EditMode;
@@ -51,10 +59,12 @@ setup_enum_writer ()
        Placement _Placement;
        MonitorModel _MonitorModel;
        RemoteModel _RemoteModel;
+       DenormalModel _DenormalModel;
        CrossfadeModel _CrossfadeModel;
        LayerModel _LayerModel;
        SoloModel _SoloModel;
        SampleFormat _SampleFormat;
+       CDMarkerFormat _CDMarkerFormat;
        HeaderFormat _HeaderFormat;
        PluginType _PluginType;
        SlaveSource _SlaveSource;
@@ -74,12 +84,27 @@ setup_enum_writer ()
        AutoConnectOption _AutoConnectOption;
        Session::StateOfTheState _Session_StateOfTheState;
        Route::Flag _Route_Flag;
-       AudioFileSource::Flag _AudioFileSource_Flag;
+       Source::Flag _Source_Flag;
        Diskstream::Flag _Diskstream_Flag;
        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;
+       Delivery::Role _Delivery_Role;
 
 #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()
@@ -97,12 +122,16 @@ setup_enum_writer ()
        REGISTER_ENUM (OverlapEnd);
        REGISTER_ENUM (OverlapExternal);
        REGISTER (_OverlapType);
-       
+
        REGISTER_ENUM (GainAutomation);
        REGISTER_ENUM (PanAutomation);
        REGISTER_ENUM (PluginAutomation);
        REGISTER_ENUM (SoloAutomation);
        REGISTER_ENUM (MuteAutomation);
+       REGISTER_ENUM (MidiCCAutomation);
+       REGISTER_ENUM (FadeInAutomation);
+       REGISTER_ENUM (FadeOutAutomation);
+       REGISTER_ENUM (EnvelopeAutomation);
        REGISTER_BITS (_AutomationType);
 
        REGISTER_ENUM (Off);
@@ -116,18 +145,33 @@ 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 (NonLayered);
        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);
@@ -136,7 +180,7 @@ setup_enum_writer ()
        REGISTER_ENUM (MeterFalloffFaster);
        REGISTER_ENUM (MeterFalloffFastest);
        REGISTER (_MeterFalloff);
-       
+
        REGISTER_ENUM (MeterHoldOff);
        REGISTER_ENUM (MeterHoldShort);
        REGISTER_ENUM (MeterHoldMedium);
@@ -144,15 +188,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);
@@ -162,6 +205,12 @@ setup_enum_writer ()
        REGISTER_ENUM (ExternalMonitoring);
        REGISTER (_MonitorModel);
 
+       REGISTER_ENUM (DenormalNone);
+       REGISTER_ENUM (DenormalFTZ);
+       REGISTER_ENUM (DenormalDAZ);
+       REGISTER_ENUM (DenormalFTZDAZ);
+       REGISTER (_DenormalModel);
+
        REGISTER_ENUM (UserOrdered);
        REGISTER_ENUM (MixerOrdered);
        REGISTER_ENUM (EditorOrdered);
@@ -173,11 +222,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);
@@ -186,15 +235,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);
@@ -204,15 +259,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);
@@ -224,6 +280,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);
@@ -282,15 +339,15 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Route, ControlOut);
        REGISTER_BITS (_Route_Flag);
 
-       REGISTER_CLASS_ENUM (AudioFileSource, Writable);
-       REGISTER_CLASS_ENUM (AudioFileSource, CanRename);
-       REGISTER_CLASS_ENUM (AudioFileSource, Broadcast);
-       REGISTER_CLASS_ENUM (AudioFileSource, Removable);
-       REGISTER_CLASS_ENUM (AudioFileSource, RemovableIfEmpty);
-       REGISTER_CLASS_ENUM (AudioFileSource, RemoveAtDestroy);
-       REGISTER_CLASS_ENUM (AudioFileSource, NoPeakFile);
-       REGISTER_CLASS_ENUM (AudioFileSource, Destructive);
-       REGISTER_BITS (_AudioFileSource_Flag);
+       REGISTER_CLASS_ENUM (Source, Writable);
+       REGISTER_CLASS_ENUM (Source, CanRename);
+       REGISTER_CLASS_ENUM (Source, Broadcast);
+       REGISTER_CLASS_ENUM (Source, Removable);
+       REGISTER_CLASS_ENUM (Source, RemovableIfEmpty);
+       REGISTER_CLASS_ENUM (Source, RemoveAtDestroy);
+       REGISTER_CLASS_ENUM (Source, NoPeakFile);
+       REGISTER_CLASS_ENUM (Source, Destructive);
+       REGISTER_BITS (_Source_Flag);
 
        REGISTER_CLASS_ENUM (AudioRegion, Linear);
        REGISTER_CLASS_ENUM (AudioRegion, Fast);
@@ -330,6 +387,7 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Region, DefaultFadeIn);
        REGISTER_CLASS_ENUM (Region, DefaultFadeOut);
        REGISTER_CLASS_ENUM (Region, Locked);
+       REGISTER_CLASS_ENUM (Region, PositionLocked);
        REGISTER_CLASS_ENUM (Region, Automatic);
        REGISTER_CLASS_ENUM (Region, WholeFile);
        REGISTER_CLASS_ENUM (Region, FadeIn);
@@ -344,9 +402,109 @@ 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);
+
+       REGISTER_CLASS_ENUM (Delivery, Solo);
+       REGISTER_CLASS_ENUM (Delivery, Send);
+       REGISTER_CLASS_ENUM (Delivery, Listen);
+       REGISTER_CLASS_ENUM (Delivery, Main);
+       REGISTER_BITS (_Delivery_Role);
 }