next step of generic MIDI feedback fix - remove static _send_feedback from MIDI controllables
git-svn-id: svn://localhost/ardour2/trunk@1225 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
62c718f7f4
commit
1f4a82cb8e
@ -39,7 +39,7 @@ opts.AddOptions(
|
||||
BoolOption('LIBLO', 'Compile with support for liblo library', 1),
|
||||
BoolOption('NLS', 'Set to turn on i18n support', 1),
|
||||
PathOption('PREFIX', 'Set the install "prefix"', '/usr/local'),
|
||||
BoolOption('SURFACES', 'Build support for control surfaces', 0),
|
||||
BoolOption('SURFACES', 'Build support for control surfaces', 1),
|
||||
BoolOption('SYSLIBS', 'USE AT YOUR OWN RISK: CANCELS ALL SUPPORT FROM ARDOUR AUTHORS: Use existing system versions of various libraries instead of internal ones', 0),
|
||||
BoolOption('VERSIONED', 'Add revision information to ardour/gtk executable name inside the build directory', 0),
|
||||
BoolOption('VST', 'Compile with support for VST', 0),
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user