Fix the tempo note-type hallucination.
[ardour.git] / libs / ardour / ardour / types.h
index 5f9c32806c98a577eaff17aa12267a9d7b96a5d7..976c4924a794034dd1c143ba5aca9a12044db543 100644 (file)
@@ -52,6 +52,9 @@ namespace ARDOUR {
        class AudioSource;
        class Route;
        class Region;
+       class Stripable;
+       class VCA;
+       class AutomationControl;
 
        typedef float    Sample;
        typedef float    pan_t;
@@ -108,15 +111,22 @@ namespace ARDOUR {
        */
 
        enum InsertMergePolicy {
-               InsertMergeReject,  // no overlaps allowed
-               InsertMergeRelax,   // we just don't care about overlaps
-               InsertMergeReplace, // replace old with new
-               InsertMergeTruncateExisting, // shorten existing to avoid overlap
-               InsertMergeTruncateAddition, // shorten new to avoid overlap
-               InsertMergeExtend   // extend new (or old) to the range of old+new
+               InsertMergeReject,  ///< no overlaps allowed
+               InsertMergeRelax,   ///< we just don't care about overlaps
+               InsertMergeReplace, ///< replace old with new
+               InsertMergeTruncateExisting, ///< shorten existing to avoid overlap
+               InsertMergeTruncateAddition, ///< shorten new to avoid overlap
+               InsertMergeExtend   ///< extend new (or old) to the range of old+new
        };
 
        /** See evoral/Parameter.hpp
+        *
+        * When you add things here, you REALLY SHOULD add a case clause to
+        * the constructor of ParameterDescriptor, unless the Controllables
+        * that the enum refers to are completely standard (0-1.0 range, 0.0 as
+        * normal, non-toggled, non-enumerated). Anything else needs to be
+        * added there so that things that try to represent them can do so
+        * with as much information as possible.
         */
        enum AutomationType {
                NullAutomation,
@@ -136,11 +146,13 @@ namespace ARDOUR {
                MidiPgmChangeAutomation,
                MidiPitchBenderAutomation,
                MidiChannelPressureAutomation,
+               MidiNotePressureAutomation,
                MidiSystemExclusiveAutomation,
                FadeInAutomation,
                FadeOutAutomation,
                EnvelopeAutomation,
                RecEnableAutomation,
+               RecSafeAutomation,
                TrimAutomation,
                PhaseAutomation,
                MonitoringAutomation,
@@ -311,7 +323,7 @@ namespace ARDOUR {
 
                AudioRange (framepos_t s, framepos_t e, uint32_t i) : start (s), end (e) , id (i) {}
 
-               framecnt_t length() { return end - start + 1; }
+               framecnt_t length() const { return end - start + 1; }
 
                bool operator== (const AudioRange& other) const {
                        return start == other.start && end == other.end && id == other.id;
@@ -455,11 +467,6 @@ namespace ARDOUR {
                DenormalFTZDAZ
        };
 
-       enum RemoteModel {
-               UserOrdered,
-               MixerOrdered
-       };
-
        enum LayerModel {
                LaterHigher,
                Manual
@@ -556,7 +563,12 @@ namespace ARDOUR {
        typedef std::list<framepos_t> AnalysisFeatureList;
 
        typedef std::list<boost::shared_ptr<Route> > RouteList;
+       typedef std::list<boost::shared_ptr<Stripable> > StripableList;
        typedef std::list<boost::weak_ptr  <Route> > WeakRouteList;
+       typedef std::list<boost::weak_ptr  <Stripable> > WeakStripableList;
+       typedef std::list<boost::shared_ptr<AutomationControl> > ControlList;
+
+       typedef std::list<boost::shared_ptr<VCA> > VCAList;
 
        class Bundle;
        typedef std::vector<boost::shared_ptr<Bundle> > BundleList;
@@ -683,7 +695,6 @@ 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::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);
@@ -707,7 +718,6 @@ 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::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);