X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fenums.cc;h=df6eb360d189b33ece475025b7dc6d3a7c6b3870;hb=dc815ea8e84d28fc01a68225c2ece4399c4a9c7e;hp=6e98fdf5a71a480b36947a8420558edb30387f4e;hpb=6e9b9294e1e7a22f31eabbafa39cee5844b3449a;p=ardour.git diff --git a/libs/ardour/enums.cc b/libs/ardour/enums.cc index 6e98fdf5a7..df6eb360d1 100644 --- a/libs/ardour/enums.cc +++ b/libs/ardour/enums.cc @@ -18,6 +18,7 @@ */ #include "pbd/enumwriter.h" +#include "midi++/types.h" #include "ardour/audiofilesource.h" #include "ardour/audioregion.h" @@ -28,6 +29,7 @@ #include "ardour/export_profile_manager.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" @@ -39,11 +41,14 @@ using namespace std; using namespace PBD; using namespace ARDOUR; +using namespace MIDI; + +namespace ARDOUR { void setup_enum_writer () { - EnumWriter* enum_writer = new EnumWriter(); + EnumWriter& enum_writer (EnumWriter::instance()); vector i; vector s; @@ -64,17 +69,17 @@ setup_enum_writer () DenormalModel _DenormalModel; CrossfadeModel _CrossfadeModel; LayerModel _LayerModel; - SoloModel _SoloModel; + ListenPosition _ListenPosition; SampleFormat _SampleFormat; CDMarkerFormat _CDMarkerFormat; HeaderFormat _HeaderFormat; PluginType _PluginType; - SlaveSource _SlaveSource; + SyncSource _SyncSource; ShuttleBehaviour _ShuttleBehaviour; ShuttleUnits _ShuttleUnits; Session::RecordState _Session_RecordState; - Session::Event::Type _Session_Event_Type; - SmpteFormat _Session_SmpteFormat; + SessionEvent::Type _SessionEvent_Type; + TimecodeFormat _Session_TimecodeFormat; Session::PullupFormat _Session_PullupFormat; AudioRegion::FadeShape _AudioRegion_FadeShape; Panner::LinkDirection _Panner_LinkDirection; @@ -88,8 +93,6 @@ setup_enum_writer () 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; @@ -108,9 +111,16 @@ setup_enum_writer () Delivery::Role _Delivery_Role; IO::Direction _IO_Direction; MuteMaster::MutePoint _MuteMaster_MutePoint; - -#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() + MidiModel::DiffCommand::Property _MidiModel_DiffCommand_Property; + WaveformScale _WaveformScale; + WaveformShape _WaveformShape; + QuantizeType _QuantizeType; + Session::PostTransportWork _Session_PostTransportWork; + Session::SlaveState _Session_SlaveState; + MTC_Status _MIDI_MTC_Status; + +#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) @@ -154,6 +164,7 @@ setup_enum_writer () REGISTER_ENUM (MeterInput); REGISTER_ENUM (MeterPreFader); REGISTER_ENUM (MeterPostFader); + REGISTER_ENUM (MeterCustom); REGISTER (_MeterPoint); REGISTER_ENUM (Normal); @@ -174,7 +185,7 @@ setup_enum_writer () REGISTER_ENUM (ChannelColors); REGISTER_ENUM (TrackColor); REGISTER (_ColorMode); - + REGISTER_ENUM (MeterFalloffOff); REGISTER_ENUM (MeterFalloffSlowest); REGISTER_ENUM (MeterFalloffSlow); @@ -228,9 +239,9 @@ setup_enum_writer () REGISTER_ENUM (AddHigher); REGISTER (_LayerModel); - REGISTER_ENUM (InverseMute); - REGISTER_ENUM (SoloBus); - REGISTER (_SoloModel); + REGISTER_ENUM (AfterFaderListen); + REGISTER_ENUM (PreFaderListen); + REGISTER (_ListenPosition); REGISTER_ENUM (AutoConnectPhysical); REGISTER_ENUM (AutoConnectMaster); @@ -260,11 +271,10 @@ setup_enum_writer () REGISTER_ENUM (VST); REGISTER (_PluginType); - REGISTER_ENUM (None); REGISTER_ENUM (MTC); REGISTER_ENUM (JACK); REGISTER_ENUM (MIDIClock); - REGISTER (_SlaveSource); + REGISTER (_SyncSource); REGISTER_ENUM (Sprung); REGISTER_ENUM (Wheel); @@ -279,25 +289,52 @@ setup_enum_writer () REGISTER_CLASS_ENUM (Session, Recording); REGISTER (_Session_RecordState); - REGISTER_CLASS_ENUM (Session::Event, SetTransportSpeed); - 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); - REGISTER_CLASS_ENUM (Session::Event, RangeStop); - REGISTER_CLASS_ENUM (Session::Event, RangeLocate); - REGISTER_CLASS_ENUM (Session::Event, Overwrite); - REGISTER_CLASS_ENUM (Session::Event, SetSlaveSource); - REGISTER_CLASS_ENUM (Session::Event, Audition); - REGISTER_CLASS_ENUM (Session::Event, InputConfigurationChange); - REGISTER_CLASS_ENUM (Session::Event, SetAudioRange); - REGISTER_CLASS_ENUM (Session::Event, SetPlayRange); - REGISTER_CLASS_ENUM (Session::Event, StopOnce); - REGISTER_CLASS_ENUM (Session::Event, AutoLoop); - REGISTER (_Session_Event_Type); + REGISTER_CLASS_ENUM (SessionEvent, SetTransportSpeed); + REGISTER_CLASS_ENUM (SessionEvent, SetDiskstreamSpeed); + REGISTER_CLASS_ENUM (SessionEvent, Locate); + REGISTER_CLASS_ENUM (SessionEvent, LocateRoll); + REGISTER_CLASS_ENUM (SessionEvent, LocateRollLocate); + REGISTER_CLASS_ENUM (SessionEvent, SetLoop); + REGISTER_CLASS_ENUM (SessionEvent, PunchIn); + REGISTER_CLASS_ENUM (SessionEvent, PunchOut); + REGISTER_CLASS_ENUM (SessionEvent, RangeStop); + REGISTER_CLASS_ENUM (SessionEvent, RangeLocate); + REGISTER_CLASS_ENUM (SessionEvent, Overwrite); + REGISTER_CLASS_ENUM (SessionEvent, SetSyncSource); + REGISTER_CLASS_ENUM (SessionEvent, Audition); + REGISTER_CLASS_ENUM (SessionEvent, InputConfigurationChange); + REGISTER_CLASS_ENUM (SessionEvent, SetPlayAudioRange); + REGISTER_CLASS_ENUM (SessionEvent, StopOnce); + REGISTER_CLASS_ENUM (SessionEvent, AutoLoop); + REGISTER (_SessionEvent_Type); + + REGISTER_CLASS_ENUM (Session, Stopped); + REGISTER_CLASS_ENUM (Session, Waiting); + REGISTER_CLASS_ENUM (Session, Running); + REGISTER (_Session_SlaveState); + + REGISTER_ENUM (MTC_Stopped); + REGISTER_ENUM (MTC_Forward); + REGISTER_ENUM (MTC_Backward); + REGISTER (_MIDI_MTC_Status); + + REGISTER_CLASS_ENUM (Session, PostTransportStop); + REGISTER_CLASS_ENUM (Session, PostTransportDisableRecord); + REGISTER_CLASS_ENUM (Session, PostTransportPosition); + REGISTER_CLASS_ENUM (Session, PostTransportDidRecord); + REGISTER_CLASS_ENUM (Session, PostTransportDuration); + REGISTER_CLASS_ENUM (Session, PostTransportLocate); + REGISTER_CLASS_ENUM (Session, PostTransportRoll); + REGISTER_CLASS_ENUM (Session, PostTransportAbort); + REGISTER_CLASS_ENUM (Session, PostTransportOverWrite); + REGISTER_CLASS_ENUM (Session, PostTransportSpeed); + REGISTER_CLASS_ENUM (Session, PostTransportAudition); + REGISTER_CLASS_ENUM (Session, PostTransportScrub); + REGISTER_CLASS_ENUM (Session, PostTransportReverse); + REGISTER_CLASS_ENUM (Session, PostTransportInputChange); + REGISTER_CLASS_ENUM (Session, PostTransportCurveRealloc); + REGISTER_CLASS_ENUM (Session, PostTransportClearSubstate); + REGISTER_BITS (_Session_PostTransportWork); REGISTER_CLASS_ENUM (Session, Clean); REGISTER_CLASS_ENUM (Session, Dirty); @@ -308,17 +345,17 @@ setup_enum_writer () REGISTER_CLASS_ENUM (Session, InCleanup); REGISTER_BITS (_Session_StateOfTheState); - REGISTER_ENUM (smpte_23976); - REGISTER_ENUM (smpte_24); - REGISTER_ENUM (smpte_24976); - REGISTER_ENUM (smpte_25); - REGISTER_ENUM (smpte_2997); - REGISTER_ENUM (smpte_2997drop); - REGISTER_ENUM (smpte_30); - REGISTER_ENUM (smpte_30drop); - REGISTER_ENUM (smpte_5994); - REGISTER_ENUM (smpte_60); - REGISTER (_Session_SmpteFormat); + REGISTER_ENUM (timecode_23976); + REGISTER_ENUM (timecode_24); + REGISTER_ENUM (timecode_24976); + REGISTER_ENUM (timecode_25); + REGISTER_ENUM (timecode_2997); + REGISTER_ENUM (timecode_2997drop); + REGISTER_ENUM (timecode_30); + REGISTER_ENUM (timecode_30drop); + REGISTER_ENUM (timecode_5994); + REGISTER_ENUM (timecode_60); + REGISTER (_Session_TimecodeFormat); REGISTER_CLASS_ENUM (Session, pullup_Plus4Plus1); REGISTER_CLASS_ENUM (Session, pullup_Plus4); @@ -333,7 +370,7 @@ setup_enum_writer () REGISTER_CLASS_ENUM (Route, Hidden); REGISTER_CLASS_ENUM (Route, MasterOut); - REGISTER_CLASS_ENUM (Route, ControlOut); + REGISTER_CLASS_ENUM (Route, MonitorOut); REGISTER_BITS (_Route_Flag); REGISTER_CLASS_ENUM (Source, Writable); @@ -368,37 +405,10 @@ setup_enum_writer () REGISTER_CLASS_ENUM (Location, IsStart); REGISTER_BITS (_Location_Flags); - - REGISTER_CLASS_ENUM (RouteGroup, Relative); - REGISTER_CLASS_ENUM (RouteGroup, Active); - REGISTER_CLASS_ENUM (RouteGroup, Hidden); - REGISTER_BITS (_RouteGroup_Flag); - REGISTER_CLASS_ENUM (Panner, SameDirection); REGISTER_CLASS_ENUM (Panner, OppositeDirection); REGISTER (_Panner_LinkDirection); - REGISTER_CLASS_ENUM (Region, Muted); - REGISTER_CLASS_ENUM (Region, Opaque); - REGISTER_CLASS_ENUM (Region, EnvelopeActive); - 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); - REGISTER_CLASS_ENUM (Region, FadeOut); - REGISTER_CLASS_ENUM (Region, Copied); - REGISTER_CLASS_ENUM (Region, Import); - REGISTER_CLASS_ENUM (Region, External); - REGISTER_CLASS_ENUM (Region, SyncMarked); - REGISTER_CLASS_ENUM (Region, LeftOfSplit); - REGISTER_CLASS_ENUM (Region, RightOfSplit); - REGISTER_CLASS_ENUM (Region, Hidden); - REGISTER_CLASS_ENUM (Region, DoNotSaveState); - REGISTER_BITS (_Region_Flag); - REGISTER_CLASS_ENUM (Region, AudioTime); REGISTER_CLASS_ENUM (Region, MusicTime); REGISTER_BITS (_Region_PositionLockStyle); @@ -413,7 +423,7 @@ setup_enum_writer () REGISTER_CLASS_ENUM (AutomationList, Curved); REGISTER (_AutomationList_InterpolationStyle); - REGISTER_CLASS_ENUM (AnyTime, SMPTE); + REGISTER_CLASS_ENUM (AnyTime, Timecode); REGISTER_CLASS_ENUM (AnyTime, BBT); REGISTER_CLASS_ENUM (AnyTime, Frames); REGISTER_CLASS_ENUM (AnyTime, Seconds); @@ -492,7 +502,7 @@ setup_enum_writer () REGISTER_CLASS_ENUM (ExportFormatBase, SRC_Linear); REGISTER (_ExportFormatBase_SRCQuality); - REGISTER_CLASS_ENUM (ExportProfileManager, SMPTE); + REGISTER_CLASS_ENUM (ExportProfileManager, Timecode); REGISTER_CLASS_ENUM (ExportProfileManager, BBT); REGISTER_CLASS_ENUM (ExportProfileManager, MinSec); REGISTER_CLASS_ENUM (ExportProfileManager, Frames); @@ -503,6 +513,7 @@ setup_enum_writer () REGISTER_CLASS_ENUM (Delivery, Send); REGISTER_CLASS_ENUM (Delivery, Listen); REGISTER_CLASS_ENUM (Delivery, Main); + REGISTER_CLASS_ENUM (Delivery, Aux); REGISTER_BITS (_Delivery_Role); REGISTER_CLASS_ENUM (MuteMaster, PreFader); @@ -514,4 +525,240 @@ setup_enum_writer () REGISTER_CLASS_ENUM (IO, Input); REGISTER_CLASS_ENUM (IO, Output); REGISTER (_IO_Direction); + + REGISTER_CLASS_ENUM (MidiModel::DiffCommand, NoteNumber); + REGISTER_CLASS_ENUM (MidiModel::DiffCommand, Channel); + REGISTER_CLASS_ENUM (MidiModel::DiffCommand, Velocity); + REGISTER_CLASS_ENUM (MidiModel::DiffCommand, StartTime); + REGISTER_CLASS_ENUM (MidiModel::DiffCommand, Length); + REGISTER (_MidiModel_DiffCommand_Property); + + REGISTER_ENUM(Linear); + REGISTER_ENUM(Logarithmic); + REGISTER(_WaveformScale); + + REGISTER_ENUM(Traditional); + REGISTER_ENUM(Rectified); + REGISTER(_WaveformShape); + + REGISTER_ENUM(Plain); + REGISTER_ENUM(Legato); + REGISTER_ENUM(Groove); + REGISTER(_QuantizeType); +} + +} /* namespace ARDOUR */ + +/* deserializing types from ardour/types.h */ + +std::istream& operator>>(std::istream& o, HeaderFormat& var) +{ + std::string s; + o >> s; + var = (HeaderFormat) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const HeaderFormat& var) +{ + std::string s = enum_2_string (var); + return o << s; +} + +std::istream& operator>>(std::istream& o, SampleFormat& var) +{ + std::string s; + o >> s; + var = (SampleFormat) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const SampleFormat& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, AutoConnectOption& var) +{ + std::string s; + o >> s; + var = (AutoConnectOption) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const AutoConnectOption& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, MonitorModel& var) +{ + std::string s; + o >> s; + var = (MonitorModel) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const MonitorModel& var) +{ + std::string s = enum_2_string (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; + o >> s; + var = (EditMode) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const EditMode& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, ListenPosition& var) +{ + std::string s; + o >> s; + var = (ListenPosition) string_2_enum (s, var); + return o; } + +std::ostream& operator<<(std::ostream& o, const ListenPosition& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, LayerModel& var) +{ + std::string s; + o >> s; + var = (LayerModel) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const LayerModel& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, CrossfadeModel& var) +{ + std::string s; + o >> s; + var = (CrossfadeModel) string_2_enum (s, var); + return o; +} + +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, SyncSource& var) +{ + std::string s; + o >> s; + var = (SyncSource) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const SyncSource& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, ShuttleBehaviour& var) +{ + std::string s; + o >> s; + var = (ShuttleBehaviour) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const ShuttleBehaviour& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, ShuttleUnits& var) +{ + std::string s; + o >> s; + var = (ShuttleUnits) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const ShuttleUnits& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, TimecodeFormat& var) +{ + std::string s; + o >> s; + var = (TimecodeFormat) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const TimecodeFormat& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, DenormalModel& var) +{ + std::string s; + o >> s; + var = (DenormalModel) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const DenormalModel& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, WaveformScale& var) +{ + std::string s; + o >> s; + var = (WaveformScale) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const WaveformScale& var) +{ + std::string s = enum_2_string (var); + return o << s; +} +std::istream& operator>>(std::istream& o, WaveformShape& var) +{ + std::string s; + o >> s; + var = (WaveformShape) string_2_enum (s, var); + return o; +} + +std::ostream& operator<<(std::ostream& o, const WaveformShape& var) +{ + std::string s = enum_2_string (var); + return o << s; +} + +