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 QT_DEVICEDESCRIPTOR_H_
00026 #define QT_DEVICEDESCRIPTOR_H_
00027
00028 #include <iostream>
00029 #include <string>
00030
00031 #include "DeviceDescriptor.h"
00032 #include <QuickTime/QuickTime.h>
00033
00034 namespace avcap
00035 {
00036 class CaptureDevice;
00037 class QT_Device;
00038
00040
00041 class QT_DeviceDescriptor : public DeviceDescriptor
00042 {
00043 public:
00044
00045 private:
00046 SeqGrabComponent mGrabber;
00047 SGChannel mChannel;
00048 VideoDigitizerComponent mDigitizer;
00049 DigitizerInfo mDigiInfo;
00050
00051 int mDeviceID;
00052 int mInputID;
00053 bool mValid;
00054
00055 std::string mName;
00056 std::string mDriver;
00057 QT_Device* mDevice;
00058
00059 public:
00060 QT_DeviceDescriptor(int device, int input, const std::string& dev_name, const std::string& driver_name,
00061 SeqGrabComponent current_grabber, SGChannel current_channel);
00062
00063 QT_DeviceDescriptor();
00064
00065 virtual ~QT_DeviceDescriptor();
00066
00067 virtual CaptureDevice* getDevice();
00068
00069 virtual int open();
00070
00071 virtual int close();
00072
00073 virtual const std::string& getName() const;
00074
00075 virtual const std::string& getDriver() const;
00076
00077 bool isVideoCaptureDev() const;
00078
00079 virtual inline const DEV_HANDLE_T getHandle() const
00080 { return 0; }
00081
00083
00084 inline SeqGrabComponent getGrabber(void)
00085 { return mGrabber; }
00086
00088
00089 inline SGChannel getChannel(void)
00090 { return mChannel; }
00091
00093
00094 inline VideoDigitizerComponent getDigitizer(void)
00095 { return mDigitizer; }
00096
00097 private:
00098 bool queryCapabilities(SeqGrabComponent current_grabber, SGChannel current_channel);
00099
00100 };
00101 }
00102
00103 #endif // QT_DEVICEDESCRIPTOR_H_