#include "ardour/session_playlists.h"
#include "ardour/utils.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
namespace ARDOUR {
class InterThreadInfo;
{
const MidiBuffer& buf = bufs.get_midi(0);
for (MidiBuffer::const_iterator e = buf.begin(); e != buf.end(); ++e) {
- const Evoral::MIDIEvent<framepos_t>& ev = *e;
+ const Evoral::Event<framepos_t>& ev = *e;
const Evoral::Parameter param = midi_parameter(ev.buffer(), ev.size());
const boost::shared_ptr<Evoral::Control> control = this->control(param);
if (control) {
process_output_buffers (bufs, start_frame, end_frame, nframes,
declick, (!diskstream->record_enabled() && !_session.transport_stopped()));
- for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
- boost::shared_ptr<Delivery> d = boost::dynamic_pointer_cast<Delivery> (*i);
- if (d) {
- d->flush_buffers (nframes);
- }
- }
+ flush_processor_buffers_locked (nframes);
need_butler = diskstream->commit (playback_distance);
for (MidiBuffer::const_iterator e = mb->begin(); e != mb->end(); ++e) {
- const Evoral::MIDIEvent<framepos_t> ev(*e, false);
+ const Evoral::Event<framepos_t> ev(*e, false);
/* note on, since for step edit, note length is determined
elsewhere
if (ev.is_note_on()) {
/* we don't care about the time for this purpose */
- _step_edit_ring_buffer.write (0, ev.type(), ev.size(), ev.buffer());
+ _step_edit_ring_buffer.write (0, ev.event_type(), ev.size(), ev.buffer());
}
}
}
cerr << "WARNING: Ignoring illegal immediate MIDI event" << endl;
return false;
}
- const uint32_t type = midi_parameter_type(buf[0]);
- return (_immediate_events.write (0, type, size, buf) == size);
+ return (_immediate_events.write (0, Evoral::MIDI_EVENT, size, buf) == size);
}
void
case MidiPgmChangeAutomation:
case MidiPitchBenderAutomation:
case MidiChannelPressureAutomation:
+ case MidiNotePressureAutomation:
case MidiSystemExclusiveAutomation:
/* The track control for MIDI parameters is for immediate events to act
as a control surface, write/touch for them is not currently
ev[1] = int(val);
break;
+ case MidiNotePressureAutomation:
+ ev[0] += MIDI_CMD_NOTE_PRESSURE;
+ ev[1] = parameter.id();
+ ev[2] = int(val);
+ break;
+
case MidiPitchBenderAutomation:
ev[0] += MIDI_CMD_BENDER;
ev[1] = 0x7F & int(val);