72 lines
3.3 KiB
C++
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
|