Optimize automation-event process splitting
[ardour.git] / gtk2_ardour / monitor_section.h
index 46d3621955efc51efea5f0edbb4b2cc89171dfbf..e5c63fbdd919d5378b8cc5a033686ee4ce9d5e52 100644 (file)
@@ -17,6 +17,9 @@
 
 */
 
+#ifndef __gtk2_ardour_monitor_section_h__
+#define __gtk2_ardour_monitor_section_h__
+
 #include <gtkmm/box.h>
 #include <gtkmm/eventbox.h>
 #include <gtkmm/sizegroup.h>
@@ -41,10 +44,10 @@ namespace ArdourWidgets {
        class TearOff;
 }
 
-class MonitorSection : public RouteUI, public Gtk::EventBox, public Gtkmm2ext::StaticActionMapOwner
+class MonitorSection : public RouteUI, public Gtk::EventBox
 {
 public:
-       MonitorSection (ARDOUR::Session*);
+       MonitorSection ();
        ~MonitorSection ();
 
        void set_session (ARDOUR::Session*);
@@ -55,7 +58,7 @@ public:
 
        PluginSelector* plugin_selector() { return _plugin_selector; }
 
-       Gtkmm2ext::ActionMap& my_actions() const { return myactions; }
+       void use_others_actions ();
 
 private:
        Gtk::HBox hpacker;
@@ -108,32 +111,10 @@ private:
        void map_state ();
 
        boost::shared_ptr<ARDOUR::MonitorProcessor> _monitor;
-       boost::shared_ptr<ARDOUR::Route> _route;
-
-       enum MonitorActions {
-               MonitorMono,
-               MonitorCutAll,
-               MonitorDimAll,
-               ToggleExclusiveSolo,
-               ToggleMuteOverridesSolo,
-               SoloUseInPlace,
-               SoloUseAFL,
-               SoloUsePFL,
-               ToggleMonitorProcessorBox
-       };
-
-       enum ChannelActions {
-               CutChannel,
-               DimChannel,
-               SoloChannel,
-               InvertChannel
-       };
 
-       static Glib::RefPtr<Gtk::ActionGroup> monitor_actions;
-       static void register_actions ();
-
-       static void action_proxy0 (enum MonitorActions);
-       static void action_proxy1 (enum ChannelActions, uint32_t);
+       Glib::RefPtr<Gtk::ActionGroup> monitor_actions;
+       Glib::RefPtr<Gtk::ActionGroup> solo_actions;
+       void register_actions ();
 
        void cut_channel (uint32_t);
        void dim_channel (uint32_t);
@@ -201,13 +182,17 @@ private:
        uint32_t count_processors ();
 
        void processors_changed (ARDOUR::RouteProcessorChange);
-       Glib::RefPtr<Gtk::Action> proctoggle;
+       Glib::RefPtr<Gtk::ToggleAction> proctoggle;
        bool _ui_initialized;
 
-       static Gtkmm2ext::ActionMap myactions;
-       static Gtkmm2ext::Bindings* bindings;
+       Gtkmm2ext::Bindings* bindings;
 
-       static void load_bindings ();
+       void load_bindings ();
        bool enter_handler (GdkEventCrossing*);
        bool leave_handler (GdkEventCrossing*);
+
+       void toggle_use_monitor_section ();
+       void drop_route ();
 };
+
+#endif /* __gtk2_ardour_monitor_section_h__ */