diff options
Diffstat (limited to 'libs/surfaces/generic_midi/midifunction.cc')
-rw-r--r-- | libs/surfaces/generic_midi/midifunction.cc | 13 |
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; |