diff options
author | Robin Gareus <robin@gareus.org> | 2020-05-04 21:51:53 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-05-04 21:51:53 +0200 |
commit | 4508d5bab195290473f54b6e38f3293d35eb79fb (patch) | |
tree | e87741290e783f19eb51e53a6c36bd154f554666 /libs/ardour/disk_reader.cc | |
parent | a6f95b21fc5e4c0b15ebdbcf16bf033009a0917f (diff) |
Set de-click reason monitor vs. start/stop.
Previously use-monitor-fades was unused in A6, and transition
between monitoring states used the use-transport-fades preference.
Diffstat (limited to 'libs/ardour/disk_reader.cc')
-rw-r--r-- | libs/ardour/disk_reader.cc | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc index 509808c1e7..4f1f518381 100644 --- a/libs/ardour/disk_reader.cc +++ b/libs/ardour/disk_reader.cc @@ -63,6 +63,7 @@ DiskReader::DiskReader (Session& s, string const& str, DiskIOProcessor::Flag f) , run_must_resolve (false) , _declick_amp (s.nominal_sample_rate ()) , _declick_offs (0) + , _declick_enabled (false) { file_sample[DataType::AUDIO] = 0; file_sample[DataType::MIDI] = 0; @@ -284,7 +285,16 @@ DiskReader::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp const gain_t target_gain = ((speed == 0.0) || ((ms & MonitoringDisk) == 0)) ? 0.0 : 1.0; bool declick_out = (_declick_amp.gain () != target_gain) && target_gain == 0.0; - if (!_session.cfg ()->get_use_transport_fades () || (_session.exporting () && !_session.realtime_export ())) { + if (declick_out && _declick_amp.gain () == GAIN_COEFF_UNITY) { + /* beginning a de-click, set de-click reason */ + if (speed == 0) { + _declick_enabled = _session.cfg ()->get_use_transport_fades (); + } else { + _declick_enabled = _session.cfg ()->get_use_monitor_fades (); + } + } + + if (!_declick_enabled || (_session.exporting () && !_session.realtime_export ())) { /* no transport fades or exporting - no declick out logic */ if (!midi_only) { @@ -505,10 +515,10 @@ midi: bool DiskReader::declick_in_progress () const { - if (!_session.cfg ()->get_use_transport_fades () || (_session.exporting () && !_session.realtime_export ())) { + if (!_declick_enabled || (_session.exporting () && !_session.realtime_export ())) { return false; } - return (_declick_amp.gain () != 0); // declick-out + return _declick_amp.gain () != 0; // declick-out } void |