MediaDraw.hpp
1 /*
2 * @Author: tangfahong
3 * @Date: 2024/3/22
4 */
5 
6 #ifndef EMX_MediaDraw_HPP
7 #define EMX_MediaDraw_HPP
8 
9 #include "MediaParamCBase.hpp"
10 #include "media/common/MediaInfDraw.hpp"
11 #include "core/EmxUtils.hpp"
12 #include <cstring>
13 #include <list>
14 
15 namespace Emx {
20  class MediaDraw : public MediaInfDraw, public MediaParamCBase<MediaInfDraw::Param> {
21  public:
22  explicit MediaDraw(int32_t chn) : MediaParamCBase(MediaModE::Draw, chn) {}
23 
24  ErrCodeE SetParam(const Param &param) override;
25 
26  ErrCodeE GetParam(Param &param) override;
27 
28  ErrCodeE GetParamDefault(Param &param) override;
29 
30  ErrCodeE SetTmpParam(const Param &param) override;
31 
32  ErrCodeE GetRunningParam(Param &param) override;
33  };
34 
37  public:
46  ErrCodeE Create(EuvLoop &loop, uint32_t paramNumMax);
47 
54  ErrCodeE PushUserParam(int32_t chn, const MediaInfDraw::Param &userParam);
55 
61  ErrCodeE ClearUserParam(int32_t chn);
62 
69  ErrCodeE PushAllParam(int32_t chn, const MediaInfDraw::Param &param);
70 
76  ErrCodeE ClearAllParam(int32_t chn);
77 
81  void Destroy();
82  private:
90  ErrCodeE PushParam(int32_t chn,bool isAll, const MediaInfDraw::Param &param);
91 
98  ErrCodeE ClearParam(int32_t chn,bool isAll);
99 
100  private:
102  int m_chn;
103  uint32_t m_paramNumMax;
104  uint8_t *m_buffer;
105  uint32_t m_bufferSize;
106  uint32_t m_userSize;
107  };
109 }// namespace Emx
110 #endif//EMX_MediaOSD_HPP
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
Draw 动态配置异步接口,均为异步操作
Definition: MediaDraw.hpp:36
ErrCodeE ClearAllParam(int32_t chn)
清除所有的Draw配置的param
ErrCodeE ClearUserParam(int32_t chn)
清除用户的Draw动态配置的userParam,不会清除已经配置的param
ErrCodeE Create(EuvLoop &loop, uint32_t paramNumMax)
创建异步Draw动态配置流。
ErrCodeE PushAllParam(int32_t chn, const MediaInfDraw::Param &param)
发送所有的Draw配置显示,会替换所有的param
void Destroy()
销毁异步Draw动态配置。
ErrCodeE PushUserParam(int32_t chn, const MediaInfDraw::Param &userParam)
发送用户的Draw动态配置显示,会叠加在已经配置的param上面
Draw
Definition: MediaDraw.hpp:20
ErrCodeE GetParamDefault(Param &param) override
ErrCodeE GetRunningParam(Param &param) override
MediaDraw(int32_t chn)
Definition: MediaDraw.hpp:22
ErrCodeE SetTmpParam(const Param &param) override
ErrCodeE GetParam(Param &param) override
ErrCodeE SetParam(const Param &param) override
Definition: MediaInfDraw.hpp:15
客户端参数基类,方便通用操作
Definition: MediaParamCBase.hpp:35
用于Topic的异步发布
Definition: MsgTopic.hpp:68
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10
Definition: MediaInfDraw.hpp:66