MediaIsp.hpp
1 //
2 // Created by xiong on 2021/4/23.
3 //
4 
5 #ifndef EMX_MediaIsp_HPP
6 #define EMX_MediaIsp_HPP
7 
8 #include "media/common/MediaInfIsp.hpp"
9 #include "MediaParamCBase.hpp"
10 #include "EmxCore.hpp"
11 
12 namespace Emx {
17  class MediaIsp : public MediaInfIsp, public MediaParamCBase<MediaInfIsp::Param> {
18  public:
19  explicit MediaIsp(int32_t chn) : MediaParamCBase(MediaModE::Isp, chn) {}
20 
21  ErrCodeE SetRunMode(RunModeE mode) override;
22 
23  ErrCodeE GetRunMode(RunModeE &mode) override;
24 
26  };
27 
29  class MediaIspInfo {
30  public:
31  MediaIspInfo() : m_started(false) {}
32 
33 
35  using OnGetInfoCallback = std::function<void(MediaIsp::Info &info)>;
36 
45  ErrCodeE Start(EuvLoop &loop, char *buffer, int bufferSize, OnGetInfoCallback cb);
46 
48  void Stop();
49 
50  protected:
51  void OnMsgRecv(uint32_t topic, const char *data, int32_t size);
52 
53  private:
55  OnGetInfoCallback m_cb;
56  bool m_started;
57  };
59 }
60 #endif //EMX_MediaIsp_HPP
61 
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
Definition: MediaInfIsp.hpp:15
RunModeE
ISP运行模式
Definition: MediaInfIsp.hpp:18
异步ISPInfo数据接收
Definition: MediaIsp.hpp:29
ErrCodeE Start(EuvLoop &loop, char *buffer, int bufferSize, OnGetInfoCallback cb)
开始接收ISP消息数据
std::function< void(MediaIsp::Info &info)> OnGetInfoCallback
异步ISP信息接收回调函数
Definition: MediaIsp.hpp:35
MediaIspInfo()
Definition: MediaIsp.hpp:31
void OnMsgRecv(uint32_t topic, const char *data, int32_t size)
void Stop()
停止接收ISP消息数据
Isp
Definition: MediaIsp.hpp:17
ErrCodeE GetIspInfo(MediaIsp::Info &info) override
ErrCodeE SetRunMode(RunModeE mode) override
ErrCodeE GetRunMode(RunModeE &mode) override
MediaIsp(int32_t chn)
Definition: MediaIsp.hpp:19
客户端参数基类,方便通用操作
Definition: MediaParamCBase.hpp:35
用于Topic的异步订阅
Definition: MsgTopic.hpp:175
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10
ISP信息
Definition: MediaInfIsp.hpp:74