X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fosc%2Fosc_select_observer.h;h=81e6a75256bc36745684d2ff437c83594202b315;hb=06ea56a2ce2fb8cf7e6803486292bf7b89d81de7;hp=a603d12fd46c3f72814b6f918b4c0ec59ec139df;hpb=82fed14f41f1d480fef400384d81838d1edf3d32;p=ardour.git diff --git a/libs/surfaces/osc/osc_select_observer.h b/libs/surfaces/osc/osc_select_observer.h index a603d12fd4..81e6a75256 100644 --- a/libs/surfaces/osc/osc_select_observer.h +++ b/libs/surfaces/osc/osc_select_observer.h @@ -31,35 +31,69 @@ #include "ardour/types.h" #include "ardour/processor.h" +#include "osc.h" + class OSCSelectObserver { public: - OSCSelectObserver (boost::shared_ptr, lo_address addr, uint32_t gainmode, std::bitset<32> feedback); + OSCSelectObserver (ArdourSurface::OSC& o, ArdourSurface::OSC::OSCSurface* sur); ~OSCSelectObserver (); boost::shared_ptr strip () const { return _strip; } lo_address address() const { return addr; }; void tick (void); + void renew_sends (void); + void renew_plugin (void); + void eq_restart (int); + void clear_observer (void); + void refresh_strip (boost::shared_ptr new_strip, uint32_t nsends, bool force); + void set_expand (uint32_t expand); + void set_send_page (uint32_t page); + void set_send_size (uint32_t size); + void set_plugin_id (int id, uint32_t page); + void set_plugin_page (uint32_t page); + void set_plugin_size (uint32_t size); private: boost::shared_ptr _strip; - + ArdourSurface::OSC& _osc; + PBD::ScopedConnectionList strip_connections; - // sends and eq need their own + // sends, plugins and eq need their own PBD::ScopedConnectionList send_connections; + PBD::ScopedConnectionList plugin_connections; PBD::ScopedConnectionList eq_connections; lo_address addr; std::string path; uint32_t gainmode; std::bitset<32> feedback; + bool in_line; + ArdourSurface::OSC::OSCSurface* sur; std::vector send_timeout; uint32_t gain_timeout; float _last_meter; uint32_t nsends; float _last_gain; + float _last_trim; + std::vector _last_send; + bool _init; + float _comp_redux; ARDOUR::AutoState as; + uint32_t send_page_size; + uint32_t send_size; + uint32_t send_page; + + uint32_t nplug_params; + uint32_t plug_page_size; + uint32_t plug_page; + int plug_id; + uint32_t plug_size; + std::vector plug_params; + int eq_bands; + bool _tick_busy; + uint32_t _expand; void name_changed (const PBD::PropertyChange& what_changed); void change_message (std::string path, boost::shared_ptr controllable); @@ -67,24 +101,22 @@ class OSCSelectObserver void comp_mode (void); void change_message_with_id (std::string path, uint32_t id, boost::shared_ptr controllable); void enable_message_with_id (std::string path, uint32_t id, boost::shared_ptr 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 controllable); - void gain_message (std::string path, boost::shared_ptr controllable); - void gain_automation (std::string path); + void gain_message (); + void gain_automation (); void trim_message (std::string path, boost::shared_ptr controllable); // sends stuff void send_init (void); void send_end (void); - void send_restart (int); + void plugin_init (void); + void plugin_end (void); + void plugin_parameter_changed (int pid, bool swtch, boost::shared_ptr controllable); void send_gain (uint32_t id, boost::shared_ptr controllable); void send_enable (std::string path, uint32_t id, boost::shared_ptr proc); + void plug_enable (std::string path, boost::shared_ptr 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); + void no_strip (); }; #endif /* __osc_oscselectobserver_h__ */