MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrRecordDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef lgrRecordDriver_H_
11 #define lgrRecordDriver_H_
12 
13 #include <lgrCore/lgrDriver.h>
14 #include <lgrUtil/absoluteTime.h>
15 #include <lgrCore/messageBuffer.h>
16 #include <vlutil/vlRunnable.h>
17 
18 class DtThread;
19 
20 namespace MAKLogger
21 {
22  class DtCheckpointPolicy;
23  class DtLgrClock;
24  class DtLgrContinuousClock;
25  class DtLgrFileInput;
26  class DtLgrFileOutput;
27  class DtLgrPlaybackDriver;
28  class DtLgrRecordCommandFactory;
29  class DtLgrRecordInterface;
30  class DtMessagePipeline;
31  class DtThreadedObject;
32  class DtLgrRecordMediaStream;
33 
38  {
39  public:
42 
44 
45  virtual ~DtLgrRecordDriver();
46 
48  virtual void tick();
49 
50  virtual bool releasePipeline();
51  virtual bool getPipeline();
52  virtual bool hasPipeline() const;
53 
54  virtual bool isFileOpen() const;
55  virtual bool isFileEmpty() const;
56 
57  virtual bool isRecording() const;
58  virtual bool isPaused() const;
59 
61  virtual bool pauseOnRecordAs() const;
62 
64  virtual int checkpointPolicyId() const;
65 
67  virtual int checkpointCount() const;
68 
70  virtual int checkpointSize() const;
71 
73  virtual DtAbsoluteTime checkpointTime() const;
74 
76  bool interactionsCheckpointed() const;
77 
80  virtual const DtString& filename() const;
81 
86  virtual DtCheckpointPolicy* duplicateCheckpointPolicy() const;
87 
89  virtual bool recordToMultipleFiles() const;
90 
92  virtual double multipleFileDuration() const;
93 
95  virtual const DtString& multipleFileNamingConvention() const;
96 
98  virtual const DtLgrFileOutput* currentOutput() const;
99 
101  virtual void addTemporaryTrackedEntity(const DtString& name);
102 
104  virtual const DtString& streamPipeline() const;
105 
107  virtual const DtString& streamConfiguration() const;
108 
109  const DtString& selectedMediaStreamConfigurations() const;
110 
112  bool isRecordingMediaStream() const;
113 
115  bool mediaRecordByDefault() const;
116 
118  int mediaRecordPort() const;
119 
121  virtual void stopAllThreads();
122 
124  virtual void stopThread( DtLgrCommandThread* commandThread );
125 
126  protected:
127 
129  virtual DtLgrPlaybackDriver* getPlaybackDriver(bool checkForFileOpen) const;
130 
132  virtual void setCheckpointPolicy(DtCheckpointPolicy* policy);
133 
135  virtual void tickNormalRecording();
136 
140  virtual void tickRecordToMultipleFiles(double multipleFileDuration, bool final = false);
141 
143  virtual void configurePipeline();
144 
146  virtual void activateIdleListening();
147 
148  virtual bool doNewFile(DtString filename, DtString description, bool overwrite);
149  virtual bool doRecord(bool multipleFiles);
150  virtual bool doStop();
151  virtual bool doPause();
152  virtual bool doUnpause();
153 
155  virtual DtString multipleFileName() const;
156 
161  virtual DtString multiFileDescription(bool final);
162 
164  virtual void initializeMediaPipeline(const DtString& filename);
165 
168  virtual void createMediaPipeline(const DtString& pipelineConfigurations,
169  const DtString tapeFilePath, int port);
170 
172 
173  DtResponse newFile(const DtCommand& command);
174  DtResponse closeFile(const DtCommand& command);
175  DtResponse cancelRecording(const DtCommand& command);
176  DtResponse record(const DtCommand& command);
177  DtResponse pause(const DtCommand& command);
178  DtResponse unpause(const DtCommand& command);
179  DtResponse stop(const DtCommand& command);
180  DtResponse stopCondition(const DtCommand& command);
181  DtResponse stopDuration(const DtCommand& command);
182  DtResponse stopSize(const DtCommand& command);
183  DtResponse setCheckpointParameters(const DtCommand& command);
184  DtResponse setPauseOnRecordAs(const DtCommand& command);
185  DtResponse saveRecordedData(const DtCommand& command);
186  DtResponse saveRecordedDataFinished(const DtCommand& command);
187  DtResponse setRecordToMultipleFilesSettings(const DtCommand& command);
188  DtResponse startRecordToMultipleFiles(const DtCommand& command);
189  DtResponse setMediaRecordFromStreamConfiguration( const DtCommand& command );
190  DtResponse setMediaRecordFromStreamPipeline(const DtCommand& command);
191  DtResponse setIsRecordingMediaStream(const DtCommand& command);
192  DtResponse setMediaRecordByDefault(const DtCommand& command);
193  DtResponse setMediaRecordStreamParameters(const DtCommand& command);
195 
196  protected:
197 
199  {
200  public:
201  DumpCurrentRecordingThread( MAKLogger::DtLgrSystemDriver* driver, DtString newFileName,
202  DtString description, DtLgrFileInput* input, DtLgrFileOutput* output,
203  int packetOperationCount, double fixedDuration,DtRelativeTime offset);
204 
205  virtual ~DumpCurrentRecordingThread();
206 
207  virtual void run();
208 
209  protected:
211  DtString myFilename;
212  DtString myDescription;
218  };
219 
220  DtString myFileName;
221  DtString myDescription;
225 
233 
237 
245  DtU64 myStopSize;
249 
258 
261 
264  std::set<DtLgrRecordMediaStream*> myRecordStreams;
268  DtFilename myMediaFilename;
269 
270  };
271 
272 }
273 
274 #endif

Document ID: Generated on Wed Jun 5 18:45:18 EDT 2019 from SVN revision 198968
Copyright © 2019 VT MAK. All Rights Reserved (www.mak.com)