From 5a654ebd99e984c237f7b398aa5fdd44737a1a71 Mon Sep 17 00:00:00 2001 From: Charlie Groves Date: Thu, 13 Mar 2008 01:27:04 +0000 Subject: [PATCH] Don't compound the problem of the timer going into the past by sticking the drift at 0 for 5 seconds git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@445 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/java/com/threerings/media/timer/CalibratingTimer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/media/timer/CalibratingTimer.java b/src/java/com/threerings/media/timer/CalibratingTimer.java index 64f9f139..17b38c2d 100644 --- a/src/java/com/threerings/media/timer/CalibratingTimer.java +++ b/src/java/com/threerings/media/timer/CalibratingTimer.java @@ -120,7 +120,12 @@ public abstract class CalibratingTimer + ", drift=" + drift + ", timerstamp=" + _driftTimerStamp + ", millistamp=" + _driftMilliStamp + ", current=" + current + "]"); } - if (drift > MAX_ALLOWED_DRIFT_RATIO || drift < MIN_ALLOWED_DRIFT_RATIO) { + if (elapsedTimer < 0) { + Log.warning("The timer has decided to live in the past, resetting drift[previousTimer=" + + _driftTimerStamp + ", currentTimer=" + current + ", previousMillis=" + + _driftMilliStamp + ", currentMillis=" + System.currentTimeMillis() + "]"); + _driftRatio = 1.0; + } else if (drift > MAX_ALLOWED_DRIFT_RATIO || drift < MIN_ALLOWED_DRIFT_RATIO) { Log.warning("Calibrating [drift=" + drift + "]"); _driftRatio = drift; if (Math.abs(drift - 1.0) > Math.abs(_maxDriftRatio - 1.0)) {