first pass at end-to-end RT operation request (GUI->session->RT thread->GUI), just...
[ardour.git] / libs / ardour / ardour / types.h
index dd2c8861bec2529d45625c9109e7e28b269858fa..92c26a944830b4c271326d03fd2cb4a86f43bf72 100644 (file)
@@ -127,7 +127,8 @@ namespace ARDOUR {
        enum MeterPoint {
                MeterInput,
                MeterPreFader,
-               MeterPostFader
+               MeterPostFader,
+               MeterCustom
        };
 
        enum TrackMode {
@@ -360,10 +361,9 @@ namespace ARDOUR {
                ExportContext
        };
 
-       enum SlaveSource {
-               None = 0,
-               MTC,
+       enum SyncSource {
                JACK,
+               MTC,
                MIDIClock
        };
 
@@ -428,6 +428,36 @@ namespace ARDOUR {
                int64_t                  space;
        };
 
+       /** A struct used to describe changes to processors in a route.
+        *  This is useful because objects that respond to a change in processors
+        *  can optimise what work they do based on details of what has changed.
+       */
+       struct RouteProcessorChange {
+               enum Type {
+                       GeneralChange = 0x0,
+                       MeterPointChange = 0x1
+               };
+
+               RouteProcessorChange () {
+                       type = GeneralChange;
+               }
+
+               RouteProcessorChange (Type t) {
+                       type = t;
+                       meter_visibly_changed = true;
+               }
+
+               RouteProcessorChange (Type t, bool m) {
+                       type = t;
+                       meter_visibly_changed = m;
+               }
+
+               /** type of change; "GeneralChange" means anything could have changed */
+               Type type;
+               /** true if, when a MeterPointChange has occurred, the change is visible to the user */
+               bool meter_visibly_changed;
+       };
+
 } // namespace ARDOUR
 
 
@@ -444,7 +474,7 @@ 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::CrossfadeModel& sf);
-std::istream& operator>>(std::istream& o, ARDOUR::SlaveSource& 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);
@@ -461,7 +491,7 @@ 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::CrossfadeModel& sf);
-std::ostream& operator<<(std::ostream& o, const ARDOUR::SlaveSource& 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);