File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package engine .time ;
2+
3+ public class LocalTimeline implements Timeline {
4+
5+ private int tickSize ;
6+ public Timeline anchor ;
7+ private long startTime ;
8+
9+
10+ /* Is it paused? */
11+ private boolean isPaused = false ;
12+
13+ /* Accumulates paused time */
14+ private long pauseTotalTime = 0 ;
15+
16+ /* Anchor for when timeline was paused */
17+ private long pausedTime = 0 ;
18+
19+
20+ public LocalTimeline (Timeline anchor , int tickSize ) {
21+ this .anchor = anchor ;
22+ this .tickSize = tickSize ;
23+ }
24+
25+ @ Override
26+ public void start () {
27+ this .startTime = anchor .getCurrentTime ();
28+ }
29+
30+ @ Override
31+ public void pause () {
32+ synchronized (this ) {
33+ if (!this .isPaused ) {
34+ this .pausedTime = anchor .getCurrentTime ();
35+ this .isPaused = true ;
36+ }
37+ }
38+
39+ }
40+
41+ @ Override
42+ public void unpause () {
43+ this .pausedTime += (anchor .getCurrentTime () - this .pausedTime );
44+ this .pausedTime = 0 ;
45+ this .isPaused = true ;
46+ }
47+
48+ @ Override
49+ public long getCurrentTime () {
50+ long elapsedTime = (this .anchor .getCurrentTime () - this .startTime ) - this .pauseTotalTime ;
51+ return elapsedTime / this .tickSize ;
52+ }
53+
54+ @ Override
55+ public int getTickSize () {
56+ return this .tickSize ;
57+ }
58+
59+ @ Override
60+ public void setTickSize (int tickSize ) {
61+ this .tickSize = tickSize ;
62+ }
63+
64+ }
Original file line number Diff line number Diff line change 1+ package engine .time ;
2+
3+ public interface Timeline {
4+
5+ /* Start Timeline */
6+ public void start ();
7+
8+ /* Pause Timeline */
9+ public void pause ();
10+
11+ /* Unpause Timeline */
12+ public void unpause ();
13+
14+ /* Get Current time */
15+ public long getCurrentTime ();
16+
17+ /* Get tick size */
18+ public int getTickSize ();
19+
20+ /* Set tick size */
21+ public void setTickSize (int tickSize );
22+
23+ }
You can’t perform that action at this time.
0 commit comments