fix another semantically-significant statement buried in an assert() macro
[ardour.git] / libs / ardour / audio_track.cc
index b548b3a4448953ccf091a1474015f30b6c0b6f19..90439f46e907eadd5ff5e66e1f545ce4ba95cd31 100644 (file)
@@ -19,9 +19,9 @@
 
 #include <boost/scoped_array.hpp>
 
-#include "pbd/error.h"
-#include "pbd/enumwriter.h"
 #include "pbd/boost_debug.h"
+#include "pbd/enumwriter.h"
+#include "pbd/error.h"
 
 #include "evoral/Curve.hpp"
 
 #include "ardour/audio_diskstream.h"
 #include "ardour/audio_track.h"
 #include "ardour/audioplaylist.h"
-#include "ardour/audioregion.h"
-#include "ardour/audiosource.h"
 #include "ardour/buffer_set.h"
-#include "ardour/io_processor.h"
-#include "ardour/panner.h"
+#include "ardour/delivery.h"
 #include "ardour/meter.h"
 #include "ardour/playlist_factory.h"
-#include "ardour/plugin_insert.h"
-#include "ardour/port_insert.h"
 #include "ardour/processor.h"
+#include "ardour/region.h"
 #include "ardour/region_factory.h"
-#include "ardour/route_group_specialized.h"
 #include "ardour/session.h"
-#include "ardour/utils.h"
 #include "ardour/session_playlists.h"
-#include "ardour/delivery.h"
-#include "ardour/meter.h"
+#include "ardour/source.h"
+#include "ardour/utils.h"
+
 #include "i18n.h"
 
 using namespace std;
@@ -181,7 +176,7 @@ AudioTrack::deprecated_use_diskstream_connections ()
                        }
                }
 
-               _input->connect_ports_to_bundle (c, this);
+               _input->connect_ports_to_bundle (c, true, this);
 
        } else if ((prop = node.property ("inputs")) != 0) {
                if (_input->set_ports (prop->value())) {
@@ -315,7 +310,7 @@ AudioTrack::set_state_part_two ()
 int
 AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, int declick, bool& need_butler)
 {
-       Glib::RWLock::ReaderLock lm (_processor_lock, Glib::TRY_LOCK);
+       Glib::Threads::RWLock::ReaderLock lm (_processor_lock, Glib::Threads::TRY_LOCK);
 
        if (!lm.locked()) {
                return 0;
@@ -326,8 +321,6 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
        framepos_t transport_frame;
        boost::shared_ptr<AudioDiskstream> diskstream = audio_diskstream();
 
-       automation_snapshot (start_frame, false);
-
        if (n_outputs().n_total() == 0 && _processors.empty()) {
                return 0;
        }
@@ -490,7 +483,7 @@ AudioTrack::export_stuff (BufferSet& buffers, framepos_t start, framecnt_t nfram
        boost::scoped_array<Sample> mix_buffer (new Sample[nframes]);
        boost::shared_ptr<AudioDiskstream> diskstream = audio_diskstream();
 
-       Glib::RWLock::ReaderLock rlock (_processor_lock);
+       Glib::Threads::RWLock::ReaderLock rlock (_processor_lock);
 
        boost::shared_ptr<AudioPlaylist> apl = boost::dynamic_pointer_cast<AudioPlaylist>(diskstream->playlist());
 
@@ -564,7 +557,7 @@ AudioTrack::bounceable (boost::shared_ptr<Processor> endpoint, bool include_endp
                return true;
        }
 
-       Glib::RWLock::ReaderLock lm (_processor_lock);
+       Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
        uint32_t naudio = n_inputs().n_audio();
 
        for (ProcessorList::const_iterator r = _processors.begin(); r != _processors.end(); ++r) {
@@ -673,11 +666,11 @@ AudioTrack::freeze_me (InterThreadInfo& itt)
        _freeze_record.processor_info.clear ();
 
        {
-               Glib::RWLock::ReaderLock lm (_processor_lock);
+               Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
 
                for (ProcessorList::iterator r = _processors.begin(); r != _processors.end(); ++r) {
 
-                       if (!(*r)->does_routing()) {
+                       if (!(*r)->does_routing() && !boost::dynamic_pointer_cast<PeakMeter>(*r)) {
 
                                FreezeRecordProcessorInfo* frii  = new FreezeRecordProcessorInfo ((*r)->get_state(), (*r));
 
@@ -736,7 +729,7 @@ AudioTrack::unfreeze ()
                audio_diskstream()->use_playlist (_freeze_record.playlist);
 
                {
-                       Glib::RWLock::ReaderLock lm (_processor_lock); // should this be a write lock? jlc
+                       Glib::Threads::RWLock::ReaderLock lm (_processor_lock); // should this be a write lock? jlc
                        for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
                                for (vector<FreezeRecordProcessorInfo*>::iterator ii = _freeze_record.processor_info.begin(); ii != _freeze_record.processor_info.end(); ++ii) {
                                        if ((*ii)->id == (*i)->id()) {