MAK Data Logger API Documentation for HLA
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 "lgrDriver.h"
13 #include "lgrClock.h"
14 #include "virtualConstructor.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 DtAbsoluteTime currentTime() const;
87 
89  virtual DtAbsoluteTime startTime() const;
90 
92  virtual DtAbsoluteTime stopTime() const;
93 
95  virtual DtAbsoluteTime firstMessageTime() const;
96 
98  virtual DtAbsoluteTime lastTime() const;
99 
101  virtual const DtString& currentFilename() const;
102 
105  virtual const DtString& savedFilename() const;
106 
108  virtual bool loopAtEnd() const;
109 
111  virtual bool playOnLoad() const;
112 
114  virtual bool fileFormatCurrent() const;
115 
117  virtual int fileVersion() const;
118 
120  virtual bool backupOnSave() const;
121 
123  virtual DtLgrEntityTracker* entityTracker() const;
124 
126  virtual void addTemporaryTrackedEntity(const DtString& name);
127 
128  protected:
129 
131  bool prepareDriverForOpen();
132 
133  virtual void tickStopPlayback();
134  virtual void tickNormalPlayback();
135  virtual void tickPausePlayback();
136  virtual void tickSkippingPlayback();
137 
139  virtual bool doSwapInFile(const DtString& filename, bool selectAll);
140 
141  virtual bool doPlay();
142  virtual bool doStop();
143  virtual bool doPause();
144  virtual bool doUnpause();
145  virtual bool doPlaybackSpeedChange(double speed);
146  virtual void doTimeJump(const DtAbsoluteTime& time);
147  virtual void doSkippingPlay(const DtAbsoluteTime& time);
148  virtual bool doRecoverLastPacket();
149 
150 
152  DtResponse openFile(const DtCommand& command);
153 
155  virtual bool doOpenFile( DtString filename );
156 
158  void sendFileInputChangedResponses(const DtString& filename);
159 
161  DtResponse closeFile(const DtCommand& command);
162 
164  DtResponse saveFile(const DtCommand& command);
165 
167  DtResponse saveFileAs(const DtCommand& command);
168 
170  DtResponse revertFile(const DtCommand& command);
171 
173  DtResponse play(const DtCommand& command);
174 
176  DtResponse playPause(const DtCommand& command);
177 
179  DtResponse stop(const DtCommand& command);
180 
182  DtResponse restart(const DtCommand& command);
183 
185  DtResponse setStartStopTimes(const DtCommand& command);
186 
188  DtResponse setPlaybackSpeed(const DtCommand& command);
189 
191  DtResponse setCurrentTime(const DtCommand& command);
192 
194  DtResponse skipTime(const DtCommand& command);
195 
197  DtResponse pause(const DtCommand& command);
198 
200  DtResponse unpause(const DtCommand& command);
201 
203  DtResponse setLoopAtEnd(const DtCommand& command);
204 
206  DtResponse setPlayOnLoad(const DtCommand& command);
207 
209  DtResponse setBackupOnSave(const DtCommand& command);
210 
212  DtResponse setSkippingPlaybackThreshold(const DtCommand& command);
213 
215  DtResponse requestFileList(const DtCommand& command);
216 
218  DtResponse recoverLastPacket(const DtCommand& command);
219 
221  DtResponse updateDescription( const DtCommand& command );
222 
225  virtual bool writeDescriptionToFile(const DtString& filename,
226  const DtString& description, const bool writeDesc);
227 
229  virtual bool openFileInput(const DtString& filename, DtString& failureReason);
230 
232  virtual void closeFileInput(bool clearHistory);
233 
235  virtual void setFileHistoryCount(int count);
236 
238  virtual void addFileToHistory(const DtString& filename);
239 
241  virtual void clearFileHistory();
242  protected:
243 
244  static const unsigned short theDomain = DtLgrCommandType::Domain_Player;
245  static const unsigned short theProtocol = DtLgrCommandType::Protocol_None;
246 
247  std::deque<DtString> myFileStack;
248  //DtString myUnsavedFileName;
249  DtString mySavedFileName;
250  //bool myFileSavedFlag;
251 
252  DtLgrFileInput* myFileInput;
253  DtLgrSystemDriver* myDriver;
254  DtMessagePipeline* myPipeline;
255 
256  //Playback Parameters
257  bool myPausedFlag;
258  bool myLoopAtEnd;
259  bool myPlayOnLoadFlag;
260  double myTimeScale;
261  DtLgrClock* myPlaybackClock;
262  DtAbsoluteTime myStartTime;
263  DtAbsoluteTime myStopTime;
264  DtAbsoluteTime myCurrentTime;
265  bool myPlayingFlag;
266  bool myBackupFlag;
267  bool mySkippingPlayback;
268  double mySkippingPlaybackThreshold;
269  DtAbsoluteTime myNextSkipTime;
270 
271  // Description
272  DtString myDescription;
273  bool myUpdateDescription;
274 
275 
276  unsigned int myFileHistoryCount;
277  static const int theDefaultFileHistoryCount = 1;
278  };
279 
280 }
281 
282 #endif

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)