summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/mackie')
-rw-r--r--libs/surfaces/mackie/gui.cc13
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h5
2 files changed, 18 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/gui.cc b/libs/surfaces/mackie/gui.cc
index 61ca6504cb..096543e112 100644
--- a/libs/surfaces/mackie/gui.cc
+++ b/libs/surfaces/mackie/gui.cc
@@ -915,3 +915,16 @@ MackieControlProtocolGUI::active_port_changed (Gtk::ComboBox* combo, boost::weak
}
}
}
+
+/* special case: MackieControlProtocol object method that requires GUI headers */
+
+void
+MackieControlProtocol::gui_invoke (string const& action_name)
+{
+ Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (action_name.c_str());
+ if (act) {
+ act->activate ();
+ } else {
+ std::cerr << "no such action: " << action_name << std::endl;
+ }
+}
diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h
index 61d5bf3811..09654230d6 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.h
+++ b/libs/surfaces/mackie/mackie_control_protocol.h
@@ -388,6 +388,11 @@ class MackieControlProtocol
int set_device_info (const std::string& device_name);
void update_configuration_state ();
+ /* accepts an Action name from the application GUI definitions, and
+ invokes it
+ */
+ void gui_invoke (std::string const &);
+
/* MIDI port connection management */
PBD::ScopedConnection port_connection;