diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-06-10 18:10:07 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-06-10 18:10:07 +0000 |
commit | 6e9b9294e1e7a22f31eabbafa39cee5844b3449a (patch) | |
tree | 67285ddc9b3cb0fa656ed711cc7d78cff35075d9 /libs/ardour/route.cc | |
parent | ff26317d4f7904c071d7ecfb96fd84e71728f6d0 (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.cc | 34 |
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 */ } } |