move mode/scale/key definitions out of push2 code and into libardour; Aeolian is...
[ardour.git] / libs / ardour / enums.cc
index 8607b9f01fa4c0d7b2d9f53609ca89ac7e282d8d..ad5dc5e6a7a3d2195c24a0eccaeb11ac35c0d2e2 100644 (file)
 #include "ardour/io.h"
 #include "ardour/location.h"
 #include "ardour/midi_model.h"
+#include "ardour/mode.h"
 #include "ardour/mute_master.h"
+#include "ardour/presentation_info.h"
 #include "ardour/session.h"
 #include "ardour/source.h"
+#include "ardour/tempo.h"
 #include "ardour/track.h"
 #include "ardour/types.h"
 
@@ -72,7 +75,6 @@ setup_enum_writer ()
        MonitorState _MonitorState;
        PFLPosition _PFLPosition;
        AFLPosition _AFLPosition;
-       RemoteModel _RemoteModel;
        DenormalModel _DenormalModel;
        LayerModel _LayerModel;
        InsertMergePolicy _InsertMergePolicy;
@@ -98,11 +100,11 @@ setup_enum_writer ()
        AutoConnectOption _AutoConnectOption;
        TracksAutoNamingRule _TracksAutoNamingRule;
        Session::StateOfTheState _Session_StateOfTheState;
-       Route::Flag _Route_Flag;
        Source::Flag _Source_Flag;
        Diskstream::Flag _Diskstream_Flag;
        Location::Flags _Location_Flags;
        PositionLockStyle _PositionLockStyle;
+       TempoSection::Type _TempoSection_Type;
        Track::FreezeState _Track_FreezeState;
        AutomationList::InterpolationStyle _AutomationList_InterpolationStyle;
        AnyTime::Type _AnyTime_Type;
@@ -132,26 +134,56 @@ setup_enum_writer ()
        Evoral::OverlapType _OverlapType;
         BufferingPreset _BufferingPreset;
        AutoReturnTarget _AutoReturnTarget;
+       PresentationInfo::Flag _PresentationInfo_Flag;
+       MusicalMode::Type mode;
 
 #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()
 #define REGISTER_ENUM(e) i.push_back (e); s.push_back (#e)
 #define REGISTER_CLASS_ENUM(t,e) i.push_back (t::e); s.push_back (#e)
 
+       REGISTER_ENUM (NullAutomation);
        REGISTER_ENUM (GainAutomation);
-       REGISTER_ENUM (TrimAutomation);
        REGISTER_ENUM (PanAzimuthAutomation);
        REGISTER_ENUM (PanElevationAutomation);
        REGISTER_ENUM (PanWidthAutomation);
+       REGISTER_ENUM (PanFrontBackAutomation);
+       REGISTER_ENUM (PanLFEAutomation);
        REGISTER_ENUM (PluginAutomation);
        REGISTER_ENUM (PluginPropertyAutomation);
        REGISTER_ENUM (SoloAutomation);
+       REGISTER_ENUM (SoloIsolateAutomation);
+       REGISTER_ENUM (SoloSafeAutomation);
        REGISTER_ENUM (MuteAutomation);
        REGISTER_ENUM (MidiCCAutomation);
+       REGISTER_ENUM (MidiPgmChangeAutomation);
+       REGISTER_ENUM (MidiPitchBenderAutomation);
+       REGISTER_ENUM (MidiChannelPressureAutomation);
+       REGISTER_ENUM (MidiNotePressureAutomation);
+       REGISTER_ENUM (MidiSystemExclusiveAutomation);
        REGISTER_ENUM (FadeInAutomation);
        REGISTER_ENUM (FadeOutAutomation);
        REGISTER_ENUM (EnvelopeAutomation);
-       REGISTER_BITS (_AutomationType);
+       REGISTER_ENUM (RecEnableAutomation);
+       REGISTER_ENUM (RecSafeAutomation);
+       REGISTER_ENUM (TrimAutomation);
+       REGISTER_ENUM (PhaseAutomation);
+       REGISTER_ENUM (MonitoringAutomation);
+       REGISTER_ENUM (EQGain);
+       REGISTER_ENUM (EQFrequency);
+       REGISTER_ENUM (EQQ);
+       REGISTER_ENUM (EQShape);
+       REGISTER_ENUM (EQHPF);
+       REGISTER_ENUM (EQEnable);
+       REGISTER_ENUM (CompThreshold);
+       REGISTER_ENUM (CompSpeed);
+       REGISTER_ENUM (CompMode);
+       REGISTER_ENUM (CompMakeup);
+       REGISTER_ENUM (CompRedux);
+       REGISTER_ENUM (CompEnable);
+       REGISTER_ENUM (BusSendLevel);
+       REGISTER_ENUM (BusSendEnable);
+       REGISTER (_AutomationType);
 
        REGISTER_ENUM (Off);
        REGISTER_ENUM (Write);
@@ -192,6 +224,7 @@ setup_enum_writer ()
        REGISTER_ENUM (MeterIEC2EBU);
        REGISTER_ENUM (MeterVU);
        REGISTER_ENUM (MeterPeak0dB);
+       REGISTER_ENUM (MeterMCP);
        REGISTER (_MeterType);
 
        REGISTER_ENUM (Normal);
@@ -292,12 +325,9 @@ setup_enum_writer ()
        REGISTER_ENUM (DenormalFTZDAZ);
        REGISTER (_DenormalModel);
 
-       REGISTER_ENUM (UserOrdered);
-       REGISTER_ENUM (MixerOrdered);
-       REGISTER (_RemoteModel);
        /*
         * EditorOrdered has been deprecated
-        * since the removal of independent 
+        * since the removal of independent
         * editor / mixer ordering.
        */
        enum_writer.add_to_hack_table ("EditorOrdered", "MixerOrdered");
@@ -307,12 +337,12 @@ setup_enum_writer ()
        REGISTER (_LayerModel);
 
        REGISTER_ENUM (InsertMergeReject);
-        REGISTER_ENUM (InsertMergeRelax);
-        REGISTER_ENUM (InsertMergeReplace);
-        REGISTER_ENUM (InsertMergeTruncateExisting);
-        REGISTER_ENUM (InsertMergeTruncateAddition);
-        REGISTER_ENUM (InsertMergeExtend);
-        REGISTER (_InsertMergePolicy);
+       REGISTER_ENUM (InsertMergeRelax);
+       REGISTER_ENUM (InsertMergeReplace);
+       REGISTER_ENUM (InsertMergeTruncateExisting);
+       REGISTER_ENUM (InsertMergeTruncateAddition);
+       REGISTER_ENUM (InsertMergeExtend);
+       REGISTER (_InsertMergePolicy);
 
        REGISTER_ENUM (AfterFaderListen);
        REGISTER_ENUM (PreFaderListen);
@@ -325,7 +355,7 @@ setup_enum_writer ()
        REGISTER_ENUM (UseDefaultNames);
        REGISTER_ENUM (NameAfterDriver);
        REGISTER_BITS (_TracksAutoNamingRule);
-    
+
        REGISTER_ENUM (FormatFloat);
        REGISTER_ENUM (FormatInt24);
        REGISTER_ENUM (FormatInt16);
@@ -343,6 +373,8 @@ setup_enum_writer ()
        REGISTER_ENUM (AIFF);
        REGISTER_ENUM (iXML);
        REGISTER_ENUM (RF64);
+       REGISTER_ENUM (RF64_WAV);
+       REGISTER_ENUM (MBWF);
        REGISTER (_HeaderFormat);
 
        REGISTER_ENUM (AudioUnit);
@@ -402,7 +434,7 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (SessionEvent, Replace);
        REGISTER_CLASS_ENUM (SessionEvent, Clear);
        REGISTER (_SessionEvent_Action);
-       
+
        REGISTER_CLASS_ENUM (Session, Stopped);
        REGISTER_CLASS_ENUM (Session, Waiting);
        REGISTER_CLASS_ENUM (Session, Running);
@@ -459,11 +491,6 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Session, pullup_Minus4Minus1);
        REGISTER (_Session_PullupFormat);
 
-       REGISTER_CLASS_ENUM (Route, Auditioner);
-       REGISTER_CLASS_ENUM (Route, MasterOut);
-       REGISTER_CLASS_ENUM (Route, MonitorOut);
-       REGISTER_BITS (_Route_Flag);
-
        REGISTER_CLASS_ENUM (Source, Writable);
        REGISTER_CLASS_ENUM (Source, CanRename);
        REGISTER_CLASS_ENUM (Source, Broadcast);
@@ -507,6 +534,10 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Location, IsSkip);
        REGISTER_BITS (_Location_Flags);
 
+       REGISTER_CLASS_ENUM (TempoSection, Ramp);
+       REGISTER_CLASS_ENUM (TempoSection, Constant);
+       REGISTER (_TempoSection_Type);
+
        REGISTER_CLASS_ENUM (Track, NoFreeze);
        REGISTER_CLASS_ENUM (Track, Frozen);
        REGISTER_CLASS_ENUM (Track, UnFrozen);
@@ -673,6 +704,58 @@ setup_enum_writer ()
        REGISTER_ENUM (Loop);
        REGISTER_ENUM (RegionSelectionStart);
        REGISTER_BITS (_AutoReturnTarget);
+
+       REGISTER_CLASS_ENUM (PresentationInfo, AudioTrack);
+       REGISTER_CLASS_ENUM (PresentationInfo, MidiTrack);
+       REGISTER_CLASS_ENUM (PresentationInfo, AudioBus);
+       REGISTER_CLASS_ENUM (PresentationInfo, MidiBus);
+       REGISTER_CLASS_ENUM (PresentationInfo, VCA);
+       REGISTER_CLASS_ENUM (PresentationInfo, MasterOut);
+       REGISTER_CLASS_ENUM (PresentationInfo, MonitorOut);
+       REGISTER_CLASS_ENUM (PresentationInfo, Auditioner);
+       REGISTER_CLASS_ENUM (PresentationInfo, Selected);
+       REGISTER_CLASS_ENUM (PresentationInfo, Hidden);
+       REGISTER_CLASS_ENUM (PresentationInfo, OrderSet);
+       REGISTER_BITS (_PresentationInfo_Flag);
+
+       REGISTER_CLASS_ENUM (MusicalMode,Dorian);
+       REGISTER_CLASS_ENUM (MusicalMode, IonianMajor);
+       REGISTER_CLASS_ENUM (MusicalMode, AeolianMinor);
+       REGISTER_CLASS_ENUM (MusicalMode, HarmonicMinor);
+       REGISTER_CLASS_ENUM (MusicalMode, MelodicMinorAscending);
+       REGISTER_CLASS_ENUM (MusicalMode, MelodicMinorDescending);
+       REGISTER_CLASS_ENUM (MusicalMode, Phrygian);
+       REGISTER_CLASS_ENUM (MusicalMode, Lydian);
+       REGISTER_CLASS_ENUM (MusicalMode, Mixolydian);
+       REGISTER_CLASS_ENUM (MusicalMode, Locrian);
+       REGISTER_CLASS_ENUM (MusicalMode, PentatonicMajor);
+       REGISTER_CLASS_ENUM (MusicalMode, PentatonicMinor);
+       REGISTER_CLASS_ENUM (MusicalMode, Chromatic);
+       REGISTER_CLASS_ENUM (MusicalMode, BluesScale);
+       REGISTER_CLASS_ENUM (MusicalMode, NeapolitanMinor);
+       REGISTER_CLASS_ENUM (MusicalMode, NeapolitanMajor);
+       REGISTER_CLASS_ENUM (MusicalMode, Oriental);
+       REGISTER_CLASS_ENUM (MusicalMode, DoubleHarmonic);
+       REGISTER_CLASS_ENUM (MusicalMode, Enigmatic);
+       REGISTER_CLASS_ENUM (MusicalMode, Hirajoshi);
+       REGISTER_CLASS_ENUM (MusicalMode, HungarianMinor);
+       REGISTER_CLASS_ENUM (MusicalMode, HungarianMajor);
+       REGISTER_CLASS_ENUM (MusicalMode, Kumoi);
+       REGISTER_CLASS_ENUM (MusicalMode, Iwato);
+       REGISTER_CLASS_ENUM (MusicalMode, Hindu);
+       REGISTER_CLASS_ENUM (MusicalMode, Spanish8Tone);
+       REGISTER_CLASS_ENUM (MusicalMode, Pelog);
+       REGISTER_CLASS_ENUM (MusicalMode, HungarianGypsy);
+       REGISTER_CLASS_ENUM (MusicalMode, Overtone);
+       REGISTER_CLASS_ENUM (MusicalMode, LeadingWholeTone);
+       REGISTER_CLASS_ENUM (MusicalMode, Arabian);
+       REGISTER_CLASS_ENUM (MusicalMode, Balinese);
+       REGISTER_CLASS_ENUM (MusicalMode, Gypsy);
+       REGISTER_CLASS_ENUM (MusicalMode, Mohammedan);
+       REGISTER_CLASS_ENUM (MusicalMode, Javanese);
+       REGISTER_CLASS_ENUM (MusicalMode, Persian);
+       REGISTER_CLASS_ENUM (MusicalMode, Algerian);
+       REGISTER (mode);
 }
 
 } /* namespace ARDOUR */
@@ -805,19 +888,6 @@ std::ostream& operator<<(std::ostream& o, const AFLPosition& var)
        return o << s;
 }
 
-std::istream& operator>>(std::istream& o, RemoteModel& var)
-{
-       std::string s;
-       o >> s;
-       var = (RemoteModel) string_2_enum (s, var);
-       return o;
-}
-
-std::ostream& operator<<(std::ostream& o, const RemoteModel& var)
-{
-       std::string s = enum_2_string (var);
-       return o << s;
-}
 std::istream& operator>>(std::istream& o, EditMode& var)
 {
        std::string s;