Save LV2 presets with relative URIs to their own bundle, in the same style as Jalv.
[ardour.git] / libs / ardour / enums.cc
index d1eca7401c032baae9078083c315a625027d344b..6c827923284f4ae63ae0bb04a5a36f925195a1a5 100644 (file)
 #include "pbd/enumwriter.h"
 #include "midi++/types.h"
 
-#include "ardour/audiofilesource.h"
-#include "ardour/audioregion.h"
+#include "evoral/Range.hpp" // shouldn't Evoral have its own enum registration?
+
 #include "ardour/delivery.h"
 #include "ardour/diskstream.h"
+#include "ardour/export_channel.h"
 #include "ardour/export_filename.h"
 #include "ardour/export_format_base.h"
 #include "ardour/export_profile_manager.h"
-#include "ardour/export_channel_configuration.h"
 #include "ardour/io.h"
 #include "ardour/location.h"
 #include "ardour/midi_model.h"
-#include "ardour/midi_track.h"
 #include "ardour/mute_master.h"
-#include "ardour/panner.h"
-#include "ardour/route_group.h"
 #include "ardour/session.h"
+#include "ardour/source.h"
 #include "ardour/track.h"
 #include "ardour/types.h"
 
@@ -43,6 +41,7 @@ using namespace std;
 using namespace PBD;
 using namespace ARDOUR;
 using namespace MIDI;
+using namespace Timecode;
 
 namespace ARDOUR {
 
@@ -53,7 +52,6 @@ setup_enum_writer ()
        vector<int> i;
        vector<string> s;
 
-       OverlapType _OverlapType;
        AlignStyle _AlignStyle;
        AlignChoice _AlignChoice;
        MeterPoint _MeterPoint;
@@ -74,6 +72,7 @@ setup_enum_writer ()
        RemoteModel _RemoteModel;
        DenormalModel _DenormalModel;
        CrossfadeModel _CrossfadeModel;
+       CrossfadeChoice _CrossfadeChoice;
        InsertMergePolicy _InsertMergePolicy;
        ListenPosition _ListenPosition;
        SampleFormat _SampleFormat;
@@ -93,6 +92,7 @@ setup_enum_writer ()
        AutoState _AutoState;
        AutoStyle _AutoStyle;
        AutoConnectOption _AutoConnectOption;
+       RouteSortOrderKey _RouteSortOrderKey;
        Session::StateOfTheState _Session_StateOfTheState;
        Route::Flag _Route_Flag;
        Source::Flag _Source_Flag;
@@ -122,23 +122,16 @@ setup_enum_writer ()
        MidiModel::PatchChangeDiffCommand::Property _MidiModel_PatchChangeDiffCommand_Property;
        WaveformScale _WaveformScale;
        WaveformShape _WaveformShape;
-       QuantizeType _QuantizeType;
        Session::PostTransportWork _Session_PostTransportWork;
        Session::SlaveState _Session_SlaveState;
        MTC_Status _MIDI_MTC_Status;
+       Evoral::OverlapType _OverlapType;
 
 #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 (OverlapNone);
-       REGISTER_ENUM (OverlapInternal);
-       REGISTER_ENUM (OverlapStart);
-       REGISTER_ENUM (OverlapEnd);
-       REGISTER_ENUM (OverlapExternal);
-       REGISTER (_OverlapType);
-
        REGISTER_ENUM (GainAutomation);
        REGISTER_ENUM (PanAzimuthAutomation);
        REGISTER_ENUM (PanElevationAutomation);
@@ -265,6 +258,11 @@ setup_enum_writer ()
        REGISTER_ENUM (ShortCrossfade);
        REGISTER (_CrossfadeModel);
 
+       REGISTER_ENUM (RegionFades);
+       REGISTER_ENUM (ConstantPowerMinus3dB);
+       REGISTER_ENUM (ConstantPowerMinus6dB);
+       REGISTER (_CrossfadeChoice);
+
         REGISTER_ENUM (InsertMergeReject);
         REGISTER_ENUM (InsertMergeRelax);
         REGISTER_ENUM (InsertMergeReplace);
@@ -309,6 +307,7 @@ setup_enum_writer ()
        REGISTER_ENUM (MTC);
        REGISTER_ENUM (JACK);
        REGISTER_ENUM (MIDIClock);
+       REGISTER_ENUM (LTC);
        REGISTER (_SyncSource);
 
        REGISTER_ENUM (Sprung);
@@ -404,6 +403,10 @@ setup_enum_writer ()
        REGISTER_CLASS_ENUM (Route, MonitorOut);
        REGISTER_BITS (_Route_Flag);
 
+       REGISTER_ENUM (MixerSort);
+       REGISTER_ENUM (EditorSort);
+       REGISTER (_RouteSortOrderKey);
+
        REGISTER_CLASS_ENUM (Source, Writable);
        REGISTER_CLASS_ENUM (Source, CanRename);
        REGISTER_CLASS_ENUM (Source, Broadcast);
@@ -417,8 +420,8 @@ setup_enum_writer ()
        REGISTER_ENUM (FadeLinear);
        REGISTER_ENUM (FadeFast);
        REGISTER_ENUM (FadeSlow);
-       REGISTER_ENUM (FadeLogA);
-       REGISTER_ENUM (FadeLogB);
+       REGISTER_ENUM (FadeConstantPower);
+       REGISTER_ENUM (FadeSymmetric);
        REGISTER (_FadeShape);
 
        REGISTER_CLASS_ENUM (Diskstream, Recordable);
@@ -510,6 +513,7 @@ setup_enum_writer ()
 
        REGISTER_CLASS_ENUM (ExportFormatBase, SR_None);
        REGISTER_CLASS_ENUM (ExportFormatBase, SR_Session);
+       REGISTER_CLASS_ENUM (ExportFormatBase, SR_8);
        REGISTER_CLASS_ENUM (ExportFormatBase, SR_22_05);
        REGISTER_CLASS_ENUM (ExportFormatBase, SR_44_1);
        REGISTER_CLASS_ENUM (ExportFormatBase, SR_48);
@@ -577,14 +581,16 @@ setup_enum_writer ()
        REGISTER_ENUM(Rectified);
        REGISTER(_WaveformShape);
 
-       REGISTER_ENUM(Plain);
-       REGISTER_ENUM(Legato);
-       REGISTER_ENUM(Groove);
-       REGISTER(_QuantizeType);
-
        REGISTER_ENUM(AudioTime);
        REGISTER_ENUM(MusicTime);
        REGISTER(_PositionLockStyle);
+
+       REGISTER_ENUM (Evoral::OverlapNone);
+       REGISTER_ENUM (Evoral::OverlapInternal);
+       REGISTER_ENUM (Evoral::OverlapStart);
+       REGISTER_ENUM (Evoral::OverlapEnd);
+       REGISTER_ENUM (Evoral::OverlapExternal);
+       REGISTER(_OverlapType);
 }
 
 } /* namespace ARDOUR */
@@ -740,6 +746,21 @@ std::ostream& operator<<(std::ostream& o, const CrossfadeModel& var)
        std::string s = enum_2_string (var);
        return o << s;
 }
+
+std::istream& operator>>(std::istream& o, CrossfadeChoice& var)
+{
+       std::string s;
+       o >> s;
+       var = (CrossfadeChoice) string_2_enum (s, var);
+       return o;
+}
+
+std::ostream& operator<<(std::ostream& o, const CrossfadeChoice& var)
+{
+       std::string s = enum_2_string (var);
+       return o << s;
+}
+
 std::istream& operator>>(std::istream& o, SyncSource& var)
 {
        std::string s;
@@ -845,3 +866,17 @@ std::ostream& operator<<(std::ostream& o, const PositionLockStyle& var)
        std::string s = enum_2_string (var);
        return o << s;
 }
+
+std::istream& operator>>(std::istream& o, Evoral::OverlapType& var)
+{
+       std::string s;
+       o >> s;
+       var = (Evoral::OverlapType) string_2_enum (s, var);
+       return o;
+}
+
+std::ostream& operator<<(std::ostream& o, const Evoral::OverlapType& var)
+{
+       std::string s = enum_2_string (var);
+       return o << s;
+}