upc_e.hpp
1 #pragma once
2 
3 #include "reader_ean_upc_config_base.hpp"
4 
5 namespace Cvb
6 {
7  CVB_BEGIN_INLINE_NS
8 
9  namespace Barcode
10  {
11  using namespace Internal;
12 
14 
17  {
18  public:
19  virtual Symbology Type() const override { return Symbology::UpcE; };
20 
22 
28  static std::unique_ptr<UpcE> FromHandle(const HandleGuard<ReaderConfig>& guard, bool& isActiveOut)
29  {
30  auto pConfig = std::unique_ptr<UpcE>(new UpcE());
31  isActiveOut = pConfig->ReadFromHandle(guard);
32  return pConfig;
33  }
34 
35  protected:
36  virtual bool ReadFromHandle_(const HandleGuard<ReaderConfig>& guard) override
37  {
38  CExports::cvbbool_t active;
39  CVB_CALL_CAPI(CvcBcGetUPCE(reinterpret_cast<std::intptr_t>(guard.Handle()),
40  &active,
41  checkQuietzone_.Ptr(),
42  appendix2Present_.Ptr(),
43  appendix5Present_.Ptr(),
44  inverse_.Ptr()
45  ));
46  return SmartBool(active);
47  }
48 
49  virtual void WriteToHandle_(bool active, HandleGuard<ReaderConfig>& guard) override
50  {
51  CVB_CALL_CAPI(CvcBcSetUPCE(reinterpret_cast<std::intptr_t>(guard.Handle()),
52  SmartBool(active),
53  checkQuietzone_,
54  appendix2Present_,
55  appendix5Present_,
56  inverse_
57  ));
58  }
59  protected:
60  UpcE()
61  : ReaderEanUpcConfigBase()
62  {
63  }
64 
65  };
66 
67  using UpcEPtr = std::shared_ptr<UpcE>;
68  }
69 
70  CVB_END_INLINE_NS
71 }
STL class.
static std::unique_ptr< UpcE > FromHandle(const HandleGuard< ReaderConfig > &guard, bool &isActiveOut)
Create object from handle.
Definition: upc_e.hpp:28
Symbology
The symbologies supported by Barcode.
Definition: barcode.hpp:96
Configuration to access parameters of UpcE.
Definition: upc_e.hpp:16
Root namespace for the Image Manager interface.
Definition: version.hpp:11
virtual Symbology Type() const override
Symbology of configuration object.
Definition: upc_e.hpp:19
STL class.
Configuration to access parameters of ReaderEanUpcConfigBase.
Definition: reader_ean_upc_config_base.hpp:19