19 #ifndef __UT_Playback__
20 #define __UT_Playback__
58 MAINTAIN_PLAYBACK_SPEED = 0,
62 void setPlaybackMode(UT_PlaybackMode
mode);
65 {
return myPlayback; }
67 void setContinuousCook(
bool continuous);
69 {
return myContinuousCook; }
72 {
return myStopCount; }
75 { myRealtimeMode =
mode; }
78 {
return myRealtimeMode; }
81 { myStartRange =
start; myEndRange =
end; }
84 { start = myStartRange; end = myEndRange; }
86 bool isPlaybackReset();
87 bool isPlaying()
const {
return (myPlayback == FORWARD ||
88 myPlayback == REVERSE); }
91 void setCurrentFrame(
fpreal frame);
94 void resetAbsoluteFrame();
99 void setStopCallback(
void (*cb)(
void *),
void *
data);
105 { myLastFrameTime = time_sec; }
109 { mySamplesPerSec = samples_sec; }
118 bool canAdvancePlay();
122 int addFlipbookCallbacks(
UT_Function<
void()> started_cb =
nullptr,
126 void removeFlipbookCallbacks(
int id);
132 void registerContinuousCookNode(
int nodeid);
133 void unregisterContinuousCookNode(
int nodeid);
134 void getContinuousCookNodes(
UT_IntArray &nodeids)
const;
137 { myRealtimeBehaviour = behaviour; }
144 using CallbackPair = std::pair<UT_PlayAdvanceCB, void *>;
146 UT_PlaybackMode myPlayback;
147 bool myContinuousCook;
151 unsigned long myAbsoluteFrame;
159 RealtimeBehaviour myRealtimeBehaviour;
168 static int theNextFlipbookCallbackId;
170 void handleFlipbookStarted()
const;
171 void handleFlipbookFinished()
const;
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
bool isContinuousCook() const
void setPlaybackRange(fpreal start, fpreal end)
void getPlaybackRange(fpreal &start, fpreal &end) const
UT_PlaybackMode getPlaybackMode() const
void(* UT_PlayCallback)(void *, int, fpreal, fpreal)
void setRealtimeBehaviour(const RealtimeBehaviour behaviour)
void setInterceptMode(int mode)
void setLastFrameTime(fpreal time_sec)
void setRealtimeMode(bool mode)
int getInterceptMode() const
bool getRealtimeMode() const
fpreal getSamplesPerSec() const
SYSdeclareStaticObject(UT_API, UTplaybackObject)
std::function< T > UT_Function
fpreal getLastFrameTime() const
void setSamplesPerSec(fpreal samples_sec)
RealtimeBehaviour getRealtimeBehaviour() const
unsigned long getAbsoluteFrame()
bool(* UT_PlayAdvanceCB)(void *)