You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.5 KiB
C++

#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<QString, QVariant> 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<QString, QVariant> m_mapParam;
ICoreCtrl* m_pCoreCtrl;
NewImageHandler m_pFunc;
void* m_callBackOwner;
QMutex m_mutexLocker;
};
#endif // CAMERA_H