#ifndef CAMERA_H #define CAMERA_H #include "lpbengine.h" #include "iCoreCtrl.h" class CDetectorCameraDevice : public IDetectorCameraDevice { public: CDetectorCameraDevice(); virtual ~CDetectorCameraDevice(); bool Initialize(IDetectorEngineSink* lpSink); virtual bool SetID(int nID); virtual int GetID(); virtual bool SetType(DeviceType type); virtual DeviceType GetType(); virtual bool SetName(QString strName); virtual QString GetName(); virtual bool SetDescription(QString strDescription); virtual QString GetDescription(); virtual void Release(); bool SerializeToJson(QJsonDocument* pJsonDocument, QJsonArray* pDeviceArray); bool SerializeFromJson(QJsonObject* pJsonObject); virtual void AddParam(const QString &key, const QVariant &value); virtual bool DeleteParam(const QString &key); virtual QMap GetParamMap(); bool RegisterCoreCtrl(class ICoreCtrl* pCoreCtrl); virtual void SnapImage(void* callBackOwner, NewImageHandler pFunc); virtual void RegisterImageHandler(void* callBackOwner, NewImageHandler pFunc); virtual void UnRegisterImageHandler(); virtual bool HandleNewImage(cv::Mat& img, int nDeviceID); virtual bool OpenDevice(); virtual bool CloseDevice(); virtual bool StartDevice(); virtual bool StopDevice(); private: int m_nID; QString m_strName; QString m_strDescription; DeviceType m_type; IDetectorEngineSink* m_pSink; QMap m_mapParam; ICoreCtrl* m_pCoreCtrl; NewImageHandler m_pFunc; void* m_callBackOwner; QMutex m_mutexLocker; }; #endif // CAMERA_H