MediaParamCBase.hpp
1 //
2 // Created by xiong on 2023/8/16.
3 //
4 
5 #ifndef EMX_MediaParamCBase_HPP
6 #define EMX_MediaParamCBase_HPP
7 
8 #include "media/common/MediaTypedef.hpp"
9 #include "json/json.h"
10 
11 
12 namespace Emx {
17  public:
18  static ErrCodeE SetParam(uint32_t model, int32_t chn, const void *param, int32_t size, int32_t timeoutMs);
19 
20  static ErrCodeE SetTmpParam(uint32_t model, int32_t chn, const void *param, int32_t size, int32_t timeoutMs);
21 
22  static ErrCodeE GetRunningParam(uint32_t model, int32_t chn, void *param, int32_t size, int32_t timeoutMs);
23 
24  static ErrCodeE GetParam(uint32_t model, int32_t chn, void *param, int32_t size, int32_t timeoutMs);
25 
26  static ErrCodeE GetParamDefault(uint32_t model, int32_t chn, void *param, int32_t size, int32_t timeoutMs);
27 
28  static ErrCodeE GetParamRange(uint32_t model, int32_t chn, Json::Value &range, int32_t timeoutMs);
29 
30  static ErrCodeE GetTotalChnNum(uint32_t model, int32_t &num, int32_t timeoutMs);
31  };
32 
34  template<class Param>
36  public:
37  static const int paramTimeOut = 10000;
38  explicit MediaParamCBase(MediaModE model, int32_t chn) : m_modelId((uint32_t) model), m_chn(chn) {}
39 
40  virtual ~MediaParamCBase() = default;
41 
47  virtual ErrCodeE SetParam(const Param &param) {
48  return MediaParamCBaseImpl::SetParam(m_modelId, m_chn, &param, sizeof(param), paramTimeOut);
49  }
55  virtual ErrCodeE SetTmpParam(const Param &param) {
56  return MediaParamCBaseImpl::SetTmpParam(m_modelId, m_chn, &param, sizeof(param), paramTimeOut);
57  }
63  virtual ErrCodeE GetParam(Param &param) {
64  return MediaParamCBaseImpl::GetParam(m_modelId, m_chn, &param, sizeof(param), paramTimeOut);
65  }
66 
72  virtual ErrCodeE GetRunningParam(Param &param) {
73  return MediaParamCBaseImpl::GetRunningParam(m_modelId, m_chn, &param, sizeof(param), paramTimeOut);
74  }
75 
81  virtual ErrCodeE GetParamDefault(Param &param) {
82  return MediaParamCBaseImpl::GetParamDefault(m_modelId, m_chn, &param, sizeof(param), paramTimeOut);
83  }
84 
90  virtual ErrCodeE GetParamRange(Json::Value &range) {
92  }
93 
100 
105  int32_t GetChn() { return m_chn; }
106 
107  protected:
108  uint32_t m_modelId;
109  int32_t m_chn;
110  };
112 }// namespace Emx
113 #endif//EMX_MediaParamCBase_HPP
Definition: MediaParamCBase.hpp:16
static ErrCodeE SetParam(uint32_t model, int32_t chn, const void *param, int32_t size, int32_t timeoutMs)
static ErrCodeE GetParam(uint32_t model, int32_t chn, void *param, int32_t size, int32_t timeoutMs)
static ErrCodeE GetParamDefault(uint32_t model, int32_t chn, void *param, int32_t size, int32_t timeoutMs)
static ErrCodeE GetRunningParam(uint32_t model, int32_t chn, void *param, int32_t size, int32_t timeoutMs)
static ErrCodeE GetParamRange(uint32_t model, int32_t chn, Json::Value &range, int32_t timeoutMs)
static ErrCodeE SetTmpParam(uint32_t model, int32_t chn, const void *param, int32_t size, int32_t timeoutMs)
static ErrCodeE GetTotalChnNum(uint32_t model, int32_t &num, int32_t timeoutMs)
客户端参数基类,方便通用操作
Definition: MediaParamCBase.hpp:35
int32_t m_chn
Definition: MediaParamCBase.hpp:109
virtual ~MediaParamCBase()=default
virtual ErrCodeE GetParamDefault(Param &param)
获取默认参数
Definition: MediaParamCBase.hpp:81
int32_t GetChn()
获取通道号
Definition: MediaParamCBase.hpp:105
virtual ErrCodeE GetRunningParam(Param &param)
获取当前运行的参数
Definition: MediaParamCBase.hpp:72
virtual ErrCodeE SetParam(const Param &param)
设置参数
Definition: MediaParamCBase.hpp:47
virtual ErrCodeE GetTotalChnNum(int &num)
获取支持的总通道数量
Definition: MediaParamCBase.hpp:99
virtual ErrCodeE GetParamRange(Json::Value &range)
获取参数取值范围
Definition: MediaParamCBase.hpp:90
virtual ErrCodeE SetTmpParam(const Param &param)
设置临时参数
Definition: MediaParamCBase.hpp:55
uint32_t m_modelId
Definition: MediaParamCBase.hpp:108
MediaParamCBase(MediaModE model, int32_t chn)
Definition: MediaParamCBase.hpp:38
static const int paramTimeOut
Definition: MediaParamCBase.hpp:37
virtual ErrCodeE GetParam(Param &param)
获取参数
Definition: MediaParamCBase.hpp:63
关于系统需要持久化保存的参数的相关操作
Definition: EmxParam.hpp:18
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10