Session API changes to enable VCAs to set soloed-by-upstream on assigned routes
[ardour.git] / libs / ardour / ardour / types.h
index c0d9f10ab23ff9e1a384898b6be5eb652dfbfb69..626109557f59051b266d4893a61da878af841111 100644 (file)
@@ -52,6 +52,7 @@ namespace ARDOUR {
        class AudioSource;
        class Route;
        class Region;
+       class VCA;
 
        typedef float    Sample;
        typedef float    pan_t;
@@ -117,6 +118,13 @@ namespace ARDOUR {
        };
 
        /** 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,
@@ -129,6 +137,8 @@ namespace ARDOUR {
                PluginAutomation,
                PluginPropertyAutomation,
                SoloAutomation,
+               SoloIsolateAutomation,
+               SoloSafeAutomation,
                MuteAutomation,
                MidiCCAutomation,
                MidiPgmChangeAutomation,
@@ -141,7 +151,7 @@ namespace ARDOUR {
                RecEnableAutomation,
                TrimAutomation,
                PhaseAutomation,
-               SendAutomation,
+               MonitoringAutomation,
                EQGain,
                EQFrequency,
                EQQ,
@@ -154,38 +164,8 @@ namespace ARDOUR {
                CompMakeup,
                CompRedux,
                CompEnable,
-               BusSend1Level,
-               BusSend1Enable,
-               BusSend2Level,
-               BusSend2Enable,
-               BusSend3Level,
-               BusSend3Enable,
-               BusSend4Level,
-               BusSend4Enable,
-               BusSend5Level,
-               BusSend5Enable,
-               BusSend6Level,
-               BusSend6Enable,
-               BusSend7Level,
-               BusSend7Enable,
-               BusSend8Level,
-               BusSend8Enable,
-               BusSend9Level,
-               BusSend9Enable,
-               BusSend10Level,
-               BusSend10Enable,
-               BusSend11Level,
-               BusSend11Enable,
-               BusSend12Level,
-               BusSend12Enable,
-               BusSend13Level,
-               BusSend13Enable,
-               BusSend14Level,
-               BusSend14Enable,
-               BusSend15Level,
-               BusSend15Enable,
-               BusSend16Level,
-               BusSend16LeEnable,
+               BusSendLevel,
+               BusSendEnable,
        };
 
        enum AutoState {
@@ -339,7 +319,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;
@@ -586,6 +566,8 @@ namespace ARDOUR {
        typedef std::list<boost::shared_ptr<Route> > RouteList;
        typedef std::list<boost::weak_ptr  <Route> > WeakRouteList;
 
+       typedef std::list<boost::shared_ptr<VCA> > VCAList;
+
        class Bundle;
        typedef std::vector<boost::shared_ptr<Bundle> > BundleList;