X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fgeneric_midi%2Fmidifunction.cc;h=4d2b19fdfd9d563194fe6ddd52d010af110d2eaf;hb=291aec468fe4646aa1e355f2503d349555019e54;hp=b0dc95e4fc9caa00c9dd74a7884e626c6358f30f;hpb=7a30e63eaad66ded1c47f5cdb2e0f28c3b0a1d4a;p=ardour.git diff --git a/libs/surfaces/generic_midi/midifunction.cc b/libs/surfaces/generic_midi/midifunction.cc index b0dc95e4fc..4d2b19fdfd 100644 --- a/libs/surfaces/generic_midi/midifunction.cc +++ b/libs/surfaces/generic_midi/midifunction.cc @@ -1,6 +1,6 @@ /* Copyright (C) 2009 Paul Davis - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -23,7 +23,12 @@ #include "midifunction.h" #include "generic_midi_control_protocol.h" +#include "pbd/compose.h" + +#include "ardour/debug.h" + using namespace MIDI; +using namespace PBD; MIDIFunction::MIDIFunction (MIDI::Parser& p) : MIDIInvokable (p) @@ -53,6 +58,8 @@ MIDIFunction::setup (GenericMidiControlProtocol& ui, const std::string& invokabl _function = TransportEnd; } else if (strcasecmp (_invokable_name.c_str(), "loop-toggle") == 0) { _function = TransportLoopToggle; + } else if (strcasecmp (_invokable_name.c_str(), "toggle-rec-enable") == 0) { + _function = TransportRecordToggle; } else if (strcasecmp (_invokable_name.c_str(), "rec-enable") == 0) { _function = TransportRecordEnable; } else if (strcasecmp (_invokable_name.c_str(), "rec-disable") == 0) { @@ -94,10 +101,12 @@ MIDIFunction::execute () switch (_function) { case NextBank: _ui->next_bank(); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: next_bank\n"); break; case PrevBank: _ui->prev_bank(); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: prev_bank\n"); break; case SetBank: @@ -105,46 +114,61 @@ MIDIFunction::execute () uint32_t bank; sscanf (_argument.c_str(), "%d", &bank); _ui->set_current_bank (bank); + DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Function: set_current_bank = %1\n", (int) bank)); } break; case TransportStop: _ui->transport_stop (); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: transport_stop\n"); break; case TransportRoll: _ui->transport_play (); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: transport_play\n"); break; case TransportStart: _ui->goto_start (); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: goto_start\n"); break; case TransportZero: // need this in BasicUI + DEBUG_TRACE (DEBUG::GenericMidi, "Function: goto_zero-not implemented\n"); break; case TransportEnd: _ui->goto_end (); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: goto_end\n"); break; case TransportLoopToggle: _ui->loop_toggle (); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: loop_toggle\n"); + break; + + case TransportRecordToggle: + _ui->rec_enable_toggle (); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: toggle_record_enable\n"); break; case TransportRecordEnable: _ui->set_record_enable (true); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: set_record_enable = true\n"); break; case TransportRecordDisable: _ui->set_record_enable (false); + DEBUG_TRACE (DEBUG::GenericMidi, "Function: set_record_enable = false\n"); break; case Select: if (!_argument.empty()) { uint32_t rid; sscanf (_argument.c_str(), "%d", &rid); - _ui->SetRouteSelection (rid); + _ui->toggle_selection (rid, ARDOUR::PresentationInfo::Flag (ARDOUR::PresentationInfo::Route|ARDOUR::PresentationInfo::VCA)); + DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Function: SetRouteSelection = %1\n", rid)); } break; case TrackSetMute: @@ -165,6 +189,7 @@ MIDIFunction::execute () XMLNode& MIDIFunction::get_state () { + XMLNode* node = new XMLNode ("MIDIFunction"); return *node; }