summaryrefslogtreecommitdiff
path: root/libs/surfaces/generic_midi/midifunction.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-29 21:31:14 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-29 21:31:14 +0000
commit77cc0f7cc84df5e242898cef0abb7d633de64d8c (patch)
tree71ec1c03dec23ac52949138cf8b5f7a1afb8e5ba /libs/surfaces/generic_midi/midifunction.cc
parente10d0339ccd3659e0de58db29131e528571bc8c4 (diff)
editors for control protocols (generalized); editor for Generic MIDI that allows choosing a MIDI binding map (or none); support banking in binding URLs, and other miscellany related to generic MIDI; save+restore JACK_MidiPort connection state (but cause a crash at shutdown time)
git-svn-id: svn://localhost/ardour2/branches/3.0@6411 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces/generic_midi/midifunction.cc')
-rw-r--r--libs/surfaces/generic_midi/midifunction.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/surfaces/generic_midi/midifunction.cc b/libs/surfaces/generic_midi/midifunction.cc
index 609aca3bbc..d6cbdb9a6e 100644
--- a/libs/surfaces/generic_midi/midifunction.cc
+++ b/libs/surfaces/generic_midi/midifunction.cc
@@ -21,7 +21,7 @@
#include "midi++/port.h"
#include "midifunction.h"
-#include "control_protocol/basic_ui.h"
+#include "generic_midi_control_protocol.h"
using namespace MIDI;
@@ -38,7 +38,7 @@ MIDIFunction::~MIDIFunction ()
}
int
-MIDIFunction::init (BasicUI& ui, const std::string& function_name, MIDI::byte* sysex_data, size_t sysex_sz)
+MIDIFunction::init (GenericMidiControlProtocol& ui, const std::string& function_name, MIDI::byte* sysex_data, size_t sysex_sz)
{
if (strcasecmp (function_name.c_str(), "transport-stop") == 0) {
_function = TransportStop;
@@ -56,6 +56,10 @@ MIDIFunction::init (BasicUI& ui, const std::string& function_name, MIDI::byte* s
_function = TransportRecordEnable;
} else if (strcasecmp (function_name.c_str(), "rec-disable") == 0) {
_function = TransportRecordDisable;
+ } else if (strcasecmp (function_name.c_str(), "next-bank") == 0) {
+ _function = NextBank;
+ } else if (strcasecmp (function_name.c_str(), "prev-bank") == 0) {
+ _function = PrevBank;
} else {
return -1;
}
@@ -75,6 +79,14 @@ void
MIDIFunction::execute ()
{
switch (_function) {
+ case NextBank:
+ _ui->next_bank();
+ break;
+
+ case PrevBank:
+ _ui->prev_bank();
+ break;
+
case TransportStop:
_ui->transport_stop ();
break;