#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;
}
}
- _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())) {
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;
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;
}
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());
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) {
_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));
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()) {