103 friend class ConfigBase;
106 enum class Properties
108 BasicInkjet = CExports::CVCRPerformanceProperties::CVCRPP_BasicInkjet
111 enum class ResultProperties
113 Corners = CExports::CVCRResultProperties::CVCRRP_Corners,
114 Center = CExports::CVCRResultProperties::CVCRRP_Center,
115 SymbolType = CExports::CVCRResultProperties::CVCRRP_SymbolType,
116 SymbolTypeEx = CExports::CVCRResultProperties::CVCRRP_SymbolTypeEx,
117 Length = CExports::CVCRResultProperties::CVCRRP_Length,
118 String = CExports::CVCRResultProperties::CVCRRP_String,
119 Quality = CExports::CVCRResultProperties::CVCRRP_Quality,
120 Status = CExports::CVCRResultProperties::CVCRRP_Status,
123 ECCError = CExports::CVCRResultProperties2D::CVCRRP2D_ECCError,
124 ECCErasure = CExports::CVCRResultProperties2D::CVCRRP2D_ECCErasure,
125 SymbolHeightWidth = CExports::CVCRResultProperties2D::CVCRRP2D_SymbolHeightWidth,
126 SymbolRowsColumns = CExports::CVCRResultProperties2D::CVCRRP2D_SymbolRowsColumns
206 template <Symbology SYM>
207 typename Config::Mapper<SYM>::Type &
Config()
209 return std::get<typename Config::Mapper<SYM>::Type>(config_);
207 typename Config::Mapper<SYM>::Type &
Config() {
…}
264 Decoder(
const Decoder &other) =
delete;
265 Decoder &operator=(
const Decoder &other) =
delete;
266 explicit Decoder(HandleGuard<Decoder> &&guard, PrivateTag) noexcept
268 , config_(
std::make_tuple(Config::DataMatrix(*
this), Config::QR(*
this), Config::MicroQR(*
this),
269 Config::Pdf417(*
this), Config::MicroPdf417(*
this), Config::GS1DataBar14(*
this),
270 Config::GS1DataBarStacked(*
this), Config::GS1DataBarLimited(*
this),
271 Config::GS1DataBarExpanded(*
this), Config::GS1DataBarExpandedStacked(*
this),
272 Config::Ean8(*
this), Config::Ean13(*
this), Config::UpcA(*
this), Config::UpcE(*
this),
273 Config::Code128(*
this), Config::Code39(*
this), Config::Code93(*
this),
274 Config::Interleaved2of5(*
this), Config::UspsIntelligentMail(*
this),
275 Config::DutchPost(*
this), Config::AustraliaPost(*
this), Config::RoyalMail(*
this),
276 Config::Pharmacode(*
this), Config::Code32(*
this), Config::Code11(*
this)))
279 virtual ~Decoder() =
default;
283 void *Handle() const noexcept
285 return handle_.Handle();
289 HandleGuard<Decoder> handle_;
290 std::tuple<Config::DataMatrix, Config::QR, Config::MicroQR, Config::Pdf417, Config::MicroPdf417,
291 Config::GS1DataBar14, Config::GS1DataBarStacked, Config::GS1DataBarLimited, Config::GS1DataBarExpanded,
292 Config::GS1DataBarExpandedStacked, Config::Ean8, Config::Ean13, Config::UpcA, Config::UpcE,
293 Config::Code128, Config::Code39, Config::Code93, Config::Interleaved2of5, Config::UspsIntelligentMail,
294 Config::DutchPost, Config::AustraliaPost, Config::RoyalMail, Config::Pharmacode, Config::Code32,