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 
142  virtual void configurePipeline();
143 
145  virtual void activateIdleListening();
146 
147  virtual bool doNewFile(DtString filename, DtString description, bool overwrite);
148  virtual bool doRecord(bool multipleFiles);
149  virtual bool doStop();
150  virtual bool doPause();
151  virtual bool doUnpause();
152 
154  virtual DtString multipleFileName() const;
155 
160  virtual DtString multiFileDescription(bool final);
161 
164  virtual void createMediaPipeline(const DtString& pipelineConfigurations,
165  const DtString tapeFilePath, int port);
166 
168 
169  DtResponse newFile(const DtCommand& command);
170  DtResponse closeFile(const DtCommand& command);
171  DtResponse cancelRecording(const DtCommand& command);
172  DtResponse record(const DtCommand& command);
173  DtResponse pause(const DtCommand& command);
174  DtResponse unpause(const DtCommand& command);
175  DtResponse stop(const DtCommand& command);
176  DtResponse stopCondition(const DtCommand& command);
177  DtResponse stopDuration(const DtCommand& command);
178  DtResponse stopSize(const DtCommand& command);
179  DtResponse setCheckpointParameters(const DtCommand& command);
180  DtResponse setPauseOnRecordAs(const DtCommand& command);
181  DtResponse saveRecordedData(const DtCommand& command);
182  DtResponse saveRecordedDataFinished(const DtCommand& command);
183  DtResponse setRecordToMultipleFilesSettings(const DtCommand& command);
184  DtResponse startRecordToMultipleFiles(const DtCommand& command);
185  DtResponse setMediaRecordFromStreamConfiguration( const DtCommand& command );
186  DtResponse setMediaRecordFromStreamPipeline(const DtCommand& command);
187  DtResponse setIsRecordingMediaStream(const DtCommand& command);
188  DtResponse setMediaRecordByDefault(const DtCommand& command);
189  DtResponse setMediaRecordStreamParameters(const DtCommand& command);
191 
192  protected:
193 
195  {
196  public:
197  DumpCurrentRecordingThread( MAKLogger::DtLgrSystemDriver* driver, DtString newFileName,
198  DtString description, DtLgrFileInput* input, DtLgrFileOutput* output,
199  int packetOperationCount, double fixedDuration,DtRelativeTime offset);
200 
201  virtual ~DumpCurrentRecordingThread();
202 
203  virtual void run();
204 
205  protected:
207  DtString myFilename;
208  DtString myDescription;
214  };
215 
216  DtString myFileName;
217  DtString myDescription;
221 
229 
233 
241  DtU64 myStopSize;
245 
254 
257 
260  std::set<DtLgrRecordMediaStream*> myRecordStreams;
264  };
265 
266 }
267 
268 #endif

Document ID: Generated on Tue Aug 1 09:00:26 EDT 2017 from SVN revision 179128
Copyright © 2017 VT MÄK. All Rights Reserved (www.mak.com)