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 bool backupOnSave() const;
118 
120  virtual DtLgrEntityTracker* entityTracker() const;
121 
123  virtual void addTemporaryTrackedEntity(const DtString& name);
124 
125  protected:
126 
128  bool prepareDriverForOpen();
129 
130  virtual void tickStopPlayback();
131  virtual void tickNormalPlayback();
132  virtual void tickPausePlayback();
133  virtual void tickSkippingPlayback();
134 
136  virtual bool doSwapInFile(const DtString& filename, bool selectAll);
137 
138  virtual bool doPlay();
139  virtual bool doStop();
140  virtual bool doPause();
141  virtual bool doUnpause();
142  virtual bool doPlaybackSpeedChange(double speed);
143  virtual void doTimeJump(const DtAbsoluteTime& time);
144  virtual void doSkippingPlay(const DtAbsoluteTime& time);
145  virtual bool doRecoverLastPacket();
146 
147 
149  DtResponse openFile(const DtCommand& command);
150 
152  virtual bool doOpenFile( DtString filename );
153 
155  void sendFileInputChangedResponses(const DtString& filename);
156 
158  DtResponse closeFile(const DtCommand& command);
159 
161  DtResponse saveFile(const DtCommand& command);
162 
164  DtResponse saveFileAs(const DtCommand& command);
165 
167  DtResponse revertFile(const DtCommand& command);
168 
170  DtResponse play(const DtCommand& command);
171 
173  DtResponse playPause(const DtCommand& command);
174 
176  DtResponse stop(const DtCommand& command);
177 
179  DtResponse restart(const DtCommand& command);
180 
182  DtResponse setStartStopTimes(const DtCommand& command);
183 
185  DtResponse setPlaybackSpeed(const DtCommand& command);
186 
188  DtResponse setCurrentTime(const DtCommand& command);
189 
191  DtResponse skipTime(const DtCommand& command);
192 
194  DtResponse pause(const DtCommand& command);
195 
197  DtResponse unpause(const DtCommand& command);
198 
200  DtResponse setLoopAtEnd(const DtCommand& command);
201 
203  DtResponse setPlayOnLoad(const DtCommand& command);
204 
206  DtResponse setBackupOnSave(const DtCommand& command);
207 
209  DtResponse setSkippingPlaybackThreshold(const DtCommand& command);
210 
212  DtResponse requestFileList(const DtCommand& command);
213 
215  DtResponse recoverLastPacket(const DtCommand& command);
216 
217 
219  virtual bool openFileInput(const DtString& filename, DtString& failureReason);
220 
222  virtual void closeFileInput(bool clearHistory);
223 
225  virtual void setFileHistoryCount(int count);
226 
228  virtual void addFileToHistory(const DtString& filename);
229 
231  virtual void clearFileHistory();
232  protected:
233 
234  static const unsigned short theDomain = DtLgrCommandType::Domain_Player;
235  static const unsigned short theProtocol = DtLgrCommandType::Protocol_None;
236 
237  std::deque<DtString> myFileStack;
238  //DtString myUnsavedFileName;
239  DtString mySavedFileName;
240  //bool myFileSavedFlag;
241 
242  DtLgrFileInput* myFileInput;
243  DtLgrSystemDriver* myDriver;
244  DtMessagePipeline* myPipeline;
245 
246  //Playback Parameters
247  bool myPausedFlag;
248  bool myLoopAtEnd;
249  bool myPlayOnLoadFlag;
250  double myTimeScale;
251  DtLgrClock* myPlaybackClock;
252  DtAbsoluteTime myStartTime;
253  DtAbsoluteTime myStopTime;
254  DtAbsoluteTime myCurrentTime;
255  bool myPlayingFlag;
256  bool myBackupFlag;
257  bool mySkippingPlayback;
258  double mySkippingPlaybackThreshold;
259  DtAbsoluteTime myNextSkipTime;
260 
261  unsigned int myFileHistoryCount;
262  static const int theDefaultFileHistoryCount = 1;
263  };
264 
265 }
266 
267 #endif

Document ID: Generated on Sun Dec 15 18:04:30 EST 2013 from SVN revision 134418
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)