From 3466303b91cb4d3e9282bd66f9db7dc1c6cb615c Mon Sep 17 00:00:00 2001 From: Charlie Groves Date: Sat, 8 Mar 2008 00:35:55 +0000 Subject: [PATCH] Log what's actually going on in the calibration in one final attempt to figure out what's going wrong here before ripping it out and going back to business as usual git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@438 ed5b42cb-e716-0410-a449-f6a68f950b19 --- .../threerings/media/timer/CalibratingTimer.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/media/timer/CalibratingTimer.java b/src/java/com/threerings/media/timer/CalibratingTimer.java index 51bac5d2..fe388811 100644 --- a/src/java/com/threerings/media/timer/CalibratingTimer.java +++ b/src/java/com/threerings/media/timer/CalibratingTimer.java @@ -22,8 +22,10 @@ package com.threerings.media.timer; import com.samskivert.Log; +import com.samskivert.swing.RuntimeAdjust; import com.samskivert.util.Interval; import com.samskivert.util.RunQueue; +import com.threerings.media.MediaPrefs; /** * Calibrates timing values from a subclass' implementation of current against those returned by @@ -87,9 +89,15 @@ public abstract class CalibratingTimer /** Calculates the drift factor from the time elapsed from the last calibrate call. */ protected void calibrate () { - double elapsedTimer = (current() - _driftTimerStamp); + long current = current(); + double elapsedTimer = (current - _driftTimerStamp); double elapsedMillis = System.currentTimeMillis() - _driftMilliStamp; double drift = elapsedMillis / (elapsedTimer / _milliDivider); + if (_debugCalibrate.getValue()) { + Log.warning("Calibrating [timer=" + elapsedTimer + ", millis=" + elapsedMillis + + ", drift=" + drift + ", timerstamp=" + _driftTimerStamp + ", millistamp=" + + _driftMilliStamp + ", current=" + current + "]"); + } if (drift > 1.25 || drift < 0.75) { Log.warning("Calibrating [drift=" + drift + "]"); _driftRatio = drift; @@ -125,4 +133,9 @@ public abstract class CalibratingTimer /** Ratio of currentTimeMillis to timer millis. */ protected double _driftRatio = 1.0; + + /** A debug hook that toggles dumping of calibration values. */ + protected static RuntimeAdjust.BooleanAdjust _debugCalibrate = new RuntimeAdjust.BooleanAdjust( + "Toggles calibrations statistics", "narya.media.timer", + MediaPrefs.config, false); }