From 0786ff15a005f6b56a93a5a9a3b486dde4cae725 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 25 Jun 2012 19:26:00 +0000 Subject: [PATCH] Patch from royvegard to add a set-bank midi function (#4949). git-svn-id: svn://localhost/ardour2/branches/3.0@12927 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/surfaces/generic_midi/midifunction.cc | 13 ++++++ libs/surfaces/generic_midi/midifunction.h | 1 + midi_maps/Korg_nanoKONTROL.map | 52 ++++++++-------------- 3 files changed, 32 insertions(+), 34 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; diff --git a/libs/surfaces/generic_midi/midifunction.h b/libs/surfaces/generic_midi/midifunction.h index 8b3a52df3c..8f0b0218d0 100644 --- a/libs/surfaces/generic_midi/midifunction.h +++ b/libs/surfaces/generic_midi/midifunction.h @@ -55,6 +55,7 @@ class MIDIFunction : public MIDIInvokable TransportRecordDisable, /* 1 argument functions: RID */ Select, + SetBank, /* 2 argument functions: RID, value */ TrackSetSolo, TrackSetMute, diff --git a/midi_maps/Korg_nanoKONTROL.map b/midi_maps/Korg_nanoKONTROL.map index 17a07f66b0..3acc56891b 100644 --- a/midi_maps/Korg_nanoKONTROL.map +++ b/midi_maps/Korg_nanoKONTROL.map @@ -2,44 +2,28 @@ - + - + - - - - - - - - - - - - - - - - - - + + + + + + - - - - - + @@ -69,14 +53,14 @@ - - - - - - - - - + + + + + + + + +