X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fprocessor_box.h;h=1e4257d22b16d207a2299dc8ed100b112ef40f55;hb=dab0dacc66dcc190b4408ba75e3807973582cbd6;hp=daff50dfe7b57ffa9d2233bf0ce9864142725183;hpb=12c97285305fba9c0edf2297128e978b0f2ccd67;p=ardour.git diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index daff50dfe7..1e4257d22b 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -20,9 +20,11 @@ #ifndef __ardour_gtk_processor_box__ #define __ardour_gtk_processor_box__ +#include #include -#include +#include + #include #include #include @@ -34,6 +36,7 @@ #include #include "pbd/stateful.h" +#include "pbd/signals.h" #include "ardour/types.h" #include "ardour/ardour.h" @@ -41,6 +44,7 @@ #include "ardour/port_insert.h" #include "ardour/processor.h" #include "ardour/route.h" +#include "ardour/session_handle.h" #include "pbd/fastlog.h" @@ -87,7 +91,7 @@ private: void active_toggled (); void processor_active_changed (); - void processor_name_changed (); + void processor_property_changed (const PBD::PropertyChange&); std::string name () const; Gtk::EventBox _event_box; @@ -96,6 +100,8 @@ private: Gtk::CheckButton _active; boost::shared_ptr _processor; Width _width; + PBD::ScopedConnection active_connection; + PBD::ScopedConnection name_connection; }; class SendProcessorEntry : public ProcessorEntry @@ -116,15 +122,16 @@ private: Gtk::Adjustment _adjustment; Gtkmm2ext::HSliderController _fader; bool _ignore_gain_change; - + PBD::ScopedConnection send_gain_connection; + static Glib::RefPtr _slider; }; -class ProcessorBox : public Gtk::HBox, public PluginInterestedObject +class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARDOUR::SessionHandlePtr { public: - ProcessorBox (ARDOUR::Session&, sigc::slot get_plugin_selector, - RouteRedirectSelection&, MixerStrip* parent, bool owner_is_mixer = false); + ProcessorBox (ARDOUR::Session*, boost::function get_plugin_selector, + RouteRedirectSelection&, MixerStrip* parent, bool owner_is_mixer = false); ~ProcessorBox (); void set_route (boost::shared_ptr); @@ -145,13 +152,12 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject private: boost::shared_ptr _route; - ARDOUR::Session & _session; MixerStrip* _parent_strip; // null if in RouteParamsUI bool _owner_is_mixer; bool ab_direction; - std::vector connections; + PBD::ScopedConnectionList connections; - sigc::slot _get_plugin_selector; + boost::function _get_plugin_selector; boost::shared_ptr _processor_being_created; @@ -191,7 +197,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject void return_io_finished (IOSelector::Result, boost::weak_ptr, IOSelectorWindow*); void choose_insert (); void choose_plugin (); - void use_plugins (const SelectedPlugins&); + bool use_plugins (const SelectedPlugins&); bool no_processor_redisplay; @@ -232,9 +238,13 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject void rename_processors (); void for_selected_processors (void (ProcessorBox::*pmf)(boost::shared_ptr)); - void get_selected_processors (ProcSelection&); + void get_selected_processors (ProcSelection&) const; + + bool can_cut() const; + static Glib::RefPtr cut_action; static Glib::RefPtr paste_action; + static Glib::RefPtr rename_action; void paste_processor_state (const XMLNodeList&, boost::shared_ptr); void activate_processor (boost::shared_ptr); @@ -269,7 +279,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject static void rb_ab_plugins (); static void rb_edit (); - void route_name_changed (); + void route_property_changed (const PBD::PropertyChange&); std::string generate_processor_title (boost::shared_ptr pi); };