VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVideoStreamManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <vrvCore/DtDe.h>
16 #include <vrvUtil/DtUnicode.h>
17 
19 
20 #include <boost/unordered_map.hpp>
21 
22 namespace makVrv
23 {
24  class DtImageTaskElement;
25  class DtImageTaskElementCreator;
26  class DtMetadataPublisher;
27  class DtMetadataPublisherCreator;
28  class DtVideoStreamCreator;
29  class DtProcessImageTask;
30  class DtVideoStream;
31 
36  {
37  public:
39  typedef std::vector<DtVideoStream*> VideoStreamList;
40 
42  virtual ~DtVideoStreamManager();
43 
46  static DtVideoStreamManager& instance(DtDe& de);
47 
49  static void registerInstance(DtDe& de, DtVideoStreamManager* anInstance);
50 
52  virtual void addVideoStreamCreator( const DtUnicode& streamType,
53  const DtUnicode& typeDisplayName, DtVideoStreamCreator* creator );
54 
57  virtual void videoStreamTypesSupported( std::list<DtUnicode>& streamTypes,
58  std::list<DtUnicode>& displayNames ) const;
59 
65  virtual DtVideoStream* createVideoStream( const DtUnicode& streamType,
66  const DtUnicode& streamName );
67 
70  virtual bool destroyVideoStream( const DtUnicode& streamName );
71 
75  virtual bool renameVideoStream( const DtUnicode& oldName,
76  const DtUnicode& newName );
77 
79  virtual DtVideoStream* videoStream( const DtUnicode& streamName );
80 
82  virtual const VideoStreamList& videoStreams() const;
83 
86  virtual bool checkAvailability( const DtVideoStream& stream ) const;
87 
91  virtual void saveVideoStream( const DtVideoStream& stream ) const;
92 
94  virtual void loadVideoStream( const DtUnicode& filename );
95 
98  virtual void autoLoadVideoStreams();
99 
101  virtual void autoStartVideoStreams();
102 
103 
104 
106  virtual void addMetadataPublisherCreator( const DtUnicode& pubType,
107  const DtUnicode& typeDisplayName, DtMetadataPublisherCreator* creator);
108 
111  virtual void metadataPublisherTypesSupported(
112  std::list<DtUnicode>& displayNames,
113  std::list<DtUnicode>& pubTypes) const;
114 
117  virtual DtMetadataPublisher* createMetadataPublisher(
118  const DtUnicode& pubType, const DtVideoStream& videoStream ) const;
119 
120 
121 
123  virtual void addImageTaskElementCreator( const DtUnicode& imageTaskType,
124  const DtUnicode& displayName, DtImageTaskElementCreator* creator);
125 
128  virtual void imageTaskElementTypesSupported(
129  std::list<DtUnicode>& displayNames,
130  std::list<DtUnicode>& taskTypes) const;
131 
133  virtual DtImageTaskElement* createImageTaskElement( const DtUnicode& imageTaskType,
134  DtProcessImageTask* owningTask) const;
135 
136 
137 
139 
141  boost::signal<void ( DtVideoStream& )> signal_videoStreamAdded;
142 
144  boost::signal<void ( DtVideoStream& )> signal_videoStreamToBeDestroyed;
145 
147  boost::signal<void ( const DtVideoStream& )> signal_videoStreamStatusChanged;
148 
150 
151  protected:
152 
153  // Only called by registerInstance for default
154  DtVideoStreamManager( DtDe& de );
155 
157  virtual void removeVideoStreamFile( const DtVideoStream& stream ) const;
158 
161  virtual void removeVideoStreamFromList( const DtVideoStream* streamPtr );
162 
165  virtual DtUnicode createVideoStreamFilename(const DtVideoStream& stream) const;
166 
168  virtual void connectToVideoStreamSignals( DtVideoStream& stream );
169 
171  virtual void disconnectFromVideoStreamSignals( DtVideoStream& stream );
172 
174  virtual void slot_videoStreamStatusChanged( const DtVideoStream& stream );
175 
176  protected:
177 
179  typedef boost::unordered_map<DtUnicode, DtVideoStream*>
181 
182  typedef std::pair<DtUnicode, DtVideoStreamCreator*>
184  typedef std::pair<DtUnicode, DtImageTaskElementCreator*>
186  typedef std::pair<DtUnicode, DtMetadataPublisherCreator*>
188 
189  typedef boost::unordered_map<DtUnicode, MetadataPublisherNameCreatorPair>
191  typedef boost::unordered_map<DtUnicode, ImageTaskNameCreatorPair>
193  typedef boost::unordered_map<DtUnicode, VideoStreamNameCreatorPair>
195 
199 
202 
204  };
205 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)