When we rename a track, only rename its playlist if it
[ardour.git] / libs / ardour / ardour / types.h
index 7d5c5626e388519b55eb1a4904c50ec33c773e36..6d05bdbbd8d79e902115d46497af12ea580bbab2 100644 (file)
@@ -36,6 +36,8 @@
 
 #include "pbd/id.h"
 
+#include "evoral/Range.hpp"
+
 #include "ardour/chan_count.h"
 
 #include <map>
@@ -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<std::pair<frameoffset_t, frameoffset_t> > AudioIntervalResult;
        // associate a set of intervals with regions (e.g. for silence detection)
        typedef std::map<boost::shared_ptr<ARDOUR::Region>,AudioIntervalResult> AudioIntervalMap;
 
+       typedef std::list<boost::shared_ptr<Region> > 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 {
@@ -218,7 +213,8 @@ namespace ARDOUR {
                timecode_60
        };
 
-       struct AnyTime {
+       class AnyTime {
+       public:
                enum Type {
                        Timecode,
                        BBT,
@@ -274,6 +270,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 +290,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);
                }
        };
 
@@ -408,10 +407,10 @@ namespace ARDOUR {
                ShortCrossfade
        };
 
-       enum LayerModel {
-               LaterHigher,
-               MoveAddHigher,
-               AddHigher
+       enum CrossfadeChoice {
+               RegionFades,
+               ConstantPowerMinus3dB,
+               ConstantPowerMinus6dB,
        };
 
        enum ListenPosition {
@@ -425,15 +424,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,
@@ -503,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<framepos_t> AnalysisFeatureList;
 
        typedef std::list<boost::shared_ptr<Route> > RouteList;
@@ -534,12 +511,6 @@ namespace ARDOUR {
                Rectified
        };
 
-       enum QuantizeType {
-               Plain,
-               Legato,
-               Groove
-       };
-
        struct CleanupReport {
                std::vector<std::string> paths;
                size_t                   space;
@@ -587,8 +558,8 @@ namespace ARDOUR {
                FadeLinear,
                FadeFast,
                FadeSlow,
-               FadeLogA,
-               FadeLogB
+               FadeConstantPower,
+               FadeSymmetric,
        };
 
 } // namespace ARDOUR
@@ -607,9 +578,9 @@ 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);
@@ -628,9 +599,9 @@ 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);