/* * Copyright (c) 2010-2016, Sikuli.org, sikulix.com * Released under the MIT License. * */ package org.sikuli.basics; import java.util.Date; public class AnimatorPulse implements Animator { protected float _v1, _v2; protected long _interval, _totalMS; protected boolean _running; protected long _begin_time = -1; public AnimatorPulse(float v1, float v2, long interval, long totalMS) { _v1 = v1; _v2 = v2; _interval = interval; _totalMS = totalMS; _running = true; } @Override public float step() { if (_begin_time == -1) { _begin_time = (new Date()).getTime(); return _v1; } long now = (new Date()).getTime(); long delta = now - _begin_time; if (delta >= _totalMS) { _running = false; } if ((delta / _interval) % 2 == 0) { return _v1; } else { return _v2; } } @Override public boolean running() { return _running; } }