X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libs%2Fardour%2Fardour%2Ftypes.h;h=c41c599f1c2dfdeb9907af834130b2f8639d00be;hb=62d5585e34d410c9c5feb7cf7b4742360c2187b0;hp=e2daf1a76c3d413ce8e617730b7b647aeb84fbd2;hpb=3764eedca0d8ca8d666401c8bb8364705a64317e;p=ardour.git diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index e2daf1a76c..c41c599f1c 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -36,6 +36,8 @@ #include "pbd/id.h" +#include "evoral/Range.hpp" + #include "ardour/chan_count.h" #include @@ -75,12 +77,15 @@ namespace ARDOUR { static const framepos_t max_framepos = INT64_MAX; static const framecnt_t max_framecnt = INT64_MAX; + static const layer_t max_layer = UINT32_MAX; // a set of (time) intervals: first of pair is the offset of the start within the region, second is the offset of the end typedef std::list > AudioIntervalResult; // associate a set of intervals with regions (e.g. for silence detection) typedef std::map,AudioIntervalResult> AudioIntervalMap; + typedef std::list > RegionList; + struct IOChange { enum Type { @@ -98,17 +103,6 @@ namespace ARDOUR { ARDOUR::ChanCount after; }; - enum OverlapType { - OverlapNone, // no overlap - OverlapInternal, // the overlap is 100% with the object - OverlapStart, // overlap covers start, but ends within - OverlapEnd, // overlap begins within and covers end - OverlapExternal // overlap extends to (at least) begin+end - }; - - ARDOUR::OverlapType coverage (framepos_t sa, framepos_t ea, - framepos_t sb, framepos_t eb); - /* policies for inserting/pasting material where overlaps might be an issue. */ @@ -142,7 +136,8 @@ namespace ARDOUR { MidiSystemExclusiveAutomation, FadeInAutomation, FadeOutAutomation, - EnvelopeAutomation + EnvelopeAutomation, + RecEnableAutomation }; enum AutoState { @@ -205,20 +200,8 @@ namespace ARDOUR { TrackColor }; - enum TimecodeFormat { - timecode_23976, - timecode_24, - timecode_24976, - timecode_25, - timecode_2997, - timecode_2997drop, - timecode_30, - timecode_30drop, - timecode_5994, - timecode_60 - }; - - struct AnyTime { + class AnyTime { + public: enum Type { Timecode, BBT, @@ -274,6 +257,9 @@ namespace ARDOUR { } }; + /* XXX: slightly unfortunate that there is this and Evoral::Range<>, + but this has a uint32_t id which Evoral::Range<> does not. + */ struct AudioRange { framepos_t start; framepos_t end; @@ -291,8 +277,8 @@ namespace ARDOUR { return start == other.start && end == other.end; } - OverlapType coverage (framepos_t s, framepos_t e) const { - return ARDOUR::coverage (start, end, s, e); + Evoral::OverlapType coverage (framepos_t s, framepos_t e) const { + return Evoral::coverage (start, end, s, e); } }; @@ -352,10 +338,15 @@ namespace ARDOUR { PostFader }; + enum RouteSortOrderKey { + EditorSort, + MixerSort + }; + enum MonitorModel { - HardwareMonitoring, - SoftwareMonitoring, - ExternalMonitoring + HardwareMonitoring, ///< JACK does monitoring + SoftwareMonitoring, ///< Ardour does monitoring + ExternalMonitoring ///< we leave monitoring to the audio hardware }; enum MonitorChoice { @@ -365,6 +356,24 @@ namespace ARDOUR { MonitorCue = 0x4, }; + enum MonitorState { + MonitoringSilence = 0x1, + MonitoringInput = 0x2, + MonitoringDisk = 0x4, + }; + + enum MeterState { + MeteringInput, ///< meter the input IO, regardless of what is going through the route + MeteringRoute ///< meter what is going through the route + }; + + enum MeterLineUp { + MeteringLineUp24, + MeteringLineUp20, + MeteringLineUp18, + MeteringLineUp15 + }; + enum PFLPosition { /** PFL signals come from before pre-fader processors */ PFLFromBeforeProcessors, @@ -397,10 +406,10 @@ namespace ARDOUR { ShortCrossfade }; - enum LayerModel { - LaterHigher, - MoveAddHigher, - AddHigher + enum CrossfadeChoice { + RegionFades, + ConstantPowerMinus3dB, + ConstantPowerMinus6dB, }; enum ListenPosition { @@ -414,15 +423,6 @@ namespace ARDOUR { AutoConnectMaster = 0x2 }; - struct InterThreadInfo { - InterThreadInfo () : done (false), cancel (false), progress (0), thread (0) {} - - volatile bool done; - volatile bool cancel; - volatile float progress; - pthread_t thread; - }; - enum SampleFormat { FormatFloat = 0, FormatInt24, @@ -456,7 +456,7 @@ namespace ARDOUR { AudioUnit, LADSPA, LV2, - VST, + Windows_VST, LXVST, }; @@ -469,7 +469,8 @@ namespace ARDOUR { enum SyncSource { JACK, MTC, - MIDIClock + MIDIClock, + LTC }; enum ShuttleBehaviour { @@ -492,19 +493,6 @@ namespace ARDOUR { SrcFastest }; - struct TimeFXRequest : public InterThreadInfo { - TimeFXRequest() - : time_fraction(0), pitch_fraction(0), - quick_seek(false), antialias(false), opts(0) {} - float time_fraction; - float pitch_fraction; - /* SoundTouch */ - bool quick_seek; - bool antialias; - /* RubberBand */ - int opts; // really RubberBandStretcher::Options - }; - typedef std::list AnalysisFeatureList; typedef std::list > RouteList; @@ -523,12 +511,6 @@ namespace ARDOUR { Rectified }; - enum QuantizeType { - Plain, - Legato, - Groove - }; - struct CleanupReport { std::vector paths; size_t space; @@ -576,8 +558,8 @@ namespace ARDOUR { FadeLinear, FadeFast, FadeSlow, - FadeLogA, - FadeLogB + FadeConstantPower, + FadeSymmetric, }; } // namespace ARDOUR @@ -592,17 +574,18 @@ std::istream& operator>>(std::istream& o, ARDOUR::HeaderFormat& sf); std::istream& operator>>(std::istream& o, ARDOUR::AutoConnectOption& sf); std::istream& operator>>(std::istream& o, ARDOUR::EditMode& sf); std::istream& operator>>(std::istream& o, ARDOUR::MonitorModel& sf); +std::istream& operator>>(std::istream& o, ARDOUR::MeterLineUp& sf); std::istream& operator>>(std::istream& o, ARDOUR::PFLPosition& sf); std::istream& operator>>(std::istream& o, ARDOUR::AFLPosition& sf); std::istream& operator>>(std::istream& o, ARDOUR::RemoteModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::ListenPosition& sf); -std::istream& operator>>(std::istream& o, ARDOUR::LayerModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::InsertMergePolicy& sf); std::istream& operator>>(std::istream& o, ARDOUR::CrossfadeModel& sf); +std::istream& operator>>(std::istream& o, ARDOUR::CrossfadeChoice& sf); std::istream& operator>>(std::istream& o, ARDOUR::SyncSource& sf); std::istream& operator>>(std::istream& o, ARDOUR::ShuttleBehaviour& sf); std::istream& operator>>(std::istream& o, ARDOUR::ShuttleUnits& sf); -std::istream& operator>>(std::istream& o, ARDOUR::TimecodeFormat& sf); +std::istream& operator>>(std::istream& o, Timecode::TimecodeFormat& sf); std::istream& operator>>(std::istream& o, ARDOUR::DenormalModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::WaveformScale& sf); std::istream& operator>>(std::istream& o, ARDOUR::WaveformShape& sf); @@ -613,17 +596,18 @@ std::ostream& operator<<(std::ostream& o, const ARDOUR::HeaderFormat& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::AutoConnectOption& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::EditMode& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::MonitorModel& sf); +std::ostream& operator<<(std::ostream& o, const ARDOUR::MeterLineUp& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::PFLPosition& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::AFLPosition& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::RemoteModel& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::ListenPosition& sf); -std::ostream& operator<<(std::ostream& o, const ARDOUR::LayerModel& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::InsertMergePolicy& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::CrossfadeModel& sf); +std::ostream& operator<<(std::ostream& o, const ARDOUR::CrossfadeChoice& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::SyncSource& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::ShuttleBehaviour& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::ShuttleUnits& sf); -std::ostream& operator<<(std::ostream& o, const ARDOUR::TimecodeFormat& sf); +std::ostream& operator<<(std::ostream& o, const Timecode::TimecodeFormat& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::DenormalModel& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::WaveformScale& sf); std::ostream& operator<<(std::ostream& o, const ARDOUR::WaveformShape& sf);