]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/function/autoplay/PointList.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / function / autoplay / PointList.java
diff --git a/tim/prune/function/autoplay/PointList.java b/tim/prune/function/autoplay/PointList.java
deleted file mode 100644 (file)
index 13ccf61..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-package tim.prune.function.autoplay;
-
-/**
- * Class to hold a list of points and hold a running position
- */
-public class PointList
-{
-       /** Array of milliseconds for each point */
-       private long[] _millis = null;
-       /** Array of indexes of corresponding points */
-       private int[]  _indexes = null;
-       /** Array index of current position */
-       private int    _currentItem = 0;
-       /** Max array index */
-       private int    _maxItem = 0;
-
-       /**
-        * Constructor
-        * @param inNumPoints number of points
-        */
-       public PointList(int inNumPoints)
-       {
-               _millis = new long[inNumPoints];
-               _indexes = new int[inNumPoints];
-               _currentItem = 0;
-               _maxItem = inNumPoints - 1;
-       }
-
-       /**
-        * Add a point to the array
-        * @param inMillis milliseconds since start
-        * @param inIndex point index
-        */
-       public void setPoint(long inMillis, int inIndex)
-       {
-               _millis[_currentItem] = inMillis;
-               _indexes[_currentItem] = inIndex;
-               _currentItem++;
-       }
-
-       /**
-        * Set the position using the current milliseconds
-        * @param inMillis milliseconds since start
-        */
-       public void set(long inMillis)
-       {
-               if (isFinished() || inMillis < _millis[_currentItem])
-               {
-                       // must be reset
-                       _currentItem = 0;
-               }
-               while (_currentItem < _maxItem && _millis[_currentItem + 1] < inMillis)
-               {
-                       _currentItem++;
-               }
-       }
-
-       /**
-        * Normalize the list to cover the requested number of seconds duration
-        * @param inSeconds length of autoplay sequence in seconds
-        */
-       public void normalize(int inSeconds)
-       {
-               if (_maxItem <= 0)
-               {
-                       return; // nothing to normalize
-               }
-               long currentDuration = _millis[_maxItem] - _millis[0];
-               if (currentDuration > 0L)
-               {
-                       double multFactor = inSeconds * 1000.0 / currentDuration;
-                       for (int i=0; i<=_maxItem; i++)
-                       {
-                               _millis[i] = (long) (_millis[i] * multFactor);
-                       }
-               }
-       }
-
-       /** @return the milliseconds of the current point */
-       public long getCurrentMilliseconds()
-       {
-               if (isAtStart() || isFinished()) {
-                       return 0L;
-               }
-               return _millis[_currentItem];
-       }
-
-       /** @return the index of the current point */
-       public int getCurrentPointIndex()
-       {
-               return _indexes[_currentItem];
-       }
-
-       /** @return true if we're on the first point */
-       public boolean isAtStart() {
-               return _currentItem == 0;
-       }
-
-       /** @return true if we're on the last point */
-       public boolean isFinished() {
-               return _currentItem >= _maxItem;
-       }
-
-       /**
-        * @param inCurrentMillis current time in milliseconds since start
-        * @return number of milliseconds to wait until next point is due
-        */
-       public long getMillisUntilNextPoint(long inCurrentMillis)
-       {
-               if (isFinished() || _millis[_currentItem+1] < _millis[_currentItem]) {
-                       return 0; // no next point
-               }
-               return _millis[_currentItem+1] - inCurrentMillis;
-       }
-}