NO-OP: whitespace
[ardour.git] / gtk2_ardour / processor_box.h
index 330a920e87bc4eec49a7dd6be134083ae555cd5a..81c5c8e20fb3a57dee720c9a106a42fe52294063 100644 (file)
 #include <gtkmm/menu.h>
 #include <gtkmm/scrolledwindow.h>
 
-#include "gtkmm2ext/auto_spin.h"
 #include "gtkmm2ext/bindings.h"
-#include "gtkmm2ext/click_box.h"
 #include "gtkmm2ext/dndtreeview.h"
 #include "gtkmm2ext/dndvbox.h"
-#include "gtkmm2ext/pixfader.h"
 #include "gtkmm2ext/persistent_tooltip.h"
 
 #include "pbd/stateful.h"
 
 #include "pbd/fastlog.h"
 
+#include "widgets/ardour_button.h"
+#include "widgets/ardour_fader.h"
+#include "widgets/slider_controller.h"
+
 #include "plugin_interest.h"
+#include "plugin_display.h"
 #include "io_selector.h"
 #include "send_ui.h"
 #include "enums.h"
-#include "ardour_button.h"
 #include "window_manager.h"
 
 class MotionController;
 class PluginSelector;
 class PluginUIWindow;
-class RouteProcessorSelection;
+class ProcessorSelection;
 class MixerStrip;
 
 namespace ARDOUR {
@@ -80,7 +81,7 @@ class ProcessorBox;
 
 class ProcessorWindowProxy : public WM::ProxyBase
 {
-  public:
+public:
        ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>);
        ~ProcessorWindowProxy();
 
@@ -91,13 +92,13 @@ class ProcessorWindowProxy : public WM::ProxyBase
        }
 
        ARDOUR::SessionHandlePtr* session_handle();
-       void show_the_right_window ();
+       void show_the_right_window (bool show_not_toggle = false);
        void set_custom_ui_mode(bool use_custom) { want_custom = use_custom; }
 
        int set_state (const XMLNode&, int);
        XMLNode& get_state ();
 
-  private:
+private:
        ProcessorBox* _processor_box;
        boost::weak_ptr<ARDOUR::Processor> _processor;
        bool is_custom;
@@ -105,6 +106,7 @@ class ProcessorWindowProxy : public WM::ProxyBase
 
        void processor_going_away ();
        PBD::ScopedConnection going_away_connection;
+       PBD::ScopedConnectionList gui_connections;
 };
 
 
@@ -118,7 +120,6 @@ class PluginPinWindowProxy : public WM::ProxyBase
        ARDOUR::SessionHandlePtr* session_handle();
 
   private:
-       ProcessorBox* _processor_box;
        boost::weak_ptr<ARDOUR::Processor> _processor;
 
        void processor_going_away ();
@@ -168,7 +169,7 @@ public:
        Gtk::Menu* build_send_options_menu ();
 
 protected:
-       ArdourButton _button;
+       ArdourWidgets::ArdourButton _button;
        Gtk::VBox _vbox;
        Position _position;
        uint32_t _position_num;
@@ -218,21 +219,24 @@ private:
                void button_clicked ();
                void button_clicked_event (GdkEventButton *);
                void control_changed ();
+               void control_automation_state_changed ();
                std::string state_id () const;
                void set_tooltip ();
 
+               void start_touch ();
+               void end_touch ();
+
                boost::weak_ptr<ARDOUR::AutomationControl> _control;
                /* things for a slider */
                Gtk::Adjustment _adjustment;
-               Gtkmm2ext::HSliderController _slider;
+               ArdourWidgets::HSliderController _slider;
                Gtkmm2ext::PersistentTooltip _slider_persistant_tooltip;
                /* things for a button */
-               ArdourButton _button;
+               ArdourWidgets::ArdourButton _button;
                bool _ignore_ui_adjustment;
-               PBD::ScopedConnection _connection;
+               PBD::ScopedConnectionList _connections;
                bool _visible;
                std::string _name;
-               sigc::connection timer_connection;
        };
 
        std::list<Control*> _controls;
@@ -241,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<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_sample (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;
+               const uint32_t _given_max_height;
        };
 
-       class LuaPluginDisplay : public PluginDisplay {
+       class LuaPluginDisplay : public PluginInlineDisplay {
        public:
                LuaPluginDisplay(ProcessorEntry&, boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
                ~LuaPluginDisplay();
@@ -401,7 +394,7 @@ private:
 
 class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARDOUR::SessionHandlePtr
 {
-  public:
+public:
        enum ProcessorOperation {
                ProcessorsCut,
                ProcessorsCopy,
@@ -414,7 +407,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        };
 
        ProcessorBox (ARDOUR::Session*, boost::function<PluginSelector*()> get_plugin_selector,
-                     RouteProcessorSelection&, MixerStrip* parent, bool owner_is_mixer = false);
+                     ProcessorSelection&, MixerStrip* parent, bool owner_is_mixer = false);
        ~ProcessorBox ();
 
        void set_route (boost::shared_ptr<ARDOUR::Route>);
@@ -435,16 +428,16 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
 
        bool edit_aux_send(boost::shared_ptr<ARDOUR::Processor>);
 
-        /* Everything except a WindowProxy object should use this to get the window */
+       /* Everything except a WindowProxy object should use this to get the window */
        Gtk::Window* get_processor_ui (boost::shared_ptr<ARDOUR::Processor>) const;
 
-        /* a WindowProxy object can use this */
-        Gtk::Window* get_editor_window (boost::shared_ptr<ARDOUR::Processor>, bool);
-        Gtk::Window* get_generic_editor_window (boost::shared_ptr<ARDOUR::Processor>);
+       /* a WindowProxy object can use this */
+       Gtk::Window* get_editor_window (boost::shared_ptr<ARDOUR::Processor>, bool);
+       Gtk::Window* get_generic_editor_window (boost::shared_ptr<ARDOUR::Processor>);
 
-        void manage_pins (boost::shared_ptr<ARDOUR::Processor>);
-        void edit_processor (boost::shared_ptr<ARDOUR::Processor>);
-        void generic_edit_processor (boost::shared_ptr<ARDOUR::Processor>);
+       void manage_pins (boost::shared_ptr<ARDOUR::Processor>);
+       void edit_processor (boost::shared_ptr<ARDOUR::Processor>);
+       void generic_edit_processor (boost::shared_ptr<ARDOUR::Processor>);
 
        void update_gui_object_state (ProcessorEntry *);
 
@@ -457,7 +450,8 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
 
        typedef std::vector<boost::shared_ptr<ARDOUR::Processor> > ProcSelection;
 
-       static ProcSelection current_processor_selection () {
+       static ProcSelection current_processor_selection ()
+       {
                ProcSelection ps;
                if (_current_processor_box) {
                        _current_processor_box->get_selected_processors (ps);
@@ -469,7 +463,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        static bool show_all_processors;
 #endif
 
-  private:
+private:
        /* prevent copy construction */
        ProcessorBox (ProcessorBox const &);
 
@@ -488,16 +482,15 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
         *  put at the end of the plugin list.
         */
        int _placement;
-       uint32_t                  _visible_prefader_processors;
 
-       RouteProcessorSelection& _rr_selection;
+       ProcessorSelection& _p_selection;
        static Gtkmm2ext::ActionMap myactions;
 
        static void load_bindings ();
 
        void route_going_away ();
 
-        bool is_editor_mixer_strip() const;
+       bool is_editor_mixer_strip() const;
 
        Gtkmm2ext::DnDVBox<ProcessorEntry> processor_display;
        Gtk::ScrolledWindow    processor_scroller;
@@ -511,7 +504,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        void object_drop (Gtkmm2ext::DnDVBox<ProcessorEntry> *, ProcessorEntry *, Glib::RefPtr<Gdk::DragContext> const &);
 
        Width _width;
-        bool  _redisplay_pending;
+       bool  _redisplay_pending;
 
        Gtk::Menu *processor_menu;
        gint processor_menu_map_handler (GdkEventAny *ev);
@@ -535,7 +528,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        bool processor_button_release_event (GdkEventButton *, ProcessorEntry *);
        void redisplay_processors ();
        void add_processor_to_display (boost::weak_ptr<ARDOUR::Processor>);
-       void help_count_visible_prefader_processors (boost::weak_ptr<ARDOUR::Processor>, uint32_t*, bool*);
        void reordered ();
        void report_failed_reorder ();
        void route_processors_changed (ARDOUR::RouteProcessorChange);
@@ -560,6 +552,8 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        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;
 
@@ -570,6 +564,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        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>);
@@ -603,16 +598,17 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        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 ();
 
        void route_property_changed (const PBD::PropertyChange&);
        std::string generate_processor_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);
 
-        //typedef std::list<ProcessorWindowProxy*> ProcessorWindowProxies;
-        //ProcessorWindowProxies _processor_window_info;
+       //typedef std::list<ProcessorWindowProxy*> ProcessorWindowProxies;
+       //ProcessorWindowProxies _processor_window_info;
 
-        ProcessorWindowProxy* find_window_proxy (boost::shared_ptr<ARDOUR::Processor>) const;
+       ProcessorWindowProxy* find_window_proxy (boost::shared_ptr<ARDOUR::Processor>) const;
 
        void set_processor_ui (boost::shared_ptr<ARDOUR::Processor>, Gtk::Window *);
        void maybe_add_processor_to_ui_list (boost::weak_ptr<ARDOUR::Processor>);