#ifndef I_CAMERA_MANAGER_H #define I_CAMERA_MANAGER_H #include "VReturnCode.h" #include "IHalCommon.h" #include #include #include enum class CameraManagerReturnCodeDefine { CAMERA_TASK_CAN_EXECUTE_MORE = static_cast(VReturnCodeDefine::END), END }; class CameraTaskResponse { public: CameraTaskResponse() { } ~CameraTaskResponse() { } SF_FILE_TYPE_E enFileTye; // TODO: It't better not include IHalCommon.h std::string mThumbFileName; std::string mThumbFilePath; // unsigned int thumbfileSize; }; constexpr int UNDEFINE_GET_NIGHT = -1; class VCameraTask { public: VCameraTask() = default; virtual ~VCameraTask() = default; virtual const CameraTaskType GetTaskType(void) { return CameraTaskType::END; } virtual void Response(const std::vector &response) {} virtual bool IsTaskFinished(void) { return false; } virtual const signed int GetIsNight(void) { return UNDEFINE_GET_NIGHT; } virtual const unsigned int GetIsMultShot(void) { return false; } }; class VMediaMonitor { public: VMediaMonitor() = default; virtual ~VMediaMonitor() = default; virtual int AudioStream_write(const char *pu8Addr, const unsigned int &u32Len, const unsigned int &TimeStamp) { return 0; } virtual int VideoStream_write(char *pu8Addr, const unsigned int &u32Len, const unsigned int &TimeStamp, const unsigned int &key_frame) { return 0; } }; class VCameraHandle { public: VCameraHandle() = default; virtual ~VCameraHandle() = default; virtual RETURN_CODE ExecuteTask(std::shared_ptr &task) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE StopTask(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE ClearTask(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE SetSpontaneousTaskMonitor(std::shared_ptr &task) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE BeReadyForLive(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE SetMediaMonitor(std::shared_ptr &monitor) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE StartMedia(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE StopMedia(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } }; class ICameraManager { public: ICameraManager() = default; virtual ~ICameraManager() = default; static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); virtual RETURN_CODE Init(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE UnInit(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE GetCameraHandle(const CameraType &type, std::shared_ptr &camera) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } }; bool CreateCameraManager(void); #endif // !I_CAMERA_MANAGER_H