auditioner always runs at normal speed, independent of transport speed
[ardour.git] / gtk2_ardour / processor_box.h
index 8bb7b55f9b027168284cbce9b12587dadeb7c28a..cb13f42b436b0a3504b76e703db598e6a2d045f4 100644 (file)
@@ -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"
@@ -245,34 +246,22 @@ private:
        void toggle_panner_link ();
        void toggle_allow_feedback ();
 
-       class PluginDisplay : public Gtk::DrawingArea {
+       class PluginInlineDisplay : public PluginDisplay {
        public:
-               PluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::Plugin>, uint32_t max_height = 80);
-               virtual ~PluginDisplay();
+               PluginInlineDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::Plugin>, 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_frame (cairo_t* cr, double w, double h);
 
                ProcessorEntry& _entry;
-               boost::shared_ptr<ARDOUR::Plugin> _plug;
-               PBD::ScopedConnection _qdraw_connection;
-               PBD::ScopedConnection _death_connection;
-               cairo_surface_t* _surf;
-               uint32_t _max_height;
-               uint32_t _cur_height;
                bool _scroll;
        };
 
-       class LuaPluginDisplay : public PluginDisplay {
+       class LuaPluginDisplay : public PluginInlineDisplay {
        public:
                LuaPluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
                ~LuaPluginDisplay();
@@ -563,6 +552,8 @@ private:
        void for_selected_processors (void (ProcessorBox::*pmf)(boost::shared_ptr<ARDOUR::Processor>));
        void get_selected_processors (ProcSelection&) const;
 
+       void set_disk_io_position (ARDOUR::DiskIOPoint);
+
        bool can_cut() const;
        bool stub_processor_selected() const;
 
@@ -573,6 +564,7 @@ private:
        static Glib::RefPtr<Gtk::Action> delete_action;
        static Glib::RefPtr<Gtk::Action> backspace_action;
        static Glib::RefPtr<Gtk::Action> manage_pins_action;
+       static Glib::RefPtr<Gtk::Action> disk_io_action;
        static Glib::RefPtr<Gtk::Action> edit_action;
        static Glib::RefPtr<Gtk::Action> edit_generic_action;
        void paste_processor_state (const XMLNodeList&, boost::shared_ptr<ARDOUR::Processor>);
@@ -606,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 ();