summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-06-10 18:10:07 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-06-10 18:10:07 +0000
commit6e9b9294e1e7a22f31eabbafa39cee5844b3449a (patch)
tree67285ddc9b3cb0fa656ed711cc7d78cff35075d9 /libs/ardour/route.cc
parentff26317d4f7904c071d7ecfb96fd84e71728f6d0 (diff)
nick m's fix for markers etc ; several tweaks for mute/solo ; rename run_in_place() as run()
git-svn-id: svn://localhost/ardour2/branches/3.0@5155 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc34
1 files changed, 25 insertions, 9 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index dd0c8579ff..e7d68c4884 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -383,6 +383,19 @@ Route::process_output_buffers (BufferSet& bufs,
}
}
}
+
+ } else {
+
+ if (_denormal_protection || Config->get_denormal_protection()) {
+
+ for (BufferSet::audio_iterator i = bufs.audio_begin(); i != bufs.audio_end(); ++i) {
+ Sample* const sp = i->data();
+ for (nframes_t nx = 0; nx < nframes; ++nx) {
+ sp[nx] += 1.0e-27f;
+ }
+ }
+
+ }
}
/* -------------------------------------------------------------------------------------------
@@ -394,7 +407,7 @@ Route::process_output_buffers (BufferSet& bufs,
if (rm.locked()) {
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
bufs.set_count (ChanCount::max(bufs.count(), (*i)->input_streams()));
- (*i)->run_in_place (bufs, start_frame, end_frame, nframes);
+ (*i)->run (bufs, start_frame, end_frame, nframes);
bufs.set_count (ChanCount::max(bufs.count(), (*i)->output_streams()));
}
@@ -1471,11 +1484,11 @@ Route::_set_state (const XMLNode& node, bool call_base)
}
if ((prop = node.property (X_("phase-invert"))) != 0) {
- set_phase_invert (prop->value()=="yes"?true:false, this);
+ set_phase_invert (prop->value()=="yes"?true:false);
}
if ((prop = node.property (X_("denormal-protection"))) != 0) {
- set_denormal_protection (prop->value()=="yes"?true:false, this);
+ set_denormal_protection (prop->value()=="yes"?true:false);
}
if ((prop = node.property (X_("active"))) != 0) {
@@ -1589,7 +1602,10 @@ Route::_set_state (const XMLNode& node, bool call_base)
sscanf (prop->value().c_str(), "%d", &x);
set_remote_control_id (x);
}
- }
+
+ } else if (child->name() == X_("MuteMaster")) {
+ _mute_master->set_state (*child);
+ }
}
if ((prop = node.property (X_("mix-group"))) != 0) {
@@ -2414,11 +2430,11 @@ Route::send_for (boost::shared_ptr<const IO> target) const
}
void
-Route::set_phase_invert (bool yn, void *src)
+Route::set_phase_invert (bool yn)
{
if (_phase_invert != yn) {
- _phase_invert = yn;
- // phase_invert_changed (src); /* EMIT SIGNAL */
+ _phase_invert = 0xffff; // XXX all channels
+ phase_invert_changed (); /* EMIT SIGNAL */
}
}
@@ -2429,11 +2445,11 @@ Route::phase_invert () const
}
void
-Route::set_denormal_protection (bool yn, void *src)
+Route::set_denormal_protection (bool yn)
{
if (_denormal_protection != yn) {
_denormal_protection = yn;
- // denormal_protection_changed (src); /* EMIT SIGNAL */
+ denormal_protection_changed (); /* EMIT SIGNAL */
}
}