react-native-camera-vision-pixel-colors 0.1.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 (79) hide show
  1. package/CameraVisionPixelColors.podspec +32 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/android/CMakeLists.txt +32 -0
  5. package/android/build.gradle +151 -0
  6. package/android/fix-prefab.gradle +51 -0
  7. package/android/gradle.properties +5 -0
  8. package/android/src/main/AndroidManifest.xml +2 -0
  9. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  10. package/android/src/main/java/com/cameravisionpixelcolors/CameraVisionPixelColorsPackage.kt +24 -0
  11. package/android/src/main/java/com/cameravisionpixelcolors/PixelAnalyzerEngine.kt +256 -0
  12. package/android/src/main/java/com/cameravisionpixelcolors/PixelColorsFrameProcessor.kt +40 -0
  13. package/android/src/main/java/com/cameravisionpixelcolors/YuvToBitmapConverter.kt +33 -0
  14. package/android/src/main/java/com/margelo/nitro/cameravisionpixelcolors/HybridCameraVisionPixelColors.kt +50 -0
  15. package/app.plugin.js +1 -0
  16. package/ios/Bridge.h +8 -0
  17. package/ios/HybridCameraVisionPixelColors.swift +53 -0
  18. package/ios/PixelAnalyzerEngine.swift +346 -0
  19. package/ios/PixelColorsFrameProcessor.m +5 -0
  20. package/ios/PixelColorsFrameProcessor.swift +50 -0
  21. package/lib/commonjs/index.js +28 -0
  22. package/lib/commonjs/index.js.map +1 -0
  23. package/lib/commonjs/package.json +1 -0
  24. package/lib/commonjs/specs/camera-vision-pixel-colors.nitro.js +6 -0
  25. package/lib/commonjs/specs/camera-vision-pixel-colors.nitro.js.map +1 -0
  26. package/lib/module/index.js +23 -0
  27. package/lib/module/index.js.map +1 -0
  28. package/lib/module/specs/camera-vision-pixel-colors.nitro.js +4 -0
  29. package/lib/module/specs/camera-vision-pixel-colors.nitro.js.map +1 -0
  30. package/lib/typescript/src/index.d.ts +6 -0
  31. package/lib/typescript/src/index.d.ts.map +1 -0
  32. package/lib/typescript/src/specs/camera-vision-pixel-colors.nitro.d.ts +40 -0
  33. package/lib/typescript/src/specs/camera-vision-pixel-colors.nitro.d.ts.map +1 -0
  34. package/nitro.json +25 -0
  35. package/nitrogen/generated/.gitattributes +1 -0
  36. package/nitrogen/generated/android/CameraVisionPixelColors+autolinking.cmake +81 -0
  37. package/nitrogen/generated/android/CameraVisionPixelColors+autolinking.gradle +27 -0
  38. package/nitrogen/generated/android/CameraVisionPixelColorsOnLoad.cpp +44 -0
  39. package/nitrogen/generated/android/CameraVisionPixelColorsOnLoad.hpp +25 -0
  40. package/nitrogen/generated/android/c++/JHybridCameraVisionPixelColorsSpec.cpp +90 -0
  41. package/nitrogen/generated/android/c++/JHybridCameraVisionPixelColorsSpec.hpp +66 -0
  42. package/nitrogen/generated/android/c++/JImageData.hpp +66 -0
  43. package/nitrogen/generated/android/c++/JMotionResult.hpp +61 -0
  44. package/nitrogen/generated/android/c++/JPixelColorsResult.hpp +114 -0
  45. package/nitrogen/generated/android/c++/JRGBColor.hpp +65 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cameravisionpixelcolors/CameraVisionPixelColorsOnLoad.kt +35 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cameravisionpixelcolors/HybridCameraVisionPixelColorsSpec.kt +58 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cameravisionpixelcolors/ImageData.kt +44 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cameravisionpixelcolors/MotionResult.kt +41 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cameravisionpixelcolors/PixelColorsResult.kt +50 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/cameravisionpixelcolors/RGBColor.kt +44 -0
  52. package/nitrogen/generated/ios/CameraVisionPixelColors+autolinking.rb +60 -0
  53. package/nitrogen/generated/ios/CameraVisionPixelColors-Swift-Cxx-Bridge.cpp +49 -0
  54. package/nitrogen/generated/ios/CameraVisionPixelColors-Swift-Cxx-Bridge.hpp +162 -0
  55. package/nitrogen/generated/ios/CameraVisionPixelColors-Swift-Cxx-Umbrella.hpp +59 -0
  56. package/nitrogen/generated/ios/CameraVisionPixelColorsAutolinking.mm +33 -0
  57. package/nitrogen/generated/ios/CameraVisionPixelColorsAutolinking.swift +26 -0
  58. package/nitrogen/generated/ios/c++/HybridCameraVisionPixelColorsSpecSwift.cpp +11 -0
  59. package/nitrogen/generated/ios/c++/HybridCameraVisionPixelColorsSpecSwift.hpp +99 -0
  60. package/nitrogen/generated/ios/swift/Func_void_PixelColorsResult.swift +47 -0
  61. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  62. package/nitrogen/generated/ios/swift/HybridCameraVisionPixelColorsSpec.swift +56 -0
  63. package/nitrogen/generated/ios/swift/HybridCameraVisionPixelColorsSpec_cxx.swift +146 -0
  64. package/nitrogen/generated/ios/swift/ImageData.swift +40 -0
  65. package/nitrogen/generated/ios/swift/MotionResult.swift +35 -0
  66. package/nitrogen/generated/ios/swift/PixelColorsResult.swift +81 -0
  67. package/nitrogen/generated/ios/swift/RGBColor.swift +40 -0
  68. package/nitrogen/generated/shared/c++/HybridCameraVisionPixelColorsSpec.cpp +21 -0
  69. package/nitrogen/generated/shared/c++/HybridCameraVisionPixelColorsSpec.hpp +67 -0
  70. package/nitrogen/generated/shared/c++/ImageData.hpp +91 -0
  71. package/nitrogen/generated/shared/c++/MotionResult.hpp +87 -0
  72. package/nitrogen/generated/shared/c++/PixelColorsResult.hpp +105 -0
  73. package/nitrogen/generated/shared/c++/RGBColor.hpp +91 -0
  74. package/package.json +143 -0
  75. package/plugin/withPixelColors.js +12 -0
  76. package/plugin/withPixelColorsAndroid.js +11 -0
  77. package/plugin/withPixelColorsIOS.js +11 -0
  78. package/src/index.ts +42 -0
  79. package/src/specs/camera-vision-pixel-colors.nitro.ts +40 -0
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// CameraVisionPixelColors+autolinking.gradle
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /// This is a Gradle file that adds all files generated by Nitrogen
9
+ /// to the current Gradle project.
10
+ ///
11
+ /// To use it, add this to your build.gradle:
12
+ /// ```gradle
13
+ /// apply from: '../nitrogen/generated/android/CameraVisionPixelColors+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 CameraVisionPixelColors is boosted by nitro!")
17
+
18
+ android {
19
+ sourceSets {
20
+ main {
21
+ java.srcDirs += [
22
+ // Nitrogen files
23
+ "${project.projectDir}/../nitrogen/generated/android/kotlin"
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,44 @@
1
+ ///
2
+ /// CameraVisionPixelColorsOnLoad.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #ifndef BUILDING_CAMERAVISIONPIXELCOLORS_WITH_GENERATED_CMAKE_PROJECT
9
+ #error CameraVisionPixelColorsOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "CameraVisionPixelColorsOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "JHybridCameraVisionPixelColorsSpec.hpp"
19
+ #include <NitroModules/DefaultConstructableObject.hpp>
20
+
21
+ namespace margelo::nitro::cameravisionpixelcolors {
22
+
23
+ int initialize(JavaVM* vm) {
24
+ using namespace margelo::nitro;
25
+ using namespace margelo::nitro::cameravisionpixelcolors;
26
+ using namespace facebook;
27
+
28
+ return facebook::jni::initialize(vm, [] {
29
+ // Register native JNI methods
30
+ margelo::nitro::cameravisionpixelcolors::JHybridCameraVisionPixelColorsSpec::registerNatives();
31
+
32
+ // Register Nitro Hybrid Objects
33
+ HybridObjectRegistry::registerHybridObjectConstructor(
34
+ "CameraVisionPixelColors",
35
+ []() -> std::shared_ptr<HybridObject> {
36
+ static DefaultConstructableObject<JHybridCameraVisionPixelColorsSpec::javaobject> object("com/margelo/nitro/cameravisionpixelcolors/HybridCameraVisionPixelColors");
37
+ auto instance = object.create();
38
+ return instance->cthis()->shared();
39
+ }
40
+ );
41
+ });
42
+ }
43
+
44
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// CameraVisionPixelColorsOnLoad.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include <jni.h>
9
+ #include <NitroModules/NitroDefines.hpp>
10
+
11
+ namespace margelo::nitro::cameravisionpixelcolors {
12
+
13
+ /**
14
+ * Initializes the native (C++) part of CameraVisionPixelColors, and autolinks all Hybrid Objects.
15
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
16
+ * Example:
17
+ * ```cpp (cpp-adapter.cpp)
18
+ * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
+ * return margelo::nitro::cameravisionpixelcolors::initialize(vm);
20
+ * }
21
+ * ```
22
+ */
23
+ int initialize(JavaVM* vm);
24
+
25
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,90 @@
1
+ ///
2
+ /// JHybridCameraVisionPixelColorsSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JHybridCameraVisionPixelColorsSpec.hpp"
9
+
10
+ // Forward declaration of `PixelColorsResult` to properly resolve imports.
11
+ namespace margelo::nitro::cameravisionpixelcolors { struct PixelColorsResult; }
12
+ // Forward declaration of `RGBColor` to properly resolve imports.
13
+ namespace margelo::nitro::cameravisionpixelcolors { struct RGBColor; }
14
+ // Forward declaration of `MotionResult` to properly resolve imports.
15
+ namespace margelo::nitro::cameravisionpixelcolors { struct MotionResult; }
16
+ // Forward declaration of `ImageData` to properly resolve imports.
17
+ namespace margelo::nitro::cameravisionpixelcolors { struct ImageData; }
18
+
19
+ #include "PixelColorsResult.hpp"
20
+ #include <NitroModules/Promise.hpp>
21
+ #include <NitroModules/JPromise.hpp>
22
+ #include "JPixelColorsResult.hpp"
23
+ #include "RGBColor.hpp"
24
+ #include <vector>
25
+ #include "JRGBColor.hpp"
26
+ #include "MotionResult.hpp"
27
+ #include <optional>
28
+ #include "JMotionResult.hpp"
29
+ #include "ImageData.hpp"
30
+ #include "JImageData.hpp"
31
+ #include <NitroModules/ArrayBuffer.hpp>
32
+ #include <NitroModules/JArrayBuffer.hpp>
33
+
34
+ namespace margelo::nitro::cameravisionpixelcolors {
35
+
36
+ jni::local_ref<JHybridCameraVisionPixelColorsSpec::jhybriddata> JHybridCameraVisionPixelColorsSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
37
+ return makeCxxInstance(jThis);
38
+ }
39
+
40
+ void JHybridCameraVisionPixelColorsSpec::registerNatives() {
41
+ registerHybrid({
42
+ makeNativeMethod("initHybrid", JHybridCameraVisionPixelColorsSpec::initHybrid),
43
+ });
44
+ }
45
+
46
+ size_t JHybridCameraVisionPixelColorsSpec::getExternalMemorySize() noexcept {
47
+ static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
48
+ return method(_javaPart);
49
+ }
50
+
51
+ bool JHybridCameraVisionPixelColorsSpec::equals(const std::shared_ptr<HybridObject>& other) {
52
+ if (auto otherCast = std::dynamic_pointer_cast<JHybridCameraVisionPixelColorsSpec>(other)) {
53
+ return _javaPart == otherCast->_javaPart;
54
+ }
55
+ return false;
56
+ }
57
+
58
+ void JHybridCameraVisionPixelColorsSpec::dispose() noexcept {
59
+ static const auto method = javaClassStatic()->getMethod<void()>("dispose");
60
+ method(_javaPart);
61
+ }
62
+
63
+ std::string JHybridCameraVisionPixelColorsSpec::toString() {
64
+ static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
65
+ auto javaString = method(_javaPart);
66
+ return javaString->toStdString();
67
+ }
68
+
69
+ // Properties
70
+
71
+
72
+ // Methods
73
+ std::shared_ptr<Promise<PixelColorsResult>> JHybridCameraVisionPixelColorsSpec::analyzeImageAsync(const ImageData& image) {
74
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JImageData> /* image */)>("analyzeImageAsync");
75
+ auto __result = method(_javaPart, JImageData::fromCpp(image));
76
+ return [&]() {
77
+ auto __promise = Promise<PixelColorsResult>::create();
78
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
79
+ auto __result = jni::static_ref_cast<JPixelColorsResult>(__boxedResult);
80
+ __promise->resolve(__result->toCpp());
81
+ });
82
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
83
+ jni::JniException __jniError(__throwable);
84
+ __promise->reject(std::make_exception_ptr(__jniError));
85
+ });
86
+ return __promise;
87
+ }();
88
+ }
89
+
90
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,66 @@
1
+ ///
2
+ /// HybridCameraVisionPixelColorsSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <NitroModules/JHybridObject.hpp>
11
+ #include <fbjni/fbjni.h>
12
+ #include "HybridCameraVisionPixelColorsSpec.hpp"
13
+
14
+
15
+
16
+
17
+ namespace margelo::nitro::cameravisionpixelcolors {
18
+
19
+ using namespace facebook;
20
+
21
+ class JHybridCameraVisionPixelColorsSpec: public jni::HybridClass<JHybridCameraVisionPixelColorsSpec, JHybridObject>,
22
+ public virtual HybridCameraVisionPixelColorsSpec {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/cameravisionpixelcolors/HybridCameraVisionPixelColorsSpec;";
25
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
+ static void registerNatives();
27
+
28
+ protected:
29
+ // C++ constructor (called from Java via `initHybrid()`)
30
+ explicit JHybridCameraVisionPixelColorsSpec(jni::alias_ref<jhybridobject> jThis) :
31
+ HybridObject(HybridCameraVisionPixelColorsSpec::TAG),
32
+ HybridBase(jThis),
33
+ _javaPart(jni::make_global(jThis)) {}
34
+
35
+ public:
36
+ ~JHybridCameraVisionPixelColorsSpec() override {
37
+ // Hermes GC can destroy JS objects on a non-JNI Thread.
38
+ jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
+ }
40
+
41
+ public:
42
+ size_t getExternalMemorySize() noexcept override;
43
+ bool equals(const std::shared_ptr<HybridObject>& other) override;
44
+ void dispose() noexcept override;
45
+ std::string toString() override;
46
+
47
+ public:
48
+ inline const jni::global_ref<JHybridCameraVisionPixelColorsSpec::javaobject>& getJavaPart() const noexcept {
49
+ return _javaPart;
50
+ }
51
+
52
+ public:
53
+ // Properties
54
+
55
+
56
+ public:
57
+ // Methods
58
+ std::shared_ptr<Promise<PixelColorsResult>> analyzeImageAsync(const ImageData& image) override;
59
+
60
+ private:
61
+ friend HybridBase;
62
+ using HybridBase::HybridBase;
63
+ jni::global_ref<JHybridCameraVisionPixelColorsSpec::javaobject> _javaPart;
64
+ };
65
+
66
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,66 @@
1
+ ///
2
+ /// JImageData.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "ImageData.hpp"
12
+
13
+ #include <NitroModules/ArrayBuffer.hpp>
14
+ #include <NitroModules/JArrayBuffer.hpp>
15
+
16
+ namespace margelo::nitro::cameravisionpixelcolors {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "ImageData" and the the Kotlin data class "ImageData".
22
+ */
23
+ struct JImageData final: public jni::JavaClass<JImageData> {
24
+ public:
25
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/cameravisionpixelcolors/ImageData;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct ImageData by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ ImageData toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldWidth = clazz->getField<double>("width");
36
+ double width = this->getFieldValue(fieldWidth);
37
+ static const auto fieldHeight = clazz->getField<double>("height");
38
+ double height = this->getFieldValue(fieldHeight);
39
+ static const auto fieldData = clazz->getField<JArrayBuffer::javaobject>("data");
40
+ jni::local_ref<JArrayBuffer::javaobject> data = this->getFieldValue(fieldData);
41
+ return ImageData(
42
+ width,
43
+ height,
44
+ data->cthis()->getArrayBuffer()
45
+ );
46
+ }
47
+
48
+ public:
49
+ /**
50
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
51
+ */
52
+ [[maybe_unused]]
53
+ static jni::local_ref<JImageData::javaobject> fromCpp(const ImageData& value) {
54
+ using JSignature = JImageData(double, double, jni::alias_ref<JArrayBuffer::javaobject>);
55
+ static const auto clazz = javaClassStatic();
56
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
57
+ return create(
58
+ clazz,
59
+ value.width,
60
+ value.height,
61
+ JArrayBuffer::wrap(value.data)
62
+ );
63
+ }
64
+ };
65
+
66
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JMotionResult.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "MotionResult.hpp"
12
+
13
+
14
+
15
+ namespace margelo::nitro::cameravisionpixelcolors {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "MotionResult" and the the Kotlin data class "MotionResult".
21
+ */
22
+ struct JMotionResult final: public jni::JavaClass<JMotionResult> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/cameravisionpixelcolors/MotionResult;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct MotionResult by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ MotionResult toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldScore = clazz->getField<double>("score");
35
+ double score = this->getFieldValue(fieldScore);
36
+ static const auto fieldHasMotion = clazz->getField<jboolean>("hasMotion");
37
+ jboolean hasMotion = this->getFieldValue(fieldHasMotion);
38
+ return MotionResult(
39
+ score,
40
+ static_cast<bool>(hasMotion)
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JMotionResult::javaobject> fromCpp(const MotionResult& value) {
50
+ using JSignature = JMotionResult(double, jboolean);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ value.score,
56
+ value.hasMotion
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,114 @@
1
+ ///
2
+ /// JPixelColorsResult.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "PixelColorsResult.hpp"
12
+
13
+ #include "JMotionResult.hpp"
14
+ #include "JRGBColor.hpp"
15
+ #include "MotionResult.hpp"
16
+ #include "RGBColor.hpp"
17
+ #include <optional>
18
+ #include <vector>
19
+
20
+ namespace margelo::nitro::cameravisionpixelcolors {
21
+
22
+ using namespace facebook;
23
+
24
+ /**
25
+ * The C++ JNI bridge between the C++ struct "PixelColorsResult" and the the Kotlin data class "PixelColorsResult".
26
+ */
27
+ struct JPixelColorsResult final: public jni::JavaClass<JPixelColorsResult> {
28
+ public:
29
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/cameravisionpixelcolors/PixelColorsResult;";
30
+
31
+ public:
32
+ /**
33
+ * Convert this Java/Kotlin-based struct to the C++ struct PixelColorsResult by copying all values to C++.
34
+ */
35
+ [[maybe_unused]]
36
+ [[nodiscard]]
37
+ PixelColorsResult toCpp() const {
38
+ static const auto clazz = javaClassStatic();
39
+ static const auto fieldUniqueColorCount = clazz->getField<double>("uniqueColorCount");
40
+ double uniqueColorCount = this->getFieldValue(fieldUniqueColorCount);
41
+ static const auto fieldTopColors = clazz->getField<jni::JArrayClass<JRGBColor>>("topColors");
42
+ jni::local_ref<jni::JArrayClass<JRGBColor>> topColors = this->getFieldValue(fieldTopColors);
43
+ static const auto fieldBrightestColors = clazz->getField<jni::JArrayClass<JRGBColor>>("brightestColors");
44
+ jni::local_ref<jni::JArrayClass<JRGBColor>> brightestColors = this->getFieldValue(fieldBrightestColors);
45
+ static const auto fieldMotion = clazz->getField<JMotionResult>("motion");
46
+ jni::local_ref<JMotionResult> motion = this->getFieldValue(fieldMotion);
47
+ static const auto fieldRoiApplied = clazz->getField<jni::JBoolean>("roiApplied");
48
+ jni::local_ref<jni::JBoolean> roiApplied = this->getFieldValue(fieldRoiApplied);
49
+ return PixelColorsResult(
50
+ uniqueColorCount,
51
+ [&]() {
52
+ size_t __size = topColors->size();
53
+ std::vector<RGBColor> __vector;
54
+ __vector.reserve(__size);
55
+ for (size_t __i = 0; __i < __size; __i++) {
56
+ auto __element = topColors->getElement(__i);
57
+ __vector.push_back(__element->toCpp());
58
+ }
59
+ return __vector;
60
+ }(),
61
+ [&]() {
62
+ size_t __size = brightestColors->size();
63
+ std::vector<RGBColor> __vector;
64
+ __vector.reserve(__size);
65
+ for (size_t __i = 0; __i < __size; __i++) {
66
+ auto __element = brightestColors->getElement(__i);
67
+ __vector.push_back(__element->toCpp());
68
+ }
69
+ return __vector;
70
+ }(),
71
+ motion != nullptr ? std::make_optional(motion->toCpp()) : std::nullopt,
72
+ roiApplied != nullptr ? std::make_optional(static_cast<bool>(roiApplied->value())) : std::nullopt
73
+ );
74
+ }
75
+
76
+ public:
77
+ /**
78
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
79
+ */
80
+ [[maybe_unused]]
81
+ static jni::local_ref<JPixelColorsResult::javaobject> fromCpp(const PixelColorsResult& value) {
82
+ using JSignature = JPixelColorsResult(double, jni::alias_ref<jni::JArrayClass<JRGBColor>>, jni::alias_ref<jni::JArrayClass<JRGBColor>>, jni::alias_ref<JMotionResult>, jni::alias_ref<jni::JBoolean>);
83
+ static const auto clazz = javaClassStatic();
84
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
85
+ return create(
86
+ clazz,
87
+ value.uniqueColorCount,
88
+ [&]() {
89
+ size_t __size = value.topColors.size();
90
+ jni::local_ref<jni::JArrayClass<JRGBColor>> __array = jni::JArrayClass<JRGBColor>::newArray(__size);
91
+ for (size_t __i = 0; __i < __size; __i++) {
92
+ const auto& __element = value.topColors[__i];
93
+ auto __elementJni = JRGBColor::fromCpp(__element);
94
+ __array->setElement(__i, *__elementJni);
95
+ }
96
+ return __array;
97
+ }(),
98
+ [&]() {
99
+ size_t __size = value.brightestColors.size();
100
+ jni::local_ref<jni::JArrayClass<JRGBColor>> __array = jni::JArrayClass<JRGBColor>::newArray(__size);
101
+ for (size_t __i = 0; __i < __size; __i++) {
102
+ const auto& __element = value.brightestColors[__i];
103
+ auto __elementJni = JRGBColor::fromCpp(__element);
104
+ __array->setElement(__i, *__elementJni);
105
+ }
106
+ return __array;
107
+ }(),
108
+ value.motion.has_value() ? JMotionResult::fromCpp(value.motion.value()) : nullptr,
109
+ value.roiApplied.has_value() ? jni::JBoolean::valueOf(value.roiApplied.value()) : nullptr
110
+ );
111
+ }
112
+ };
113
+
114
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// JRGBColor.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "RGBColor.hpp"
12
+
13
+
14
+
15
+ namespace margelo::nitro::cameravisionpixelcolors {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "RGBColor" and the the Kotlin data class "RGBColor".
21
+ */
22
+ struct JRGBColor final: public jni::JavaClass<JRGBColor> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/cameravisionpixelcolors/RGBColor;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct RGBColor by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ RGBColor toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldR = clazz->getField<double>("r");
35
+ double r = this->getFieldValue(fieldR);
36
+ static const auto fieldG = clazz->getField<double>("g");
37
+ double g = this->getFieldValue(fieldG);
38
+ static const auto fieldB = clazz->getField<double>("b");
39
+ double b = this->getFieldValue(fieldB);
40
+ return RGBColor(
41
+ r,
42
+ g,
43
+ b
44
+ );
45
+ }
46
+
47
+ public:
48
+ /**
49
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
50
+ */
51
+ [[maybe_unused]]
52
+ static jni::local_ref<JRGBColor::javaobject> fromCpp(const RGBColor& value) {
53
+ using JSignature = JRGBColor(double, double, double);
54
+ static const auto clazz = javaClassStatic();
55
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
56
+ return create(
57
+ clazz,
58
+ value.r,
59
+ value.g,
60
+ value.b
61
+ );
62
+ }
63
+ };
64
+
65
+ } // namespace margelo::nitro::cameravisionpixelcolors
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// CameraVisionPixelColorsOnLoad.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.cameravisionpixelcolors
9
+
10
+ import android.util.Log
11
+
12
+ internal class CameraVisionPixelColorsOnLoad {
13
+ companion object {
14
+ private const val TAG = "CameraVisionPixelColorsOnLoad"
15
+ private var didLoad = false
16
+ /**
17
+ * Initializes the native part of "CameraVisionPixelColors".
18
+ * This method is idempotent and can be called more than once.
19
+ */
20
+ @JvmStatic
21
+ fun initializeNative() {
22
+ if (didLoad) return
23
+ try {
24
+ Log.i(TAG, "Loading CameraVisionPixelColors C++ library...")
25
+ System.loadLibrary("CameraVisionPixelColors")
26
+ Log.i(TAG, "Successfully loaded CameraVisionPixelColors C++ library!")
27
+ didLoad = true
28
+ } catch (e: Error) {
29
+ Log.e(TAG, "Failed to load CameraVisionPixelColors C++ library! Is it properly installed and linked? " +
30
+ "Is the name correct? (see `CMakeLists.txt`, at `add_library(...)`)", e)
31
+ throw e
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,58 @@
1
+ ///
2
+ /// HybridCameraVisionPixelColorsSpec.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.cameravisionpixelcolors
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.Promise
14
+ import com.margelo.nitro.core.HybridObject
15
+
16
+ /**
17
+ * A Kotlin class representing the CameraVisionPixelColors HybridObject.
18
+ * Implement this abstract class to create Kotlin-based instances of CameraVisionPixelColors.
19
+ */
20
+ @DoNotStrip
21
+ @Keep
22
+ @Suppress(
23
+ "KotlinJniMissingFunction", "unused",
24
+ "RedundantSuppression", "RedundantUnitReturnType", "SimpleRedundantLet",
25
+ "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
26
+ )
27
+ abstract class HybridCameraVisionPixelColorsSpec: HybridObject() {
28
+ @DoNotStrip
29
+ private var mHybridData: HybridData = initHybrid()
30
+
31
+ init {
32
+ super.updateNative(mHybridData)
33
+ }
34
+
35
+ override fun updateNative(hybridData: HybridData) {
36
+ mHybridData = hybridData
37
+ super.updateNative(hybridData)
38
+ }
39
+
40
+ // Default implementation of `HybridObject.toString()`
41
+ override fun toString(): String {
42
+ return "[HybridObject CameraVisionPixelColors]"
43
+ }
44
+
45
+ // Properties
46
+
47
+
48
+ // Methods
49
+ @DoNotStrip
50
+ @Keep
51
+ abstract fun analyzeImageAsync(image: ImageData): Promise<PixelColorsResult>
52
+
53
+ private external fun initHybrid(): HybridData
54
+
55
+ companion object {
56
+ protected const val TAG = "HybridCameraVisionPixelColorsSpec"
57
+ }
58
+ }