react-native-nitro-zxing 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/README.md +34 -0
  2. package/VisionCameraZxing.podspec +48 -0
  3. package/android/CMakeLists.txt +43 -0
  4. package/android/build.gradle +150 -0
  5. package/android/fix-prefab.gradle +51 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +3 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +7 -0
  9. package/android/src/main/java/com/margelo/nitro/camera/zxing/VisionCameraZxingPackage.kt +21 -0
  10. package/cpp/BarcodeValueTypeClassifier.cpp +70 -0
  11. package/cpp/BarcodeValueTypeClassifier.hpp +14 -0
  12. package/cpp/FrameImageView.cpp +75 -0
  13. package/cpp/FrameImageView.hpp +34 -0
  14. package/cpp/HybridBarcode.cpp +59 -0
  15. package/cpp/HybridBarcode.hpp +26 -0
  16. package/cpp/HybridBarcodeScanner.cpp +121 -0
  17. package/cpp/HybridBarcodeScanner.hpp +26 -0
  18. package/cpp/HybridBarcodeScannerFactory.cpp +11 -0
  19. package/cpp/HybridBarcodeScannerFactory.hpp +14 -0
  20. package/cpp/ImageDownscaler.cpp +34 -0
  21. package/cpp/ImageDownscaler.hpp +21 -0
  22. package/cpp/ZXingDecoder.cpp +189 -0
  23. package/cpp/ZXingDecoder.hpp +72 -0
  24. package/cpp/zxing-core/LICENSE +202 -0
  25. package/cpp/zxing-core/README.md +156 -0
  26. package/cpp/zxing-core/core/CMakeLists.txt +784 -0
  27. package/cpp/zxing-core/core/Version.h.in +28 -0
  28. package/cpp/zxing-core/core/ZXingConfig.cmake.in +9 -0
  29. package/cpp/zxing-core/core/src/Barcode.cpp +255 -0
  30. package/cpp/zxing-core/core/src/Barcode.h +191 -0
  31. package/cpp/zxing-core/core/src/BarcodeData.h +100 -0
  32. package/cpp/zxing-core/core/src/BarcodeFormat.cpp +286 -0
  33. package/cpp/zxing-core/core/src/BarcodeFormat.h +272 -0
  34. package/cpp/zxing-core/core/src/BinaryBitmap.cpp +111 -0
  35. package/cpp/zxing-core/core/src/BinaryBitmap.h +66 -0
  36. package/cpp/zxing-core/core/src/BitArray.cpp +38 -0
  37. package/cpp/zxing-core/core/src/BitArray.h +181 -0
  38. package/cpp/zxing-core/core/src/BitMatrix.cpp +175 -0
  39. package/cpp/zxing-core/core/src/BitMatrix.h +199 -0
  40. package/cpp/zxing-core/core/src/BitMatrixCursor.h +253 -0
  41. package/cpp/zxing-core/core/src/BitMatrixIO.cpp +101 -0
  42. package/cpp/zxing-core/core/src/BitMatrixIO.h +21 -0
  43. package/cpp/zxing-core/core/src/BitSource.cpp +77 -0
  44. package/cpp/zxing-core/core/src/BitSource.h +72 -0
  45. package/cpp/zxing-core/core/src/ByteArray.h +42 -0
  46. package/cpp/zxing-core/core/src/CharacterSet.cpp +78 -0
  47. package/cpp/zxing-core/core/src/CharacterSet.h +58 -0
  48. package/cpp/zxing-core/core/src/ConcentricFinder.cpp +312 -0
  49. package/cpp/zxing-core/core/src/ConcentricFinder.h +156 -0
  50. package/cpp/zxing-core/core/src/Content.cpp +471 -0
  51. package/cpp/zxing-core/core/src/Content.h +82 -0
  52. package/cpp/zxing-core/core/src/ContentType.h +19 -0
  53. package/cpp/zxing-core/core/src/CreateBarcode.cpp +490 -0
  54. package/cpp/zxing-core/core/src/CreateBarcode.h +132 -0
  55. package/cpp/zxing-core/core/src/DecoderResult.h +92 -0
  56. package/cpp/zxing-core/core/src/DetectorResult.h +44 -0
  57. package/cpp/zxing-core/core/src/ECI.cpp +81 -0
  58. package/cpp/zxing-core/core/src/ECI.h +78 -0
  59. package/cpp/zxing-core/core/src/Error.cpp +29 -0
  60. package/cpp/zxing-core/core/src/Error.h +79 -0
  61. package/cpp/zxing-core/core/src/Flags.h +165 -0
  62. package/cpp/zxing-core/core/src/GTIN.cpp +253 -0
  63. package/cpp/zxing-core/core/src/GTIN.h +58 -0
  64. package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.cpp +197 -0
  65. package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.h +34 -0
  66. package/cpp/zxing-core/core/src/GridSampler.cpp +124 -0
  67. package/cpp/zxing-core/core/src/GridSampler.h +59 -0
  68. package/cpp/zxing-core/core/src/HRI.cpp +343 -0
  69. package/cpp/zxing-core/core/src/HRI.h +16 -0
  70. package/cpp/zxing-core/core/src/HybridBinarizer.cpp +315 -0
  71. package/cpp/zxing-core/core/src/HybridBinarizer.h +40 -0
  72. package/cpp/zxing-core/core/src/ImageView.h +168 -0
  73. package/cpp/zxing-core/core/src/JSON.cpp +154 -0
  74. package/cpp/zxing-core/core/src/JSON.h +66 -0
  75. package/cpp/zxing-core/core/src/LocalGrid.cpp +242 -0
  76. package/cpp/zxing-core/core/src/LocalGrid.h +91 -0
  77. package/cpp/zxing-core/core/src/LogMatrix.h +105 -0
  78. package/cpp/zxing-core/core/src/Matrix.h +125 -0
  79. package/cpp/zxing-core/core/src/MultiFormatReader.cpp +107 -0
  80. package/cpp/zxing-core/core/src/MultiFormatReader.h +34 -0
  81. package/cpp/zxing-core/core/src/MultiFormatWriter.cpp +111 -0
  82. package/cpp/zxing-core/core/src/MultiFormatWriter.h +62 -0
  83. package/cpp/zxing-core/core/src/Pattern.h +472 -0
  84. package/cpp/zxing-core/core/src/PerspectiveTransform.cpp +81 -0
  85. package/cpp/zxing-core/core/src/PerspectiveTransform.h +47 -0
  86. package/cpp/zxing-core/core/src/Point.h +185 -0
  87. package/cpp/zxing-core/core/src/Quadrilateral.h +215 -0
  88. package/cpp/zxing-core/core/src/Range.h +112 -0
  89. package/cpp/zxing-core/core/src/ReadBarcode.cpp +335 -0
  90. package/cpp/zxing-core/core/src/ReadBarcode.h +33 -0
  91. package/cpp/zxing-core/core/src/Reader.h +32 -0
  92. package/cpp/zxing-core/core/src/ReaderOptions.h +210 -0
  93. package/cpp/zxing-core/core/src/ReedSolomon.cpp +100 -0
  94. package/cpp/zxing-core/core/src/ReedSolomon.h +66 -0
  95. package/cpp/zxing-core/core/src/RegressionLine.h +161 -0
  96. package/cpp/zxing-core/core/src/ResultPoint.cpp +20 -0
  97. package/cpp/zxing-core/core/src/ResultPoint.h +35 -0
  98. package/cpp/zxing-core/core/src/StdGenerator.h +121 -0
  99. package/cpp/zxing-core/core/src/StdPrint.h +38 -0
  100. package/cpp/zxing-core/core/src/StdScope.h +55 -0
  101. package/cpp/zxing-core/core/src/StructuredAppend.h +19 -0
  102. package/cpp/zxing-core/core/src/SymbologyIdentifier.h +29 -0
  103. package/cpp/zxing-core/core/src/TextDecoder.cpp +59 -0
  104. package/cpp/zxing-core/core/src/TextDecoder.h +23 -0
  105. package/cpp/zxing-core/core/src/TextEncoder.cpp +75 -0
  106. package/cpp/zxing-core/core/src/TextEncoder.h +31 -0
  107. package/cpp/zxing-core/core/src/ThresholdBinarizer.h +58 -0
  108. package/cpp/zxing-core/core/src/TritMatrix.h +29 -0
  109. package/cpp/zxing-core/core/src/Utf.cpp +276 -0
  110. package/cpp/zxing-core/core/src/Utf.h +26 -0
  111. package/cpp/zxing-core/core/src/WhiteRectDetector.cpp +276 -0
  112. package/cpp/zxing-core/core/src/WhiteRectDetector.h +36 -0
  113. package/cpp/zxing-core/core/src/WriteBarcode.cpp +213 -0
  114. package/cpp/zxing-core/core/src/WriteBarcode.h +72 -0
  115. package/cpp/zxing-core/core/src/ZXAlgorithms.h +353 -0
  116. package/cpp/zxing-core/core/src/ZXConfig.h +17 -0
  117. package/cpp/zxing-core/core/src/ZXTestSupport.h +9 -0
  118. package/cpp/zxing-core/core/src/ZXVersion.h +14 -0
  119. package/cpp/zxing-core/core/src/ZXingC.cpp +460 -0
  120. package/cpp/zxing-core/core/src/ZXingC.h +296 -0
  121. package/cpp/zxing-core/core/src/ZXingCpp.cpp +18 -0
  122. package/cpp/zxing-core/core/src/ZXingCpp.h +76 -0
  123. package/cpp/zxing-core/core/src/ZXingQt.h +606 -0
  124. package/cpp/zxing-core/core/src/aztec/AZDecoder.cpp +376 -0
  125. package/cpp/zxing-core/core/src/aztec/AZDecoder.h +20 -0
  126. package/cpp/zxing-core/core/src/aztec/AZDetector.cpp +508 -0
  127. package/cpp/zxing-core/core/src/aztec/AZDetector.h +25 -0
  128. package/cpp/zxing-core/core/src/aztec/AZDetectorResult.h +51 -0
  129. package/cpp/zxing-core/core/src/aztec/AZEncoder.cpp +318 -0
  130. package/cpp/zxing-core/core/src/aztec/AZEncoder.h +44 -0
  131. package/cpp/zxing-core/core/src/aztec/AZEncodingState.h +40 -0
  132. package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.cpp +377 -0
  133. package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.h +36 -0
  134. package/cpp/zxing-core/core/src/aztec/AZReader.cpp +45 -0
  135. package/cpp/zxing-core/core/src/aztec/AZReader.h +21 -0
  136. package/cpp/zxing-core/core/src/aztec/AZToken.cpp +44 -0
  137. package/cpp/zxing-core/core/src/aztec/AZToken.h +39 -0
  138. package/cpp/zxing-core/core/src/aztec/AZWriter.cpp +38 -0
  139. package/cpp/zxing-core/core/src/aztec/AZWriter.h +55 -0
  140. package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.cpp +194 -0
  141. package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.h +21 -0
  142. package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.cpp +63 -0
  143. package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.h +41 -0
  144. package/cpp/zxing-core/core/src/datamatrix/DMDecoder.cpp +457 -0
  145. package/cpp/zxing-core/core/src/datamatrix/DMDecoder.h +19 -0
  146. package/cpp/zxing-core/core/src/datamatrix/DMDetector.cpp +1230 -0
  147. package/cpp/zxing-core/core/src/datamatrix/DMDetector.h +23 -0
  148. package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.cpp +137 -0
  149. package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.h +26 -0
  150. package/cpp/zxing-core/core/src/datamatrix/DMEncoderContext.h +128 -0
  151. package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.cpp +919 -0
  152. package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.h +29 -0
  153. package/cpp/zxing-core/core/src/datamatrix/DMReader.cpp +40 -0
  154. package/cpp/zxing-core/core/src/datamatrix/DMReader.h +21 -0
  155. package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.cpp +141 -0
  156. package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.h +78 -0
  157. package/cpp/zxing-core/core/src/datamatrix/DMSymbolShape.h +17 -0
  158. package/cpp/zxing-core/core/src/datamatrix/DMVersion.cpp +82 -0
  159. package/cpp/zxing-core/core/src/datamatrix/DMVersion.h +76 -0
  160. package/cpp/zxing-core/core/src/datamatrix/DMWriter.cpp +114 -0
  161. package/cpp/zxing-core/core/src/datamatrix/DMWriter.h +62 -0
  162. package/cpp/zxing-core/core/src/librscpp/README.md +65 -0
  163. package/cpp/zxing-core/core/src/librscpp/decode.h +258 -0
  164. package/cpp/zxing-core/core/src/librscpp/encode.h +124 -0
  165. package/cpp/zxing-core/core/src/librscpp/field.h +158 -0
  166. package/cpp/zxing-core/core/src/librscpp/poly.h +194 -0
  167. package/cpp/zxing-core/core/src/libzint/2of5inter.c +1 -0
  168. package/cpp/zxing-core/core/src/libzint/2of5inter_based.c +1 -0
  169. package/cpp/zxing-core/core/src/libzint/aztec.c +1 -0
  170. package/cpp/zxing-core/core/src/libzint/aztec.h +1 -0
  171. package/cpp/zxing-core/core/src/libzint/big5.h +1 -0
  172. package/cpp/zxing-core/core/src/libzint/codabar.c +1 -0
  173. package/cpp/zxing-core/core/src/libzint/code.c +1 -0
  174. package/cpp/zxing-core/core/src/libzint/code128.c +1 -0
  175. package/cpp/zxing-core/core/src/libzint/code128.h +1 -0
  176. package/cpp/zxing-core/core/src/libzint/common.c +1 -0
  177. package/cpp/zxing-core/core/src/libzint/common.h +1 -0
  178. package/cpp/zxing-core/core/src/libzint/dmatrix.c +1 -0
  179. package/cpp/zxing-core/core/src/libzint/dmatrix.h +1 -0
  180. package/cpp/zxing-core/core/src/libzint/dxfilmedge.c +1 -0
  181. package/cpp/zxing-core/core/src/libzint/eci.c +1 -0
  182. package/cpp/zxing-core/core/src/libzint/eci.h +1 -0
  183. package/cpp/zxing-core/core/src/libzint/eci_sb.h +1 -0
  184. package/cpp/zxing-core/core/src/libzint/filemem.c +1 -0
  185. package/cpp/zxing-core/core/src/libzint/filemem.h +1 -0
  186. package/cpp/zxing-core/core/src/libzint/fonts/normal_woff2.h +1 -0
  187. package/cpp/zxing-core/core/src/libzint/fonts/upcean_woff2.h +1 -0
  188. package/cpp/zxing-core/core/src/libzint/gb18030.h +1 -0
  189. package/cpp/zxing-core/core/src/libzint/gb2312.h +1 -0
  190. package/cpp/zxing-core/core/src/libzint/gbk.h +1 -0
  191. package/cpp/zxing-core/core/src/libzint/general_field.c +1 -0
  192. package/cpp/zxing-core/core/src/libzint/general_field.h +1 -0
  193. package/cpp/zxing-core/core/src/libzint/gs1.c +1 -0
  194. package/cpp/zxing-core/core/src/libzint/gs1.h +1 -0
  195. package/cpp/zxing-core/core/src/libzint/gs1_lint.h +1 -0
  196. package/cpp/zxing-core/core/src/libzint/iso3166.h +1 -0
  197. package/cpp/zxing-core/core/src/libzint/iso4217.h +1 -0
  198. package/cpp/zxing-core/core/src/libzint/ksx1001.h +1 -0
  199. package/cpp/zxing-core/core/src/libzint/large.c +1 -0
  200. package/cpp/zxing-core/core/src/libzint/large.h +1 -0
  201. package/cpp/zxing-core/core/src/libzint/library.c +1 -0
  202. package/cpp/zxing-core/core/src/libzint/maxicode.c +1 -0
  203. package/cpp/zxing-core/core/src/libzint/maxicode.h +1 -0
  204. package/cpp/zxing-core/core/src/libzint/medical.c +1 -0
  205. package/cpp/zxing-core/core/src/libzint/output.c +1 -0
  206. package/cpp/zxing-core/core/src/libzint/output.h +1 -0
  207. package/cpp/zxing-core/core/src/libzint/pdf417.c +1 -0
  208. package/cpp/zxing-core/core/src/libzint/pdf417.h +1 -0
  209. package/cpp/zxing-core/core/src/libzint/pdf417_tabs.h +1 -0
  210. package/cpp/zxing-core/core/src/libzint/qr.c +1 -0
  211. package/cpp/zxing-core/core/src/libzint/qr.h +1 -0
  212. package/cpp/zxing-core/core/src/libzint/raster.c +1 -0
  213. package/cpp/zxing-core/core/src/libzint/raster_font.h +1 -0
  214. package/cpp/zxing-core/core/src/libzint/reedsol.c +1 -0
  215. package/cpp/zxing-core/core/src/libzint/reedsol.h +1 -0
  216. package/cpp/zxing-core/core/src/libzint/reedsol_logs.h +1 -0
  217. package/cpp/zxing-core/core/src/libzint/rss.c +1 -0
  218. package/cpp/zxing-core/core/src/libzint/rss.h +1 -0
  219. package/cpp/zxing-core/core/src/libzint/sjis.h +1 -0
  220. package/cpp/zxing-core/core/src/libzint/stubs.c +137 -0
  221. package/cpp/zxing-core/core/src/libzint/svg.c +1 -0
  222. package/cpp/zxing-core/core/src/libzint/telepen.c +1 -0
  223. package/cpp/zxing-core/core/src/libzint/upcean.c +1 -0
  224. package/cpp/zxing-core/core/src/libzint/vector.c +1 -0
  225. package/cpp/zxing-core/core/src/libzint/zfiletypes.h +1 -0
  226. package/cpp/zxing-core/core/src/libzint/zint.h +1 -0
  227. package/cpp/zxing-core/core/src/libzint/zintconfig.h +1 -0
  228. package/cpp/zxing-core/core/src/libzueci/README.md +11 -0
  229. package/cpp/zxing-core/core/src/libzueci/zueci.c +1718 -0
  230. package/cpp/zxing-core/core/src/libzueci/zueci.h +179 -0
  231. package/cpp/zxing-core/core/src/libzueci/zueci_big5.h +3884 -0
  232. package/cpp/zxing-core/core/src/libzueci/zueci_common.h +31 -0
  233. package/cpp/zxing-core/core/src/libzueci/zueci_gb18030.h +264 -0
  234. package/cpp/zxing-core/core/src/libzueci/zueci_gb2312.h +2381 -0
  235. package/cpp/zxing-core/core/src/libzueci/zueci_gbk.h +4047 -0
  236. package/cpp/zxing-core/core/src/libzueci/zueci_ksx1001.h +2932 -0
  237. package/cpp/zxing-core/core/src/libzueci/zueci_sb.h +1112 -0
  238. package/cpp/zxing-core/core/src/libzueci/zueci_sjis.h +2286 -0
  239. package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.cpp +68 -0
  240. package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.h +30 -0
  241. package/cpp/zxing-core/core/src/maxicode/MCDecoder.cpp +329 -0
  242. package/cpp/zxing-core/core/src/maxicode/MCDecoder.h +19 -0
  243. package/cpp/zxing-core/core/src/maxicode/MCReader.cpp +65 -0
  244. package/cpp/zxing-core/core/src/maxicode/MCReader.h +21 -0
  245. package/cpp/zxing-core/core/src/oned/ODCodabarReader.cpp +102 -0
  246. package/cpp/zxing-core/core/src/oned/ODCodabarReader.h +21 -0
  247. package/cpp/zxing-core/core/src/oned/ODCodabarWriter.cpp +136 -0
  248. package/cpp/zxing-core/core/src/oned/ODCodabarWriter.h +34 -0
  249. package/cpp/zxing-core/core/src/oned/ODCode128Patterns.h +130 -0
  250. package/cpp/zxing-core/core/src/oned/ODCode128Reader.cpp +236 -0
  251. package/cpp/zxing-core/core/src/oned/ODCode128Reader.h +21 -0
  252. package/cpp/zxing-core/core/src/oned/ODCode128Writer.cpp +261 -0
  253. package/cpp/zxing-core/core/src/oned/ODCode128Writer.h +34 -0
  254. package/cpp/zxing-core/core/src/oned/ODCode39Reader.cpp +213 -0
  255. package/cpp/zxing-core/core/src/oned/ODCode39Reader.h +26 -0
  256. package/cpp/zxing-core/core/src/oned/ODCode39Writer.cpp +176 -0
  257. package/cpp/zxing-core/core/src/oned/ODCode39Writer.h +34 -0
  258. package/cpp/zxing-core/core/src/oned/ODCode93Patterns.h +80 -0
  259. package/cpp/zxing-core/core/src/oned/ODCode93Reader.cpp +112 -0
  260. package/cpp/zxing-core/core/src/oned/ODCode93Reader.h +21 -0
  261. package/cpp/zxing-core/core/src/oned/ODCode93Writer.cpp +192 -0
  262. package/cpp/zxing-core/core/src/oned/ODCode93Writer.h +32 -0
  263. package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.cpp +246 -0
  264. package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.h +26 -0
  265. package/cpp/zxing-core/core/src/oned/ODDataBarCommon.cpp +172 -0
  266. package/cpp/zxing-core/core/src/oned/ODDataBarCommon.h +204 -0
  267. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.cpp +253 -0
  268. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.h +19 -0
  269. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.cpp +383 -0
  270. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.h +25 -0
  271. package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.cpp +163 -0
  272. package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.h +23 -0
  273. package/cpp/zxing-core/core/src/oned/ODDataBarReader.cpp +240 -0
  274. package/cpp/zxing-core/core/src/oned/ODDataBarReader.h +25 -0
  275. package/cpp/zxing-core/core/src/oned/ODEAN13Writer.cpp +62 -0
  276. package/cpp/zxing-core/core/src/oned/ODEAN13Writer.h +34 -0
  277. package/cpp/zxing-core/core/src/oned/ODEAN8Writer.cpp +51 -0
  278. package/cpp/zxing-core/core/src/oned/ODEAN8Writer.h +34 -0
  279. package/cpp/zxing-core/core/src/oned/ODITFReader.cpp +97 -0
  280. package/cpp/zxing-core/core/src/oned/ODITFReader.h +33 -0
  281. package/cpp/zxing-core/core/src/oned/ODITFWriter.cpp +78 -0
  282. package/cpp/zxing-core/core/src/oned/ODITFWriter.h +34 -0
  283. package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.cpp +323 -0
  284. package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.h +32 -0
  285. package/cpp/zxing-core/core/src/oned/ODReader.cpp +259 -0
  286. package/cpp/zxing-core/core/src/oned/ODReader.h +35 -0
  287. package/cpp/zxing-core/core/src/oned/ODRowReader.h +222 -0
  288. package/cpp/zxing-core/core/src/oned/ODTelepenReader.cpp +199 -0
  289. package/cpp/zxing-core/core/src/oned/ODTelepenReader.h +25 -0
  290. package/cpp/zxing-core/core/src/oned/ODUPCAWriter.cpp +33 -0
  291. package/cpp/zxing-core/core/src/oned/ODUPCAWriter.h +34 -0
  292. package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.cpp +80 -0
  293. package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.h +129 -0
  294. package/cpp/zxing-core/core/src/oned/ODUPCEWriter.cpp +56 -0
  295. package/cpp/zxing-core/core/src/oned/ODUPCEWriter.h +34 -0
  296. package/cpp/zxing-core/core/src/oned/ODWriterHelper.cpp +39 -0
  297. package/cpp/zxing-core/core/src/oned/ODWriterHelper.h +48 -0
  298. package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.cpp +796 -0
  299. package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.h +23 -0
  300. package/cpp/zxing-core/core/src/pdf417/PDF417.cpp +85 -0
  301. package/cpp/zxing-core/core/src/pdf417/PDF417.h +81 -0
  302. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeMetadata.h +53 -0
  303. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.cpp +48 -0
  304. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.h +38 -0
  305. package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.cpp +116 -0
  306. package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.h +75 -0
  307. package/cpp/zxing-core/core/src/pdf417/PDFCodeword.h +71 -0
  308. package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.cpp +588 -0
  309. package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.h +41 -0
  310. package/cpp/zxing-core/core/src/pdf417/PDFCompaction.h +20 -0
  311. package/cpp/zxing-core/core/src/pdf417/PDFCustomData.h +32 -0
  312. package/cpp/zxing-core/core/src/pdf417/PDFDecoder.cpp +725 -0
  313. package/cpp/zxing-core/core/src/pdf417/PDFDecoder.h +20 -0
  314. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.cpp +247 -0
  315. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.h +74 -0
  316. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.cpp +321 -0
  317. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.h +83 -0
  318. package/cpp/zxing-core/core/src/pdf417/PDFDetector.cpp +371 -0
  319. package/cpp/zxing-core/core/src/pdf417/PDFDetector.h +45 -0
  320. package/cpp/zxing-core/core/src/pdf417/PDFEncoder.cpp +570 -0
  321. package/cpp/zxing-core/core/src/pdf417/PDFEncoder.h +182 -0
  322. package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.cpp +570 -0
  323. package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.h +32 -0
  324. package/cpp/zxing-core/core/src/pdf417/PDFReader.cpp +333 -0
  325. package/cpp/zxing-core/core/src/pdf417/PDFReader.h +28 -0
  326. package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.cpp +559 -0
  327. package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.h +41 -0
  328. package/cpp/zxing-core/core/src/pdf417/PDFWriter.cpp +170 -0
  329. package/cpp/zxing-core/core/src/pdf417/PDFWriter.h +74 -0
  330. package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.cpp +623 -0
  331. package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.h +81 -0
  332. package/cpp/zxing-core/core/src/pdf417/ZXNullable.h +105 -0
  333. package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.cpp +294 -0
  334. package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.h +41 -0
  335. package/cpp/zxing-core/core/src/qrcode/QRCodecMode.cpp +95 -0
  336. package/cpp/zxing-core/core/src/qrcode/QRCodecMode.h +59 -0
  337. package/cpp/zxing-core/core/src/qrcode/QRDataBlock.cpp +93 -0
  338. package/cpp/zxing-core/core/src/qrcode/QRDataBlock.h +52 -0
  339. package/cpp/zxing-core/core/src/qrcode/QRDataMask.h +50 -0
  340. package/cpp/zxing-core/core/src/qrcode/QRDecoder.cpp +359 -0
  341. package/cpp/zxing-core/core/src/qrcode/QRDecoder.h +19 -0
  342. package/cpp/zxing-core/core/src/qrcode/QRDetector.cpp +920 -0
  343. package/cpp/zxing-core/core/src/qrcode/QRDetector.h +45 -0
  344. package/cpp/zxing-core/core/src/qrcode/QRECB.h +52 -0
  345. package/cpp/zxing-core/core/src/qrcode/QREncodeResult.h +33 -0
  346. package/cpp/zxing-core/core/src/qrcode/QREncoder.cpp +568 -0
  347. package/cpp/zxing-core/core/src/qrcode/QREncoder.h +21 -0
  348. package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.cpp +51 -0
  349. package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.h +39 -0
  350. package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.cpp +160 -0
  351. package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.h +61 -0
  352. package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.cpp +156 -0
  353. package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.h +15 -0
  354. package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.cpp +318 -0
  355. package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.h +25 -0
  356. package/cpp/zxing-core/core/src/qrcode/QRReader.cpp +149 -0
  357. package/cpp/zxing-core/core/src/qrcode/QRReader.h +21 -0
  358. package/cpp/zxing-core/core/src/qrcode/QRVersion.cpp +754 -0
  359. package/cpp/zxing-core/core/src/qrcode/QRVersion.h +127 -0
  360. package/cpp/zxing-core/core/src/qrcode/QRWriter.cpp +51 -0
  361. package/cpp/zxing-core/core/src/qrcode/QRWriter.h +74 -0
  362. package/cpp/zxing-core/core/version.rc.in +34 -0
  363. package/cpp/zxing-core/core/zxing.pc.in +8 -0
  364. package/cpp/zxing-core/wrappers/ios/README.md +25 -0
  365. package/cpp/zxing-core/wrappers/ios/Sources/Wrapper/Version.h +29 -0
  366. package/cpp/zxing-core/zxing-cpp.podspec +45 -0
  367. package/lib/factory.d.ts +10 -0
  368. package/lib/factory.js +12 -0
  369. package/lib/index.d.ts +9 -0
  370. package/lib/index.js +9 -0
  371. package/lib/specs/Barcode.nitro.d.ts +63 -0
  372. package/lib/specs/Barcode.nitro.js +1 -0
  373. package/lib/specs/BarcodeFormat.d.ts +11 -0
  374. package/lib/specs/BarcodeFormat.js +1 -0
  375. package/lib/specs/BarcodeScanner.nitro.d.ts +89 -0
  376. package/lib/specs/BarcodeScanner.nitro.js +1 -0
  377. package/lib/specs/BarcodeScannerFactory.nitro.d.ts +26 -0
  378. package/lib/specs/BarcodeScannerFactory.nitro.js +1 -0
  379. package/lib/specs/BarcodeValueType.d.ts +9 -0
  380. package/lib/specs/BarcodeValueType.js +1 -0
  381. package/lib/specs/Point.d.ts +14 -0
  382. package/lib/specs/Point.js +1 -0
  383. package/lib/specs/Rect.d.ts +22 -0
  384. package/lib/specs/Rect.js +1 -0
  385. package/lib/useBarcodeScanner.d.ts +23 -0
  386. package/lib/useBarcodeScanner.js +25 -0
  387. package/nitro.json +20 -0
  388. package/nitrogen/generated/.gitattributes +1 -0
  389. package/nitrogen/generated/android/VisionCameraZxing+autolinking.cmake +83 -0
  390. package/nitrogen/generated/android/VisionCameraZxing+autolinking.gradle +27 -0
  391. package/nitrogen/generated/android/VisionCameraZxingOnLoad.cpp +49 -0
  392. package/nitrogen/generated/android/VisionCameraZxingOnLoad.hpp +34 -0
  393. package/nitrogen/generated/android/kotlin/com/margelo/nitro/camera/zxing/VisionCameraZxingOnLoad.kt +35 -0
  394. package/nitrogen/generated/ios/VisionCameraZxing+autolinking.rb +62 -0
  395. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.cpp +17 -0
  396. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.hpp +27 -0
  397. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Umbrella.hpp +38 -0
  398. package/nitrogen/generated/ios/VisionCameraZxingAutolinking.mm +35 -0
  399. package/nitrogen/generated/ios/VisionCameraZxingAutolinking.swift +16 -0
  400. package/nitrogen/generated/shared/c++/BarcodeFormat.hpp +124 -0
  401. package/nitrogen/generated/shared/c++/BarcodeScannerOptions.hpp +85 -0
  402. package/nitrogen/generated/shared/c++/BarcodeValueType.hpp +120 -0
  403. package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.cpp +23 -0
  404. package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.hpp +74 -0
  405. package/nitrogen/generated/shared/c++/HybridBarcodeSpec.cpp +27 -0
  406. package/nitrogen/generated/shared/c++/HybridBarcodeSpec.hpp +82 -0
  407. package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.cpp +21 -0
  408. package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.hpp +67 -0
  409. package/nitrogen/generated/shared/c++/Point.hpp +87 -0
  410. package/nitrogen/generated/shared/c++/Rect.hpp +95 -0
  411. package/nitrogen/generated/shared/c++/TargetBarcodeFormat.hpp +124 -0
  412. package/package.json +108 -0
  413. package/react-native.config.js +16 -0
  414. package/src/factory.ts +26 -0
  415. package/src/index.ts +9 -0
  416. package/src/specs/Barcode.nitro.ts +70 -0
  417. package/src/specs/BarcodeFormat.ts +31 -0
  418. package/src/specs/BarcodeScanner.nitro.ts +91 -0
  419. package/src/specs/BarcodeScannerFactory.nitro.ts +27 -0
  420. package/src/specs/BarcodeValueType.ts +25 -0
  421. package/src/specs/Point.ts +14 -0
  422. package/src/specs/Rect.ts +22 -0
  423. package/src/useBarcodeScanner.ts +36 -0
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2006-2007 Jeremias Maerki.
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #pragma once
8
+
9
+ #include "CharacterSet.h"
10
+
11
+ #include <string>
12
+
13
+ namespace ZXing {
14
+
15
+ class ByteArray;
16
+
17
+ namespace DataMatrix {
18
+
19
+ enum class SymbolShape;
20
+
21
+ /**
22
+ * DataMatrix ECC 200 data encoder following the algorithm described in ISO/IEC 16022:200(E) in
23
+ * annex S.
24
+ */
25
+ ByteArray Encode(const std::wstring& msg);
26
+ ByteArray Encode(const std::wstring& msg, CharacterSet charset, SymbolShape shape, int minWidth, int minHeight, int maxWidth, int maxHeight);
27
+
28
+ } // DataMatrix
29
+ } // ZXing
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright 2016 Nu-book Inc.
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #include "DMReader.h"
8
+
9
+ #include "BinaryBitmap.h"
10
+ #include "DMDecoder.h"
11
+ #include "DMDetector.h"
12
+ #include "ReaderOptions.h"
13
+ #include "DecoderResult.h"
14
+ #include "DetectorResult.h"
15
+ #include "BarcodeData.h"
16
+
17
+ #include <utility>
18
+
19
+ namespace ZXing::DataMatrix {
20
+
21
+ BarcodesData Reader::read(const BinaryBitmap& image, int maxSymbols) const
22
+ {
23
+ auto binImg = image.getBitMatrix();
24
+ if (binImg == nullptr)
25
+ return {};
26
+
27
+ BarcodesData res;
28
+ for (auto&& detRes : Detect(*binImg, _opts.tryHarder(), _opts.tryRotate(), _opts.isPure())) {
29
+ auto decRes = Decode(detRes.bits());
30
+ if (decRes.isValid(_opts.returnErrors())) {
31
+ res.emplace_back(MatrixBarcode(std::move(decRes), std::move(detRes), BarcodeFormat::DataMatrix));
32
+ if (maxSymbols > 0 && Size(res) >= maxSymbols)
33
+ break;
34
+ }
35
+ }
36
+
37
+ return res;
38
+ }
39
+
40
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright 2016 Nu-book Inc.
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #pragma once
8
+
9
+ #include "Reader.h"
10
+
11
+ namespace ZXing::DataMatrix {
12
+
13
+ class Reader : public ZXing::Reader
14
+ {
15
+ public:
16
+ using ZXing::Reader::Reader;
17
+
18
+ BarcodesData read(const BinaryBitmap& image, int maxSymbols) const override;
19
+ };
20
+
21
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,141 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #include "DMSymbolInfo.h"
8
+
9
+ #include "ZXAlgorithms.h"
10
+ #include "ZXTestSupport.h"
11
+
12
+ #include <cstddef>
13
+ #include <stdexcept>
14
+
15
+ namespace ZXing::DataMatrix {
16
+
17
+ static constexpr const SymbolInfo PROD_SYMBOLS[] = {
18
+ { false, 3, 5, 8, 8, 1 },
19
+ { false, 5, 7, 10, 10, 1 },
20
+ { true, 5, 7, 16, 6, 1 },
21
+ { false, 8, 10, 12, 12, 1 },
22
+ { true, 10, 11, 14, 6, 2 },
23
+ { false, 12, 12, 14, 14, 1 },
24
+ { true, 16, 14, 24, 10, 1 },
25
+
26
+ { false, 18, 14, 16, 16, 1 },
27
+ { false, 22, 18, 18, 18, 1 },
28
+ { true, 22, 18, 16, 10, 2 },
29
+ { false, 30, 20, 20, 20, 1 },
30
+ { true, 32, 24, 16, 14, 2 },
31
+ { false, 36, 24, 22, 22, 1 },
32
+ { false, 44, 28, 24, 24, 1 },
33
+ { true, 49, 28, 22, 14, 2 },
34
+
35
+ { false, 62, 36, 14, 14, 4 },
36
+ { false, 86, 42, 16, 16, 4 },
37
+ { false, 114, 48, 18, 18, 4 },
38
+ { false, 144, 56, 20, 20, 4 },
39
+ { false, 174, 68, 22, 22, 4 },
40
+
41
+ { false, 204, 84, 24, 24, 4, 102, 42 },
42
+ { false, 280, 112, 14, 14, 16, 140, 56 },
43
+ { false, 368, 144, 16, 16, 16, 92, 36 },
44
+ { false, 456, 192, 18, 18, 16, 114, 48 },
45
+ { false, 576, 224, 20, 20, 16, 144, 56 },
46
+ { false, 696, 272, 22, 22, 16, 174, 68 },
47
+ { false, 816, 336, 24, 24, 16, 136, 56 },
48
+ { false, 1050, 408, 18, 18, 36, 175, 68 },
49
+ { false, 1304, 496, 20, 20, 36, 163, 62 },
50
+ { false, 1558, 620, 22, 22, 36, -1, 62 },
51
+ };
52
+
53
+ static const SymbolInfo* ZXING_IF_NOT_TEST(const) s_symbols = PROD_SYMBOLS;
54
+ static ZXING_IF_NOT_TEST(const) size_t s_symbolCount = Size(PROD_SYMBOLS);
55
+
56
+ #ifdef ZXING_BUILD_FOR_TEST
57
+
58
+ ZXING_EXPORT_TEST_ONLY
59
+ void OverrideSymbolSet(const SymbolInfo* symbols, size_t count)
60
+ {
61
+ s_symbols = symbols;
62
+ s_symbolCount = count;
63
+ }
64
+
65
+ ZXING_EXPORT_TEST_ONLY
66
+ void UseDefaultSymbolSet()
67
+ {
68
+ s_symbols = PROD_SYMBOLS;
69
+ s_symbolCount = Size(PROD_SYMBOLS);
70
+ }
71
+
72
+ #endif // ZXING_BUILD_FOR_TEST
73
+
74
+ const SymbolInfo *
75
+ SymbolInfo::Lookup(int dataCodewords)
76
+ {
77
+ return Lookup(dataCodewords, SymbolShape::NONE);
78
+ }
79
+
80
+ const SymbolInfo *
81
+ SymbolInfo::Lookup(int dataCodewords, SymbolShape shape)
82
+ {
83
+ return Lookup(dataCodewords, shape, -1, -1, -1, -1);
84
+ }
85
+
86
+ const SymbolInfo *
87
+ SymbolInfo::Lookup(int dataCodewords, bool allowRectangular)
88
+ {
89
+ return Lookup(dataCodewords, allowRectangular ? SymbolShape::NONE : SymbolShape::SQUARE, -1, -1, -1, -1);
90
+ }
91
+
92
+ const SymbolInfo *
93
+ SymbolInfo::Lookup(int dataCodewords, SymbolShape shape, int minWidth, int minHeight, int maxWidth, int maxHeight)
94
+ {
95
+ for (size_t i = 0; i < s_symbolCount; ++i) {
96
+ auto& symbol = s_symbols[i];
97
+ if (shape == SymbolShape::SQUARE && symbol._rectangular) {
98
+ continue;
99
+ }
100
+ if (shape == SymbolShape::RECTANGLE && !symbol._rectangular) {
101
+ continue;
102
+ }
103
+ if (minWidth >= 0 && minHeight >= 0 && (symbol.symbolWidth() < minWidth || symbol.symbolHeight() < minHeight)) {
104
+ continue;
105
+ }
106
+ if (maxWidth >= 0 && maxHeight >= 0 && (symbol.symbolWidth() > maxWidth || symbol.symbolHeight() > maxHeight)) {
107
+ continue;
108
+ }
109
+ if (dataCodewords <= symbol._dataCapacity) {
110
+ return &symbol;
111
+ }
112
+ }
113
+ return nullptr;
114
+ }
115
+
116
+ int
117
+ SymbolInfo::horizontalDataRegions() const
118
+ {
119
+ switch (_dataRegions) {
120
+ case 1: return 1;
121
+ case 2: return 2;
122
+ case 4: return 2;
123
+ case 16: return 4;
124
+ case 36: return 6;
125
+ default: throw std::out_of_range("Cannot handle this number of data regions");
126
+ }
127
+ }
128
+
129
+ int
130
+ SymbolInfo::verticalDataRegions() const {
131
+ switch (_dataRegions) {
132
+ case 1: return 1;
133
+ case 2: return 1;
134
+ case 4: return 2;
135
+ case 16: return 4;
136
+ case 36: return 6;
137
+ default: throw std::out_of_range("Cannot handle this number of data regions");
138
+ }
139
+ }
140
+
141
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #pragma once
8
+
9
+ #include "DMSymbolShape.h"
10
+
11
+ namespace ZXing::DataMatrix {
12
+
13
+ class SymbolInfo
14
+ {
15
+ bool _rectangular;
16
+ int _dataCapacity;
17
+ int _errorCodewords;
18
+ int _matrixWidth;
19
+ int _matrixHeight;
20
+ int _dataRegions;
21
+ int _rsBlockData;
22
+ int _rsBlockError;
23
+
24
+ public:
25
+ constexpr SymbolInfo(bool rectangular, int dataCapacity, int errorCodewords, int matrixWidth, int matrixHeight, int dataRegions)
26
+ : SymbolInfo(rectangular, dataCapacity, errorCodewords, matrixWidth, matrixHeight, dataRegions, dataCapacity, errorCodewords)
27
+ {}
28
+
29
+ constexpr SymbolInfo(bool rectangular, int dataCapacity, int errorCodewords, int matrixWidth, int matrixHeight, int dataRegions,
30
+ int rsBlockData, int rsBlockError)
31
+ : _rectangular(rectangular),
32
+ _dataCapacity(dataCapacity),
33
+ _errorCodewords(errorCodewords),
34
+ _matrixWidth(matrixWidth),
35
+ _matrixHeight(matrixHeight),
36
+ _dataRegions(dataRegions),
37
+ _rsBlockData(rsBlockData),
38
+ _rsBlockError(rsBlockError)
39
+ {}
40
+
41
+ static const SymbolInfo* Lookup(int dataCodewords);
42
+ static const SymbolInfo* Lookup(int dataCodewords, SymbolShape shape);
43
+ static const SymbolInfo* Lookup(int dataCodewords, bool allowRectangular);
44
+ static const SymbolInfo* Lookup(int dataCodewords, SymbolShape shape, int minWidth, int minHeight, int maxWidth, int maxHeight);
45
+
46
+ int horizontalDataRegions() const;
47
+
48
+ int verticalDataRegions() const;
49
+
50
+ int symbolDataWidth() const { return horizontalDataRegions() * _matrixWidth; }
51
+
52
+ int symbolDataHeight() const { return verticalDataRegions() * _matrixHeight; }
53
+
54
+ int symbolWidth() const { return symbolDataWidth() + (horizontalDataRegions() * 2); }
55
+
56
+ int symbolHeight() const { return symbolDataHeight() + (verticalDataRegions() * 2); }
57
+
58
+ int matrixWidth() const { return _matrixWidth; }
59
+
60
+ int matrixHeight() const { return _matrixHeight; }
61
+
62
+ int codewordCount() const { return _dataCapacity + _errorCodewords; }
63
+
64
+ int interleavedBlockCount() const { return _rsBlockData > 0 ? _dataCapacity / _rsBlockData : 10; /* Symbol 144 */ }
65
+
66
+ int dataCapacity() const { return _dataCapacity; }
67
+
68
+ int errorCodewords() const { return _errorCodewords; }
69
+
70
+ int dataLengthForInterleavedBlock(int index) const
71
+ {
72
+ return _rsBlockData > 0 ? _rsBlockData : (index <= 8 ? 156 : 155); /* Symbol 144 */
73
+ }
74
+
75
+ int errorLengthForInterleavedBlock() const { return _rsBlockError; }
76
+ };
77
+
78
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #pragma once
8
+
9
+ namespace ZXing::DataMatrix {
10
+
11
+ enum class SymbolShape {
12
+ NONE,
13
+ SQUARE,
14
+ RECTANGLE,
15
+ };
16
+
17
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright 2016 Nu-book Inc.
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #include "DMVersion.h"
8
+
9
+ namespace ZXing::DataMatrix {
10
+
11
+ const Version* VersionForDimensions(int height, int width)
12
+ {
13
+ if ((height & 0x01) != 0 || (width & 0x01) != 0 || height < 8 || height > 144)
14
+ return nullptr;
15
+
16
+ /**
17
+ * See ISO 16022:2006 5.5.1 Table 7
18
+ * See ISO 21471:2020 (DMRE) 5.5.1 Table 7
19
+ */
20
+ static const Version allVersions[] = {
21
+ // clang-format off
22
+ {1, 10, 10, 8, 8, {5, {{1, 3 }, {0, 0}}}},
23
+ {2, 12, 12, 10, 10, {7, {{1, 5 }, {0, 0}}}},
24
+ {3, 14, 14, 12, 12, {10, {{1, 8 }, {0, 0}}}},
25
+ {4, 16, 16, 14, 14, {12, {{1, 12 }, {0, 0}}}},
26
+ {5, 18, 18, 16, 16, {14, {{1, 18 }, {0, 0}}}},
27
+ {6, 20, 20, 18, 18, {18, {{1, 22 }, {0, 0}}}},
28
+ {7, 22, 22, 20, 20, {20, {{1, 30 }, {0, 0}}}},
29
+ {8, 24, 24, 22, 22, {24, {{1, 36 }, {0, 0}}}},
30
+ {9, 26, 26, 24, 24, {28, {{1, 44 }, {0, 0}}}},
31
+ {10, 32, 32, 14, 14, {36, {{1, 62 }, {0, 0}}}},
32
+ {11, 36, 36, 16, 16, {42, {{1, 86 }, {0, 0}}}},
33
+ {12, 40, 40, 18, 18, {48, {{1, 114}, {0, 0}}}},
34
+ {13, 44, 44, 20, 20, {56, {{1, 144}, {0, 0}}}},
35
+ {14, 48, 48, 22, 22, {68, {{1, 174}, {0, 0}}}},
36
+ {15, 52, 52, 24, 24, {42, {{2, 102}, {0, 0}}}},
37
+ {16, 64, 64, 14, 14, {56, {{2, 140}, {0, 0}}}},
38
+ {17, 72, 72, 16, 16, {36, {{4, 92 }, {0, 0}}}},
39
+ {18, 80, 80, 18, 18, {48, {{4, 114}, {0, 0}}}},
40
+ {19, 88, 88, 20, 20, {56, {{4, 144}, {0, 0}}}},
41
+ {20, 96, 96, 22, 22, {68, {{4, 174}, {0, 0}}}},
42
+ {21, 104, 104, 24, 24, {56, {{6, 136}, {0, 0}}}},
43
+ {22, 120, 120, 18, 18, {68, {{6, 175}, {0, 0}}}},
44
+ {23, 132, 132, 20, 20, {62, {{8, 163}, {0, 0}}}},
45
+ {24, 144, 144, 22, 22, {62, {{8, 156}, {2, 155}}}},
46
+ {25, 8, 18, 6, 16, {7, {{1, 5 }, {0, 0}}}},
47
+ {26, 8, 32, 6, 14, {11, {{1, 10 }, {0, 0}}}},
48
+ {27, 12, 26, 10, 24, {14, {{1, 16 }, {0, 0}}}},
49
+ {28, 12, 36, 10, 16, {18, {{1, 22 }, {0, 0}}}},
50
+ {29, 16, 36, 14, 16, {24, {{1, 32 }, {0, 0}}}},
51
+ {30, 16, 48, 14, 22, {28, {{1, 49 }, {0, 0}}}},
52
+
53
+ // DMRE
54
+ {31, 8, 48, 6, 22, {15, {{1, 18 }, {0, 0}}}},
55
+ {32, 8, 64, 6, 14, {18, {{1, 24 }, {0, 0}}}},
56
+ {33, 8, 80, 6, 18, {22, {{1, 32 }, {0, 0}}}},
57
+ {34, 8, 96, 6, 22, {28, {{1, 38 }, {0, 0}}}},
58
+ {35, 8, 120, 6, 18, {32, {{1, 49 }, {0, 0}}}},
59
+ {36, 8, 144, 6, 22, {36, {{1, 63 }, {0, 0}}}},
60
+ {37, 12, 64, 10, 14, {27, {{1, 43 }, {0, 0}}}},
61
+ {38, 12, 88, 10, 20, {36, {{1, 64 }, {0, 0}}}},
62
+ {39, 16, 64, 14, 14, {36, {{1, 62 }, {0, 0}}}},
63
+ {40, 20, 36, 18, 16, {28, {{1, 44 }, {0, 0}}}},
64
+ {41, 20, 44, 18, 20, {34, {{1, 56 }, {0, 0}}}},
65
+ {42, 20, 64, 18, 14, {42, {{1, 84 }, {0, 0}}}},
66
+ {43, 22, 48, 20, 22, {38, {{1, 72 }, {0, 0}}}},
67
+ {44, 24, 48, 22, 22, {41, {{1, 80 }, {0, 0}}}},
68
+ {45, 24, 64, 22, 14, {46, {{1, 108}, {0, 0}}}},
69
+ {46, 26, 40, 24, 18, {38, {{1, 70 }, {0, 0}}}},
70
+ {47, 26, 48, 24, 22, {42, {{1, 90 }, {0, 0}}}},
71
+ {48, 26, 64, 24, 14, {50, {{1, 118}, {0, 0}}}},
72
+ // clang-format on
73
+ };
74
+
75
+ for (auto& version : allVersions)
76
+ if (version.symbolHeight == height && version.symbolWidth == width)
77
+ return &version;
78
+
79
+ return nullptr;
80
+ }
81
+
82
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright 2016 Nu-book Inc.
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #pragma once
8
+
9
+ namespace ZXing::DataMatrix {
10
+
11
+ /**
12
+ * The Version object encapsulates attributes about a particular Data Matrix Symbol size.
13
+ */
14
+ class Version
15
+ {
16
+ public:
17
+ /**
18
+ * Encapsulates a set of error-correction blocks in one symbol version. Most versions will
19
+ * use blocks of differing sizes within one version, so, this encapsulates the parameters for
20
+ * each set of blocks. It also holds the number of error-correction codewords per block since it
21
+ * will be the same across all blocks within one version.
22
+ */
23
+ struct ECBlocks
24
+ {
25
+ int codewordsPerBlock;
26
+
27
+ /* Encapsulates the parameters for one error-correction block in one symbol version.
28
+ * This includes the number of data codewords, and the number of times a block with these
29
+ * parameters is used consecutively in the Data Matrix code version's format.
30
+ */
31
+ struct
32
+ {
33
+ int count;
34
+ int dataCodewords;
35
+ } const blocks[2];
36
+
37
+ int numBlocks() const { return blocks[0].count + blocks[1].count; }
38
+
39
+ int totalDataCodewords() const
40
+ {
41
+ return blocks[0].count * (blocks[0].dataCodewords + codewordsPerBlock) +
42
+ blocks[1].count * (blocks[1].dataCodewords + codewordsPerBlock);
43
+ }
44
+ };
45
+
46
+ const int versionNumber;
47
+ const int symbolHeight;
48
+ const int symbolWidth;
49
+ const int dataBlockHeight;
50
+ const int dataBlockWidth;
51
+ const ECBlocks ecBlocks;
52
+
53
+ int totalCodewords() const { return ecBlocks.totalDataCodewords(); }
54
+ int dataWidth() const { return (symbolWidth / dataBlockWidth) * dataBlockWidth; }
55
+ int dataHeight() const { return (symbolHeight / dataBlockHeight) * dataBlockHeight; }
56
+ int dataBlocksX() const { return symbolWidth / dataBlockWidth; }
57
+ int dataBlocksY() const { return symbolHeight / dataBlockHeight; }
58
+ bool isDMRE() const { return versionNumber >= 31 && versionNumber <= 48; }
59
+ };
60
+
61
+ /**
62
+ * @brief Looks up Version information based on symbol dimensions.
63
+ *
64
+ * @param height Number of rows in modules
65
+ * @param width Number of columns in modules
66
+ * @return Version for a Data Matrix Code of those dimensions, nullptr for invalid dimensions
67
+ */
68
+ const Version* VersionForDimensions(int height, int width);
69
+
70
+ template<typename MAT>
71
+ const Version* VersionForDimensionsOf(const MAT& mat)
72
+ {
73
+ return VersionForDimensions(mat.height(), mat.width());
74
+ }
75
+
76
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,114 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #include "DMWriter.h"
8
+
9
+ #include "BitMatrix.h"
10
+ #include "ByteArray.h"
11
+ #include "CharacterSet.h"
12
+ #include "DMBitLayout.h"
13
+ #include "DMECEncoder.h"
14
+ #include "DMHighLevelEncoder.h"
15
+ #include "DMSymbolInfo.h"
16
+ #include "Utf.h"
17
+
18
+ #include <stdexcept>
19
+ #include <string>
20
+ #include <utility>
21
+
22
+ namespace ZXing::DataMatrix {
23
+
24
+ /**
25
+ * Encode the given symbol info to a bit matrix.
26
+ *
27
+ * @param placement The DataMatrix placement.
28
+ * @param symbolInfo The symbol info to encode.
29
+ * @return The bit matrix generated.
30
+ */
31
+ static BitMatrix EncodeLowLevel(const BitMatrix& placement, const SymbolInfo& symbolInfo) {
32
+ int symbolWidth = symbolInfo.symbolDataWidth();
33
+ int symbolHeight = symbolInfo.symbolDataHeight();
34
+
35
+ BitMatrix matrix(symbolInfo.symbolWidth(), symbolInfo.symbolHeight());
36
+ int matrixY = 0;
37
+ for (int y = 0; y < symbolHeight; y++) {
38
+ // Fill the top edge with alternate 0 / 1
39
+ int matrixX;
40
+ if ((y % symbolInfo.matrixHeight()) == 0) {
41
+ matrixX = 0;
42
+ for (int x = 0; x < matrix.width(); x++) {
43
+ matrix.set(matrixX, matrixY, (x % 2) == 0);
44
+ matrixX++;
45
+ }
46
+ matrixY++;
47
+ }
48
+ matrixX = 0;
49
+ for (int x = 0; x < symbolWidth; x++) {
50
+ // Fill the right edge with full 1
51
+ if ((x % symbolInfo.matrixWidth()) == 0) {
52
+ matrix.set(matrixX, matrixY, true);
53
+ matrixX++;
54
+ }
55
+ matrix.set(matrixX, matrixY, placement.get(x, y) == 1);
56
+ matrixX++;
57
+ // Fill the right edge with alternate 0 / 1
58
+ if ((x % symbolInfo.matrixWidth()) == symbolInfo.matrixWidth() - 1) {
59
+ matrix.set(matrixX, matrixY, (y % 2) == 0);
60
+ matrixX++;
61
+ }
62
+ }
63
+ matrixY++;
64
+ // Fill the bottom edge with full 1
65
+ if ((y % symbolInfo.matrixHeight()) == symbolInfo.matrixHeight() - 1) {
66
+ matrixX = 0;
67
+ for (int x = 0; x < matrix.width(); x++) {
68
+ matrix.set(matrixX, matrixY, true);
69
+ matrixX++;
70
+ }
71
+ matrixY++;
72
+ }
73
+ }
74
+
75
+ return matrix;
76
+ }
77
+
78
+ BitMatrix
79
+ Writer::encode(const std::wstring& contents, int width, int height) const
80
+ {
81
+ if (contents.empty()) {
82
+ throw std::invalid_argument("Found empty contents");
83
+ }
84
+
85
+ if (width < 0 || height < 0) {
86
+ throw std::invalid_argument("Requested dimensions are invalid");
87
+ }
88
+
89
+ //1. step: Data encodation
90
+ auto encoded = Encode(contents, _encoding, _shapeHint, _minWidth, _minHeight, _maxWidth, _maxHeight);
91
+ const SymbolInfo* symbolInfo = SymbolInfo::Lookup(Size(encoded), _shapeHint, _minWidth, _minHeight, _maxWidth, _maxHeight);
92
+ if (symbolInfo == nullptr) {
93
+ throw std::invalid_argument("Can't find a symbol arrangement that matches the message. Data codewords: " + std::to_string(encoded.size()));
94
+ }
95
+
96
+ //2. step: ECC generation
97
+ EncodeECC200(encoded, *symbolInfo);
98
+
99
+ //3. step: Module placement in Matrix
100
+ BitMatrix symbolData = BitMatrixFromCodewords(encoded, symbolInfo->symbolDataWidth(), symbolInfo->symbolDataHeight());
101
+
102
+ //4. step: low-level encoding
103
+ BitMatrix result = EncodeLowLevel(symbolData, *symbolInfo);
104
+
105
+ //5. step: scale-up to requested size, minimum required quiet zone is 1
106
+ return Inflate(std::move(result), width, height, _quietZone);
107
+ }
108
+
109
+ BitMatrix Writer::encode(const std::string& contents, int width, int height) const
110
+ {
111
+ return encode(FromUtf8(contents), width, height);
112
+ }
113
+
114
+ } // namespace ZXing::DataMatrix
@@ -0,0 +1,62 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #pragma once
8
+
9
+ #include "CharacterSet.h"
10
+ #include "DMSymbolShape.h"
11
+
12
+ #include <string>
13
+
14
+ namespace ZXing {
15
+
16
+ class BitMatrix;
17
+
18
+ namespace DataMatrix {
19
+
20
+ class Writer
21
+ {
22
+ public:
23
+ Writer() = default;
24
+
25
+ Writer& setMargin(int margin) {
26
+ _quietZone = margin;
27
+ return *this;
28
+ }
29
+
30
+ Writer& setShapeHint(SymbolShape shape) {
31
+ _shapeHint = shape;
32
+ return *this;
33
+ }
34
+
35
+ Writer& setMinSize(int width, int height) {
36
+ _minWidth = width;
37
+ _minHeight = height;
38
+ return *this;
39
+ }
40
+
41
+ Writer& setMaxSize(int width, int height) {
42
+ _maxWidth = width;
43
+ _maxHeight = height;
44
+ return *this;
45
+ }
46
+
47
+ Writer& setEncoding(CharacterSet encoding) {
48
+ _encoding = encoding;
49
+ return *this;
50
+ }
51
+
52
+ BitMatrix encode(const std::wstring& contents, int width, int height) const;
53
+ BitMatrix encode(const std::string& contents, int width, int height) const;
54
+
55
+ private:
56
+ SymbolShape _shapeHint = SymbolShape::NONE;
57
+ int _quietZone = 1, _minWidth = -1, _minHeight = -1, _maxWidth = -1, _maxHeight = -1;
58
+ CharacterSet _encoding = CharacterSet::Unknown;
59
+ };
60
+
61
+ } // DataMatrix
62
+ } // ZXing