#ifndef PROMEMORY_H #define PROMEMORY_H #include <QMutex> #include <QStack> #include "CasicBioRecConst.h" #include "casic/face/CasicFaceInfo.h" //#include "casic/iris/CasicIrisInfo.h" #include "dao/FaceDataDao.h" #include "dao/IrisDataDao.h" #include "device/FaceCameraController.h" #include "device/face/FaceDetectRegistProcess.h" #include "device/face/FaceDetectRecogProcess.h" class FaceCameraController; class FaceDetectRegistProcess; class FaceDetectRecogProcess; class ProMemory { public: ~ProMemory(); ProMemory(const ProMemory&)=delete; ProMemory& operator=(const ProMemory&)=delete; static ProMemory& getInstance() { static ProMemory instance; return instance; } void pushCasicFace(CasicFaceInfo faceInfo); CasicFaceInfo popCasicFace(); int getFaceQueueSize(); bool isFaceQueueEmpty(); void clearFaceQueue(); // void pushCasicIris(CasicIrisInfo irisInfo); // CasicIrisInfo popCasicIris(); int getIrisQueueSize(); bool isIrisQueueEmpty(); void clearIrisQueue(); volatile int widgeFrame = 0; // 当前显示的界面 volatile int appState = 0; // 当前程序所处的状态 QString capFaceOrIris; // 注册虹膜或者人脸 void initFaceFeatures(); // 初始化人脸特征值集合 void initIrisFeatures(); // 初始化虹膜特征值集合 QVector<QVariantMap> getFaceFeatures(); FaceCameraController * faceCam; FaceDetectRegistProcess * faceRegistPro; FaceDetectRecogProcess * faceRecogPro; private: ProMemory(); QStack<CasicFaceInfo> faceQueue; // 人脸信息队列 // QStack<CasicIrisInfo> irisQueue; // 虹膜信息队列 // QStack<CasicIrisInfo> irisLeftQueue; // 左眼信息队列 // QStack<CasicIrisInfo> irisRightQueue; // 右眼信息队列 QVector<QVariantMap> faceFeatures; // 人脸特征值集合 QVector<QVariantMap> irisFeatures; // 虹膜特征值集合 }; #endif // PROMEMORY_H