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,127 @@
1
+ /*
2
+ * Copyright 2016 Nu-book Inc.
3
+ * Copyright 2016 ZXing authors
4
+ * Copyright 2023 Axel Waggershauser
5
+ */
6
+ // SPDX-License-Identifier: Apache-2.0
7
+
8
+ #pragma once
9
+
10
+ #include "Point.h"
11
+ #include "QRECB.h"
12
+ #include "QRErrorCorrectionLevel.h"
13
+ #include "ZXAlgorithms.h"
14
+
15
+ #include <array>
16
+ #include <initializer_list>
17
+ #include <vector>
18
+
19
+ namespace ZXing {
20
+
21
+ class BitMatrix;
22
+
23
+ namespace QRCode {
24
+
25
+ // clang-format off
26
+ constexpr std::array<PointI, 32> RMQR_SIZES {
27
+ PointI{43, 7}, {59, 7}, {77, 7}, {99, 7}, {139, 7},
28
+ {43, 9}, {59, 9}, {77, 9}, {99, 9}, {139, 9},
29
+ {27, 11}, {43, 11}, {59, 11}, {77, 11}, {99, 11}, {139, 11},
30
+ {27, 13}, {43, 13}, {59, 13}, {77, 13}, {99, 13}, {139, 13},
31
+ {43, 15}, {59, 15}, {77, 15}, {99, 15}, {139, 15},
32
+ {43, 17}, {59, 17}, {77, 17}, {99, 17}, {139, 17},
33
+ };
34
+ // clang-format on
35
+
36
+ /**
37
+ * See ISO 18004:2006 Annex D
38
+ */
39
+ class Version
40
+ {
41
+ public:
42
+ Type type() const { return _type; }
43
+ bool isMicro() const { return type() == Type::Micro; }
44
+ bool isRMQR() const { return type() == Type::rMQR; }
45
+ bool isModel1() const { return type() == Type::Model1; }
46
+ bool isModel2() const { return type() == Type::Model2; }
47
+
48
+ int versionNumber() const { return _versionNumber; }
49
+
50
+ const std::vector<int>& alignmentPatternCenters() const { return _alignmentPatternCenters; }
51
+
52
+ int totalCodewords() const { return _totalCodewords; }
53
+
54
+ int dimension() const { return SymbolSize(versionNumber(), isMicro() ? Type::Micro : Type::Model2).x; }
55
+
56
+ const ECBlocks& ecBlocksForLevel(ErrorCorrectionLevel ecLevel) const { return _ecBlocks[(int)ecLevel]; }
57
+
58
+ BitMatrix buildFunctionPattern() const;
59
+
60
+ static constexpr PointI SymbolSize(int version, Type type)
61
+ {
62
+ auto square = [](int s) { return PointI(s, s); };
63
+ auto valid = [](int v, int max) { return v >= 1 && v <= max; };
64
+
65
+ switch (type) {
66
+ case Type::Model1: return valid(version, 32) ? square(17 + 4 * version) : PointI{};
67
+ case Type::Model2: return valid(version, 40) ? square(17 + 4 * version) : PointI{};
68
+ case Type::Micro: return valid(version, 4) ? square(9 + 2 * version) : PointI{};
69
+ case Type::rMQR: return valid(version, 32) ? RMQR_SIZES[version - 1] : PointI{};
70
+ }
71
+
72
+ return {}; // silence warning
73
+ }
74
+
75
+ static constexpr bool IsValidSize(PointI size, Type type)
76
+ {
77
+ switch (type) {
78
+ case Type::Model1: return size.x == size.y && size.x >= 21 && size.x <= 145 && (size.x % 4 == 1);
79
+ case Type::Model2: return size.x == size.y && size.x >= 21 && size.x <= 177 && (size.x % 4 == 1);
80
+ case Type::Micro: return size.x == size.y && size.x >= 11 && size.x <= 17 && (size.x % 2 == 1);
81
+ case Type::rMQR:
82
+ return size.x != size.y && size.x & 1 && size.y & 1 && size.x >= 27 && size.x <= 139 && size.y >= 7 && size.y <= 17
83
+ && IndexOf(RMQR_SIZES, size) != -1;
84
+ }
85
+ return {}; // silence warning
86
+ }
87
+ static bool HasValidSize(const BitMatrix& bitMatrix, Type type);
88
+
89
+ static bool HasValidSize(const BitMatrix& matrix)
90
+ {
91
+ return HasValidSize(matrix, Type::Model1) || HasValidSize(matrix, Type::Model2) || HasValidSize(matrix, Type::Micro)
92
+ || HasValidSize(matrix, Type::rMQR);
93
+ }
94
+
95
+ static constexpr int Number(PointI size)
96
+ {
97
+ if (size.x != size.y)
98
+ return IndexOf(RMQR_SIZES, size) + 1;
99
+ if (IsValidSize(size, Type::Model2))
100
+ return (size.x - 17) / 4;
101
+ if (IsValidSize(size, Type::Micro))
102
+ return (size.x - 9) / 2;
103
+ return 0;
104
+ }
105
+
106
+ static int Number(const BitMatrix& bitMatrix);
107
+
108
+ static const Version* DecodeVersionInformation(int versionBitsA, int versionBitsB = 0);
109
+
110
+ static const Version* Model1(int number);
111
+ static const Version* Model2(int number);
112
+ static const Version* Micro(int number);
113
+ static const Version* rMQR(int number);
114
+
115
+ private:
116
+ int _versionNumber;
117
+ std::vector<int> _alignmentPatternCenters;
118
+ std::array<ECBlocks, 4> _ecBlocks;
119
+ int _totalCodewords;
120
+ Type _type;
121
+
122
+ Version(int versionNumber, std::initializer_list<int> alignmentPatternCenters, const std::array<ECBlocks, 4> &ecBlocks);
123
+ Version(int versionNumber, const std::array<ECBlocks, 4>& ecBlocks);
124
+ };
125
+
126
+ } // QRCode
127
+ } // ZXing
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright 2016 Huy Cuong Nguyen
3
+ * Copyright 2016 ZXing authors
4
+ */
5
+ // SPDX-License-Identifier: Apache-2.0
6
+
7
+ #include "QRWriter.h"
8
+
9
+ #include "BitMatrix.h"
10
+ #include "CharacterSet.h"
11
+ #include "QREncodeResult.h"
12
+ #include "QREncoder.h"
13
+ #include "QRErrorCorrectionLevel.h"
14
+ #include "Utf.h"
15
+
16
+ #include <stdexcept>
17
+ #include <utility>
18
+
19
+ namespace ZXing::QRCode {
20
+
21
+ static const int QUIET_ZONE_SIZE = 4;
22
+
23
+ Writer::Writer()
24
+ : _margin(QUIET_ZONE_SIZE),
25
+ _ecLevel(ErrorCorrectionLevel::Low),
26
+ _encoding(CharacterSet::Unknown),
27
+ _version(0),
28
+ _useGs1Format(false),
29
+ _maskPattern(-1)
30
+ {}
31
+
32
+ BitMatrix Writer::encode(const std::wstring& contents, int width, int height) const
33
+ {
34
+ if (contents.empty()) {
35
+ throw std::invalid_argument("Found empty contents");
36
+ }
37
+
38
+ if (width < 0 || height < 0) {
39
+ throw std::invalid_argument("Requested dimensions are invalid");
40
+ }
41
+
42
+ EncodeResult code = Encode(contents, _ecLevel, _encoding, _version, _useGs1Format, _maskPattern);
43
+ return Inflate(std::move(code.matrix), width, height, _margin);
44
+ }
45
+
46
+ BitMatrix Writer::encode(const std::string& contents, int width, int height) const
47
+ {
48
+ return encode(FromUtf8(contents), width, height);
49
+ }
50
+
51
+ } // namespace ZXing::QRCode
@@ -0,0 +1,74 @@
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
+
11
+ #include <string>
12
+
13
+ namespace ZXing {
14
+
15
+ class BitMatrix;
16
+
17
+ namespace QRCode {
18
+
19
+ enum class ErrorCorrectionLevel;
20
+
21
+ /**
22
+ * This object renders a QR Code as a BitMatrix 2D array of greyscale values.
23
+ *
24
+ * @author dswitkin@google.com (Daniel Switkin)
25
+ */
26
+ class Writer
27
+ {
28
+ public:
29
+ Writer();
30
+
31
+ Writer& setMargin(int margin) {
32
+ _margin = margin;
33
+ return *this;
34
+ }
35
+
36
+ Writer& setErrorCorrectionLevel(ErrorCorrectionLevel ecLevel) {
37
+ _ecLevel = ecLevel;
38
+ return *this;
39
+ }
40
+
41
+ Writer& setEncoding(CharacterSet encoding) {
42
+ _encoding = encoding;
43
+ return *this;
44
+ }
45
+
46
+ Writer& setVersion(int versionNumber) {
47
+ _version = versionNumber;
48
+ return *this;
49
+ }
50
+
51
+ Writer& useGS1Format() {
52
+ _useGs1Format = true;
53
+ return *this;
54
+ }
55
+
56
+ Writer& setMaskPattern(int pattern) {
57
+ _maskPattern = pattern;
58
+ return *this;
59
+ }
60
+
61
+ BitMatrix encode(const std::wstring& contents, int width, int height) const;
62
+ BitMatrix encode(const std::string& contents, int width, int height) const;
63
+
64
+ private:
65
+ int _margin;
66
+ ErrorCorrectionLevel _ecLevel;
67
+ CharacterSet _encoding;
68
+ int _version;
69
+ bool _useGs1Format;
70
+ int _maskPattern;
71
+ };
72
+
73
+ } // QRCode
74
+ } // ZXing
@@ -0,0 +1,34 @@
1
+ // Windows resource file - Add version information to DLL
2
+ #include <windows.h>
3
+
4
+ VS_VERSION_INFO VERSIONINFO
5
+ FILEVERSION @FILE_VERSION_COMMA@
6
+ PRODUCTVERSION @FILE_VERSION_COMMA@
7
+ FILEFLAGSMASK 0x3fL
8
+ #ifdef _DEBUG
9
+ FILEFLAGS 0x1L
10
+ #else
11
+ FILEFLAGS 0x0L
12
+ #endif
13
+ FILEOS 0x40004L
14
+ FILETYPE 0x2L
15
+ FILESUBTYPE 0x0L
16
+ BEGIN
17
+ BLOCK "StringFileInfo"
18
+ BEGIN
19
+ BLOCK "040904b0" // en-US, Unicode
20
+ BEGIN
21
+ VALUE "CompanyName", "zxing-cpp"
22
+ VALUE "FileDescription", "ZXing-C++ Barcode Library"
23
+ VALUE "FileVersion", "@FILE_VERSION_STR@"
24
+ VALUE "InternalName", "ZXing"
25
+ VALUE "LegalCopyright", "Copyright (C) zxing-cpp contributors"
26
+ VALUE "ProductName", "ZXing-C++"
27
+ VALUE "ProductVersion", "@FILE_VERSION_STR@"
28
+ END
29
+ END
30
+ BLOCK "VarFileInfo"
31
+ BEGIN
32
+ VALUE "Translation", 0x0409, 1200
33
+ END
34
+ END
@@ -0,0 +1,8 @@
1
+ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2
+ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3
+
4
+ Name: ZXing
5
+ Description: ZXing-C++ library
6
+ Version: @PROJECT_VERSION@@ZXING_VERSION_SUFFIX@
7
+ Libs: -L${libdir} -lZXing
8
+ Cflags: -I${includedir} @COMPILE_FLAGS@
@@ -0,0 +1,25 @@
1
+ # ZXingCpp iOS Framework
2
+
3
+ ## Installation
4
+
5
+ ### SwiftPM
6
+
7
+ As this repository provides a `Package.swift` on the root level, so you can add `zxing-cpp` including wrapper code by adding a Package Dependency in Xcode.
8
+
9
+ An alternative way is to check this repository out and add it as a local Swift Package by adding it as a dependency to your app.
10
+
11
+ ### CocoaPods
12
+
13
+ You can also use [CocoaPods](https://cocoapods.org/pods/zxing-cpp). Just add the Pod as a dependency:
14
+
15
+ ```
16
+ pod 'zxing-cpp'
17
+ ```
18
+ The module to be imported is named `ZXingCpp`. If you just need the core without the wrapper code, you can use:
19
+ ```
20
+ pod 'zxing-cpp/Core'
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ For general usage of the ObjectiveC/Swift wrapper, please have a look at the source code provided in the [demo project](demo).
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright 2026 Axel Waggershauser
3
+ */
4
+ // SPDX-License-Identifier: Apache-2.0
5
+
6
+ // This header a 'manual' rendition of Version.h.in for the iOS (SwiftPM / Cocoapods) build systems that don't use cmake
7
+
8
+ #pragma once
9
+
10
+ #define ZXING_READERS
11
+ #define ZXING_WRITERS
12
+
13
+ #define ZXING_ENABLE_1D 1
14
+ #define ZXING_ENABLE_AZTEC 1
15
+ #define ZXING_ENABLE_DATAMATRIX 1
16
+ #define ZXING_ENABLE_MAXICODE 1
17
+ #define ZXING_ENABLE_PDF417 1
18
+ #define ZXING_ENABLE_QRCODE 1
19
+
20
+ // #define ZXING_EXPERIMENTAL_API
21
+ // #define ZXING_USE_ZINT
22
+
23
+ // Version numbering
24
+ #define ZXING_VERSION_MAJOR 3
25
+ #define ZXING_VERSION_MINOR 1
26
+ #define ZXING_VERSION_PATCH 1
27
+ #define ZXING_VERSION_SUFFIX "" // e.g. "-rc1"
28
+
29
+ #define ZXING_VERSION_STR "3.1.1" ZXING_VERSION_SUFFIX
@@ -0,0 +1,45 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = 'zxing-cpp'
3
+ s.version = '3.1.1'
4
+ s.summary = 'C++ port of ZXing'
5
+ s.homepage = 'https://github.com/zxing-cpp/zxing-cpp'
6
+ s.author = 'axxel'
7
+ s.readme = 'https://raw.githubusercontent.com/zxing-cpp/zxing-cpp/master/wrappers/ios/README.md'
8
+ s.license = {
9
+ :type => 'Apache License 2.0',
10
+ :file => 'LICENSE'
11
+ }
12
+ s.source = {
13
+ :git => 'https://github.com/zxing-cpp/zxing-cpp.git',
14
+ :tag => "v#{s.version}"
15
+ }
16
+ s.module_name = 'ZXingCpp'
17
+ s.platform = :ios, '12.0'
18
+ s.library = ['c++']
19
+ s.compiler_flags = [
20
+ '-DZXING_INTERNAL',
21
+ '-Wno-comma'
22
+ ]
23
+ s.pod_target_xcconfig = {
24
+ 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++20',
25
+ 'HEADER_SEARCH_PATHS' => '$(PODS_TARGET_SRCROOT)/wrappers/ios/Sources/Wrapper'
26
+ }
27
+
28
+ s.default_subspec = 'Wrapper'
29
+
30
+ s.subspec 'Core' do |ss|
31
+ ss.source_files = 'core/src/**/*.{h,c,cpp}'
32
+ ss.exclude_files = [ 'core/src/libzint/**' ]
33
+ ss.private_header_files = 'core/src/**/*.h'
34
+ end
35
+
36
+ s.subspec 'Wrapper' do |ss|
37
+ ss.dependency 'zxing-cpp/Core'
38
+ ss.frameworks = 'CoreGraphics', 'CoreImage', 'CoreVideo'
39
+ ss.source_files = 'wrappers/ios/Sources/Wrapper/**/*.{h,m,mm}'
40
+ ss.public_header_files = 'wrappers/ios/Sources/Wrapper/Reader/{ZXIBarcodeReader,ZXIResult,ZXIPosition,ZXIPoint,ZXIGTIN,ZXIReaderOptions}.h',
41
+ 'wrappers/ios/Sources/Wrapper/Writer/{ZXIBarcodeWriter,ZXIWriterOptions}.h',
42
+ 'wrappers/ios/Sources/Wrapper/{ZXIErrors,ZXIFormat}.h'
43
+ ss.exclude_files = 'wrappers/ios/Sources/Wrapper/UmbrellaHeader.h'
44
+ end
45
+ end
@@ -0,0 +1,10 @@
1
+ import type { BarcodeScanner } from './specs/BarcodeScanner.nitro';
2
+ import type { BarcodeScannerOptions } from './specs/BarcodeScannerFactory.nitro';
3
+ /**
4
+ * Create a new {@linkcode BarcodeScanner}.
5
+ *
6
+ * The {@linkcode BarcodeScanner} can be used to
7
+ * scan {@linkcode Barcode}s in a {@linkcode Frame} or
8
+ * an existing {@linkcode Image}.
9
+ */
10
+ export declare function createBarcodeScanner(options: BarcodeScannerOptions): BarcodeScanner;
package/lib/factory.js ADDED
@@ -0,0 +1,12 @@
1
+ import { NitroModules } from 'react-native-nitro-modules';
2
+ const factory = NitroModules.createHybridObject('ZXingBarcodeScannerFactory');
3
+ /**
4
+ * Create a new {@linkcode BarcodeScanner}.
5
+ *
6
+ * The {@linkcode BarcodeScanner} can be used to
7
+ * scan {@linkcode Barcode}s in a {@linkcode Frame} or
8
+ * an existing {@linkcode Image}.
9
+ */
10
+ export function createBarcodeScanner(options) {
11
+ return factory.createBarcodeScanner(options);
12
+ }
package/lib/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export * from './factory';
2
+ export * from './specs/Barcode.nitro';
3
+ export * from './specs/BarcodeFormat';
4
+ export * from './specs/BarcodeScanner.nitro';
5
+ export * from './specs/BarcodeScannerFactory.nitro';
6
+ export * from './specs/BarcodeValueType';
7
+ export * from './specs/Point';
8
+ export * from './specs/Rect';
9
+ export * from './useBarcodeScanner';
package/lib/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export * from './factory';
2
+ export * from './specs/Barcode.nitro';
3
+ export * from './specs/BarcodeFormat';
4
+ export * from './specs/BarcodeScanner.nitro';
5
+ export * from './specs/BarcodeScannerFactory.nitro';
6
+ export * from './specs/BarcodeValueType';
7
+ export * from './specs/Point';
8
+ export * from './specs/Rect';
9
+ export * from './useBarcodeScanner';
@@ -0,0 +1,63 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ import type { BarcodeFormat } from './BarcodeFormat';
3
+ import type { BarcodeValueType } from './BarcodeValueType';
4
+ import type { Point } from './Point';
5
+ import type { Rect } from './Rect';
6
+ /**
7
+ * Represents a single detected Barcode.
8
+ *
9
+ * A {@linkcode Barcode} is produced via the
10
+ * {@linkcode BarcodeScanner} (see
11
+ * {@linkcode createBarcodeScanner | createBarcodeScanner(...)}).
12
+ *
13
+ * See {@linkcode BarcodeScanner.scanCodes | BarcodeScanner.scanCodes(...)}
14
+ * and {@linkcode BarcodeScanner.scanCodesInImageAsync | BarcodeScanner.scanCodesInImageAsync(...)}
15
+ * for information about Barcode coordinate systems.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const barcode = ...
20
+ * console.log(`Barcode value: ${barcode.rawValue}`)
21
+ * ```
22
+ */
23
+ export interface Barcode extends HybridObject<{
24
+ ios: 'c++';
25
+ android: 'c++';
26
+ }> {
27
+ /**
28
+ * Get the format of this {@linkcode Barcode}.
29
+ * @see {@linkcode BarcodeFormat}
30
+ */
31
+ readonly format: BarcodeFormat;
32
+ /**
33
+ * Get the {@linkcode Barcode}'s bounding box.
34
+ *
35
+ * The coordinates are relative to the input {@linkcode Frame}
36
+ * or {@linkcode Image}.
37
+ */
38
+ readonly boundingBox: Rect;
39
+ /**
40
+ * Get the {@linkcode Barcode}'s corner points.
41
+ *
42
+ * The coordinates are relative to the input {@linkcode Frame}
43
+ * or {@linkcode Image}.
44
+ */
45
+ readonly cornerPoints: Point[];
46
+ /**
47
+ * Get the {@linkcode Barcode}'s value in a user-friendly format.
48
+ */
49
+ readonly displayValue: string | undefined;
50
+ /**
51
+ * Get the {@linkcode Barcode}'s value in raw bytes.
52
+ */
53
+ readonly rawBytes: ArrayBuffer | undefined;
54
+ /**
55
+ * Get the {@linkcode Barcode}'s raw value as a string.
56
+ */
57
+ readonly rawValue: string | undefined;
58
+ /**
59
+ * Get the {@linkcode Barcode}'s value's type.
60
+ * @see {@linkcode BarcodeValueType}
61
+ */
62
+ readonly valueType: BarcodeValueType;
63
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Represents a detected {@linkcode Barcode}'s format, or
3
+ * `'unknown'` if the format of a scanned Barcode could not be
4
+ * determined.
5
+ */
6
+ export type BarcodeFormat = 'unknown' | 'code-128' | 'code-39' | 'code-93' | 'codabar' | 'data-matrix' | 'ean-13' | 'ean-8' | 'itf' | 'qr-code' | 'upc-a' | 'upc-e' | 'pdf-417' | 'aztec';
7
+ /**
8
+ * Represents a target {@linkcode BarcodeFormat} that the {@linkcode BarcodeScanner}
9
+ * can be configured to scan for, or `'all-formats'` to scan for every supported format.
10
+ */
11
+ export type TargetBarcodeFormat = Exclude<BarcodeFormat, 'unknown'> | 'all-formats';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,89 @@
1
+ import type { Image } from 'react-native-nitro-image';
2
+ import type { HybridObject } from 'react-native-nitro-modules';
3
+ import type { Frame } from 'react-native-vision-camera';
4
+ import type { Barcode } from './Barcode.nitro';
5
+ /**
6
+ * Represents a Barcode Scanner that uses ZXing (zxing-cpp).
7
+ *
8
+ * The {@linkcode BarcodeScanner} can be used in a
9
+ * Frame Processor by calling {@linkcode BarcodeScanner.scanCodes | scanCodes(...)},
10
+ * or for static images by calling
11
+ * {@linkcode BarcodeScanner.scanCodesInImageAsync | scanCodesInImageAsync(...)}.
12
+ *
13
+ * @see {@linkcode useBarcodeScanner | useBarcodeScanner(...)}
14
+ * @see {@linkcode createBarcodeScanner | createBarcodeScanner(...)}
15
+ */
16
+ export interface BarcodeScanner extends HybridObject<{
17
+ ios: 'c++';
18
+ android: 'c++';
19
+ }> {
20
+ /**
21
+ * Synchronously detects {@linkcode Barcode}s in the
22
+ * given {@linkcode Frame}.
23
+ *
24
+ * All coordinates in the {@linkcode Barcode} are
25
+ * relative to the {@linkcode Frame}'s coordinate system.
26
+ *
27
+ * You can convert {@linkcode Barcode} coordinates to Camera coordinates using
28
+ * {@linkcode Frame.convertFramePointToCameraPoint | Frame.convertFramePointToCameraPoint(...)},
29
+ * and then convert the Camera coordinates to Preview View coordinates using
30
+ * {@linkcode PreviewViewMethods.convertCameraPointToViewPoint | PreviewViewMethods.convertCameraPointToViewPoint(...)}.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const scanner = // ...
35
+ * const frame = // ...
36
+ * const previewView = // ...
37
+ *
38
+ * const barcodes = scanner.scanCodes(frame)
39
+ * for (const barcode of barcodes) {
40
+ * console.log('Barcode value:', barcode.rawValue)
41
+ * for (const point of barcode.cornerPoints) {
42
+ * const cameraPoint = frame.convertFramePointToCameraPoint(point)
43
+ * const previewPoint = previewView.convertCameraPointToViewPoint(cameraPoint)
44
+ * console.log('Corner Point:', previewPoint)
45
+ * }
46
+ * }
47
+ * ```
48
+ */
49
+ scanCodes(frame: Frame): Barcode[];
50
+ /**
51
+ * Asynchronously detects {@linkcode Barcode}s in the
52
+ * given {@linkcode Frame}.
53
+ *
54
+ * The Frame must remain valid until the returned Promise settles. Do not
55
+ * call {@linkcode Frame.dispose | Frame.dispose()} before awaiting it.
56
+ *
57
+ * @see {@linkcode scanCodes}
58
+ */
59
+ scanCodesAsync(frame: Frame): Promise<Barcode[]>;
60
+ /**
61
+ * Asynchronously detects {@linkcode Barcode}s in the
62
+ * given {@linkcode Image}.
63
+ *
64
+ * This can be used to scan codes in an existing still image, such as
65
+ * an image loaded from disk, bundled resources or a URL via
66
+ * `react-native-nitro-image`.
67
+ *
68
+ * All coordinates in the returned {@linkcode Barcode}s are relative
69
+ * to the given {@linkcode Image}'s coordinate system.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * import { loadImage } from 'react-native-nitro-image'
74
+ * import { createBarcodeScanner } from 'react-native-nitro-zxing'
75
+ *
76
+ * const image = await loadImage({ url: 'https://example.com/barcode.png' })
77
+ * const scanner = createBarcodeScanner({ barcodeFormats: ['all-formats'] })
78
+ *
79
+ * try {
80
+ * const barcodes = await scanner.scanCodesInImageAsync(image)
81
+ * console.log('Barcode value:', barcodes[0]?.rawValue)
82
+ * } finally {
83
+ * image.dispose()
84
+ * scanner.dispose()
85
+ * }
86
+ * ```
87
+ */
88
+ scanCodesInImageAsync(image: Image): Promise<Barcode[]>;
89
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ import type { TargetBarcodeFormat } from './BarcodeFormat';
3
+ import type { BarcodeScanner } from './BarcodeScanner.nitro';
4
+ export interface BarcodeScannerOptions {
5
+ /**
6
+ * Specifies the formats to be used for Barcode
7
+ * scanning.
8
+ *
9
+ * If you want to detect all kinds of barcodes,
10
+ * use {@linkcode TargetBarcodeFormat | ['all-formats']}
11
+ */
12
+ barcodeFormats: TargetBarcodeFormat[];
13
+ }
14
+ export interface ZXingBarcodeScannerFactory extends HybridObject<{
15
+ ios: 'c++';
16
+ android: 'c++';
17
+ }> {
18
+ /**
19
+ * Create a new {@linkcode BarcodeScanner}.
20
+ */
21
+ createBarcodeScanner(options: BarcodeScannerOptions): BarcodeScanner;
22
+ }
23
+ /**
24
+ * Alias of {@linkcode ZXingBarcodeScannerFactory}.
25
+ */
26
+ export type BarcodeScannerFactory = ZXingBarcodeScannerFactory;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Represents the semantic type of data encoded in a {@linkcode Barcode} - e.g.
3
+ * a URL, a phone number, or a WiFi config - or `'unknown'` if the content type
4
+ * could not be classified.
5
+ *
6
+ * This describes **what** the barcode's content represents, not the barcode's
7
+ * visual format (see {@linkcode BarcodeFormat}).
8
+ */
9
+ export type BarcodeValueType = 'unknown' | 'contact-info' | 'email' | 'isbn' | 'phone' | 'product' | 'sms' | 'text' | 'url' | 'wifi' | 'geo' | 'calendar-event' | 'driver-license';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Represents a Point in the current context's
3
+ * coordinate system.
4
+ */
5
+ export interface Point {
6
+ /**
7
+ * The X coordinate of the Point.
8
+ */
9
+ x: number;
10
+ /**
11
+ * The Y coordinate of the Point.
12
+ */
13
+ y: number;
14
+ }