|
|
|
|
|
/******************************************************************************
|
|
|
|
|
|
Copyright(C):2015~2018 hzleaper
|
|
|
|
|
|
FileName:globalCamera.h
|
|
|
|
|
|
Author:zhikun wu
|
|
|
|
|
|
Email:zk.wu@hzleaper.com
|
|
|
|
|
|
Tools:vs2010 pc on company
|
|
|
|
|
|
Created:2015/04/07
|
|
|
|
|
|
History:7:4:2015 8:53
|
|
|
|
|
|
*******************************************************************************/
|
|
|
|
|
|
#ifndef __GLOBAL_CAMERA_H_20150407
|
|
|
|
|
|
#define __GLOBAL_CAMERA_H_20150407
|
|
|
|
|
|
|
|
|
|
|
|
#include "icamera.h"
|
|
|
|
|
|
#include "iCameraObject.h"
|
|
|
|
|
|
#include "QZkJsonParser.h"
|
|
|
|
|
|
#include <QtCore/QHash>
|
|
|
|
|
|
#include <QtCore/QJsonArray>
|
|
|
|
|
|
#include <QtCore/QMutexLocker>
|
|
|
|
|
|
#include "QZkMutexMap.h"
|
|
|
|
|
|
#include "QZkMutexList.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CGlobalCamera
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CGlobalCamera(const CAMERA_IN_PARAM* pInParam);
|
|
|
|
|
|
~CGlobalCamera();
|
|
|
|
|
|
bool CameraOption(const QString& serials, TP_CAMERA_OPTION& camOpt);
|
|
|
|
|
|
bool CameraOptionByKey(const QString& sKey, TP_CAMERA_OPTION& camOpt);
|
|
|
|
|
|
bool SetCameraOption(const QString& sKey, const TP_CAMERA_OPTION& camOpt);
|
|
|
|
|
|
TP_CAMERA_OPTION* CameraOption(const QString& serials) {
|
|
|
|
|
|
return m_cameraesOption.value(serials, NULL);
|
|
|
|
|
|
}
|
|
|
|
|
|
QList<QString> CameraKeys() {
|
|
|
|
|
|
return m_cameraesOption.keys();
|
|
|
|
|
|
}
|
|
|
|
|
|
QList<QString> CameraKeysOrderByIds();
|
|
|
|
|
|
QList<TP_CAMERA_WIN*> CameraWins() {
|
|
|
|
|
|
return m_cameraWins;
|
|
|
|
|
|
}
|
|
|
|
|
|
QMap<QString, QString> GetCamShowNames();
|
|
|
|
|
|
bool SaveCameraOption(const TP_CAMERA_OPTION& camOpt);
|
|
|
|
|
|
void delCameraOption(const QString& serials);
|
|
|
|
|
|
void updateCameraOption(const QString& serials, const TP_CAMERA_OPTION& camOpt);
|
|
|
|
|
|
|
|
|
|
|
|
QList<QString> camWinKeys();
|
|
|
|
|
|
bool camWinByKey(const QString& strKey, TP_CAMERA_WIN& camwinOpt);
|
|
|
|
|
|
bool addCamWin(const QString& strKey, const TP_CAMERA_WIN& camwinOpt, bool bNew);
|
|
|
|
|
|
bool delCamWin(const QString& strKey);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
TP_GLOBAL_DATA* m_pGlobalData;
|
|
|
|
|
|
ICameraCallback* m_pCallback;
|
|
|
|
|
|
// QHash<QString, TP_CAMERA_OPTION*> m_cfgCameraes;
|
|
|
|
|
|
TP_CAMERAPOOL_OPTION m_optPool;
|
|
|
|
|
|
private:
|
|
|
|
|
|
void readConfig();
|
|
|
|
|
|
void releaseConfig(const QString& key = NULL);
|
|
|
|
|
|
void checkFolder(QString& sFolder);
|
|
|
|
|
|
void readSerials();
|
|
|
|
|
|
QJsonObject getAppJsonUser();
|
|
|
|
|
|
|
|
|
|
|
|
static void releaseCameraOption(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData);
|
|
|
|
|
|
static bool copyCameraOptionBySerial(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData);
|
|
|
|
|
|
static void copyCameraOptionByKey(const QString& key, TP_CAMERA_OPTION*& pCamOpt, void* pData);
|
|
|
|
|
|
static bool optionCompare(TP_CAMERA_OPTION* op1, TP_CAMERA_OPTION* op2);
|
|
|
|
|
|
static void releaseCameraWin(tagTP_CAMERA_WIN*& pWin, void* pData);
|
|
|
|
|
|
private:
|
|
|
|
|
|
QMutex m_mtxCam;
|
|
|
|
|
|
const static char cs_szCfgName[];
|
|
|
|
|
|
QZkMutexMap<QString, TP_CAMERA_OPTION*> m_cameraesOption;
|
|
|
|
|
|
QZkMutexList<TP_CAMERA_WIN*> m_cameraWins;
|
|
|
|
|
|
QJsonObject m_jsonCamera;
|
|
|
|
|
|
QStringList m_serialsList;
|
|
|
|
|
|
};
|
|
|
|
|
|
//const char CGlobalCamera::m_szCfgFile[] = "camera";
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//***inline functions***
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern class CGlobalCamera* gpGlobalCameraZZZ;
|
|
|
|
|
|
|
|
|
|
|
|
#define gpGlobalCamera gpGlobalCameraZZZ
|
|
|
|
|
|
|
|
|
|
|
|
//#define gpMainPath gpGlobalCamera->m_pszMainPath
|
|
|
|
|
|
#define gpGlobalData gpGlobalCamera->m_pGlobalData
|
|
|
|
|
|
#define gpGlobalCamCallback gpGlobalCamera->m_pCallback
|
|
|
|
|
|
#define callCamCallback(fc, defaultReturn, ...) (NULL != gpGlobalCamCallback) ? gpGlobalCamCallback->##fc##(__VA_ARGS__) : defaultReturn
|
|
|
|
|
|
// #define callGlobalCamera(fc, dValue, ...) (NULL != gpGlobalCamera ) ? gpGlobalCamera->##fc##(__VA_ARGS__) : dValue
|
|
|
|
|
|
// #define callGlobalCameraNoP(fc, dValue) (NULL != gpGlobalCamera ) ? gpGlobalCamera->##fc##() : dValue
|
|
|
|
|
|
//#define gpCameraesHash() (NULL != gpGlobalCamera) ? gpGlobalCamera->m_cfgCameraes : QHash<QString, TP_CAMERA_OPTION*>()
|
|
|
|
|
|
#define gGlobalPoolOption gpGlobalCamera->m_optPool
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|