00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef CONNECTORMANAGER_H_
00026 #define CONNECTORMANAGER_H_
00027
00028 #include <list>
00029
00030 #include "Connector.h"
00031 #include "Manager.h"
00032 #include "avcap-export.h"
00033
00034 namespace avcap
00035 {
00036 class DeviceCollector;
00037
00039
00049 class AVCAP_Export ConnectorManager: public Manager<Connector>
00050 {
00051 protected:
00052
00053 ListType mVideoInputs;
00054 ListType mAudioInputs;
00055 ListType mVideoOutputs;
00056 ListType mAudioOutputs;
00057
00058 public:
00060
00062 ConnectorManager(DeviceDescriptor *dd);
00063
00065 virtual ~ConnectorManager() = 0;
00066
00068
00070 virtual inline Connector* getVideoInput()
00071 { return 0; }
00072
00074
00077 virtual inline int setVideoInput(Connector* c)
00078 { return -1; }
00079
00081
00083 virtual inline Connector* getAudioInput()
00084 { return 0; }
00085
00087
00090 virtual inline int setAudioInput(Connector* c)
00091 { return -1; }
00092
00094
00096 virtual inline Connector* getVideoOutput()
00097 { return 0; }
00098
00100
00103 virtual inline int setVideoOutput(Connector* c)
00104 { return -1; }
00105
00107
00109 virtual inline Connector* getAudioOutput()
00110 { return 0; }
00111
00113
00116 virtual inline int setAudioOutput(Connector* c)
00117 { return -1; }
00118
00120
00122 inline const ListType& getVideoInputList() const
00123 { return mVideoInputs; }
00124
00126
00128 inline const ListType& getAudioInputList() const
00129 { return mAudioInputs; }
00130
00132
00134 inline const ListType& getVideoOutputList() const
00135 { return mVideoOutputs; }
00136
00138
00140 inline const ListType& getAudioOutputList() const
00141 { return mAudioOutputs; }
00142
00144 virtual void query() = 0;
00145
00146 private:
00147 void clearList(ConnectorManager::ListType& list);
00148 };
00149 }
00150
00151 #endif //CONNECTORMANAGER_H_