Add support for Latch Automation
[ardour.git] / libs / ardour / ardour / types.h
index 0076a72a1f7e86cd2f1e33e8fe4eb55c996acd5e..8358d78e9ad5299dc5809e63e331f03a0fdaf129 100644 (file)
@@ -23,6 +23,7 @@
 #include <istream>
 #include <vector>
 #include <map>
+#include <set>
 #include <boost/shared_ptr.hpp>
 #include <sys/types.h>
 #include <stdint.h>
@@ -55,6 +56,7 @@ namespace ARDOUR {
        class Stripable;
        class VCA;
        class AutomationControl;
+       class SlavableAutomationControl;
 
        typedef float    Sample;
        typedef float    pan_t;
@@ -156,42 +158,21 @@ namespace ARDOUR {
                TrimAutomation,
                PhaseAutomation,
                MonitoringAutomation,
-               EQGain,
-               EQFrequency,
-               EQQ,
-               EQShape,
-               EQEnable,
-               EQHPF,
-               EQLPF,
-               EQFilterEnable,
-               CompThreshold,
-               CompSpeed,
-               CompMode,
-               CompMakeup,
-               CompRedux,
-               CompEnable,
                BusSendLevel,
-               BusSendEnable,
+               BusSendEnable
        };
 
        enum AutoState {
-               Off = 0x0,
-               Write = 0x1,
-               Touch = 0x2,
-               Play = 0x4
+               Off   = 0x00,
+               Write = 0x01,
+               Touch = 0x02,
+               Play  = 0x04,
+               Latch = 0x08
        };
 
        std::string auto_state_to_string (AutoState);
        AutoState string_to_auto_state (std::string);
 
-       enum AutoStyle {
-               Absolute = 0x1,
-               Trim = 0x2
-       };
-
-       std::string auto_style_to_string (AutoStyle);
-       AutoStyle string_to_auto_style (std::string);
-
        enum AlignStyle {
                CaptureTime,
                ExistingMaterial
@@ -590,6 +571,8 @@ namespace ARDOUR {
        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<SlavableAutomationControl> > SlavableControlList;
+       typedef std::set <boost::shared_ptr<AutomationControl> > AutomationControlSet;
 
        typedef std::list<boost::shared_ptr<VCA> > VCAList;
 
@@ -643,11 +626,7 @@ namespace ARDOUR {
        };
 
        struct BusProfile {
-               AutoConnectOption input_ac;      /* override the RC config for input auto-connection */
-               AutoConnectOption output_ac;     /* override the RC config for output auto-connection */
-               uint32_t master_out_channels;    /* how many channels for the master bus */
-               uint32_t requested_physical_in;  /* now many of the available physical inputs to consider usable */
-               uint32_t requested_physical_out; /* now many of the available physical inputs to consider usable */
+               uint32_t master_out_channels; /* how many channels for the master bus, 0: no master bus */
        };
 
        enum FadeShape {