diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-13 22:41:17 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-14 09:54:38 -0400 |
commit | a244075fb31868a9108202763dbd304ddc853a75 (patch) | |
tree | 900cf0ce7df709ea3f3d58fda127f121da7471ae /gtk2_ardour/processor_box.h | |
parent | 09c7c5fb950c94d0a4db1cc2f9f46d5690c751f9 (diff) |
changes that will help fix a crash related to plugin window visibility. some work still to be done
Diffstat (limited to 'gtk2_ardour/processor_box.h')
-rw-r--r-- | gtk2_ardour/processor_box.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index a72eb3223d..41bc68281f 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -79,6 +79,7 @@ class ProcessorWindowProxy : public WM::ProxyBase { public: ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>); + ~ProcessorWindowProxy(); Gtk::Window* get (bool create = false); @@ -91,6 +92,7 @@ class ProcessorWindowProxy : public WM::ProxyBase void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; } bool marked; + bool valid () const; void set_state (const XMLNode&); XMLNode& get_state () const; @@ -100,6 +102,10 @@ class ProcessorWindowProxy : public WM::ProxyBase boost::weak_ptr<ARDOUR::Processor> _processor; bool is_custom; bool want_custom; + bool _valid; + + void processor_going_away (); + PBD::ScopedConnection going_away_connection; }; class ProcessorEntry : public Gtkmm2ext::DnDVBoxChild, public sigc::trackable @@ -303,6 +309,8 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD void route_going_away (); + bool is_editor_mixer_strip() const; + Gtkmm2ext::DnDVBox<ProcessorEntry> processor_display; Gtk::ScrolledWindow processor_scroller; @@ -404,7 +412,9 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD void route_property_changed (const PBD::PropertyChange&); std::string generate_processor_title (boost::shared_ptr<ARDOUR::PluginInsert> pi); - std::list<ProcessorWindowProxy*> _processor_window_info; + typedef std::list<ProcessorWindowProxy*> ProcessorWindowProxies; + ProcessorWindowProxies _processor_window_info; + ProcessorWindowProxy* find_window_proxy (boost::shared_ptr<ARDOUR::Processor>) const; void set_processor_ui (boost::shared_ptr<ARDOUR::Processor>, Gtk::Window *); |