Class TimelineEngine
- java.lang.Object
-
- org.pushingpixels.radiance.animation.api.TimelineEngine
-
class TimelineEngine extends java.lang.Object
The Radiance timeline engine. This is the main entry point to playTimeline
s andTimelineScenario
s. This class is for internal use only.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
TimelineEngine.FullObjectID
Identifies a main object and an optional secondary ID.(package private) class
TimelineEngine.RadianceAnimationThread
private class
TimelineEngine.TimelineCallbackThread
(package private) static class
TimelineEngine.TimelineOperationKind
-
Field Summary
Fields Modifier and Type Field Description (package private) TimelineEngine.RadianceAnimationThread
animatorThread
The timeline thread.private java.util.concurrent.BlockingQueue<java.lang.Runnable>
callbackQueue
private TimelineEngine.TimelineCallbackThread
callbackThread
static boolean
DEBUG_MODE
Debug mode indicator.private static TimelineEngine
instance
Single instance ofthis
class.(package private) long
lastIterationTimeStamp
(package private) static java.lang.Object
LOCK
private java.util.Set<TimelineScenario>
runningScenarios
private java.util.Set<Timeline>
runningTimelines
All currently running timelines.
-
Constructor Summary
Constructors Modifier Constructor Description private
TimelineEngine()
Simple constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
abortTimeline(Timeline timeline)
Cancels the specified timeline instance.private void
addTimeline(Timeline timeline)
Adds the specified timeline.private void
callbackCallTimelinePulse(Timeline timeline)
private void
callbackCallTimelineScenarioEnded(TimelineScenario timelineScenario)
private void
callbackCallTimelineStateChanged(Timeline timeline, Timeline.TimelineState oldState)
void
cancelAllTimelines()
Stops tracking of all timelines.private void
cancelTimeline(Timeline timeline)
Cancels the specified timeline instance.private void
endTimeline(Timeline timeline)
Ends the specified timeline instance.private TimelineEngine.RadianceAnimationThread
getAnimatorThread()
Returns an instance of the animator thread.private TimelineEngine.TimelineCallbackThread
getCallbackThread()
Returns an instance of the callback thread.static TimelineEngine
getInstance()
Gets singleton instance.private Timeline
getRunningTimeline(Timeline timeline)
Returns an existing running timeline that matches the specified parameters.(package private) void
play(Timeline timeline, boolean reset, long msToSkip)
(package private) void
playLoop(Timeline timeline, long msToSkip)
(package private) void
playReverse(Timeline timeline, boolean reset, long msToSkip)
(package private) void
playScenario(TimelineScenario scenario)
private void
resumeTimeline(Timeline timeline)
Resume the specified timeline instance.(package private) void
runTimelineOperation(Timeline timeline, TimelineEngine.TimelineOperationKind operationKind, java.lang.Runnable operationRunnable)
(package private) void
runTimelineScenario(java.lang.Runnable timelineScenarioRunnable)
private void
suspendTimeline(Timeline timeline)
Suspends the specified timeline instance.private void
updateAndEnforceTimelinePosition(Timeline timeline)
(package private) void
updateTimelines()
Updates all timelines that are currently registered withthis
tracker.
-
-
-
Field Detail
-
DEBUG_MODE
public static boolean DEBUG_MODE
Debug mode indicator. Set totrue
to print trace messages to console during development.
-
instance
private static TimelineEngine instance
Single instance ofthis
class.
-
runningTimelines
private java.util.Set<Timeline> runningTimelines
All currently running timelines.
-
runningScenarios
private java.util.Set<TimelineScenario> runningScenarios
-
lastIterationTimeStamp
long lastIterationTimeStamp
-
animatorThread
TimelineEngine.RadianceAnimationThread animatorThread
The timeline thread.
-
callbackQueue
private java.util.concurrent.BlockingQueue<java.lang.Runnable> callbackQueue
-
callbackThread
private TimelineEngine.TimelineCallbackThread callbackThread
-
LOCK
static final java.lang.Object LOCK
-
-
Constructor Detail
-
TimelineEngine
private TimelineEngine()
Simple constructor. Defined private for singleton.- See Also:
getInstance()
-
-
Method Detail
-
getInstance
public static TimelineEngine getInstance()
Gets singleton instance.- Returns:
- Singleton instance.
-
updateTimelines
void updateTimelines()
Updates all timelines that are currently registered withthis
tracker.
-
callbackCallTimelineStateChanged
private void callbackCallTimelineStateChanged(Timeline timeline, Timeline.TimelineState oldState)
-
callbackCallTimelinePulse
private void callbackCallTimelinePulse(Timeline timeline)
-
callbackCallTimelineScenarioEnded
private void callbackCallTimelineScenarioEnded(TimelineScenario timelineScenario)
-
getRunningTimeline
private Timeline getRunningTimeline(Timeline timeline)
Returns an existing running timeline that matches the specified parameters.- Parameters:
timeline
- Timeline.- Returns:
- An existing running timeline that matches the specified parameters.
-
addTimeline
private void addTimeline(Timeline timeline)
Adds the specified timeline.- Parameters:
timeline
- Timeline to add.
-
play
void play(Timeline timeline, boolean reset, long msToSkip)
-
playScenario
void playScenario(TimelineScenario scenario)
-
playReverse
void playReverse(Timeline timeline, boolean reset, long msToSkip)
-
playLoop
void playLoop(Timeline timeline, long msToSkip)
-
cancelAllTimelines
public void cancelAllTimelines()
Stops tracking of all timelines. Note that this function does not stop the timeline engine thread (animatorThread
) and the timeline callback thread (callbackThread
).
-
getAnimatorThread
private TimelineEngine.RadianceAnimationThread getAnimatorThread()
Returns an instance of the animator thread.- Returns:
- The animator thread.
-
getCallbackThread
private TimelineEngine.TimelineCallbackThread getCallbackThread()
Returns an instance of the callback thread.- Returns:
- The animator thread.
-
cancelTimeline
private void cancelTimeline(Timeline timeline)
Cancels the specified timeline instance.- Parameters:
timeline
- Timeline to cancel.
-
endTimeline
private void endTimeline(Timeline timeline)
Ends the specified timeline instance.- Parameters:
timeline
- Timeline to end.
-
abortTimeline
private void abortTimeline(Timeline timeline)
Cancels the specified timeline instance.- Parameters:
timeline
- Timeline to cancel.
-
suspendTimeline
private void suspendTimeline(Timeline timeline)
Suspends the specified timeline instance.- Parameters:
timeline
- Timeline to suspend.
-
resumeTimeline
private void resumeTimeline(Timeline timeline)
Resume the specified timeline instance.- Parameters:
timeline
- Timeline to resume.
-
runTimelineOperation
void runTimelineOperation(Timeline timeline, TimelineEngine.TimelineOperationKind operationKind, java.lang.Runnable operationRunnable)
-
runTimelineScenario
void runTimelineScenario(java.lang.Runnable timelineScenarioRunnable)
-
updateAndEnforceTimelinePosition
private void updateAndEnforceTimelinePosition(Timeline timeline)
-
-