X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fprocessor_box.h;h=1e4257d22b16d207a2299dc8ed100b112ef40f55;hb=f7bff95fbce75cb0d4c717b1400677edd814f7be;hp=6fa11339fffb70c16ea101fba6744a318b3049b6;hpb=1a2ced7a4a0202afeef81a8b1d86b7ce4615563c;p=ardour.git diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index 6fa11339ff..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" @@ -76,7 +80,8 @@ public: Gtk::Widget& widget (); std::string drag_text () const; boost::shared_ptr processor () const; - void set_width (Width); + void set_enum_width (Width); + virtual void set_pixel_width (int) {} protected: @@ -86,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; @@ -95,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 @@ -104,6 +111,9 @@ public: static void setup_slider_pix (); + void set_enum_width (Width, int); + void set_pixel_width (int); + private: void show_gain (); void gain_adjusted (); @@ -112,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); @@ -141,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; @@ -184,11 +194,10 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject void choose_aux (boost::weak_ptr); void choose_send (); void send_io_finished (IOSelector::Result, boost::weak_ptr, IOSelectorWindow*); - void choose_return (); 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; @@ -201,6 +210,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject void redisplay_processors (); void add_processor_to_display (boost::weak_ptr); void reordered (); + void route_processors_changed (ARDOUR::RouteProcessorChange); void remove_processor_gui (boost::shared_ptr); @@ -228,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); @@ -242,6 +256,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject gint idle_delete_processor (boost::weak_ptr); void weird_plugin_dialog (ARDOUR::Plugin& p, ARDOUR::Route::ProcessorStreams streams); + void on_size_allocate (Gtk::Allocation &); static ProcessorBox* _current_processor_box; @@ -249,7 +264,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject static void rb_choose_plugin (); static void rb_choose_insert (); static void rb_choose_send (); - static void rb_choose_return (); static void rb_clear (); static void rb_clear_pre (); static void rb_clear_post (); @@ -265,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); };