dynamsoft-capture-vision-react-native 3.4.1300 → 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.
- package/LICENSE +4 -4
- package/README.md +62 -62
- package/android/README.md +14 -14
- package/android/build.gradle +167 -163
- package/android/gradle.properties +20 -20
- package/android/settings.gradle +5 -5
- package/android/src/main/AndroidManifest.xml +6 -6
- package/android/src/main/AndroidManifest_noPackage.xml +5 -5
- package/android/src/main/cpp/CMakeLists.txt +21 -21
- package/android/src/main/cpp/ImgHO.cpp +94 -94
- package/android/src/main/cpp/ImgHO.h +34 -34
- package/android/src/main/cpp/JsiCore.cpp +296 -296
- package/android/src/main/cpp/JsiCore.h +51 -51
- package/android/src/main/cpp/JsiCvr.cpp +332 -332
- package/android/src/main/cpp/JsiCvr.h +54 -54
- package/android/src/main/cpp/JsiDbr.cpp +283 -283
- package/android/src/main/cpp/JsiDbr.h +26 -26
- package/android/src/main/cpp/JsiDce.cpp +59 -59
- package/android/src/main/cpp/JsiDce.h +17 -17
- package/android/src/main/cpp/JsiDcp.cpp +51 -51
- package/android/src/main/cpp/JsiDcp.h +31 -31
- package/android/src/main/cpp/JsiDdn.cpp +50 -50
- package/android/src/main/cpp/JsiDdn.h +28 -28
- package/android/src/main/cpp/JsiDlr.cpp +60 -60
- package/android/src/main/cpp/JsiDlr.h +26 -26
- package/android/src/main/cpp/JsiUtility.cpp +604 -604
- package/android/src/main/cpp/JsiUtility.h +26 -26
- package/android/src/main/cpp/RawBuffer.cpp +23 -23
- package/android/src/main/cpp/RawBuffer.h +24 -24
- package/android/src/main/cpp/android_log.h +14 -14
- package/android/src/main/dysJniLibs/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/debug/arm64-v8a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/armeabi-v7a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/x86/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/x86_64/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/arm64-v8a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/armeabi-v7a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/x86/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/x86_64/librn_dys.so +3 -0
- package/android/src/main/java/com/dynamsoft/reactnativelib/CVRModule.kt +137 -137
- package/android/src/main/java/com/dynamsoft/reactnativelib/CameraViewManager.kt +62 -62
- package/android/src/main/java/com/dynamsoft/reactnativelib/DCEModule.kt +125 -125
- package/android/src/main/java/com/dynamsoft/reactnativelib/DynamsoftBaseModule.kt +8 -8
- package/android/src/main/java/com/dynamsoft/reactnativelib/ISAModule.kt +73 -73
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +14 -14
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +35 -35
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageManagerModule.kt +15 -15
- package/android/src/main/java/com/dynamsoft/reactnativelib/LicenseModule.kt +29 -29
- package/android/src/main/java/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +83 -83
- package/android/src/main/java/com/dynamsoft/reactnativelib/ReactNativeDcvPackage.kt +32 -32
- package/android/src/main/java/com/dynamsoft/reactnativelib/VersionsModule.kt +41 -41
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/Basic.kt +44 -44
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCore.kt +50 -50
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCvr.kt +129 -129
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDBR.kt +157 -157
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCE.kt +110 -110
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCP.kt +49 -49
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDDN.kt +85 -85
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDLR.kt +72 -72
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ImageUtil.kt +58 -58
- package/android/src/main/java/com/dynamsoft/reactnativelib/core/ImageSourceAdapterModuleImpl.kt +120 -120
- package/android/src/main/java/com/dynamsoft/reactnativelib/cvr/CaptureVisionRouterModuleImpl.kt +306 -306
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraEnhancerModuleImpl.kt +247 -247
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraLifeCycleOwner.java +14 -14
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraViewManagerImpl.kt +77 -77
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewManagerImpl.kt +15 -15
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewModuleImpl.kt +110 -110
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNCameraView.kt +20 -20
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNImageEditorView.kt +19 -19
- package/android/src/main/java/com/dynamsoft/reactnativelib/license/LicenseModuleImpl.kt +39 -39
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/ImageManagerModuleImpl.kt +120 -120
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/MultiCrossFilterModuleImpl.kt +111 -111
- package/app.plugin.js +21 -21
- package/dynamsoft-capture-vision-react-native.podspec +24 -24
- package/ios/CPP/DSImageData+HostObject.h +18 -18
- package/ios/CPP/DSImageData+HostObject.mm +38 -38
- package/ios/CPP/ImageDataHostObject.cpp +87 -87
- package/ios/CPP/ImageDataHostObject.hpp +35 -35
- package/ios/CPP/MutableRawBuffer.cpp +23 -23
- package/ios/CPP/MutableRawBuffer.hpp +23 -23
- package/ios/CPP/RNDynamsoft+JSI.h +22 -22
- package/ios/CPP/RNDynamsoft+JSI.mm +303 -303
- package/ios/CPP/RNDynamsoft+Json.h +93 -93
- package/ios/CPP/RNDynamsoft+Json.m +733 -733
- package/ios/CPP/YeetJSIUtils.h +56 -56
- package/ios/CPP/YeetJSIUtils.mm +208 -208
- package/ios/RNDynamsoftCameraView.h +31 -31
- package/ios/RNDynamsoftCameraView.m +108 -108
- package/ios/RNDynamsoftCameraViewManager.h +14 -14
- package/ios/RNDynamsoftCameraViewManager.m +195 -195
- package/ios/RNDynamsoftCaptureVisionRouter.h +18 -18
- package/ios/RNDynamsoftCaptureVisionRouter.mm +532 -532
- package/ios/RNDynamsoftImageEditorView.h +17 -17
- package/ios/RNDynamsoftImageEditorView.m +25 -25
- package/ios/RNDynamsoftImageEditorViewManager.h +14 -14
- package/ios/RNDynamsoftImageEditorViewManager.mm +183 -183
- package/ios/RNDynamsoftImageManager.h +14 -14
- package/ios/RNDynamsoftImageManager.mm +369 -369
- package/ios/RNDynamsoftImageSourceAdapter.h +19 -19
- package/ios/RNDynamsoftImageSourceAdapter.mm +255 -255
- package/ios/RNDynamsoftLicense.h +14 -14
- package/ios/RNDynamsoftLicense.m +62 -62
- package/ios/RNDynamsoftMultiCrossFilter.h +14 -14
- package/ios/RNDynamsoftMultiCrossFilter.m +145 -145
- package/ios/RNDynamsoftVersions.h +13 -13
- package/ios/RNDynamsoftVersions.m +27 -27
- package/package.json +48 -48
- package/src/NativeDynamsoftVersionsModule.tsx +20 -20
- package/src/VersionsModule.tsx +7 -7
- package/src/core/CapturedResultBase.tsx +18 -18
- package/src/core/CapturedResultItem.tsx +23 -23
- package/src/core/CoreModule.tsx +9 -9
- package/src/core/DSRect.tsx +29 -29
- package/src/core/EnumCaptureResultItemType.tsx +52 -52
- package/src/core/EnumColourChannelUsageType.tsx +26 -26
- package/src/core/EnumCrossVerificationStatus.tsx +46 -46
- package/src/core/EnumGrayscaleEnhancementMode.tsx +46 -46
- package/src/core/EnumGrayscaleTransformationMode.tsx +35 -35
- package/src/core/EnumImageFileFormat.tsx +6 -6
- package/src/core/EnumPixelFormat.tsx +53 -53
- package/src/core/ImageData.tsx +87 -87
- package/src/core/ImageSourceAdapter.tsx +160 -160
- package/src/core/NativeDynamsoftImageSourceAdapterModule.tsx +29 -29
- package/src/core/Point.tsx +13 -13
- package/src/core/Quadrilateral.tsx +12 -12
- package/src/core/index.tsx +18 -18
- package/src/cvr/CaptureVisionRouter.tsx +683 -683
- package/src/cvr/CaptureVisionRouterModule.tsx +9 -9
- package/src/cvr/CapturedResult.tsx +123 -123
- package/src/cvr/CapturedResultFilter.tsx +13 -13
- package/src/cvr/CapturedResultReceiver.tsx +71 -71
- package/src/cvr/EnumPresetTemplate.tsx +81 -81
- package/src/cvr/NativeDynamsoftCaptureVisionRouterModule.tsx +25 -25
- package/src/cvr/SimplifiedCaptureVisionSettings.tsx +61 -61
- package/src/cvr/index.tsx +11 -11
- package/src/dbr/BarcodeDetails.tsx +51 -51
- package/src/dbr/BarcodeReaderModule.tsx +9 -9
- package/src/dbr/BarcodeResultItem.tsx +65 -65
- package/src/dbr/DecodedBarcodesResult.tsx +14 -14
- package/src/dbr/ECISegment.tsx +23 -23
- package/src/dbr/EnumBarcodeFormat.tsx +112 -112
- package/src/dbr/EnumDeblurMode.tsx +29 -29
- package/src/dbr/EnumLocalizationMode.tsx +27 -27
- package/src/dbr/EnumQRCodeErrorCorrectionLevel.tsx +6 -6
- package/src/dbr/SimplifiedBarcodeReaderSettings.tsx +80 -80
- package/src/dbr/index.tsx +9 -9
- package/src/dce/CameraEnhancer.tsx +254 -254
- package/src/dce/CameraEnhancerModule.tsx +9 -9
- package/src/dce/CameraView.tsx +100 -100
- package/src/dce/DynamsoftCameraViewNativeComponent.ts +96 -96
- package/src/dce/DynamsoftImageEditorViewNativeComponent.ts +9 -9
- package/src/dce/EnumCameraPosition.tsx +25 -25
- package/src/dce/EnumDrawingLayerId.tsx +17 -17
- package/src/dce/EnumEnhancedFeatures.tsx +24 -24
- package/src/dce/EnumFocusMode.tsx +6 -6
- package/src/dce/EnumResolution.tsx +8 -8
- package/src/dce/EnumTorchState.tsx +10 -10
- package/src/dce/FeedBack.tsx +28 -28
- package/src/dce/ImageEditorView.tsx +131 -131
- package/src/dce/NativeDynamsoftCameraViewModule.tsx +47 -47
- package/src/dce/NativeDynamsoftImageEditorViewModule.ts +9 -9
- package/src/dce/index.tsx +13 -13
- package/src/dcp/CodeParserDedicatorModule.tsx +9 -9
- package/src/dcp/CodeParserModule.tsx +9 -9
- package/src/dcp/EnumMappingStatus.tsx +14 -14
- package/src/dcp/EnumValidationStatus.tsx +14 -14
- package/src/dcp/ParsedResult.tsx +14 -14
- package/src/dcp/ParsedResultItem.tsx +50 -50
- package/src/dcp/index.tsx +8 -8
- package/src/ddn/DeskewedImageResultItem.tsx +40 -40
- package/src/ddn/DetectedQuadResultItem.tsx +31 -31
- package/src/ddn/DocumentNormalizerModule.tsx +9 -9
- package/src/ddn/EnhancedImageResultItem.tsx +20 -20
- package/src/ddn/EnumImageColourMode.tsx +14 -14
- package/src/ddn/ProcessedDocumentResult.tsx +27 -27
- package/src/ddn/SimplifiedDocumentNormalizerSettings.tsx +65 -65
- package/src/ddn/index.tsx +11 -11
- package/src/dip/ImageProcessingModule.tsx +9 -9
- package/src/dip/index.tsx +1 -1
- package/src/dlr/CharacterResult.tsx +28 -28
- package/src/dlr/LabelRecognizerModule.tsx +9 -9
- package/src/dlr/RecognizedTextLinesResult.tsx +19 -19
- package/src/dlr/SimplifiedLabelRecognizerSettings.tsx +33 -33
- package/src/dlr/TextLineResultItem.tsx +41 -41
- package/src/dlr/index.tsx +8 -8
- package/src/index.tsx +13 -13
- package/src/license/LicenseManager.tsx +49 -49
- package/src/license/LicenseModule.tsx +9 -9
- package/src/license/NativeDynamsoftLicenseModule.tsx +7 -7
- package/src/license/index.tsx +7 -7
- package/src/utility/CrossVerificationCriteria.tsx +11 -11
- package/src/utility/EnumFilterType.tsx +5 -5
- package/src/utility/ImageManager.tsx +348 -348
- package/src/utility/MultiFrameResultCrossFilter.tsx +183 -183
- package/src/utility/NativeDynamsoftImageManagerModule.tsx +7 -7
- package/src/utility/NativeDynamsoftMultiCrossFilterModule.tsx +18 -18
- package/src/utility/UtilityModule.tsx +9 -9
- package/src/utility/index.tsx +4 -4
- package/android/.gitignore +0 -4
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/26.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#include "ImgHO.h"
|
|
6
|
-
#include "RawBuffer.h"
|
|
7
|
-
#include "android_log.h"
|
|
8
|
-
|
|
9
|
-
#define JSI_FUNC [=](Runtime & runtime, const Value& thisValue, const Value* arguments, size_t count) -> Value
|
|
10
|
-
#define GET_VALUE(X) if(name==#X){return this->X;}
|
|
11
|
-
#define SET_INT_VALUE(X) if(name==#X){this->X = (int) value.asNumber();}
|
|
12
|
-
|
|
13
|
-
ImageDataHostObject::ImageDataHostObject(int width, int height, int stride, int format, int orientation, uint8_t *buffer, int bufferSize)
|
|
14
|
-
: width(width), height(height), stride(stride), format(format), orientation(orientation), buffer(buffer), bufferSize(bufferSize) {
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
ImageDataHostObject ImageDataHostObject::getHOFromObject(Runtime &runtime, Object jsObj) {
|
|
18
|
-
if (jsObj.isHostObject(runtime)) {
|
|
19
|
-
return *((ImageDataHostObject *) (jsObj.asHostObject(runtime).get()));
|
|
20
|
-
}
|
|
21
|
-
ImageDataHostObject imageHO;
|
|
22
|
-
int width = jsObj.hasProperty(runtime, "width") ? (int) jsObj.getProperty(runtime, "width").asNumber() : 0;
|
|
23
|
-
int height = jsObj.hasProperty(runtime, "height") ? (int) jsObj.getProperty(runtime, "height").asNumber() : 0;
|
|
24
|
-
int stride = jsObj.hasProperty(runtime, "stride") ? (int) jsObj.getProperty(runtime, "stride").asNumber() : 0;
|
|
25
|
-
int format = jsObj.hasProperty(runtime, "format") ? (int) jsObj.getProperty(runtime, "format").asNumber() : 0;
|
|
26
|
-
int orientation = jsObj.hasProperty(runtime, "orientation") ? (int) jsObj.getProperty(runtime, "orientation").asNumber() : 0;
|
|
27
|
-
uint8_t *buffer = nullptr;
|
|
28
|
-
int bufferSize = 0;
|
|
29
|
-
if (jsObj.hasProperty(runtime, "buffer")) {
|
|
30
|
-
ArrayBuffer array_buffer = jsObj.getProperty(runtime, "buffer").asObject(runtime).getArrayBuffer(runtime);
|
|
31
|
-
buffer = array_buffer.data(runtime);
|
|
32
|
-
bufferSize = (int) array_buffer.length(runtime);
|
|
33
|
-
}
|
|
34
|
-
return ImageDataHostObject(width, height, stride, format, orientation, buffer, bufferSize);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
Value ImageDataHostObject::get(Runtime &runtime, const PropNameID &propName) {
|
|
38
|
-
auto name = propName.utf8(runtime);
|
|
39
|
-
GET_VALUE(width)
|
|
40
|
-
GET_VALUE(height)
|
|
41
|
-
GET_VALUE(stride)
|
|
42
|
-
GET_VALUE(format)
|
|
43
|
-
GET_VALUE(orientation)
|
|
44
|
-
GET_VALUE(bufferSize)
|
|
45
|
-
//todo
|
|
46
|
-
if (name == "buffer") {
|
|
47
|
-
auto mutableBuffer = std::make_shared<MutableRawBuffer>(buffer, bufferSize, false);
|
|
48
|
-
return ArrayBuffer(runtime, mutableBuffer);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (name == "release") {
|
|
52
|
-
auto release = JSI_FUNC {
|
|
53
|
-
if(buffer != nullptr) {
|
|
54
|
-
delete[] buffer;
|
|
55
|
-
buffer = nullptr;
|
|
56
|
-
bufferSize = 0;
|
|
57
|
-
}
|
|
58
|
-
return {};
|
|
59
|
-
};
|
|
60
|
-
return Function::createFromHostFunction(runtime, PropNameID::forUtf8(runtime, "release"), 0, release);
|
|
61
|
-
}
|
|
62
|
-
return {};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
void ImageDataHostObject::set(Runtime &runtime, const PropNameID &propName, const Value &value) {
|
|
66
|
-
auto name = propName.utf8(runtime);
|
|
67
|
-
SET_INT_VALUE(width)
|
|
68
|
-
SET_INT_VALUE(height)
|
|
69
|
-
SET_INT_VALUE(stride)
|
|
70
|
-
SET_INT_VALUE(format)
|
|
71
|
-
SET_INT_VALUE(orientation)
|
|
72
|
-
//todo
|
|
73
|
-
if (name == "buffer") {
|
|
74
|
-
auto arrayBuffer = value.asObject(runtime).getArrayBuffer(runtime);
|
|
75
|
-
this->buffer = arrayBuffer.data(runtime);
|
|
76
|
-
this->bufferSize = (int) arrayBuffer.length(runtime);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
std::vector<PropNameID> ImageDataHostObject::getPropertyNames(Runtime &rt) {
|
|
81
|
-
std::vector<PropNameID> result;
|
|
82
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("width")));
|
|
83
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("height")));
|
|
84
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("stride")));
|
|
85
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("format")));
|
|
86
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("orientation")));
|
|
87
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("buffer")));
|
|
88
|
-
result.push_back(PropNameID::forUtf8(rt, std::string("release")));
|
|
89
|
-
return result;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
void ImageDataHostObject::logString(const char *preStr) const {
|
|
93
|
-
LOGI("%s wid:%d, hgt:%d, stride:%d, format:%d, orientation:%d, bufferSize:%d, buffer:%p, this:%p",
|
|
94
|
-
preStr, width, height, stride, format, orientation, bufferSize, buffer, this);
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/26.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "ImgHO.h"
|
|
6
|
+
#include "RawBuffer.h"
|
|
7
|
+
#include "android_log.h"
|
|
8
|
+
|
|
9
|
+
#define JSI_FUNC [=](Runtime & runtime, const Value& thisValue, const Value* arguments, size_t count) -> Value
|
|
10
|
+
#define GET_VALUE(X) if(name==#X){return this->X;}
|
|
11
|
+
#define SET_INT_VALUE(X) if(name==#X){this->X = (int) value.asNumber();}
|
|
12
|
+
|
|
13
|
+
ImageDataHostObject::ImageDataHostObject(int width, int height, int stride, int format, int orientation, uint8_t *buffer, int bufferSize)
|
|
14
|
+
: width(width), height(height), stride(stride), format(format), orientation(orientation), buffer(buffer), bufferSize(bufferSize) {
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
ImageDataHostObject ImageDataHostObject::getHOFromObject(Runtime &runtime, Object jsObj) {
|
|
18
|
+
if (jsObj.isHostObject(runtime)) {
|
|
19
|
+
return *((ImageDataHostObject *) (jsObj.asHostObject(runtime).get()));
|
|
20
|
+
}
|
|
21
|
+
ImageDataHostObject imageHO;
|
|
22
|
+
int width = jsObj.hasProperty(runtime, "width") ? (int) jsObj.getProperty(runtime, "width").asNumber() : 0;
|
|
23
|
+
int height = jsObj.hasProperty(runtime, "height") ? (int) jsObj.getProperty(runtime, "height").asNumber() : 0;
|
|
24
|
+
int stride = jsObj.hasProperty(runtime, "stride") ? (int) jsObj.getProperty(runtime, "stride").asNumber() : 0;
|
|
25
|
+
int format = jsObj.hasProperty(runtime, "format") ? (int) jsObj.getProperty(runtime, "format").asNumber() : 0;
|
|
26
|
+
int orientation = jsObj.hasProperty(runtime, "orientation") ? (int) jsObj.getProperty(runtime, "orientation").asNumber() : 0;
|
|
27
|
+
uint8_t *buffer = nullptr;
|
|
28
|
+
int bufferSize = 0;
|
|
29
|
+
if (jsObj.hasProperty(runtime, "buffer")) {
|
|
30
|
+
ArrayBuffer array_buffer = jsObj.getProperty(runtime, "buffer").asObject(runtime).getArrayBuffer(runtime);
|
|
31
|
+
buffer = array_buffer.data(runtime);
|
|
32
|
+
bufferSize = (int) array_buffer.length(runtime);
|
|
33
|
+
}
|
|
34
|
+
return ImageDataHostObject(width, height, stride, format, orientation, buffer, bufferSize);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
Value ImageDataHostObject::get(Runtime &runtime, const PropNameID &propName) {
|
|
38
|
+
auto name = propName.utf8(runtime);
|
|
39
|
+
GET_VALUE(width)
|
|
40
|
+
GET_VALUE(height)
|
|
41
|
+
GET_VALUE(stride)
|
|
42
|
+
GET_VALUE(format)
|
|
43
|
+
GET_VALUE(orientation)
|
|
44
|
+
GET_VALUE(bufferSize)
|
|
45
|
+
//todo
|
|
46
|
+
if (name == "buffer") {
|
|
47
|
+
auto mutableBuffer = std::make_shared<MutableRawBuffer>(buffer, bufferSize, false);
|
|
48
|
+
return ArrayBuffer(runtime, mutableBuffer);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (name == "release") {
|
|
52
|
+
auto release = JSI_FUNC {
|
|
53
|
+
if(buffer != nullptr) {
|
|
54
|
+
delete[] buffer;
|
|
55
|
+
buffer = nullptr;
|
|
56
|
+
bufferSize = 0;
|
|
57
|
+
}
|
|
58
|
+
return {};
|
|
59
|
+
};
|
|
60
|
+
return Function::createFromHostFunction(runtime, PropNameID::forUtf8(runtime, "release"), 0, release);
|
|
61
|
+
}
|
|
62
|
+
return {};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
void ImageDataHostObject::set(Runtime &runtime, const PropNameID &propName, const Value &value) {
|
|
66
|
+
auto name = propName.utf8(runtime);
|
|
67
|
+
SET_INT_VALUE(width)
|
|
68
|
+
SET_INT_VALUE(height)
|
|
69
|
+
SET_INT_VALUE(stride)
|
|
70
|
+
SET_INT_VALUE(format)
|
|
71
|
+
SET_INT_VALUE(orientation)
|
|
72
|
+
//todo
|
|
73
|
+
if (name == "buffer") {
|
|
74
|
+
auto arrayBuffer = value.asObject(runtime).getArrayBuffer(runtime);
|
|
75
|
+
this->buffer = arrayBuffer.data(runtime);
|
|
76
|
+
this->bufferSize = (int) arrayBuffer.length(runtime);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
std::vector<PropNameID> ImageDataHostObject::getPropertyNames(Runtime &rt) {
|
|
81
|
+
std::vector<PropNameID> result;
|
|
82
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("width")));
|
|
83
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("height")));
|
|
84
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("stride")));
|
|
85
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("format")));
|
|
86
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("orientation")));
|
|
87
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("buffer")));
|
|
88
|
+
result.push_back(PropNameID::forUtf8(rt, std::string("release")));
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
void ImageDataHostObject::logString(const char *preStr) const {
|
|
93
|
+
LOGI("%s wid:%d, hgt:%d, stride:%d, format:%d, orientation:%d, bufferSize:%d, buffer:%p, this:%p",
|
|
94
|
+
preStr, width, height, stride, format, orientation, bufferSize, buffer, this);
|
|
95
95
|
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/26.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_CORE_IMAGEDATAHOSTOBJECT_H_
|
|
6
|
-
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_CORE_IMAGEDATAHOSTOBJECT_H_
|
|
7
|
-
|
|
8
|
-
#include "jsi/jsi.h"
|
|
9
|
-
|
|
10
|
-
using namespace facebook::jsi;
|
|
11
|
-
|
|
12
|
-
class ImageDataHostObject : public HostObject {
|
|
13
|
-
public:
|
|
14
|
-
int width = 0;
|
|
15
|
-
int height = 0;
|
|
16
|
-
int stride = 0;
|
|
17
|
-
int format = 0;
|
|
18
|
-
int orientation = 0;
|
|
19
|
-
|
|
20
|
-
uint8_t *buffer = nullptr;
|
|
21
|
-
int bufferSize = 0;
|
|
22
|
-
|
|
23
|
-
explicit ImageDataHostObject() = default;
|
|
24
|
-
explicit ImageDataHostObject(int width, int height, int stride, int format, int orientation, uint8_t *buffer, int bufferSize);
|
|
25
|
-
|
|
26
|
-
Value get(Runtime &, const PropNameID &name) override;
|
|
27
|
-
void set(Runtime &, const PropNameID &name, const Value &value) override;
|
|
28
|
-
std::vector<PropNameID> getPropertyNames(Runtime &rt) override;
|
|
29
|
-
|
|
30
|
-
static ImageDataHostObject getHOFromObject(Runtime &runtime, Object jsObj);
|
|
31
|
-
void logString(const char *preStr = "ImageDataHostObject") const;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_CORE_IMAGEDATAHOSTOBJECT_H_
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/26.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_CORE_IMAGEDATAHOSTOBJECT_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_CORE_IMAGEDATAHOSTOBJECT_H_
|
|
7
|
+
|
|
8
|
+
#include "jsi/jsi.h"
|
|
9
|
+
|
|
10
|
+
using namespace facebook::jsi;
|
|
11
|
+
|
|
12
|
+
class ImageDataHostObject : public HostObject {
|
|
13
|
+
public:
|
|
14
|
+
int width = 0;
|
|
15
|
+
int height = 0;
|
|
16
|
+
int stride = 0;
|
|
17
|
+
int format = 0;
|
|
18
|
+
int orientation = 0;
|
|
19
|
+
|
|
20
|
+
uint8_t *buffer = nullptr;
|
|
21
|
+
int bufferSize = 0;
|
|
22
|
+
|
|
23
|
+
explicit ImageDataHostObject() = default;
|
|
24
|
+
explicit ImageDataHostObject(int width, int height, int stride, int format, int orientation, uint8_t *buffer, int bufferSize);
|
|
25
|
+
|
|
26
|
+
Value get(Runtime &, const PropNameID &name) override;
|
|
27
|
+
void set(Runtime &, const PropNameID &name, const Value &value) override;
|
|
28
|
+
std::vector<PropNameID> getPropertyNames(Runtime &rt) override;
|
|
29
|
+
|
|
30
|
+
static ImageDataHostObject getHOFromObject(Runtime &runtime, Object jsObj);
|
|
31
|
+
void logString(const char *preStr = "ImageDataHostObject") const;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_CORE_IMAGEDATAHOSTOBJECT_H_
|