X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fpanner_shell.h;h=f344afd54a5569e734b35d592132a0e13d4837c7;hb=bd80b2f144c012669b56c83821e137be655acfe4;hp=76df20489f45483e506d418a45d9cb4e7943b657;hpb=316973d7c7bc99bfef6367d42009883d0de2abbd;p=ardour.git diff --git a/libs/ardour/ardour/panner_shell.h b/libs/ardour/ardour/panner_shell.h index 76df20489f..f344afd54a 100644 --- a/libs/ardour/ardour/panner_shell.h +++ b/libs/ardour/ardour/panner_shell.h @@ -50,7 +50,7 @@ class Pannable; class LIBARDOUR_API PannerShell : public SessionObject { public: - PannerShell (std::string name, Session&, boost::shared_ptr); + PannerShell (std::string name, Session&, boost::shared_ptr, bool is_send = false); virtual ~PannerShell (); std::string describe_parameter (Evoral::Parameter param); @@ -64,25 +64,37 @@ public: XMLNode& get_state (); int set_state (const XMLNode&, int version); + PBD::Signal0 PannableChanged; /* Pannable changed -- l*/ PBD::Signal0 Changed; /* panner and/or outputs count and/or bypass state changed */ boost::shared_ptr panner() const { return _panner; } - boost::shared_ptr pannable() const { return _pannable; } + boost::shared_ptr pannable() const { return _panlinked ? _pannable_route : _pannable_internal; } bool bypassed () const; void set_bypassed (bool); + bool is_send () const { return (_is_send); } + bool is_linked_to_route () const { return (_is_send && _panlinked); } + /* this function takes the process lock: */ + void set_linked_to_route (bool); + std::string current_panner_uri() const { return _current_panner_uri; } std::string user_selected_panner_uri() const { return _user_selected_panner_uri; } std::string panner_gui_uri() const { return _panner_gui_uri; } + /* this function takes the process lock: */ + bool select_panner_by_uri (std::string const uri); + private: - friend class Route; void distribute_no_automation (BufferSet& src, BufferSet& dest, pframes_t nframes, gain_t gain_coeff); bool set_user_selected_panner_uri (std::string const uri); boost::shared_ptr _panner; - boost::shared_ptr _pannable; + + boost::shared_ptr _pannable_internal; + boost::shared_ptr _pannable_route; + bool _is_send; + bool _panlinked; bool _bypassed; std::string _current_panner_uri;