MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrPlaybackDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef lgrPlaybackDriver_H_
10 #define lgrPlaybackDriver_H_
11 
12 #include <lgrCore/lgrDriver.h>
13 #include <lgrCore/lgrClock.h>
15 
16 #include <vlutil/vlString.h>
17 #include <deque>
18 
19 namespace MAKLogger
20 {
21  class DtLgrFileInput;
22  class DtMessagePipeline;
23  class DtLgrSystemDriver;
24  class DtLgrPlaybackCommandFactory;
25  class DtLgrPlaybackInterface;
26  class DtLgrEntityTracker;
27 
33  {
34  public:
35 
38 
40  virtual ~DtLgrPlaybackDriver();
41 
42  virtual void tick();
43 
44  virtual bool getPipeline();
45  virtual bool hasPipeline() const;
46  virtual bool releasePipeline();
47 
50  virtual void setUnsavedFile(const DtString& filename, bool selectAll);
51 
53  virtual void openVirtualFile(const DtString& actualFileName, const DtString& desiredName);
54 
56  virtual void configurePipeline();
57 
59  virtual bool isFileSaved() const;
60 
62  virtual bool isFileOpen() const;
63 
65  virtual bool isPlaying() const;
66 
68  virtual bool isStopped() const;
69 
71  virtual bool isPaused() const;
72 
74  virtual bool isFileIncomplete() const;
75 
77  virtual double playbackSpeed() const;
78 
80  virtual bool skippingPlayback() const;
81 
83  virtual double skippingPlaybackThreshold() const;
84 
86  virtual bool skippingPlaybackInteractions() const;
87 
89  virtual DtAbsoluteTime currentTime() const;
90 
92  virtual DtAbsoluteTime startTime() const;
93 
95  virtual DtAbsoluteTime stopTime() const;
96 
98  virtual DtAbsoluteTime firstMessageTime() const;
99 
101  virtual DtAbsoluteTime lastTime() const;
102 
104  virtual const DtString& currentFilename() const;
105 
108  virtual const DtString& savedFilename() const;
109 
111  virtual bool loopAtEnd() const;
112 
114  virtual bool playOnLoad() const;
115 
117  virtual bool fileFormatCurrent() const;
118 
120  virtual int fileVersion() const;
121 
123  virtual bool backupOnSave() const;
124 
126  virtual DtLgrEntityTracker* entityTracker() const;
127 
129  virtual void addTemporaryTrackedEntity(const DtString& name);
130 
132  virtual double packetViewInterval() const;
133 
135  virtual double followingInterval() const;
136 
138  virtual double followingExportInterval() const;
139 
140 
141  protected:
142 
144  bool prepareDriverForOpen();
145 
147 
148  virtual void tickStopPlayback();
149  virtual void tickNormalPlayback();
150  virtual void tickPausePlayback();
151  virtual void tickSkippingPlayback();
152  virtual void tickExtendedStopPlayback();
154 
156  virtual bool doSwapInFile(const DtString& filename, bool selectAll);
157 
158  virtual bool doPlay();
159  virtual bool doStop();
160  virtual bool doPause();
161  virtual bool doUnpause();
162  virtual bool doPlaybackSpeedChange(double speed);
163  virtual void doTimeJump(const DtAbsoluteTime& time);
164  virtual void doSkippingPlay(const DtAbsoluteTime& time);
165  virtual bool doRecoverLastPacket();
166 
167 
169  DtResponse openFile(const DtCommand& command);
170 
172  virtual bool doOpenFile( DtString filename );
173 
175  void sendFileInputChangedResponses(const DtString& filename);
176 
178  DtResponse closeFile(const DtCommand& command);
179 
181  DtResponse saveFile(const DtCommand& command);
182 
184  DtResponse saveFileAs(const DtCommand& command);
185 
187  DtResponse revertFile(const DtCommand& command);
188 
190  DtResponse play(const DtCommand& command);
191 
193  DtResponse playPause(const DtCommand& command);
194 
196  DtResponse stop(const DtCommand& command);
197 
199  DtResponse restart(const DtCommand& command);
200 
202  DtResponse setStartStopTimes(const DtCommand& command);
203 
205  DtResponse setPlaybackSpeed(const DtCommand& command);
206 
208  DtResponse setCurrentTime(const DtCommand& command);
209 
211  DtResponse skipTime(const DtCommand& command);
212 
214  DtResponse pause(const DtCommand& command);
215 
217  DtResponse unpause(const DtCommand& command);
218 
220  DtResponse setLoopAtEnd(const DtCommand& command);
221 
223  DtResponse setPlayOnLoad(const DtCommand& command);
224 
226  DtResponse setBackupOnSave(const DtCommand& command);
227 
229  DtResponse setSkippingPlaybackThreshold(const DtCommand& command);
230 
232  DtResponse setSkippingPlaybackInteractions(const DtCommand& command);
233 
235  DtResponse setPacketViewInterval(const DtCommand& command);
236 
238  DtResponse setFollowingInterval(const DtCommand& command);
239 
241  DtResponse setFollowingExportInterval(const DtCommand& command);
242 
244  DtResponse requestFileList(const DtCommand& command);
245 
247  DtResponse recoverLastPacket(const DtCommand& command);
248 
250  DtResponse updateDescription( const DtCommand& command );
251 
254  virtual bool writeDescriptionToFile(const DtString& filename,
255  const DtString& description, const bool writeDesc);
256 
258  virtual bool openFileInput(const DtString& filename, DtString& failureReason);
259 
261  virtual void closeFileInput(bool clearHistory);
262 
264  virtual void setFileHistoryCount(int count);
265 
267  virtual void addFileToHistory(const DtString& filename);
268 
270  virtual void clearFileHistory();
271  protected:
272 
273  static const unsigned short theDomain = DtLgrCommandType::Domain_Player;
274  static const unsigned short theProtocol = DtLgrCommandType::Protocol_None;
275 
276  std::deque<DtString> myFileStack;
277  //DtString myUnsavedFileName;
278  DtString mySavedFileName;
279  //bool myFileSavedFlag;
280 
281  DtLgrFileInput* myFileInput;
282  DtLgrSystemDriver* myDriver;
283  DtMessagePipeline* myPipeline;
284 
285  //Playback Parameters
286  bool myPausedFlag;
287  bool myLoopAtEnd;
288  bool myPlayOnLoadFlag;
289  int mySendPlayCommandAfterTick;
290  double myTimeScale;
291  DtLgrTimeSteppedClock* myPlaybackClock;
292  DtAbsoluteTime myStartTime;
293  DtAbsoluteTime myStopTime;
294  DtAbsoluteTime myCurrentTime;
295  bool myPlayingFlag;
296  bool myBackupFlag;
297  bool mySkippingPlayback;
298  double mySkippingPlaybackThreshold;
299  bool mySkippingPlaybackInteractions;
300  DtAbsoluteTime myNextSkipTime;
301  bool myTimeHasExtended;
302  DtTime myExtendedStopTimeout;
303  double myPacketViewInterval;
304  double myFollowingInterval;
305  double myFollowingExportInterval;
306 
307  // Description
308  DtString myDescription;
309  bool myUpdateDescription;
310 
311 
312  unsigned int myFileHistoryCount;
313  static const int theDefaultFileHistoryCount = 1;
314  };
315 
316 }
317 
318 #endif

Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)