9 #ifndef lgrPlaybackDriver_H_
10 #define lgrPlaybackDriver_H_
16 #include <vlutil/vlFilename.h>
23 class DtMessagePipeline;
24 class DtLgrSystemDriver;
25 class DtLgrPlaybackCommandFactory;
26 class DtLgrPlaybackInterface;
27 class DtLgrEntityTracker;
28 class DtLgrPlaybackMediaToWindow;
29 class DtLgrPlaybackMediaToStream;
30 class DtLgrMediaPipelineBuilder;
48 virtual
bool getPipeline();
49 virtual
bool hasPipeline() const;
50 virtual
bool releasePipeline();
54 virtual
void setUnsavedFile(const
DtString& filename,
bool selectAll);
58 virtual
void openVirtualFile(const
DtString& actualFileName, const
DtString& desiredName,
59 bool checkMediaFile=false);
62 virtual
void configurePipeline();
65 virtual
bool isFileSaved() const;
68 virtual
bool isFileOpen() const;
71 virtual
bool isPlaying() const;
74 virtual
bool isStopped() const;
77 virtual
bool isPaused() const;
80 virtual
bool isFileIncomplete() const;
83 virtual
double playbackSpeed() const;
86 virtual
bool skippingPlayback() const;
89 virtual
double skippingPlaybackThreshold() const;
92 virtual
bool skippingPlaybackInteractions() const;
110 virtual const
DtString& currentFilename() const;
114 virtual const
DtString& savedFilename() const;
117 virtual
bool loopAtEnd() const;
120 virtual
bool playOnLoad() const;
123 virtual
bool fileFormatCurrent() const;
126 virtual
int fileVersion() const;
129 virtual
bool backupOnSave() const;
135 virtual
void addTemporaryTrackedEntity(const
DtString& name);
138 virtual
double packetViewInterval() const;
141 virtual
double followingInterval() const;
144 virtual
double followingExportInterval() const;
147 virtual const
DtString& streamPipeline() const;
150 virtual const
DtString& windowPipeline() const;
153 virtual const
DtString& streamConfiguration() const;
156 virtual const
DtString& windowConfiguration() const;
159 virtual
double mediaSpeedFactor() const;
165 virtual
bool mediaPlayInWindowByDefault() const;
168 virtual
bool mediaPlayToStreamByDefault() const;
171 virtual const
DtString& mediaPlayStreamHost() const;
174 virtual
int mediaPlayStreamPort() const;
177 virtual
void stopAllThreads();
185 bool prepareDriverForOpen();
189 virtual
void tickStopPlayback();
190 virtual
void tickNormalPlayback();
191 virtual
void tickPausePlayback();
192 virtual
void tickSkippingPlayback();
193 virtual
void tickExtendedStopPlayback();
197 virtual
bool doSwapInFile(const
DtString& filename,
bool selectAll);
199 virtual
bool doPlay();
200 virtual
bool doStop();
201 virtual
bool doPause();
202 virtual
bool doUnpause();
203 virtual
bool doPlaybackSpeedChange(
double speed);
206 virtual
bool doRecoverLastPacket();
209 virtual
void buildMediaPipelines(const
DtString& filename);
212 virtual
void createMediaPipelineOperations(const
DtString& filename);
216 virtual
bool doOpenFile(
DtString filename,
bool checkMediaFile=false );
221 virtual
bool doCloseFile(
bool resetTimeStatus);
224 void sendFileInputChangedResponses(const
DtString& filename);
228 virtual
bool writeDescriptionToFile(const
DtString& filename,
229 const
DtString& description, const
bool writeDesc);
232 virtual
bool openFileInput(const
DtString& filename,
DtString& failureReason);
235 virtual
void closeFileInput(
bool clearHistory);
238 virtual
void setFileHistoryCount(
int count);
241 virtual
void addFileToHistory(const
DtString& filename);
244 virtual
void clearFileHistory();
248 virtual
void createWindowMediaPipelineOperation(const
DtString& pipelinConfiguration,
253 virtual
void createStreamMediaPipelineOperation(const
DtString& pipelinConfiguration,
257 virtual
void startMediaThreads();
260 virtual
void stopMediaThreads();
323 bool myPlayOnLoadFlag;
324 int mySendPlayCommandAfterTick;
325 bool myWindowExposed;
333 bool mySkippingPlayback;
334 double mySkippingPlaybackThreshold;
335 bool mySkippingPlaybackInteractions;
337 bool myTimeHasExtended;
338 DtTime myExtendedStopTimeout;
339 double myPacketViewInterval;
340 double myFollowingInterval;
341 double myFollowingExportInterval;
346 bool myUpdateDescription;
354 PlaybackMediaToWindowSet myPlaybackToWindowPipelines;
355 PlaybackMediaToStreamSet myPlaybackToStreamPipelines;
356 DtFilename myPlayInWindowFile;
357 DtFilename myPlayToStreamFile;
359 double myMediaSpeedFactor;
360 bool myMediaPlayInWindowByDefault;
361 bool myMediaPlayToStreamByDefault;
365 unsigned int myFileHistoryCount;
366 static const
int theDefaultFileHistoryCount = 1;
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:110
The command type structure.
Definition: lgrCommand.h:29
A clock which provides time steps via a time provider and with optional scaling.
Definition: lgrClock.h:184
This class provides the base interface for DtLgrCommandHandler.
Definition: lgrDriver.h:35
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
Factory for creating playback-related commands and responses.
Definition: lgrPlaybackCommandFactory.h:23
Relative Time, an elapsed duration of time, no implied measurement, could be seconds/cycles or ticks ...
Definition: absoluteTime.h:28
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
The class responsible for interfacing with the logger playback functionality.
Definition: lgrPlaybackInterface.h:35
DtLgrPlaybackInterface Interface
Definition: lgrPlaybackDriver.h:41
std::set< DtLgrPlaybackMediaToStream * > PlaybackMediaToStreamSet
Definition: lgrPlaybackDriver.h:308
The class responsible for controlling the logger playback functionality.
Definition: lgrPlaybackDriver.h:36
std::set< DtLgrPlaybackMediaToWindow * > PlaybackMediaToWindowSet
Definition: lgrPlaybackDriver.h:307
/brief Base class for defining command operations that run in a separate thread.
Definition: lgrCommandThread.h:26
DtLgrPlaybackCommandFactory Factory
Definition: lgrPlaybackDriver.h:40
Contains MAKLogger::DtTimeProvider and MAKLogger::DtWallClockTimeProvider and MAKLogger::DtLgrClock c...
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
Indexes packets in a file.
Definition: lgrEntityTracker.h:32
The message pipeline which takes messages from the input, passes them through the state and ultimatel...
Definition: messagePipeline.h:28
std::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:175
Contains MAKLogger::DtLgrCommandHandler class.
DtLgrSystemDrive defines the lowest level driver which controls the logger.
Definition: lgrSystemDriver.h:43
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82