MediaFactory.hpp
1 //
2 // Created by xiong on 2020/10/30.
3 //
4 
5 #ifndef EMX_MediaFactory_HPP
6 #define EMX_MediaFactory_HPP
7 
8 #include "media/common/MediaTypedef.hpp"
9 
10 namespace Emx {
14  class MediaServer;
15 
16  class MediaServerModuleChnBase;
17 
18  class MediaFactory {
19  public:
21 
22  static void PrintMediaServerInfo();
23 
24  virtual ErrCodeE SwitchScene(const char *curScene, const char *newScene);
25 
26  virtual MediaServer *MakeServer();
27 
29  switch (mod) {
30  case MediaModE::System:
31  return MakeSystemChn(chn);
32  case MediaModE::Isp:
33  return MakeIspChn(chn);
34  case MediaModE::Venc:
35  return MakeVencChn(chn);
36  case MediaModE::Aenc:
37  return MakeAencChn(chn);
38  case MediaModE::Adec:
39  return MakeAdecChn(chn);
40  case MediaModE::Snap:
41  return MakeSnapChn(chn);
42  case MediaModE::QrScan:
43  return MakeQrScanChn(chn);
44  case MediaModE::Osd:
45  return MakeOsdChn(chn);
46  // case MediaModE::Ai:
47  // return MakeAiChn(chn);
48  case MediaModE::Vi:
49  return MakeViChn(chn);
50  case MediaModE::Vdec:
51  return MakeVdecChn(chn);
52  case MediaModE::Vo:
53  return MakeVoChn(chn);
54  case MediaModE::Draw:
55  return MakeDrawChn(chn);
56  case MediaModE::Aov:
57  return MakeAovChn(chn);
58  default:
59  return nullptr;
60  }
61  }
62 
63  virtual MediaServerModuleChnBase *MakeSystemChn(int32_t chn) = 0;
64 
65  virtual MediaServerModuleChnBase *MakeIspChn(int32_t chn) = 0;
66 
67  virtual MediaServerModuleChnBase *MakeVencChn(int32_t chn) = 0;
68 
69  virtual MediaServerModuleChnBase *MakeAencChn(int32_t chn) = 0;
70 
71  virtual MediaServerModuleChnBase *MakeAdecChn(int32_t chn) = 0;
72 
73  virtual MediaServerModuleChnBase *MakeSnapChn(int32_t chn) = 0;
74 
75  virtual MediaServerModuleChnBase *MakeQrScanChn(int32_t chn) = 0;
76 
77  virtual MediaServerModuleChnBase *MakeOsdChn(int32_t chn) = 0;
78 
79  // MediaServerModuleChnBase *MakeAiChn(int32_t chn);
80 
81  virtual MediaServerModuleChnBase *MakeViChn(int32_t chn) = 0;
82 
83  virtual MediaServerModuleChnBase *MakeVdecChn(int32_t chn) = 0;
84 
85  virtual MediaServerModuleChnBase *MakeVoChn(int32_t chn) = 0;
86 
87  virtual MediaServerModuleChnBase *MakeDrawChn(int32_t chn) = 0;
88 
89  virtual MediaServerModuleChnBase *MakeAovChn(int32_t chn);
90  };
92 }// namespace Emx
93 
94 
95 #endif//EMX_MediaFactory_HPP
Definition: MediaFactory.hpp:18
static void PrintMediaServerInfo()
MediaServerModuleChnBase * MakeModuleChn(MediaModE mod, int32_t chn)
Definition: MediaFactory.hpp:28
virtual MediaServerModuleChnBase * MakeIspChn(int32_t chn)=0
virtual ErrCodeE SwitchScene(const char *curScene, const char *newScene)
virtual MediaServerModuleChnBase * MakeViChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeAdecChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeVencChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeSystemChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeVdecChn(int32_t chn)=0
static MediaFactory * GetMediaFactory()
virtual MediaServerModuleChnBase * MakeVoChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeSnapChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeQrScanChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeAencChn(int32_t chn)=0
virtual MediaServerModuleChnBase * MakeDrawChn(int32_t chn)=0
virtual MediaServer * MakeServer()
virtual MediaServerModuleChnBase * MakeAovChn(int32_t chn)
virtual MediaServerModuleChnBase * MakeOsdChn(int32_t chn)=0
Definition: MediaServerBase.hpp:18
Definition: MediaServer.hpp:19
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10