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 CAPTUREDEVICE_H_
00026 #define CAPTUREDEVICE_H_
00027
00028 #include <string>
00029 #include <list>
00030
00031 #include "avcap-export.h"
00032 #include "DeviceDescriptor.h"
00033
00035
00036 namespace avcap
00037 {
00038
00039 class ConnectorManager;
00040 class ControlManager;
00041 class CaptureManager;
00042 class DeviceDescriptor;
00043 class FormatManager;
00044
00088 class AVCAP_Export CaptureDevice
00089 {
00090 public:
00092 inline CaptureDevice()
00093 {}
00094
00096 virtual inline ~CaptureDevice()
00097 {}
00098
00100
00101 virtual const DeviceDescriptor* getDescriptor() = 0;
00102
00104
00105 virtual CaptureManager* getVidCapMgr() = 0;
00106
00108
00109 virtual ConnectorManager* getConnectorMgr() = 0;
00110
00114 virtual ControlManager* getControlMgr() = 0;
00115
00117
00118 virtual FormatManager* getFormatMgr() = 0;
00119
00120 private:
00122
00125 virtual int open() = 0;
00126
00128
00133 virtual int close() = 0;
00134 };
00135 }
00136
00137 #endif // CAPTUREDEVICE_H_
00138