From 5c1614ce7b8cc0ed5de1d44847e74af6b7638cba Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 28 Jul 2016 14:35:39 -0400 Subject: [PATCH] Attempted to simplify, very slightly. --- Storage/Disk/DigitalPhaseLockedLoop.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Storage/Disk/DigitalPhaseLockedLoop.cpp b/Storage/Disk/DigitalPhaseLockedLoop.cpp index 484a7bcdd..999e17b2d 100644 --- a/Storage/Disk/DigitalPhaseLockedLoop.cpp +++ b/Storage/Disk/DigitalPhaseLockedLoop.cpp @@ -26,19 +26,19 @@ DigitalPhaseLockedLoop::DigitalPhaseLockedLoop(int clocks_per_bit, int tolerance void DigitalPhaseLockedLoop::run_for_cycles(int number_of_cycles) { - // check whether this triggers any 0s _phase += number_of_cycles; - if(_delegate) + int windows_crossed = _phase / _window_length; + if(windows_crossed) { - while(_phase > _window_length) + // check whether this triggers any 0s, if anybody cares + if(_delegate) { - if(!_window_was_filled) _delegate->digital_phase_locked_loop_output_bit(0); - _window_was_filled = false; - _phase -= _window_length; + if(_window_was_filled) windows_crossed--; + for(int c = 0; c < windows_crossed; c++) + _delegate->digital_phase_locked_loop_output_bit(0); } - } - else - { + + _window_was_filled = false; _phase %= _window_length; } }