summaryrefslogtreecommitdiff
path: root/libs/surfaces/generic_midi/midifunction.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/generic_midi/midifunction.cc')
-rw-r--r--libs/surfaces/generic_midi/midifunction.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/surfaces/generic_midi/midifunction.cc b/libs/surfaces/generic_midi/midifunction.cc
index 302ed0b552..70e9337861 100644
--- a/libs/surfaces/generic_midi/midifunction.cc
+++ b/libs/surfaces/generic_midi/midifunction.cc
@@ -61,6 +61,11 @@ MIDIFunction::setup (GenericMidiControlProtocol& ui, const std::string& invokabl
_function = NextBank;
} else if (strcasecmp (_invokable_name.c_str(), "prev-bank") == 0) {
_function = PrevBank;
+ } else if (strcasecmp (_invokable_name.c_str(), "set-bank") == 0) {
+ if (_argument.empty()) {
+ return -1;
+ }
+ _function = SetBank;
} else if (strcasecmp (_invokable_name.c_str(), "select") == 0) {
if (_argument.empty()) {
return -1;
@@ -95,6 +100,14 @@ MIDIFunction::execute ()
_ui->prev_bank();
break;
+ case SetBank:
+ if (!_argument.empty()) {
+ uint32_t bank;
+ sscanf (_argument.c_str(), "%d", &bank);
+ _ui->set_current_bank (bank);
+ }
+ break;
+
case TransportStop:
_ui->transport_stop ();
break;