code93.hpp
1 #pragma once
2 
3 #include "reader_with_transmit_start_stop_config.hpp"
4 
5 namespace Cvb
6 {
7  CVB_BEGIN_INLINE_NS
8 
9  namespace Barcode
10  {
11  using namespace Internal;
12 
13 
15 
18  {
19 
20 
21  public:
22  virtual Symbology Type() const override { return Symbology::Code93; };
23 
25 
31  static std::unique_ptr<Code93> FromHandle(const HandleGuard<ReaderConfig>& guard, bool& isActiveOut)
32  {
33  auto pConfig = std::unique_ptr<Code93>(new Code93());
34  isActiveOut = pConfig->ReadFromHandle(guard);
35  return pConfig;
36  }
37 
38  protected:
39  virtual bool ReadFromHandle_(const HandleGuard<ReaderConfig>& guard) override
40  {
41  CExports::cvbbool_t active;
42  CVB_CALL_CAPI(CvcBcGetCode93(reinterpret_cast<std::intptr_t>(guard.Handle()),
43  &active,
44  &minDigits_,
45  &maxDigits_,
46  checkQuietzone_.Ptr(),
47  evalCheckDigit_.Ptr(),
48  transmitCheckDigit_.Ptr(),
49  transmitStartStop_.Ptr(),
50  inverse_.Ptr()
51  ));
52  return SmartBool(active);
53  }
54 
55  virtual void WriteToHandle_(bool active, HandleGuard<ReaderConfig>& guard) override
56  {
57  Internal::DoResCall([&]()
58  {
59  return CVB_CALL_CAPI(CvcBcSetCode93(reinterpret_cast<std::intptr_t>(guard.Handle()),
60  SmartBool(active),
61  minDigits_,
62  maxDigits_,
63  checkQuietzone_,
64  evalCheckDigit_,
65  transmitCheckDigit_,
66  transmitStartStop_,
67  inverse_
68  ));
69  });
70  }
71  protected:
72  Code93()
73  : ReaderWithTransmitStartStopConfigBase()
74  {
75  }
76 
77  };
78 
79  using Code93Ptr = std::shared_ptr<Code93>;
80  }
81 
82  CVB_END_INLINE_NS
83 }
STL class.
Symbology
The symbologies supported by Barcode.
Definition: barcode.hpp:96
virtual Symbology Type() const override
Symbology of configuration object.
Definition: code93.hpp:22
Configuration to access parameters of ReaderWithTransmitStartStopConfigBase.
Definition: reader_with_transmit_start_stop_config.hpp:18
Root namespace for the Image Manager interface.
Definition: version.hpp:11
static std::unique_ptr< Code93 > FromHandle(const HandleGuard< ReaderConfig > &guard, bool &isActiveOut)
Create object from handle.
Definition: code93.hpp:31
Configuration to access parameters of Code93.
Definition: code93.hpp:17
STL class.