summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/gui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-04-18 03:24:59 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-04-18 03:24:59 +0000
commit40750ba0bb6982ca94c8572f42365ef3d49623ab (patch)
tree55c400a401ef9d10c43e5b2a2e8e3b98c4710038 /libs/surfaces/mackie/gui.cc
parent6bd6f58dee3442cb3ab140be3966da2a07564040 (diff)
MCP:maybe functioning button binding stuff, plus save-to-disk-on-change (still needs naming interaction for new profile)
git-svn-id: svn://localhost/ardour2/branches/3.0@12000 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces/mackie/gui.cc')
-rw-r--r--libs/surfaces/mackie/gui.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/gui.cc b/libs/surfaces/mackie/gui.cc
index acb4779b7f..7bcd7681e1 100644
--- a/libs/surfaces/mackie/gui.cc
+++ b/libs/surfaces/mackie/gui.cc
@@ -361,6 +361,8 @@ MackieControlProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib
if (row) {
std::map<std::string,std::string>::iterator i = action_map.find (text);
+
+ cerr << "Changed to " << text << endl;
if (i == action_map.end()) {
return;
@@ -369,7 +371,39 @@ MackieControlProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (i->second.c_str());
if (act) {
+ /* update visible text, using string supplied by
+ available action model so that it matches and is found
+ within the model.
+ */
(*row).set_value (col.index(), text);
+
+ /* update the current DeviceProfile, using the full
+ * path
+ */
+
+ int modifier;
+
+ switch (col.index()) {
+ case 3:
+ modifier = MackieControlProtocol::MODIFIER_SHIFT;
+ break;
+ case 4:
+ modifier = MackieControlProtocol::MODIFIER_CONTROL;
+ break;
+ case 5:
+ modifier = MackieControlProtocol::MODIFIER_OPTION;
+ break;
+ case 6:
+ modifier = MackieControlProtocol::MODIFIER_CMDALT;
+ break;
+ case 7:
+ modifier = (MackieControlProtocol::MODIFIER_SHIFT|MackieControlProtocol::MODIFIER_CONTROL);
+ break;
+ default:
+ modifier = 0;
+ }
+
+ _cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, i->second);
}
}