OSC: Fix select fader automation play feedback as well fixes issue #7160
[ardour.git] / libs / surfaces / osc / osc_select_observer.h
index 66b4f04d6fa8528a2ab4d1090d11025f7a6f403c..a603d12fd46c3f72814b6f918b4c0ec59ec139df 100644 (file)
 #include "pbd/controllable.h"
 #include "pbd/stateful.h"
 #include "ardour/types.h"
+#include "ardour/processor.h"
 
 class OSCSelectObserver
 {
 
   public:
-       OSCSelectObserver (boost::shared_ptr<ARDOUR::Stripable>, lo_address addr, uint32_t sid, uint32_t gainmode, std::bitset<32> feedback);
+       OSCSelectObserver (boost::shared_ptr<ARDOUR::Stripable>, lo_address addr, uint32_t gainmode, std::bitset<32> feedback);
        ~OSCSelectObserver ();
 
        boost::shared_ptr<ARDOUR::Stripable> strip () const { return _strip; }
@@ -45,22 +46,45 @@ class OSCSelectObserver
        boost::shared_ptr<ARDOUR::Stripable> _strip;
 
        PBD::ScopedConnectionList strip_connections;
+       // sends and eq need their own
+       PBD::ScopedConnectionList send_connections;
+       PBD::ScopedConnectionList eq_connections;
 
        lo_address addr;
        std::string path;
-       uint32_t ssid;
        uint32_t gainmode;
        std::bitset<32> feedback;
+       std::vector<int> send_timeout;
+       uint32_t gain_timeout;
        float _last_meter;
-
+       uint32_t nsends;
+       float _last_gain;
+       ARDOUR::AutoState as;
 
        void name_changed (const PBD::PropertyChange& what_changed);
-       void send_change_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
-       void send_monitor_status (boost::shared_ptr<PBD::Controllable> controllable);
-       void send_gain_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
-       void send_trim_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
-       std::string set_path (std::string path);
+       void change_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
+       void enable_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
+       void comp_mode (void);
+       void change_message_with_id (std::string path, uint32_t id, boost::shared_ptr<PBD::Controllable> controllable);
+       void enable_message_with_id (std::string path, uint32_t id, boost::shared_ptr<PBD::Controllable> controllable);
+       void text_message (std::string path, std::string text);
+       void text_with_id (std::string path, uint32_t id, std::string name);
+       void monitor_status (boost::shared_ptr<PBD::Controllable> controllable);
+       void gain_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
+       void gain_automation (std::string path);
+       void trim_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
+       // sends stuff
+       void send_init (void);
+       void send_end (void);
+       void send_restart (int);
+       void send_gain (uint32_t id, boost::shared_ptr<PBD::Controllable> controllable);
+       void send_enable (std::string path, uint32_t id, boost::shared_ptr<ARDOUR::Processor> proc);
+       void eq_init (void);
+       void eq_end (void);
+       void eq_restart (int);
+       std::string set_path (std::string path, uint32_t id);
        void clear_strip (std::string path, float val);
+       void clear_strip_with_id (std::string path, uint32_t id, float val);
 };
 
 #endif /* __osc_oscselectobserver_h__ */