nt9856x/code/application/sifarsdk/component/CameraManager/include/ICameraManager.h

72 lines
3.3 KiB
C++

#ifndef I_CAMERA_MANAGER_H
#define I_CAMERA_MANAGER_H
#include "VReturnCode.h"
#include "IHalCommon.h"
#include <iostream>
#include <memory>
#include <vector>
enum class CameraManagerReturnCodeDefine
{
CAMERA_TASK_CAN_EXECUTE_MORE = static_cast<int>(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<CameraTaskResponse> &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<VCameraTask> &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<VCameraTask> &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<VMediaMonitor> &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<ICameraManager> &GetInstance(std::shared_ptr<ICameraManager> *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<VCameraHandle> &camera) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); }
};
bool CreateCameraManager(void);
#endif // !I_CAMERA_MANAGER_H