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,
249 const DtString& tapeFilePath);
253 virtual
void createStreamMediaPipelineOperation(const DtString& pipelinConfiguration,
254 const DtString& tapeFilePath);
257 virtual
void startMediaThreads();
260 virtual
void stopMediaThreads();
309 std::deque<DtString> myFileStack;
310 DtString mySavedFileName;
319 bool myPlayOnLoadFlag;
320 int mySendPlayCommandAfterTick;
321 bool myWindowExposed;
329 bool mySkippingPlayback;
330 double mySkippingPlaybackThreshold;
331 bool mySkippingPlaybackInteractions;
333 bool myTimeHasExtended;
334 DtTime myExtendedStopTimeout;
335 double myPacketViewInterval;
336 double myFollowingInterval;
337 double myFollowingExportInterval;
341 DtString myDescription;
342 bool myUpdateDescription;
346 DtString myPlayToStreamConfiguration;
347 DtString myPlayInWindowConfiguration;
348 DtString myPlayToStreamPipeline;
349 DtString myPlayInWindowPipeline;
350 PlaybackMediaToWindowSet myPlaybackToWindowPipelines;
351 PlaybackMediaToStreamSet myPlaybackToStreamPipelines;
352 DtFilename myPlayInWindowFile;
353 DtFilename myPlayToStreamFile;
355 double myMediaSpeedFactor;
356 bool myMediaPlayInWindowByDefault;
357 bool myMediaPlayToStreamByDefault;
358 DtString myMediaPlayHost;
361 unsigned int myFileHistoryCount;
362 static const
int theDefaultFileHistoryCount = 1;
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:109
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
The class responsible for creating playback commands.
Definition: lgrPlaybackCommandFactory.h:23
Relative Time, an elapsed duration of time, no implied measurement, could be seconds/cycles or ticks ...
Definition: absoluteTime.h:28
DtBoost::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:174
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:304
The class responsible for controlling the logger playback functionality.
Definition: lgrPlaybackDriver.h:36
std::set< DtLgrPlaybackMediaToWindow * > PlaybackMediaToWindowSet
Definition: lgrPlaybackDriver.h:303
/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
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