Fix audible blibs due to inconsistent monitor state -- #8275

It is possible that Route::monitoring_state() returns
  (MonitoringDisk | MonitorSilence)

This lead to various cases where there were is a direct comparison
(ms == MonitoringDisk). DiskReader::run tests for MonitoringDisk
to check if the buffer needs to be zeroed while locating.

Likewise Route::process_output_buffers() also explicitly tests
for both MonitoringDisk and MonitoringDisk.

The issue was likely introduced in fbe8075117 (although
it may have been possible in earlier version when using hardware
monitoring as well).
This commit is contained in:
Robin Gareus 2020-07-07 04:45:56 +02:00
parent 5209fbd6fe
commit 308d138144
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 3 additions and 3 deletions

View File

@ -463,7 +463,7 @@ enum MonitorChoice {
};
enum MonitorState {
MonitoringSilence = 0x1,
MonitoringSilence = 0x0,
MonitoringInput = 0x2,
MonitoringDisk = 0x4,
MonitoringCue = 0x6,

View File

@ -6152,10 +6152,10 @@ Route::monitoring_state () const
if (m != MonitorAuto) {
MonitorState ms ((MonitorState) 0);
MonitorState ms = MonitoringSilence;
if (m & MonitorInput) {
ms = MonitoringInput;
ms = MonitorState (ms | MonitoringInput);
}
if (m & MonitorDisk) {