Repeat INSENSITIVE colors instead of relying on inheritance
[ardour.git] / libs / ardour / midi_track.cc
index 97ddb43f6f257d490f8853d80a0a8d52d82de0fd..f1344e7697640eac1d85cf604d8ada3f00a7f584 100644 (file)
@@ -54,7 +54,7 @@
 #include "ardour/session_playlists.h"
 #include "ardour/utils.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 namespace ARDOUR {
 class InterThreadInfo;
@@ -404,7 +404,7 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame
        _capture_filter.filter (bufs);
 
        if (_meter_point == MeterInput && ((_monitoring_control->monitoring_choice() & MonitorInput) || _diskstream->record_enabled())) {
-               _meter->run (bufs, start_frame, end_frame, nframes, true);
+               _meter->run (bufs, start_frame, end_frame, 1.0 /*speed()*/, nframes, true);
        }
 
 
@@ -444,12 +444,7 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame
        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);
 
@@ -706,6 +701,7 @@ MidiTrack::set_parameter_automation_state (Evoral::Parameter param, AutoState st
        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
@@ -762,6 +758,12 @@ MidiTrack::MidiControl::actually_set_value (double val, PBD::Controllable::Group
                        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);