MediaQrScan.hpp
1 //
2 // Created by xiong on 2021/6/25.
3 //
4 
5 #ifndef EMX_MediaQRScan_HPP
6 #define EMX_MediaQRScan_HPP
7 
8 #include "media/common/MediaInfQrScan.hpp"
9 #include "MediaParamCBase.hpp"
10 #include "core/EmxMsg.hpp"
11 #include "core/EmxUV.hpp"
12 
13 namespace Emx {
18  class MediaQrScan : public MediaInfQrScan, public MediaParamCBase<MediaInfQrScan::Param> {
19  public:
20  explicit MediaQrScan(int32_t chn) : MediaParamCBase(MediaModE::QrScan, chn) {
21  m_started = false;
22  }
23 
29  using OnGetResult = std::function<void(int chn, const char *result)>;
30 
39  ErrCodeE StartQR(EuvLoop &loop, char *buffer, int size, OnGetResult cbRes);
40 
46 
47  private:
48  ErrCodeE Start() override;
49 
50  ErrCodeE Stop() override;
51 
52  private:
53  bool m_started;
55  OnGetResult m_cb;
56  };
58 }
59 
60 #endif //EMX_MediaQRScan_HPP
61 
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
Definition: MediaInfQrScan.hpp:15
客户端参数基类,方便通用操作
Definition: MediaParamCBase.hpp:35
二维码扫描
Definition: MediaQrScan.hpp:18
MediaQrScan(int32_t chn)
Definition: MediaQrScan.hpp:20
ErrCodeE StopQR()
结束扫码
std::function< void(int chn, const char *result)> OnGetResult
当二维码识别结束后触发此回调
Definition: MediaQrScan.hpp:29
ErrCodeE StartQR(EuvLoop &loop, char *buffer, int size, OnGetResult cbRes)
开始扫描二维码
用于Topic的异步订阅
Definition: MsgTopic.hpp:175
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10