Add a dedicated export method to MidiRegion
[ardour.git] / libs / ardour / audio_track.cc
index 2ed200d6f6c6fdaa71cbe5c909e54f762de94f2d..3a653a0efe675096b4d9d8e225c84451975f2061 100644 (file)
 #include "ardour/source.h"
 #include "ardour/utils.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace ARDOUR;
 using namespace PBD;
 
-AudioTrack::AudioTrack (Session& sess, string name, Route::Flag flag, TrackMode mode)
-       : Track (sess, name, flag, mode)
+AudioTrack::AudioTrack (Session& sess, string name, TrackMode mode)
+       : Track (sess, name, PresentationInfo::AudioTrack, mode)
 {
 }
 
@@ -375,16 +375,6 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
                return dret;
        }
 
-       if (_mute_control->list() && _mute_control->automation_playback()) {
-               bool        valid = false;
-               const float mute  = _mute_control->list()->rt_safe_eval(transport_frame, valid);
-               if (mute >= 0.5 && !muted()) {
-                       _mute_control->set_value_unchecked(1.0);  // mute
-               } else if (mute < 0.5 && muted()) {
-                       _mute_control->set_value_unchecked(0.0);  // unmute
-               }
-       }
-
        _silent = false;
        _amp->apply_gain_automation(false);
 
@@ -393,7 +383,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
        fill_buffers_with_input (bufs, _input, nframes);
 
        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);
        }
 
        if ((dret = diskstream->process (bufs, transport_frame, nframes, playback_distance, (monitoring_state() == MonitoringDisk))) != 0) {
@@ -404,12 +394,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
 
        process_output_buffers (bufs, start_frame, end_frame, nframes, declick, (!diskstream->record_enabled() && _session.transport_rolling()));
 
-       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);