MediaServerDraw.hpp
1 //
2 // Created by tangfahong on 2024/3/21.
3 //
4 
5 #ifndef EMX_MediaServerDraw_HPP
6 #define EMX_MediaServerDraw_HPP
7 
8 
9 #include "MediaServerBase.hpp"
10 #include "core/euv/EuvTimer.hpp"
11 #include "media/common/MediaInfDraw.hpp"
12 #include "media/common/MediaRegion.hpp"
13 #include <list>
14 
15 namespace Emx {
21  public:
22  explicit MediaServerDrawChn(int32_t chn) : MediaServerModuleChnBase(MediaModE::Draw, chn) {}
23 
24  ~MediaServerDrawChn() override = default;
25 
26  ErrCodeE LoadParam() override;
27 
28  ErrCodeE SaveParam() override;
29 
30  void *GetParam() override { return &m_param; }
31 
32  void *GetNewParam() override { return &m_paramNew; }
33 
34  void *GetRunningParam() override { return &m_paramRunning; }
35 
36  int GetParamSize() override { return -1; }
37 
38  ErrCodeE GetParamDefaultData(std::string &data) override;
39 
40  void NewParamInCome(const char *data, int size) override;
41 
42  bool ParamChanged() override;
43 
44  void GetParamData(std::string &data) override;
45 
46  void GetRunningParamData(std::string &data) override;
47 
48  void UpdateParam() override;
49 
50  void UpdateRunningParam() override {};
51 
53 
54  void OnServerDestroy() override;
55 
57 
58  protected:
63  virtual Size GetChnPicSize() = 0;
64 
65  struct DrawInfo {
66  int id;
68  };
74  virtual void DrawCreateAll(std::list<DrawInfo> &info) {}
75 
80  virtual void DrawDestroyAll(std::list<DrawInfo> &info) {}
81 
87  virtual void DrawSetItem(const int id, ParamItem &item) {}
88 
89  private:
90  void CreateAll();
91 
92  void DestroyAll();
93 
94  void CalcCoordinate(const float &src, float &dst, int obj);
95 
96  void SetRunningParam(Param *param,Param *addParam = nullptr);
97 
98  void OnGetMsg(uint32_t topic, const char *data, int32_t size);
99  protected:
104 
105  private:
106  Size m_chnPicSize;
107  std::list<DrawInfo> m_draw;
108  char m_buffer[2048];
109  };
110 
112  public:
114  };
116 }// namespace Emx
117 
118 #endif//EMX_MediaServerDraw_HPP
Definition: MediaInfDraw.hpp:15
Definition: MediaServerDraw.hpp:20
ErrCodeE OnServerCreate() override
int GetParamSize() override
Definition: MediaServerDraw.hpp:36
ErrCodeE OnParamChanged() override
void GetParamData(std::string &data) override
void * GetParam() override
Definition: MediaServerDraw.hpp:30
void * GetRunningParam() override
Definition: MediaServerDraw.hpp:34
void NewParamInCome(const char *data, int size) override
MediaServerDrawChn(int32_t chn)
Definition: MediaServerDraw.hpp:22
virtual void DrawCreateAll(std::list< DrawInfo > &info)
创建Draw画线框
Definition: MediaServerDraw.hpp:74
Param m_paramRunning
Definition: MediaServerDraw.hpp:103
virtual void DrawDestroyAll(std::list< DrawInfo > &info)
销毁Draw
Definition: MediaServerDraw.hpp:80
bool ParamChanged() override
Param * m_pParam
Definition: MediaServerDraw.hpp:100
Param m_paramNew
Definition: MediaServerDraw.hpp:102
void UpdateParam() override
~MediaServerDrawChn() override=default
void * GetNewParam() override
Definition: MediaServerDraw.hpp:32
ErrCodeE GetParamDefaultData(std::string &data) override
ErrCodeE LoadParam() override
ErrCodeE SaveParam() override
void UpdateRunningParam() override
Definition: MediaServerDraw.hpp:50
virtual Size GetChnPicSize()=0
获取通道图像大小(叠加的画面大小,例如vpss chn的宽高)
void GetRunningParamData(std::string &data) override
Param m_param
Definition: MediaServerDraw.hpp:101
virtual void DrawSetItem(const int id, ParamItem &item)
设置Draw画线框
Definition: MediaServerDraw.hpp:87
void OnServerDestroy() override
Definition: MediaServerDraw.hpp:111
MediaServerDraw()
Definition: MediaServerDraw.hpp:113
媒体模块的通用基类
Definition: MediaServerBase.hpp:104
Definition: MediaServerBase.hpp:18
关于系统需要持久化保存的参数的相关操作
Definition: EmxParam.hpp:18
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10
持久化参数
Definition: MediaInfDraw.hpp:53
Definition: MediaInfDraw.hpp:66
Definition: MediaServerDraw.hpp:65
ParamItem item
item数据
Definition: MediaServerDraw.hpp:67
int id
Draw的唯一标识
Definition: MediaServerDraw.hpp:66
图像大小
Definition: MediaRegion.hpp:25