Fix MIDI controller feedback.

Make control surfaces menu less weird.


git-svn-id: svn://localhost/ardour2/branches/3.0@4625 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2009-02-18 20:53:54 +00:00
parent 22088e77a7
commit 1f9c3f34d9
6 changed files with 32 additions and 32 deletions

View file

@ -777,7 +777,6 @@ Session::change_midi_ports ()
* This resets the MTC code, the next quarter frame message that is sent will be
* the first one with the beginning of this cycle as the new start point.
*/
int
Session::send_full_time_code(nframes_t nframes)
{
@ -835,8 +834,7 @@ Session::send_full_time_code(nframes_t nframes)
return 0;
}
/** Sends MTC (quarter-frame) messages for this cycle.
/** Send MTC (quarter-frame) messages for this cycle.
* Must be called exactly once per cycle from the audio thread. Realtime safe.
* This function assumes the state of full SMPTE is sane, eg. the slave is
* expecting quarter frame messages and has the right frame of reference (any

View file

@ -89,6 +89,12 @@ JACK_MidiPort::cycle_start (nframes_t nframes)
}
}
void
JACK_MidiPort::cycle_end ()
{
flush(jack_port_get_buffer(_jack_output_port, _nframes_this_cycle));
}
int
JACK_MidiPort::write(byte * msg, size_t msglen, timestamp_t timestamp)
{
@ -102,8 +108,7 @@ JACK_MidiPort::write(byte * msg, size_t msglen, timestamp_t timestamp)
non_process_thread_fifo.get_write_vector (&vec);
if (vec.len[0] + vec.len[1] < 1) {
error << "no space in FIFO for non-process thread MIDI write"
<< endmsg;
error << "no space in FIFO for non-process thread MIDI write" << endmsg;
return 0;
}

View file

@ -53,6 +53,7 @@ public:
virtual int selectable() const { return -1; }
virtual void cycle_start(nframes_t nframes);
virtual void cycle_end();
static std::string typestring;

View file

@ -125,8 +125,7 @@ GenericMidiControlProtocol::_send_feedback ()
return;
}
// FIXME
//_port->write (buf, (int32_t) (end - buf));
_port->write (buf, (int32_t) (end - buf), 0);
}
bool

View file

@ -98,8 +98,6 @@ MIDIControllable::stop_learning ()
void
MIDIControllable::drop_external_control ()
{
cerr << "Dropping existing control using " << connections << " connections\n";
if (connections > 0) {
midi_sense_connection[0].disconnect ();
}
@ -286,8 +284,6 @@ MIDIControllable::bind_midi (channel_t chn, eventType ev, MIDI::byte additional)
default:
break;
}
cerr << "MIDI bound with " << connections << endl;
}
void
@ -303,7 +299,7 @@ MIDIControllable::send_feedback ()
msg[1] = control_additional;
msg[2] = (byte) (controllable.get_value() * 127.0f);
//_port.write (msg, 3);
_port.write (msg, 3, 0);
}
MIDI::byte*