dynamsoft-capture-vision-react-native 3.4.1200 → 3.4.3000

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 (222) hide show
  1. package/LICENSE +5 -5
  2. package/README.md +62 -66
  3. package/android/README.md +14 -14
  4. package/android/build.gradle +167 -163
  5. package/android/gradle.properties +20 -20
  6. package/android/settings.gradle +5 -5
  7. package/android/src/main/AndroidManifest.xml +6 -6
  8. package/android/src/main/AndroidManifest_noPackage.xml +5 -5
  9. package/android/src/main/cpp/CMakeLists.txt +21 -21
  10. package/android/src/main/cpp/ImgHO.cpp +94 -94
  11. package/android/src/main/cpp/ImgHO.h +34 -34
  12. package/android/src/main/cpp/JsiCore.cpp +296 -296
  13. package/android/src/main/cpp/JsiCore.h +51 -51
  14. package/android/src/main/cpp/JsiCvr.cpp +332 -332
  15. package/android/src/main/cpp/JsiCvr.h +54 -54
  16. package/android/src/main/cpp/JsiDbr.cpp +283 -283
  17. package/android/src/main/cpp/JsiDbr.h +26 -26
  18. package/android/src/main/cpp/JsiDce.cpp +59 -59
  19. package/android/src/main/cpp/JsiDce.h +17 -17
  20. package/android/src/main/cpp/JsiDcp.cpp +51 -51
  21. package/android/src/main/cpp/JsiDcp.h +31 -31
  22. package/android/src/main/cpp/JsiDdn.cpp +50 -50
  23. package/android/src/main/cpp/JsiDdn.h +28 -28
  24. package/android/src/main/cpp/JsiDlr.cpp +60 -60
  25. package/android/src/main/cpp/JsiDlr.h +26 -26
  26. package/android/src/main/cpp/JsiUtility.cpp +604 -604
  27. package/android/src/main/cpp/JsiUtility.h +26 -26
  28. package/android/src/main/cpp/RawBuffer.cpp +23 -23
  29. package/android/src/main/cpp/RawBuffer.h +24 -24
  30. package/android/src/main/cpp/android_log.h +14 -14
  31. package/android/src/main/dysJniLibs/debug/arm64-v8a/librn_dys.so +0 -0
  32. package/android/src/main/dysJniLibs/debug/armeabi-v7a/librn_dys.so +0 -0
  33. package/android/src/main/dysJniLibs/debug/x86/librn_dys.so +0 -0
  34. package/android/src/main/dysJniLibs/debug/x86_64/librn_dys.so +0 -0
  35. package/android/src/main/dysJniLibs/release/arm64-v8a/librn_dys.so +0 -0
  36. package/android/src/main/dysJniLibs/release/armeabi-v7a/librn_dys.so +0 -0
  37. package/android/src/main/dysJniLibs/release/x86/librn_dys.so +0 -0
  38. package/android/src/main/dysJniLibs/release/x86_64/librn_dys.so +0 -0
  39. package/android/src/main/dysJniLibsFor81/debug/arm64-v8a/librn_dys.so +0 -0
  40. package/android/src/main/dysJniLibsFor81/debug/armeabi-v7a/librn_dys.so +0 -0
  41. package/android/src/main/dysJniLibsFor81/debug/x86/librn_dys.so +0 -0
  42. package/android/src/main/dysJniLibsFor81/debug/x86_64/librn_dys.so +0 -0
  43. package/android/src/main/dysJniLibsFor81/release/arm64-v8a/librn_dys.so +0 -0
  44. package/android/src/main/dysJniLibsFor81/release/armeabi-v7a/librn_dys.so +0 -0
  45. package/android/src/main/dysJniLibsFor81/release/x86/librn_dys.so +0 -0
  46. package/android/src/main/dysJniLibsFor81/release/x86_64/librn_dys.so +0 -0
  47. package/android/src/main/dysJniLibsFor82/debug/arm64-v8a/librn_dys.so +0 -0
  48. package/android/src/main/dysJniLibsFor82/debug/armeabi-v7a/librn_dys.so +0 -0
  49. package/android/src/main/dysJniLibsFor82/debug/x86/librn_dys.so +0 -0
  50. package/android/src/main/dysJniLibsFor82/debug/x86_64/librn_dys.so +0 -0
  51. package/android/src/main/dysJniLibsFor82/release/arm64-v8a/librn_dys.so +0 -0
  52. package/android/src/main/dysJniLibsFor82/release/armeabi-v7a/librn_dys.so +0 -0
  53. package/android/src/main/dysJniLibsFor82/release/x86/librn_dys.so +0 -0
  54. package/android/src/main/dysJniLibsFor82/release/x86_64/librn_dys.so +0 -0
  55. package/android/src/main/dysJniLibsFor86/debug/arm64-v8a/librn_dys.so +3 -0
  56. package/android/src/main/dysJniLibsFor86/debug/armeabi-v7a/librn_dys.so +3 -0
  57. package/android/src/main/dysJniLibsFor86/debug/x86/librn_dys.so +3 -0
  58. package/android/src/main/dysJniLibsFor86/debug/x86_64/librn_dys.so +3 -0
  59. package/android/src/main/dysJniLibsFor86/release/arm64-v8a/librn_dys.so +3 -0
  60. package/android/src/main/dysJniLibsFor86/release/armeabi-v7a/librn_dys.so +3 -0
  61. package/android/src/main/dysJniLibsFor86/release/x86/librn_dys.so +3 -0
  62. package/android/src/main/dysJniLibsFor86/release/x86_64/librn_dys.so +3 -0
  63. package/android/src/main/java/com/dynamsoft/reactnativelib/CVRModule.kt +137 -137
  64. package/android/src/main/java/com/dynamsoft/reactnativelib/CameraViewManager.kt +62 -62
  65. package/android/src/main/java/com/dynamsoft/reactnativelib/DCEModule.kt +125 -125
  66. package/android/src/main/java/com/dynamsoft/reactnativelib/DynamsoftBaseModule.kt +8 -8
  67. package/android/src/main/java/com/dynamsoft/reactnativelib/ISAModule.kt +73 -73
  68. package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +14 -14
  69. package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +35 -35
  70. package/android/src/main/java/com/dynamsoft/reactnativelib/ImageManagerModule.kt +15 -15
  71. package/android/src/main/java/com/dynamsoft/reactnativelib/LicenseModule.kt +29 -29
  72. package/android/src/main/java/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +83 -83
  73. package/android/src/main/java/com/dynamsoft/reactnativelib/ReactNativeDcvPackage.kt +32 -32
  74. package/android/src/main/java/com/dynamsoft/reactnativelib/VersionsModule.kt +41 -41
  75. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/Basic.kt +44 -44
  76. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCore.kt +50 -50
  77. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCvr.kt +129 -129
  78. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDBR.kt +157 -157
  79. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCE.kt +110 -110
  80. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCP.kt +49 -49
  81. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDDN.kt +85 -85
  82. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDLR.kt +72 -72
  83. package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ImageUtil.kt +58 -58
  84. package/android/src/main/java/com/dynamsoft/reactnativelib/core/ImageSourceAdapterModuleImpl.kt +120 -120
  85. package/android/src/main/java/com/dynamsoft/reactnativelib/cvr/CaptureVisionRouterModuleImpl.kt +306 -306
  86. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraEnhancerModuleImpl.kt +247 -247
  87. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraLifeCycleOwner.java +14 -14
  88. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraViewManagerImpl.kt +77 -77
  89. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewManagerImpl.kt +15 -15
  90. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewModuleImpl.kt +110 -110
  91. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNCameraView.kt +20 -20
  92. package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNImageEditorView.kt +19 -19
  93. package/android/src/main/java/com/dynamsoft/reactnativelib/license/LicenseModuleImpl.kt +39 -39
  94. package/android/src/main/java/com/dynamsoft/reactnativelib/utility/ImageManagerModuleImpl.kt +120 -120
  95. package/android/src/main/java/com/dynamsoft/reactnativelib/utility/MultiCrossFilterModuleImpl.kt +111 -111
  96. package/app.plugin.js +21 -21
  97. package/dynamsoft-capture-vision-react-native.podspec +24 -24
  98. package/ios/CPP/DSImageData+HostObject.h +18 -18
  99. package/ios/CPP/DSImageData+HostObject.mm +38 -38
  100. package/ios/CPP/ImageDataHostObject.cpp +87 -87
  101. package/ios/CPP/ImageDataHostObject.hpp +35 -35
  102. package/ios/CPP/MutableRawBuffer.cpp +23 -23
  103. package/ios/CPP/MutableRawBuffer.hpp +23 -23
  104. package/ios/CPP/RNDynamsoft+JSI.h +22 -22
  105. package/ios/CPP/RNDynamsoft+JSI.mm +303 -303
  106. package/ios/CPP/RNDynamsoft+Json.h +93 -93
  107. package/ios/CPP/RNDynamsoft+Json.m +733 -733
  108. package/ios/CPP/YeetJSIUtils.h +56 -56
  109. package/ios/CPP/YeetJSIUtils.mm +208 -208
  110. package/ios/RNDynamsoftCameraView.h +31 -31
  111. package/ios/RNDynamsoftCameraView.m +108 -108
  112. package/ios/RNDynamsoftCameraViewManager.h +14 -14
  113. package/ios/RNDynamsoftCameraViewManager.m +195 -195
  114. package/ios/RNDynamsoftCaptureVisionRouter.h +18 -18
  115. package/ios/RNDynamsoftCaptureVisionRouter.mm +532 -532
  116. package/ios/RNDynamsoftImageEditorView.h +17 -17
  117. package/ios/RNDynamsoftImageEditorView.m +25 -25
  118. package/ios/RNDynamsoftImageEditorViewManager.h +14 -14
  119. package/ios/RNDynamsoftImageEditorViewManager.mm +183 -183
  120. package/ios/RNDynamsoftImageManager.h +14 -14
  121. package/ios/RNDynamsoftImageManager.mm +369 -369
  122. package/ios/RNDynamsoftImageSourceAdapter.h +19 -19
  123. package/ios/RNDynamsoftImageSourceAdapter.mm +255 -255
  124. package/ios/RNDynamsoftLicense.h +14 -14
  125. package/ios/RNDynamsoftLicense.m +62 -62
  126. package/ios/RNDynamsoftMultiCrossFilter.h +14 -14
  127. package/ios/RNDynamsoftMultiCrossFilter.m +145 -145
  128. package/ios/RNDynamsoftVersions.h +13 -13
  129. package/ios/RNDynamsoftVersions.m +27 -27
  130. package/package.json +48 -48
  131. package/src/NativeDynamsoftVersionsModule.tsx +20 -20
  132. package/src/VersionsModule.tsx +7 -7
  133. package/src/core/CapturedResultBase.tsx +18 -18
  134. package/src/core/CapturedResultItem.tsx +23 -23
  135. package/src/core/CoreModule.tsx +9 -9
  136. package/src/core/DSRect.tsx +29 -29
  137. package/src/core/EnumCaptureResultItemType.tsx +52 -52
  138. package/src/core/EnumColourChannelUsageType.tsx +26 -26
  139. package/src/core/EnumCrossVerificationStatus.tsx +46 -46
  140. package/src/core/EnumGrayscaleEnhancementMode.tsx +46 -46
  141. package/src/core/EnumGrayscaleTransformationMode.tsx +35 -35
  142. package/src/core/EnumImageFileFormat.tsx +6 -6
  143. package/src/core/EnumPixelFormat.tsx +53 -53
  144. package/src/core/ImageData.tsx +87 -87
  145. package/src/core/ImageSourceAdapter.tsx +160 -160
  146. package/src/core/NativeDynamsoftImageSourceAdapterModule.tsx +29 -29
  147. package/src/core/Point.tsx +13 -13
  148. package/src/core/Quadrilateral.tsx +12 -12
  149. package/src/core/index.tsx +18 -18
  150. package/src/cvr/CaptureVisionRouter.tsx +683 -683
  151. package/src/cvr/CaptureVisionRouterModule.tsx +9 -9
  152. package/src/cvr/CapturedResult.tsx +123 -123
  153. package/src/cvr/CapturedResultFilter.tsx +13 -13
  154. package/src/cvr/CapturedResultReceiver.tsx +71 -71
  155. package/src/cvr/EnumPresetTemplate.tsx +81 -81
  156. package/src/cvr/NativeDynamsoftCaptureVisionRouterModule.tsx +25 -25
  157. package/src/cvr/SimplifiedCaptureVisionSettings.tsx +61 -61
  158. package/src/cvr/index.tsx +11 -11
  159. package/src/dbr/BarcodeDetails.tsx +51 -51
  160. package/src/dbr/BarcodeReaderModule.tsx +9 -9
  161. package/src/dbr/BarcodeResultItem.tsx +65 -65
  162. package/src/dbr/DecodedBarcodesResult.tsx +14 -14
  163. package/src/dbr/ECISegment.tsx +23 -23
  164. package/src/dbr/EnumBarcodeFormat.tsx +112 -112
  165. package/src/dbr/EnumDeblurMode.tsx +29 -29
  166. package/src/dbr/EnumLocalizationMode.tsx +27 -27
  167. package/src/dbr/EnumQRCodeErrorCorrectionLevel.tsx +6 -6
  168. package/src/dbr/SimplifiedBarcodeReaderSettings.tsx +80 -80
  169. package/src/dbr/index.tsx +9 -9
  170. package/src/dce/CameraEnhancer.tsx +254 -254
  171. package/src/dce/CameraEnhancerModule.tsx +9 -9
  172. package/src/dce/CameraView.tsx +100 -100
  173. package/src/dce/DynamsoftCameraViewNativeComponent.ts +96 -96
  174. package/src/dce/DynamsoftImageEditorViewNativeComponent.ts +9 -9
  175. package/src/dce/EnumCameraPosition.tsx +25 -25
  176. package/src/dce/EnumDrawingLayerId.tsx +17 -17
  177. package/src/dce/EnumEnhancedFeatures.tsx +24 -24
  178. package/src/dce/EnumFocusMode.tsx +6 -6
  179. package/src/dce/EnumResolution.tsx +8 -8
  180. package/src/dce/EnumTorchState.tsx +10 -10
  181. package/src/dce/FeedBack.tsx +28 -28
  182. package/src/dce/ImageEditorView.tsx +131 -131
  183. package/src/dce/NativeDynamsoftCameraViewModule.tsx +47 -47
  184. package/src/dce/NativeDynamsoftImageEditorViewModule.ts +9 -9
  185. package/src/dce/index.tsx +13 -13
  186. package/src/dcp/CodeParserDedicatorModule.tsx +9 -9
  187. package/src/dcp/CodeParserModule.tsx +9 -9
  188. package/src/dcp/EnumMappingStatus.tsx +14 -14
  189. package/src/dcp/EnumValidationStatus.tsx +14 -14
  190. package/src/dcp/ParsedResult.tsx +14 -14
  191. package/src/dcp/ParsedResultItem.tsx +50 -50
  192. package/src/dcp/index.tsx +8 -8
  193. package/src/ddn/DeskewedImageResultItem.tsx +40 -40
  194. package/src/ddn/DetectedQuadResultItem.tsx +31 -31
  195. package/src/ddn/DocumentNormalizerModule.tsx +9 -9
  196. package/src/ddn/EnhancedImageResultItem.tsx +20 -20
  197. package/src/ddn/EnumImageColourMode.tsx +14 -14
  198. package/src/ddn/ProcessedDocumentResult.tsx +27 -27
  199. package/src/ddn/SimplifiedDocumentNormalizerSettings.tsx +65 -65
  200. package/src/ddn/index.tsx +11 -11
  201. package/src/dip/ImageProcessingModule.tsx +9 -9
  202. package/src/dip/index.tsx +1 -1
  203. package/src/dlr/CharacterResult.tsx +28 -28
  204. package/src/dlr/LabelRecognizerModule.tsx +9 -9
  205. package/src/dlr/RecognizedTextLinesResult.tsx +19 -19
  206. package/src/dlr/SimplifiedLabelRecognizerSettings.tsx +33 -33
  207. package/src/dlr/TextLineResultItem.tsx +41 -41
  208. package/src/dlr/index.tsx +8 -8
  209. package/src/index.tsx +13 -13
  210. package/src/license/LicenseManager.tsx +49 -49
  211. package/src/license/LicenseModule.tsx +9 -9
  212. package/src/license/NativeDynamsoftLicenseModule.tsx +7 -7
  213. package/src/license/index.tsx +7 -7
  214. package/src/utility/CrossVerificationCriteria.tsx +11 -11
  215. package/src/utility/EnumFilterType.tsx +5 -5
  216. package/src/utility/ImageManager.tsx +348 -348
  217. package/src/utility/MultiFrameResultCrossFilter.tsx +183 -183
  218. package/src/utility/NativeDynamsoftImageManagerModule.tsx +7 -7
  219. package/src/utility/NativeDynamsoftMultiCrossFilterModule.tsx +18 -18
  220. package/src/utility/UtilityModule.tsx +9 -9
  221. package/src/utility/index.tsx +4 -4
  222. package/android/.gitignore +0 -4
@@ -1,111 +1,111 @@
1
- package com.dynamsoft.reactnativelib.utility
2
-
3
- import com.dynamsoft.reactnativelib.cvr.filterMap
4
- import com.dynamsoft.utility.CrossVerificationCriteria
5
- import com.dynamsoft.utility.MultiFrameResultCrossFilter
6
- import com.facebook.react.bridge.Arguments
7
- import com.facebook.react.bridge.Promise
8
- import com.facebook.react.bridge.ReactApplicationContext
9
- import com.facebook.react.bridge.ReactMethod
10
- import com.facebook.react.bridge.ReadableMap
11
-
12
- class MultiCrossFilterModuleImpl(context: ReactApplicationContext) {
13
- companion object {
14
- const val NAME = "DynamsoftMultiCrossFilterModule"
15
- }
16
-
17
- fun getName() = NAME
18
-
19
- private fun getMultiCrossFilterById(filterId: String): MultiFrameResultCrossFilter? {
20
- return if (filterMap[filterId] is MultiFrameResultCrossFilter) {
21
- filterMap[filterId] as MultiFrameResultCrossFilter
22
- } else {
23
- null
24
- }
25
- }
26
-
27
- @ReactMethod(isBlockingSynchronousMethod = true)
28
- fun createInstance(): String {
29
- return MultiFrameResultCrossFilter().apply {
30
- filterMap[this.toString()] = this
31
- }.toString()
32
- }
33
-
34
- @ReactMethod
35
- fun destroy(filterId: String) {
36
- filterMap.remove(filterId)
37
- }
38
-
39
- @ReactMethod
40
- fun enableResultCrossVerification(filterId: String, resultItemTypes: Int, enable: Boolean) {
41
- getMultiCrossFilterById(filterId)?.enableResultCrossVerification(resultItemTypes, enable)
42
- }
43
-
44
- @ReactMethod
45
- fun isResultCrossVerificationEnabled(filterId: String, type: Int, promise: Promise) {
46
- promise.resolve(getMultiCrossFilterById(filterId)?.isResultCrossVerificationEnabled(type))
47
- }
48
-
49
- @ReactMethod
50
- fun enableResultDeduplication(filterId: String, resultItemTypes: Int, enable: Boolean) {
51
- getMultiCrossFilterById(filterId)?.enableResultDeduplication(resultItemTypes, enable)
52
- }
53
-
54
- @ReactMethod
55
- fun isResultDeduplicationEnabled(filterId: String, type: Int, promise: Promise) {
56
- promise.resolve(getMultiCrossFilterById(filterId)?.isResultDeduplicationEnabled(type))
57
- }
58
-
59
- @ReactMethod
60
- fun setDuplicateForgetTime(filterId: String, resultItemTypes: Int, time: Int) {
61
- getMultiCrossFilterById(filterId)?.setDuplicateForgetTime(resultItemTypes, time)
62
- }
63
-
64
- @ReactMethod
65
- fun getDuplicateForgetTime(filterId: String, type: Int, promise: Promise) {
66
- promise.resolve(getMultiCrossFilterById(filterId)?.getDuplicateForgetTime(type))
67
- }
68
-
69
- @ReactMethod
70
- fun enableLatestOverlapping(filterId: String, resultItemTypes: Int, enable: Boolean) {
71
- getMultiCrossFilterById(filterId)?.enableLatestOverlapping(resultItemTypes, enable)
72
- }
73
-
74
- @ReactMethod
75
- fun isLatestOverlappingEnabled(filterId: String, resultItemTypes: Int, promise: Promise) {
76
- promise.resolve(getMultiCrossFilterById(filterId)?.isLatestOverlappingEnabled(resultItemTypes))
77
- }
78
-
79
- @ReactMethod
80
- fun getMaxOverlappingFrames(filterId: String, resultItemType: Int, promise: Promise) {
81
- promise.resolve(getMultiCrossFilterById(filterId)?.getMaxOverlappingFrames(resultItemType))
82
- }
83
-
84
- @ReactMethod
85
- fun setMaxOverlappingFrames(filterId: String, resultItemTypes: Int, maxFrameToCheck: Int) {
86
- getMultiCrossFilterById(filterId)?.setMaxOverlappingFrames(resultItemTypes, maxFrameToCheck)
87
- }
88
-
89
- @ReactMethod
90
- fun setResultCrossVerificationCriteria(filterId: String, resultItemTypes: Int, criteria: ReadableMap) {
91
- getMultiCrossFilterById(filterId)?.setResultCrossVerificationCriteria(resultItemTypes, criteria.run {
92
- CrossVerificationCriteria(
93
- criteria.getInt("frameWindow"),
94
- criteria.getInt("minConsistentFrames"),
95
- )
96
- })
97
- }
98
-
99
- @ReactMethod
100
- fun getResultCrossVerificationCriteria(filterId: String, resultItemType: Int, promise: Promise) {
101
- val criteria = getMultiCrossFilterById(filterId)?.getResultCrossVerificationCriteria(resultItemType)
102
- if (criteria != null) {
103
- promise.resolve(Arguments.createMap().apply {
104
- putInt("frameWindow", criteria.frameWindow)
105
- putInt("minConsistentFrames", criteria.minConsistentFrames)
106
- })
107
- } else {
108
- promise.resolve(null)
109
- }
110
- }
111
- }
1
+ package com.dynamsoft.reactnativelib.utility
2
+
3
+ import com.dynamsoft.reactnativelib.cvr.filterMap
4
+ import com.dynamsoft.utility.CrossVerificationCriteria
5
+ import com.dynamsoft.utility.MultiFrameResultCrossFilter
6
+ import com.facebook.react.bridge.Arguments
7
+ import com.facebook.react.bridge.Promise
8
+ import com.facebook.react.bridge.ReactApplicationContext
9
+ import com.facebook.react.bridge.ReactMethod
10
+ import com.facebook.react.bridge.ReadableMap
11
+
12
+ class MultiCrossFilterModuleImpl(context: ReactApplicationContext) {
13
+ companion object {
14
+ const val NAME = "DynamsoftMultiCrossFilterModule"
15
+ }
16
+
17
+ fun getName() = NAME
18
+
19
+ private fun getMultiCrossFilterById(filterId: String): MultiFrameResultCrossFilter? {
20
+ return if (filterMap[filterId] is MultiFrameResultCrossFilter) {
21
+ filterMap[filterId] as MultiFrameResultCrossFilter
22
+ } else {
23
+ null
24
+ }
25
+ }
26
+
27
+ @ReactMethod(isBlockingSynchronousMethod = true)
28
+ fun createInstance(): String {
29
+ return MultiFrameResultCrossFilter().apply {
30
+ filterMap[this.toString()] = this
31
+ }.toString()
32
+ }
33
+
34
+ @ReactMethod
35
+ fun destroy(filterId: String) {
36
+ filterMap.remove(filterId)
37
+ }
38
+
39
+ @ReactMethod
40
+ fun enableResultCrossVerification(filterId: String, resultItemTypes: Int, enable: Boolean) {
41
+ getMultiCrossFilterById(filterId)?.enableResultCrossVerification(resultItemTypes, enable)
42
+ }
43
+
44
+ @ReactMethod
45
+ fun isResultCrossVerificationEnabled(filterId: String, type: Int, promise: Promise) {
46
+ promise.resolve(getMultiCrossFilterById(filterId)?.isResultCrossVerificationEnabled(type))
47
+ }
48
+
49
+ @ReactMethod
50
+ fun enableResultDeduplication(filterId: String, resultItemTypes: Int, enable: Boolean) {
51
+ getMultiCrossFilterById(filterId)?.enableResultDeduplication(resultItemTypes, enable)
52
+ }
53
+
54
+ @ReactMethod
55
+ fun isResultDeduplicationEnabled(filterId: String, type: Int, promise: Promise) {
56
+ promise.resolve(getMultiCrossFilterById(filterId)?.isResultDeduplicationEnabled(type))
57
+ }
58
+
59
+ @ReactMethod
60
+ fun setDuplicateForgetTime(filterId: String, resultItemTypes: Int, time: Int) {
61
+ getMultiCrossFilterById(filterId)?.setDuplicateForgetTime(resultItemTypes, time)
62
+ }
63
+
64
+ @ReactMethod
65
+ fun getDuplicateForgetTime(filterId: String, type: Int, promise: Promise) {
66
+ promise.resolve(getMultiCrossFilterById(filterId)?.getDuplicateForgetTime(type))
67
+ }
68
+
69
+ @ReactMethod
70
+ fun enableLatestOverlapping(filterId: String, resultItemTypes: Int, enable: Boolean) {
71
+ getMultiCrossFilterById(filterId)?.enableLatestOverlapping(resultItemTypes, enable)
72
+ }
73
+
74
+ @ReactMethod
75
+ fun isLatestOverlappingEnabled(filterId: String, resultItemTypes: Int, promise: Promise) {
76
+ promise.resolve(getMultiCrossFilterById(filterId)?.isLatestOverlappingEnabled(resultItemTypes))
77
+ }
78
+
79
+ @ReactMethod
80
+ fun getMaxOverlappingFrames(filterId: String, resultItemType: Int, promise: Promise) {
81
+ promise.resolve(getMultiCrossFilterById(filterId)?.getMaxOverlappingFrames(resultItemType))
82
+ }
83
+
84
+ @ReactMethod
85
+ fun setMaxOverlappingFrames(filterId: String, resultItemTypes: Int, maxFrameToCheck: Int) {
86
+ getMultiCrossFilterById(filterId)?.setMaxOverlappingFrames(resultItemTypes, maxFrameToCheck)
87
+ }
88
+
89
+ @ReactMethod
90
+ fun setResultCrossVerificationCriteria(filterId: String, resultItemTypes: Int, criteria: ReadableMap) {
91
+ getMultiCrossFilterById(filterId)?.setResultCrossVerificationCriteria(resultItemTypes, criteria.run {
92
+ CrossVerificationCriteria(
93
+ criteria.getInt("frameWindow"),
94
+ criteria.getInt("minConsistentFrames"),
95
+ )
96
+ })
97
+ }
98
+
99
+ @ReactMethod
100
+ fun getResultCrossVerificationCriteria(filterId: String, resultItemType: Int, promise: Promise) {
101
+ val criteria = getMultiCrossFilterById(filterId)?.getResultCrossVerificationCriteria(resultItemType)
102
+ if (criteria != null) {
103
+ promise.resolve(Arguments.createMap().apply {
104
+ putInt("frameWindow", criteria.frameWindow)
105
+ putInt("minConsistentFrames", criteria.minConsistentFrames)
106
+ })
107
+ } else {
108
+ promise.resolve(null)
109
+ }
110
+ }
111
+ }
package/app.plugin.js CHANGED
@@ -1,21 +1,21 @@
1
- const { withProjectBuildGradle } = require("@expo/config-plugins");
2
-
3
- const dynamsoft_allprojects_block = `
4
- allprojects {
5
- repositories {
6
- maven {
7
- url "https://download2.dynamsoft.com/maven/aar"
8
- }
9
- }
10
- }
11
- `;
12
-
13
- module.exports = (config) => {
14
- return withProjectBuildGradle(config, (config) => {
15
- if(config.modResults.contents.includes('https://download2.dynamsoft.com/maven/aar')) {
16
- return config;
17
- }
18
- config.modResults.contents += dynamsoft_allprojects_block;
19
- return config;
20
- });
21
- };
1
+ const { withProjectBuildGradle } = require("@expo/config-plugins");
2
+
3
+ const dynamsoft_allprojects_block = `
4
+ allprojects {
5
+ repositories {
6
+ maven {
7
+ url "https://download2.dynamsoft.com/maven/aar"
8
+ }
9
+ }
10
+ }
11
+ `;
12
+
13
+ module.exports = (config) => {
14
+ return withProjectBuildGradle(config, (config) => {
15
+ if(config.modResults.contents.includes('https://download2.dynamsoft.com/maven/aar')) {
16
+ return config;
17
+ }
18
+ config.modResults.contents += dynamsoft_allprojects_block;
19
+ return config;
20
+ });
21
+ };
@@ -1,24 +1,24 @@
1
- require "json"
2
-
3
- package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
-
5
- Pod::Spec.new do |s|
6
- s.name = package["name"]
7
- s.version = package["version"]
8
- s.summary = package["description"]
9
- s.homepage = package["homepage"]
10
- s.license = package["license"]
11
- s.authors = { package["author"]["name"] => package["author"]["email"] }
12
-
13
- s.platforms = { :ios => "13.0" }
14
- s.source = { :http => "https://registry.npmjs.org/#{s.name}/-/#{s.name}-#{s.version}.tgz" }
15
-
16
- s.source_files = "ios/**/*.{h,hpp,c,cc,cpp,m,mm,swift}"
17
- s.private_header_files = "ios/**/*.h"
18
- s.requires_arc = true
19
-
20
- s.dependency "DynamsoftCaptureVisionBundle", ">= 3.4.1200", "< 4.0"
21
-
22
- install_modules_dependencies(s)
23
- end
24
-
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = package["name"]
7
+ s.version = package["version"]
8
+ s.summary = package["description"]
9
+ s.homepage = package["homepage"]
10
+ s.license = package["license"]
11
+ s.authors = { package["author"]["name"] => package["author"]["email"] }
12
+
13
+ s.platforms = { :ios => "13.0" }
14
+ s.source = { :http => "https://registry.npmjs.org/#{s.name}/-/#{s.name}-#{s.version}.tgz" }
15
+
16
+ s.source_files = "ios/**/*.{h,hpp,c,cc,cpp,m,mm,swift}"
17
+ s.private_header_files = "ios/**/*.h"
18
+ s.requires_arc = true
19
+
20
+ s.dependency "DynamsoftCaptureVisionBundle", ">= 3.4.3000", "< 4.0"
21
+
22
+ install_modules_dependencies(s)
23
+ end
24
+
@@ -1,18 +1,18 @@
1
- /*
2
- * Copyright © Dynamsoft Corporation. All rights reserved.
3
- */
4
-
5
- #import <DynamsoftCaptureVisionBundle/DSImageData.h>
6
- #include "ImageDataHostObject.hpp"
7
-
8
- NS_ASSUME_NONNULL_BEGIN
9
-
10
- @interface DSImageData (HostObject)
11
-
12
- + (DSImageData *)imageDataFromHostObject:(ImageDataHostObject)object;
13
-
14
- - (ImageDataHostObject)hostObject;
15
-
16
- @end
17
-
18
- NS_ASSUME_NONNULL_END
1
+ /*
2
+ * Copyright © Dynamsoft Corporation. All rights reserved.
3
+ */
4
+
5
+ #import <DynamsoftCaptureVisionBundle/DSImageData.h>
6
+ #include "ImageDataHostObject.hpp"
7
+
8
+ NS_ASSUME_NONNULL_BEGIN
9
+
10
+ @interface DSImageData (HostObject)
11
+
12
+ + (DSImageData *)imageDataFromHostObject:(ImageDataHostObject)object;
13
+
14
+ - (ImageDataHostObject)hostObject;
15
+
16
+ @end
17
+
18
+ NS_ASSUME_NONNULL_END
@@ -1,38 +1,38 @@
1
- /*
2
- * Copyright © Dynamsoft Corporation. All rights reserved.
3
- */
4
-
5
- #import "DSImageData+HostObject.h"
6
- #include "ImageDataHostObject.hpp"
7
-
8
- @implementation DSImageData (HostObject)
9
-
10
- - (ImageDataHostObject)hostObject {
11
- int width = (int)self.width;
12
- int height = (int)self.height;
13
- int stride = (int)self.stride;
14
- int format = (int)self.format;
15
- int orientation = (int)self.orientation;
16
- NSData *data = self.bytes;
17
- NSUInteger length = data.length;
18
- uint8_t *buffer = (uint8_t *)malloc(length);
19
- if (buffer != NULL) {
20
- memcpy(buffer, data.bytes, length);
21
- }
22
- int bufferSize = (int)length;
23
- ImageDataHostObject object = ImageDataHostObject(width, height, stride, format, orientation, buffer, bufferSize);
24
- return object;
25
- }
26
-
27
- + (DSImageData *)imageDataFromHostObject:(ImageDataHostObject)object {
28
- NSData *data = [NSData dataWithBytes:(const void *)object.buffer length:object.bufferSize];
29
- NSUInteger width = object.width;
30
- NSUInteger height = object.height;
31
- NSUInteger stride = object.stride;
32
- DSImagePixelFormat format = (DSImagePixelFormat)object.format;
33
- NSUInteger orientation = object.orientation;
34
- DSImageData *imageData = [[DSImageData alloc] initWithBytes:data width:width height:height stride:stride format:format orientation:orientation tag:nil];
35
- return imageData;
36
- }
37
-
38
- @end
1
+ /*
2
+ * Copyright © Dynamsoft Corporation. All rights reserved.
3
+ */
4
+
5
+ #import "DSImageData+HostObject.h"
6
+ #include "ImageDataHostObject.hpp"
7
+
8
+ @implementation DSImageData (HostObject)
9
+
10
+ - (ImageDataHostObject)hostObject {
11
+ int width = (int)self.width;
12
+ int height = (int)self.height;
13
+ int stride = (int)self.stride;
14
+ int format = (int)self.format;
15
+ int orientation = (int)self.orientation;
16
+ NSData *data = self.bytes;
17
+ NSUInteger length = data.length;
18
+ uint8_t *buffer = (uint8_t *)malloc(length);
19
+ if (buffer != NULL) {
20
+ memcpy(buffer, data.bytes, length);
21
+ }
22
+ int bufferSize = (int)length;
23
+ ImageDataHostObject object = ImageDataHostObject(width, height, stride, format, orientation, buffer, bufferSize);
24
+ return object;
25
+ }
26
+
27
+ + (DSImageData *)imageDataFromHostObject:(ImageDataHostObject)object {
28
+ NSData *data = [NSData dataWithBytes:(const void *)object.buffer length:object.bufferSize];
29
+ NSUInteger width = object.width;
30
+ NSUInteger height = object.height;
31
+ NSUInteger stride = object.stride;
32
+ DSImagePixelFormat format = (DSImagePixelFormat)object.format;
33
+ NSUInteger orientation = object.orientation;
34
+ DSImageData *imageData = [[DSImageData alloc] initWithBytes:data width:width height:height stride:stride format:format orientation:orientation tag:nil];
35
+ return imageData;
36
+ }
37
+
38
+ @end
@@ -1,87 +1,87 @@
1
- /*
2
- * Copyright © Dynamsoft Corporation. All rights reserved.
3
- */
4
-
5
- #include "ImageDataHostObject.hpp"
6
- #include "MutableRawBuffer.hpp"
7
-
8
- #define GET_VALUE(X) if(name==#X){return this->X;}
9
- #define SET_INT_VALUE(X) if(name==#X){this->X = (int) value.asNumber();}
10
-
11
- ImageDataHostObject::ImageDataHostObject(int width, int height, int stride, int format, int orientation, uint8_t *buffer, int bufferSize)
12
- : width(width), height(height), stride(stride), format(format), orientation(orientation), buffer(buffer), bufferSize(bufferSize) {}
13
-
14
- ImageDataHostObject ImageDataHostObject::getHOFromObject(Runtime &runtime, Object &jsObj) {
15
- if (jsObj.isHostObject<ImageDataHostObject>(runtime)) {
16
- return *((ImageDataHostObject *) (jsObj.asHostObject(runtime).get()));
17
- }
18
- ImageDataHostObject imageHO;
19
- int width = jsObj.hasProperty(runtime, "width") ? (int) jsObj.getProperty(runtime, "width").asNumber() : 0;
20
- int height = jsObj.hasProperty(runtime, "height") ? (int) jsObj.getProperty(runtime, "height").asNumber() : 0;
21
- int stride = jsObj.hasProperty(runtime, "stride") ? (int) jsObj.getProperty(runtime, "stride").asNumber() : 0;
22
- int format = jsObj.hasProperty(runtime, "format") ? (int) jsObj.getProperty(runtime, "format").asNumber() : 0;
23
- int orientation = jsObj.hasProperty(runtime, "orientation") ? (int) jsObj.getProperty(runtime, "orientation").asNumber() : 0;
24
- uint8_t *buffer = nullptr;
25
- int bufferSize = 0;
26
- if (jsObj.hasProperty(runtime, "buffer")) {
27
- ArrayBuffer array_buffer = jsObj.getProperty(runtime, "buffer").asObject(runtime).getArrayBuffer(runtime);
28
- buffer = array_buffer.data(runtime);
29
- bufferSize = (int) array_buffer.length(runtime);
30
- }
31
- return ImageDataHostObject(width, height, stride, format, orientation, buffer, bufferSize);
32
- }
33
-
34
- Value ImageDataHostObject::get(Runtime &runtime, const PropNameID &propName) {
35
- auto name = propName.utf8(runtime);
36
- GET_VALUE(width)
37
- GET_VALUE(height)
38
- GET_VALUE(stride)
39
- GET_VALUE(format)
40
- GET_VALUE(orientation)
41
- GET_VALUE(bufferSize)
42
- if (name == "buffer") {
43
- auto mutableBuffer = std::make_shared<MutableRawBuffer>(buffer, bufferSize, false);
44
- ArrayBuffer arrayBuffer(runtime, mutableBuffer);
45
- auto destinationBuffer = arrayBuffer.data(runtime);
46
- memcpy(destinationBuffer, buffer, sizeof(uint8_t) * bufferSize);
47
- return arrayBuffer;
48
- }
49
- if (name == "release") {
50
- auto release = [=, this](Runtime & runtime, const Value& thisValue, const Value* arguments, size_t count) -> Value {
51
- if(buffer != nullptr) {
52
- delete[] buffer;
53
- buffer = nullptr;
54
- bufferSize = 0;
55
- }
56
- return {};
57
- };
58
- return Function::createFromHostFunction(runtime, PropNameID::forUtf8(runtime, "release"), 0, release);
59
- }
60
- return {};
61
- }
62
-
63
- void ImageDataHostObject::set(Runtime &runtime, const PropNameID &propName, const Value &value) {
64
- auto name = propName.utf8(runtime);
65
- SET_INT_VALUE(width)
66
- SET_INT_VALUE(height)
67
- SET_INT_VALUE(stride)
68
- SET_INT_VALUE(format)
69
- SET_INT_VALUE(orientation)
70
- if (name == "buffer") {
71
- auto arrayBuffer = value.asObject(runtime).getArrayBuffer(runtime);
72
- this->buffer = arrayBuffer.data(runtime);
73
- this->bufferSize = (int) arrayBuffer.length(runtime);
74
- }
75
- }
76
-
77
- std::vector<PropNameID> ImageDataHostObject::getPropertyNames(Runtime &rt) {
78
- std::vector<PropNameID> result;
79
- result.push_back(PropNameID::forUtf8(rt, std::string("width")));
80
- result.push_back(PropNameID::forUtf8(rt, std::string("height")));
81
- result.push_back(PropNameID::forUtf8(rt, std::string("stride")));
82
- result.push_back(PropNameID::forUtf8(rt, std::string("format")));
83
- result.push_back(PropNameID::forUtf8(rt, std::string("orientation")));
84
- result.push_back(PropNameID::forUtf8(rt, std::string("buffer")));
85
- result.push_back(PropNameID::forUtf8(rt, std::string("release")));
86
- return result;
87
- }
1
+ /*
2
+ * Copyright © Dynamsoft Corporation. All rights reserved.
3
+ */
4
+
5
+ #include "ImageDataHostObject.hpp"
6
+ #include "MutableRawBuffer.hpp"
7
+
8
+ #define GET_VALUE(X) if(name==#X){return this->X;}
9
+ #define SET_INT_VALUE(X) if(name==#X){this->X = (int) value.asNumber();}
10
+
11
+ ImageDataHostObject::ImageDataHostObject(int width, int height, int stride, int format, int orientation, uint8_t *buffer, int bufferSize)
12
+ : width(width), height(height), stride(stride), format(format), orientation(orientation), buffer(buffer), bufferSize(bufferSize) {}
13
+
14
+ ImageDataHostObject ImageDataHostObject::getHOFromObject(Runtime &runtime, Object &jsObj) {
15
+ if (jsObj.isHostObject<ImageDataHostObject>(runtime)) {
16
+ return *((ImageDataHostObject *) (jsObj.asHostObject(runtime).get()));
17
+ }
18
+ ImageDataHostObject imageHO;
19
+ int width = jsObj.hasProperty(runtime, "width") ? (int) jsObj.getProperty(runtime, "width").asNumber() : 0;
20
+ int height = jsObj.hasProperty(runtime, "height") ? (int) jsObj.getProperty(runtime, "height").asNumber() : 0;
21
+ int stride = jsObj.hasProperty(runtime, "stride") ? (int) jsObj.getProperty(runtime, "stride").asNumber() : 0;
22
+ int format = jsObj.hasProperty(runtime, "format") ? (int) jsObj.getProperty(runtime, "format").asNumber() : 0;
23
+ int orientation = jsObj.hasProperty(runtime, "orientation") ? (int) jsObj.getProperty(runtime, "orientation").asNumber() : 0;
24
+ uint8_t *buffer = nullptr;
25
+ int bufferSize = 0;
26
+ if (jsObj.hasProperty(runtime, "buffer")) {
27
+ ArrayBuffer array_buffer = jsObj.getProperty(runtime, "buffer").asObject(runtime).getArrayBuffer(runtime);
28
+ buffer = array_buffer.data(runtime);
29
+ bufferSize = (int) array_buffer.length(runtime);
30
+ }
31
+ return ImageDataHostObject(width, height, stride, format, orientation, buffer, bufferSize);
32
+ }
33
+
34
+ Value ImageDataHostObject::get(Runtime &runtime, const PropNameID &propName) {
35
+ auto name = propName.utf8(runtime);
36
+ GET_VALUE(width)
37
+ GET_VALUE(height)
38
+ GET_VALUE(stride)
39
+ GET_VALUE(format)
40
+ GET_VALUE(orientation)
41
+ GET_VALUE(bufferSize)
42
+ if (name == "buffer") {
43
+ auto mutableBuffer = std::make_shared<MutableRawBuffer>(buffer, bufferSize, false);
44
+ ArrayBuffer arrayBuffer(runtime, mutableBuffer);
45
+ auto destinationBuffer = arrayBuffer.data(runtime);
46
+ memcpy(destinationBuffer, buffer, sizeof(uint8_t) * bufferSize);
47
+ return arrayBuffer;
48
+ }
49
+ if (name == "release") {
50
+ auto release = [=, this](Runtime & runtime, const Value& thisValue, const Value* arguments, size_t count) -> Value {
51
+ if(buffer != nullptr) {
52
+ delete[] buffer;
53
+ buffer = nullptr;
54
+ bufferSize = 0;
55
+ }
56
+ return {};
57
+ };
58
+ return Function::createFromHostFunction(runtime, PropNameID::forUtf8(runtime, "release"), 0, release);
59
+ }
60
+ return {};
61
+ }
62
+
63
+ void ImageDataHostObject::set(Runtime &runtime, const PropNameID &propName, const Value &value) {
64
+ auto name = propName.utf8(runtime);
65
+ SET_INT_VALUE(width)
66
+ SET_INT_VALUE(height)
67
+ SET_INT_VALUE(stride)
68
+ SET_INT_VALUE(format)
69
+ SET_INT_VALUE(orientation)
70
+ if (name == "buffer") {
71
+ auto arrayBuffer = value.asObject(runtime).getArrayBuffer(runtime);
72
+ this->buffer = arrayBuffer.data(runtime);
73
+ this->bufferSize = (int) arrayBuffer.length(runtime);
74
+ }
75
+ }
76
+
77
+ std::vector<PropNameID> ImageDataHostObject::getPropertyNames(Runtime &rt) {
78
+ std::vector<PropNameID> result;
79
+ result.push_back(PropNameID::forUtf8(rt, std::string("width")));
80
+ result.push_back(PropNameID::forUtf8(rt, std::string("height")));
81
+ result.push_back(PropNameID::forUtf8(rt, std::string("stride")));
82
+ result.push_back(PropNameID::forUtf8(rt, std::string("format")));
83
+ result.push_back(PropNameID::forUtf8(rt, std::string("orientation")));
84
+ result.push_back(PropNameID::forUtf8(rt, std::string("buffer")));
85
+ result.push_back(PropNameID::forUtf8(rt, std::string("release")));
86
+ return result;
87
+ }