diff options
Diffstat (limited to 'libs/surfaces/generic_midi')
-rw-r--r-- | libs/surfaces/generic_midi/SConscript | 3 | ||||
-rw-r--r-- | libs/surfaces/generic_midi/generic_midi_control_protocol.cc | 2 | ||||
-rw-r--r-- | libs/surfaces/generic_midi/midicontrollable.cc | 13 | ||||
-rw-r--r-- | libs/surfaces/generic_midi/midicontrollable.h | 2 |
4 files changed, 12 insertions, 8 deletions
diff --git a/libs/surfaces/generic_midi/SConscript b/libs/surfaces/generic_midi/SConscript index f9c2de08f8..6c76e05464 100644 --- a/libs/surfaces/generic_midi/SConscript +++ b/libs/surfaces/generic_midi/SConscript @@ -34,6 +34,7 @@ genericmidi.Append(CXXFLAGS="-DLOCALEDIR=\\\""+final_prefix+"/share/locale\\\"") genericmidi.Merge ([ libraries['ardour'], libraries['ardour_cp'], + libraries['sndfile-ardour'], libraries['midi++2'], libraries['pbd'], libraries['sigc2'], @@ -50,7 +51,7 @@ Default(libardour_genericmidi) if env['NLS']: i18n (genericmidi, genericmidi_files, env) -env.Alias('install', env.Install(os.path.join(install_prefix, 'lib/ardour2/surfaces'), libardour_genericmidi)) +env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2', 'surfaces'), libardour_genericmidi)) env.Alias('tarball', env.Distribute (env['DISTTREE'], [ 'SConscript' ] + diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc index 03dbfb353c..0256d5c359 100644 --- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc +++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc @@ -234,7 +234,7 @@ GenericMidiControlProtocol::set_state (const XMLNode& node) controllables.clear (); - nlist = node.children(); + nlist = node.children(); // "controls" if (nlist.empty()) { return 0; diff --git a/libs/surfaces/generic_midi/midicontrollable.cc b/libs/surfaces/generic_midi/midicontrollable.cc index 6dc9bde8ad..75b5699f18 100644 --- a/libs/surfaces/generic_midi/midicontrollable.cc +++ b/libs/surfaces/generic_midi/midicontrollable.cc @@ -32,8 +32,6 @@ using namespace MIDI; using namespace PBD; using namespace ARDOUR; -bool MIDIControllable::_send_feedback = false; - MIDIControllable::MIDIControllable (Port& p, Controllable& c, bool is_bistate) : controllable (c), _port (p), bistate (is_bistate) { @@ -288,7 +286,7 @@ MIDIControllable::send_feedback () { byte msg[3]; - if (setting || !_send_feedback || control_type == none) { + if (setting || !feedback || control_type == none) { return; } @@ -302,7 +300,7 @@ MIDIControllable::send_feedback () MIDI::byte* MIDIControllable::write_feedback (MIDI::byte* buf, int32_t& bufsize, bool force) { - if (control_type != none &&_send_feedback && bufsize > 2) { + if (control_type != none && feedback && bufsize > 2) { MIDI::byte gm = (MIDI::byte) (controllable.get_value() * 127.0); @@ -345,6 +343,12 @@ MIDIControllable::set_state (const XMLNode& node) return -1; } + if ((prop = node.property ("feedback")) != 0) { + feedback = (prop->value() == "yes"); + } else { + feedback = true; // default + } + bind_midi (control_channel, control_type, control_additional); return 0; @@ -362,6 +366,7 @@ MIDIControllable::get_state () node.add_property ("channel", buf); snprintf (buf, sizeof(buf), "0x%x", (int) control_additional); node.add_property ("additional", buf); + node.add_property ("feedback", (feedback ? "yes" : "no")); return node; } diff --git a/libs/surfaces/generic_midi/midicontrollable.h b/libs/surfaces/generic_midi/midicontrollable.h index ab15f9f4ab..8b63172916 100644 --- a/libs/surfaces/generic_midi/midicontrollable.h +++ b/libs/surfaces/generic_midi/midicontrollable.h @@ -80,8 +80,6 @@ class MIDIControllable : public Stateful std::string _control_description; bool feedback; - static bool _send_feedback; - void midi_receiver (MIDI::Parser &p, MIDI::byte *, size_t); void midi_sense_note (MIDI::Parser &, MIDI::EventTwoBytes *, bool is_on); void midi_sense_note_on (MIDI::Parser &p, MIDI::EventTwoBytes *tb); |