MAK Data Logger API Documentation for DIS
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 
147  DtResponse openFile(const DtCommand& command);
148 
150  virtual bool doOpenFile( DtString filename );
151 
153  void sendFileInputChangedResponses(const DtString& filename);
154 
156  DtResponse closeFile(const DtCommand& command);
157 
159  DtResponse saveFile(const DtCommand& command);
160 
162  DtResponse saveFileAs(const DtCommand& command);
163 
165  DtResponse revertFile(const DtCommand& command);
166 
168  DtResponse play(const DtCommand& command);
169 
171  DtResponse playPause(const DtCommand& command);
172 
174  DtResponse stop(const DtCommand& command);
175 
177  DtResponse restart(const DtCommand& command);
178 
180  DtResponse setStartStopTimes(const DtCommand& command);
181 
183  DtResponse setPlaybackSpeed(const DtCommand& command);
184 
186  DtResponse setCurrentTime(const DtCommand& command);
187 
189  DtResponse skipTime(const DtCommand& command);
190 
192  DtResponse pause(const DtCommand& command);
193 
195  DtResponse unpause(const DtCommand& command);
196 
198  DtResponse setLoopAtEnd(const DtCommand& command);
199 
201  DtResponse setPlayOnLoad(const DtCommand& command);
202 
204  DtResponse setBackupOnSave(const DtCommand& command);
205 
207  DtResponse setSkippingPlaybackThreshold(const DtCommand& command);
208 
210  DtResponse requestFileList(const DtCommand& command);
211 
213  virtual bool openFileInput(const DtString& filename, DtString& failureReason);
214 
216  virtual void closeFileInput(bool clearHistory);
217 
219  virtual void setFileHistoryCount(int count);
220 
222  virtual void addFileToHistory(const DtString& filename);
223 
225  virtual void clearFileHistory();
226  protected:
227 
228  static const unsigned short theDomain = DtLgrCommandType::Domain_Player;
229  static const unsigned short theProtocol = DtLgrCommandType::Protocol_None;
230 
231  std::deque<DtString> myFileStack;
232  //DtString myUnsavedFileName;
233  DtString mySavedFileName;
234  //bool myFileSavedFlag;
235 
236  DtLgrFileInput* myFileInput;
237  DtLgrSystemDriver* myDriver;
238  DtMessagePipeline* myPipeline;
239 
240  //Playback Parameters
241  bool myPausedFlag;
242  bool myLoopAtEnd;
243  bool myPlayOnLoadFlag;
244  double myTimeScale;
245  DtLgrClock* myPlaybackClock;
246  DtAbsoluteTime myStartTime;
247  DtAbsoluteTime myStopTime;
248  DtAbsoluteTime myCurrentTime;
249  bool myPlayingFlag;
250  bool myBackupFlag;
251  bool mySkippingPlayback;
252  double mySkippingPlaybackThreshold;
253  DtAbsoluteTime myNextSkipTime;
254 
255  unsigned int myFileHistoryCount;
256  static const int theDefaultFileHistoryCount = 1;
257  };
258 
259 }
260 
261 #endif

Document ID: Generated on Thu Apr 11 12:13:00 EDT 2013 from SVN revision 126011
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)