123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- /*
- * ZKCameraView.h
- *
- * Created on: Mar 10, 2018
- * Author: guoxs
- */
- #ifndef _CONTROL_ZKCAMERAVIEW_H_
- #define _CONTROL_ZKCAMERAVIEW_H_
- #include "ZKBase.h"
- typedef enum {
- E_CAMERA_STATUS_CODE_OK = 0,
- E_CAMERA_STATUS_CODE_DEV_NOT_EXIST,
- E_CAMERA_STATUS_CODE_DEV_OPEN_FAILED,
- E_CAMERA_STATUS_CODE_TAKE_PIC_FAILED,
- E_CAMERA_STATUS_CODE_NO_SIGNAL,
- E_CAMERA_STATUS_CODE_HAS_SIGNAL,
- E_CAMERA_STATUS_CODE_UNKNOWN_ERRORNO
- } ECameraStatusCode;
- typedef enum {
- E_MIRROR_NORMAL = 0, // 正常镜像
- E_MIRROR_UPPER_LOWER, // 上下镜像
- E_MIRROR_LEFT_RIGHT // 左右镜像
- } EMirror;
- typedef enum {
- E_ROTATION_0 = 0,
- E_ROTATION_90,
- E_ROTATION_180,
- E_ROTATION_270
- } ERotation;
- class ZKCameraViewPrivate;
- class ZKCamera;
- /**
- * @brief 摄像头控件
- */
- class ZKCameraView : public ZKBase {
- ZK_DECLARE_PRIVATE(ZKCameraView)
- public:
- ZKCameraView(ZKBase *pParent);
- virtual ~ZKCameraView();
- /**
- * @brief 设置分辨率大小
- */
- void setFormatSize(int width, int height);
- /**
- * @brief 开始预览
- */
- ECameraStatusCode startPreview();
- /**
- * @brief 停止预览
- */
- ECameraStatusCode stopPreview();
- /**
- * @brief 是否预览中
- */
- bool isPreviewing() const;
- /**
- * @brief 拍照
- */
- ECameraStatusCode takePicture();
- void setPosition(const LayoutPosition &position);
- void setCropPosition(const LayoutPosition &position);
- void setRotation(ERotation rotation);
- void setMirror(EMirror mirror);
- /* 设置亮度 */
- bool setBrightness(int brightness);
- /* 设置对比度 */
- bool setContrast(int contrast);
- /* 设置饱和度 */
- bool setSaturation(int saturation);
- /* 设置色调 */
- bool setHue(int hue);
- /* 设置伽马值 */
- bool setGamma(int gamma);
- public:
- class IPictureCallback {
- public:
- virtual ~IPictureCallback() { }
- virtual void onPictureTakenStarted() { }
- virtual void onPictureTakenEnd() { }
- virtual void onPictureTakenError() { }
- virtual const char* onPictureSavePath() = 0;
- };
- class IErrorCodeCallback {
- public:
- virtual ~IErrorCodeCallback() { }
- virtual void onErrorCode(int error) = 0;
- };
- void setPictureCallback(IPictureCallback *pCallback);
- void setErrorCodeCallback(IErrorCodeCallback *pCallback);
- protected:
- ZKCameraView(ZKBase *pParent, ZKBasePrivate *pBP);
- virtual void onBeforeCreateWindow(const Json::Value &json);
- virtual void onAfterCreateWindow(const Json::Value &json);
- virtual const char* getClassName() const { return ZK_CAMERAVIEW; }
- virtual void onDraw(ZKCanvas *pCanvas);
- private:
- void parseCameraViewAttributeFromJson(const Json::Value &json);
- private:
- ZKCamera *mCameraPtr;
- };
- #endif /* _CONTROL_ZKCAMERAVIEW_H_ */
|