, _meter_type (MeterPeak)
, _denormal_protection (false)
, _recordable (true)
- , _silent (false)
, _declickable (false)
, _have_internal_generator (false)
, _default_type (default_type)
void
Route::passthru (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sample, pframes_t nframes, int declick, bool gain_automation_ok, bool run_disk_reader)
{
- _silent = false;
if (is_monitor() && _session.listening() && !_session.is_auditioning()) {
const samplepos_t now = _session.transport_sample ();
- if (!_silent) {
+ _output->silence (nframes);
- _output->silence (nframes);
+ // update owned automated controllables
+ automation_run (now, nframes);
- // update owned automated controllables
- automation_run (now, nframes);
-
- for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
- boost::shared_ptr<PluginInsert> pi;
-
- if (!_active && (pi = boost::dynamic_pointer_cast<PluginInsert> (*i)) != 0) {
- /* evaluate automated automation controls */
- pi->automation_run (now, nframes);
- /* skip plugins, they don't need anything when we're not active */
- continue;
- }
+ for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
+ boost::shared_ptr<PluginInsert> pi;
- (*i)->silence (nframes, now);
+ if (!_active && (pi = boost::dynamic_pointer_cast<PluginInsert> (*i)) != 0) {
+ /* evaluate automated automation controls */
+ pi->automation_run (now, nframes);
+ /* skip plugins, they don't need anything when we're not active */
+ continue;
}
- if (nframes == _session.get_block_size()) {
- // _silent = true;
- }
+ (*i)->silence (nframes, now);
}
}
return 0;
}
- _silent = false;
-
BufferSet& bufs = _session.get_route_buffers (n_process_buffers ());
fill_buffers_with_input (bufs, _input, nframes);