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.

79 lines
3.5 KiB
C

#ifndef __TP_I_CAMERA_H
#define __TP_I_CAMERA_H
#include "baseInclude.h"
#include "ZkCameraImage.h"
typedef struct tagCAMERA_IN_PARAM {
class ICameraCallback* pCallback;
TP_GLOBAL_DATA* pGlobalData;
}CAMERA_IN_PARAM;
class ICameraPool
{
public:
ICameraPool() {}
virtual ~ICameraPool() {}
public:
// operation for camera.json
virtual QList<QString> ICameraKeys() = 0;
virtual QList<QString> ICameraKeysOrderByIds() = 0;
virtual bool ICameraOption(const QString& strSerial, TP_CAMERA_OPTION& camOpt) = 0;
virtual bool ICameraOptionByKey(const QString& strSerial, TP_CAMERA_OPTION& camOpt) = 0;
virtual bool ISetCameraOption(const QString& strSerial, const TP_CAMERA_OPTION& camOpt) = 0;
// try to get available (connected to the computer) by camera type(manufacturer)
virtual QList<QString> IEnumAvailableCameras(emTpDeviceType camType) = 0;
virtual int ICreateCameraes() = 0;
virtual void IDeleteDameraes() = 0;
virtual bool ICreateCamera(const QString&, int nType) = 0;
virtual bool IOpenCamera(const QString& strSerial, bool bReopen = true) = 0;
virtual bool ICloseCamera(const QString& strSerial) = 0;
virtual bool IStartCamera(const QString& strSerial) = 0;
virtual bool IStopCamera(const QString& strSerial) = 0;
virtual bool IDeleteCamera(const QString& strSerial) = 0;
virtual bool IAddCamera(const QString& strName, const TP_CAMERA_OPTION& camOpt, bool bNew, bool bAutoRun = false) = 0;
virtual int IOpenDevices(bool bReopenAll = true) = 0;
virtual int IOpenDevicesEx(bool bReopenAll = true) = 0; //如果camera.json里面配置了auto_open 值为false则调用该函数不会打开对应相机
virtual void ICloseDevices() = 0;
virtual void IStartDevices() = 0;
virtual void IStopDevices(const QString& sDef = NULL) = 0;
virtual void ISetTriggerMode(emTpDeviceTriggerMode mode, emTpTriggerDirection nDirection = TRIGGER_DIRECT_FOREWARD, long nFrameRate = 0) = 0;
virtual emTpDeviceTriggerMode IGetTriggerMode() = 0;
virtual void IManualTrigger( emTpTriggerDirection nDirection = TRIGGER_DIRECT_FOREWARD) = 0;
virtual void ISnapImage(const QStringList& camKeys) = 0;
virtual void ISendSoftTrigger(const QStringList& camKeys) = 0;
virtual CZkCameraImage* IPopCameraImage() = 0;
virtual void IFreeCameraImage(CZkCameraImage *pCamImg) = 0;
//@camera: NULL means setting every camera
virtual void ISetCameraProperty(const QString& camera, emTpCameraProperty property, long nValue) = 0;
virtual void ISetCameraProperty(const QString& camera, TP_CAMERA_PROPERTY& property) = 0;
// virtual QList<TP_CAMERA_WIN*> ICameraWins() = 0;
virtual QMap<QString, QString> IGetCamShowNames() = 0;
virtual void ISetCameraEncode(INT64 code, INT64 rate) = 0;
virtual void ISetVirtualImages(const QString& camera, const QStringList& szImages) = 0;
//operate camera window
// virtual QList<QString> ICamWinKeys() = 0;
// virtual bool ICamWinOptionByKey(const QString& strKey, TP_CAMERA_WIN& camwinOpt) = 0;
// virtual bool IAddCamWin(const QString& strKey, const TP_CAMERA_WIN& camwinOpt, bool bNew) = 0;
// virtual bool IDelCamWin(const QString& strKey) = 0;
virtual bool ICamsStartPush() = 0;
virtual bool ICamsPausePush() = 0;
};
class ICameraCallback
{
public:
ICameraCallback() {}
virtual ~ICameraCallback() {}
virtual QVariant IGetVariantById(int nId) = 0;
virtual void INewCameraImage(const QVariantMap& vmap) = 0;
};
#endif