X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fprocessor_box.h;h=81c5c8e20fb3a57dee720c9a106a42fe52294063;hb=ff5cc4a3115f43443cebfc325d175e3cdddeafed;hp=66585c88ec957cd7d1bb65a02eccd760e5a9f802;hpb=f6e182b937efda6ed0ba50dbc02af98524beb61c;p=ardour.git diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index 66585c88ec..81c5c8e20f 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -54,6 +54,7 @@ #include "widgets/slider_controller.h" #include "plugin_interest.h" +#include "plugin_display.h" #include "io_selector.h" #include "send_ui.h" #include "enums.h" @@ -119,7 +120,6 @@ class PluginPinWindowProxy : public WM::ProxyBase ARDOUR::SessionHandlePtr* session_handle(); private: - ProcessorBox* _processor_box; boost::weak_ptr _processor; void processor_going_away (); @@ -223,6 +223,9 @@ private: std::string state_id () const; void set_tooltip (); + void start_touch (); + void end_touch (); + boost::weak_ptr _control; /* things for a slider */ Gtk::Adjustment _adjustment; @@ -242,34 +245,23 @@ private: void toggle_panner_link (); void toggle_allow_feedback (); - class PluginDisplay : public Gtk::DrawingArea { + class PluginInlineDisplay : public PluginDisplay { public: - PluginDisplay(ProcessorEntry&, boost::shared_ptr, uint32_t max_height = 80); - virtual ~PluginDisplay(); + PluginInlineDisplay(ProcessorEntry&, boost::shared_ptr, uint32_t max_height = 80); + ~PluginInlineDisplay() {} protected: - bool on_expose_event (GdkEventExpose *); void on_size_request (Gtk::Requisition* req); bool on_button_press_event (GdkEventButton *ev); - bool on_button_release_event (GdkEventButton *ev); - - void plugin_going_away () { - _qdraw_connection.disconnect (); - } - void update_height_alloc (uint32_t inline_height); - virtual uint32_t render_inline (cairo_t *, uint32_t width); + + void display_sample (cairo_t* cr, double w, double h); ProcessorEntry& _entry; - boost::shared_ptr _plug; - PBD::ScopedConnection _qdraw_connection; - PBD::ScopedConnection _death_connection; - cairo_surface_t* _surf; - uint32_t _max_height; - uint32_t _cur_height; bool _scroll; + const uint32_t _given_max_height; }; - class LuaPluginDisplay : public PluginDisplay { + class LuaPluginDisplay : public PluginInlineDisplay { public: LuaPluginDisplay(ProcessorEntry&, boost::shared_ptr, uint32_t max_height = 80); ~LuaPluginDisplay(); @@ -560,6 +552,8 @@ private: void for_selected_processors (void (ProcessorBox::*pmf)(boost::shared_ptr)); void get_selected_processors (ProcSelection&) const; + void set_disk_io_position (ARDOUR::DiskIOPoint); + bool can_cut() const; bool stub_processor_selected() const; @@ -570,6 +564,7 @@ private: static Glib::RefPtr delete_action; static Glib::RefPtr backspace_action; static Glib::RefPtr manage_pins_action; + static Glib::RefPtr disk_io_action; static Glib::RefPtr edit_action; static Glib::RefPtr edit_generic_action; void paste_processor_state (const XMLNodeList&, boost::shared_ptr); @@ -603,6 +598,7 @@ private: static void rb_deactivate_all (); static void rb_ab_plugins (); static void rb_manage_pins (); + static void rb_set_disk_io_position (ARDOUR::DiskIOPoint); static void rb_edit (); static void rb_edit_generic ();