react-native-nitro-pose-exercises 1.0.2
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 +20 -0
- package/NitroPoseExercises.podspec +32 -0
- package/README.md +538 -0
- package/android/CMakeLists.txt +31 -0
- package/android/build.gradle +121 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +11 -0
- package/android/src/main/java/com/margelo/nitro/nitroposeexercises/NitroPoseExercises.kt +535 -0
- package/android/src/main/java/com/margelo/nitro/nitroposeexercises/NitroPoseExercisesPackage.kt +22 -0
- package/ios/NitroPoseExercises.swift +527 -0
- package/lib/module/NitroPoseExercises.nitro.js +17 -0
- package/lib/module/NitroPoseExercises.nitro.js.map +1 -0
- package/lib/module/config/pushup.js +71 -0
- package/lib/module/config/pushup.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NitroPoseExercises.nitro.d.ts +97 -0
- package/lib/typescript/src/NitroPoseExercises.nitro.d.ts.map +1 -0
- package/lib/typescript/src/config/pushup.d.ts +3 -0
- package/lib/typescript/src/config/pushup.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +6 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitro.json +23 -0
- package/nitrogen/generated/android/c++/JAngleDefinition.hpp +69 -0
- package/nitrogen/generated/android/c++/JAngleSnapshot.hpp +61 -0
- package/nitrogen/generated/android/c++/JExerciseConfig.hpp +166 -0
- package/nitrogen/generated/android/c++/JExercisePhase.hpp +67 -0
- package/nitrogen/generated/android/c++/JExerciseType.hpp +61 -0
- package/nitrogen/generated/android/c++/JFormFeedback.hpp +67 -0
- package/nitrogen/generated/android/c++/JFormRule.hpp +79 -0
- package/nitrogen/generated/android/c++/JFormSeverity.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_ExercisePhase.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_FormFeedback.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_HoldProgress.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_RepData.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_SessionResult.hpp +85 -0
- package/nitrogen/generated/android/c++/JHoldProgress.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridNitroPoseExercisesSpec.cpp +311 -0
- package/nitrogen/generated/android/c++/JHybridNitroPoseExercisesSpec.hpp +87 -0
- package/nitrogen/generated/android/c++/JLandmark.hpp +69 -0
- package/nitrogen/generated/android/c++/JPhaseThreshold.hpp +71 -0
- package/nitrogen/generated/android/c++/JRepData.hpp +90 -0
- package/nitrogen/generated/android/c++/JSessionResult.hpp +120 -0
- package/nitrogen/generated/android/c++/JSessionStatus.hpp +67 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/AngleDefinition.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/AngleSnapshot.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/ExerciseConfig.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/ExercisePhase.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/ExerciseType.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/FormFeedback.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/FormRule.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/FormSeverity.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Func_void_ExercisePhase.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Func_void_FormFeedback.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Func_void_HoldProgress.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Func_void_RepData.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Func_void_SessionResult.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/HoldProgress.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/HybridNitroPoseExercisesSpec.kt +196 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/Landmark.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/PhaseThreshold.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/RepData.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/SessionResult.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/SessionStatus.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroposeexercises/nitroposeexercisesOnLoad.kt +35 -0
- package/nitrogen/generated/android/nitroposeexercises+autolinking.cmake +81 -0
- package/nitrogen/generated/android/nitroposeexercises+autolinking.gradle +27 -0
- package/nitrogen/generated/android/nitroposeexercisesOnLoad.cpp +66 -0
- package/nitrogen/generated/android/nitroposeexercisesOnLoad.hpp +34 -0
- package/nitrogen/generated/ios/NitroPoseExercises+autolinking.rb +62 -0
- package/nitrogen/generated/ios/NitroPoseExercises-Swift-Cxx-Bridge.cpp +100 -0
- package/nitrogen/generated/ios/NitroPoseExercises-Swift-Cxx-Bridge.hpp +449 -0
- package/nitrogen/generated/ios/NitroPoseExercises-Swift-Cxx-Umbrella.hpp +95 -0
- package/nitrogen/generated/ios/NitroPoseExercisesAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroPoseExercisesAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridNitroPoseExercisesSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroPoseExercisesSpecSwift.hpp +236 -0
- package/nitrogen/generated/ios/swift/AngleDefinition.swift +44 -0
- package/nitrogen/generated/ios/swift/AngleSnapshot.swift +34 -0
- package/nitrogen/generated/ios/swift/ExerciseConfig.swift +83 -0
- package/nitrogen/generated/ios/swift/ExercisePhase.swift +52 -0
- package/nitrogen/generated/ios/swift/ExerciseType.swift +44 -0
- package/nitrogen/generated/ios/swift/FormFeedback.swift +39 -0
- package/nitrogen/generated/ios/swift/FormRule.swift +54 -0
- package/nitrogen/generated/ios/swift/FormSeverity.swift +44 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ExercisePhase.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_FormFeedback.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_HoldProgress.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RepData.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_SessionResult.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/HoldProgress.swift +39 -0
- package/nitrogen/generated/ios/swift/HybridNitroPoseExercisesSpec.swift +73 -0
- package/nitrogen/generated/ios/swift/HybridNitroPoseExercisesSpec_cxx.swift +483 -0
- package/nitrogen/generated/ios/swift/Landmark.swift +44 -0
- package/nitrogen/generated/ios/swift/PhaseThreshold.swift +44 -0
- package/nitrogen/generated/ios/swift/RepData.swift +50 -0
- package/nitrogen/generated/ios/swift/SessionResult.swift +66 -0
- package/nitrogen/generated/ios/swift/SessionStatus.swift +52 -0
- package/nitrogen/generated/shared/c++/AngleDefinition.hpp +95 -0
- package/nitrogen/generated/shared/c++/AngleSnapshot.hpp +87 -0
- package/nitrogen/generated/shared/c++/ExerciseConfig.hpp +122 -0
- package/nitrogen/generated/shared/c++/ExercisePhase.hpp +88 -0
- package/nitrogen/generated/shared/c++/ExerciseType.hpp +80 -0
- package/nitrogen/generated/shared/c++/FormFeedback.hpp +93 -0
- package/nitrogen/generated/shared/c++/FormRule.hpp +105 -0
- package/nitrogen/generated/shared/c++/FormSeverity.hpp +80 -0
- package/nitrogen/generated/shared/c++/HoldProgress.hpp +91 -0
- package/nitrogen/generated/shared/c++/HybridNitroPoseExercisesSpec.cpp +46 -0
- package/nitrogen/generated/shared/c++/HybridNitroPoseExercisesSpec.hpp +117 -0
- package/nitrogen/generated/shared/c++/Landmark.hpp +95 -0
- package/nitrogen/generated/shared/c++/PhaseThreshold.hpp +97 -0
- package/nitrogen/generated/shared/c++/RepData.hpp +97 -0
- package/nitrogen/generated/shared/c++/SessionResult.hpp +108 -0
- package/nitrogen/generated/shared/c++/SessionStatus.hpp +88 -0
- package/package.json +187 -0
- package/src/NitroPoseExercises.nitro.ts +155 -0
- package/src/config/pushup.ts +62 -0
- package/src/index.tsx +28 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
import { type Frame } from 'react-native-vision-camera';
|
|
3
|
+
type ExerciseType = 'rep' | 'hold' | 'flow';
|
|
4
|
+
type ExercisePhase = 'up' | 'down' | 'hold' | 'transition' | 'unknown';
|
|
5
|
+
type FormSeverity = 'info' | 'warning' | 'error';
|
|
6
|
+
type SessionStatus = 'idle' | 'countdown' | 'active' | 'paused' | 'completed';
|
|
7
|
+
interface Landmark {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
z: number;
|
|
11
|
+
visibility: number;
|
|
12
|
+
}
|
|
13
|
+
interface AngleDefinition {
|
|
14
|
+
name: string;
|
|
15
|
+
landmarkA: number;
|
|
16
|
+
landmarkB: number;
|
|
17
|
+
landmarkC: number;
|
|
18
|
+
}
|
|
19
|
+
interface PhaseThreshold {
|
|
20
|
+
phase: ExercisePhase;
|
|
21
|
+
angleName: string;
|
|
22
|
+
minAngle: number;
|
|
23
|
+
maxAngle: number;
|
|
24
|
+
}
|
|
25
|
+
interface FormRule {
|
|
26
|
+
name: string;
|
|
27
|
+
message: string;
|
|
28
|
+
severity: FormSeverity;
|
|
29
|
+
angleName: string;
|
|
30
|
+
minAngle: number;
|
|
31
|
+
maxAngle: number;
|
|
32
|
+
}
|
|
33
|
+
interface ExerciseConfig {
|
|
34
|
+
name: string;
|
|
35
|
+
type: ExerciseType;
|
|
36
|
+
angles: AngleDefinition[];
|
|
37
|
+
phases: PhaseThreshold[];
|
|
38
|
+
repSequence: ExercisePhase[];
|
|
39
|
+
formRules: FormRule[];
|
|
40
|
+
holdDurationMs: number;
|
|
41
|
+
}
|
|
42
|
+
interface RepData {
|
|
43
|
+
repNumber: number;
|
|
44
|
+
durationMs: number;
|
|
45
|
+
formScore: number;
|
|
46
|
+
angles: AngleSnapshot[];
|
|
47
|
+
}
|
|
48
|
+
interface AngleSnapshot {
|
|
49
|
+
name: string;
|
|
50
|
+
value: number;
|
|
51
|
+
}
|
|
52
|
+
interface FormFeedback {
|
|
53
|
+
ruleName: string;
|
|
54
|
+
message: string;
|
|
55
|
+
severity: FormSeverity;
|
|
56
|
+
}
|
|
57
|
+
interface HoldProgress {
|
|
58
|
+
elapsedMs: number;
|
|
59
|
+
targetMs: number;
|
|
60
|
+
stability: number;
|
|
61
|
+
}
|
|
62
|
+
interface SessionResult {
|
|
63
|
+
totalReps: number;
|
|
64
|
+
totalDurationMs: number;
|
|
65
|
+
averageRepDurationMs: number;
|
|
66
|
+
averageFormScore: number;
|
|
67
|
+
formViolations: FormFeedback[];
|
|
68
|
+
angleHistory: AngleSnapshot[];
|
|
69
|
+
}
|
|
70
|
+
interface NitroPoseExercises extends HybridObject<{
|
|
71
|
+
ios: 'swift';
|
|
72
|
+
android: 'kotlin';
|
|
73
|
+
}> {
|
|
74
|
+
initialize(modelPath: string): Promise<void>;
|
|
75
|
+
release(): void;
|
|
76
|
+
loadExercise(config: ExerciseConfig): void;
|
|
77
|
+
readonly status: SessionStatus;
|
|
78
|
+
processFrame(frame: Frame): void;
|
|
79
|
+
onRepComplete: ((data: RepData) => void) | undefined;
|
|
80
|
+
onPhaseChange: ((phase: ExercisePhase) => void) | undefined;
|
|
81
|
+
onFormFeedback: ((feedback: FormFeedback) => void) | undefined;
|
|
82
|
+
onHoldProgress: ((progress: HoldProgress) => void) | undefined;
|
|
83
|
+
onPoseLost: (() => void) | undefined;
|
|
84
|
+
onPoseRegained: (() => void) | undefined;
|
|
85
|
+
onSessionComplete: ((result: SessionResult) => void) | undefined;
|
|
86
|
+
readonly currentPhase: ExercisePhase;
|
|
87
|
+
readonly repCount: number;
|
|
88
|
+
readonly landmarks: Landmark[];
|
|
89
|
+
startSession(targetReps: number, countdownSeconds: number): void;
|
|
90
|
+
pauseSession(): void;
|
|
91
|
+
resumeSession(): void;
|
|
92
|
+
stopSession(): void;
|
|
93
|
+
}
|
|
94
|
+
declare const nitroPoseExercises: NitroPoseExercises;
|
|
95
|
+
export { nitroPoseExercises };
|
|
96
|
+
export type { NitroPoseExercises, ExerciseConfig, ExerciseType, ExercisePhase, FormSeverity, SessionStatus, Landmark, AngleDefinition, PhaseThreshold, FormRule, RepData, AngleSnapshot, FormFeedback, HoldProgress, SessionResult, };
|
|
97
|
+
//# sourceMappingURL=NitroPoseExercises.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NitroPoseExercises.nitro.d.ts","sourceRoot":"","sources":["../../../src/NitroPoseExercises.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushup.d.ts","sourceRoot":"","sources":["../../../../src/config/pushup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAQlE,eAAO,MAAM,aAAa,EAAE,cAqD3B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NitroPoseExercises } from './NitroPoseExercises.nitro';
|
|
2
|
+
declare const nitroPoseExercises: NitroPoseExercises;
|
|
3
|
+
export { nitroPoseExercises };
|
|
4
|
+
export type { NitroPoseExercises, ExerciseConfig, ExerciseType, ExercisePhase, FormSeverity, SessionStatus, Landmark, AngleDefinition, PhaseThreshold, FormRule, RepData, AngleSnapshot, FormFeedback, HoldProgress, SessionResult, } from './NitroPoseExercises.nitro';
|
|
5
|
+
export { PUSHUP_CONFIG } from './config/pushup';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,QAAA,MAAM,kBAAkB,oBACmD,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,eAAe,EACf,cAAc,EACd,QAAQ,EACR,OAAO,EACP,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
package/nitro.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cxxNamespace": ["nitroposeexercises"],
|
|
3
|
+
"ios": {
|
|
4
|
+
"iosModuleName": "NitroPoseExercises"
|
|
5
|
+
},
|
|
6
|
+
"android": {
|
|
7
|
+
"androidNamespace": ["nitroposeexercises"],
|
|
8
|
+
"androidCxxLibName": "nitroposeexercises"
|
|
9
|
+
},
|
|
10
|
+
"autolinking": {
|
|
11
|
+
"NitroPoseExercises": {
|
|
12
|
+
"ios": {
|
|
13
|
+
"language": "swift",
|
|
14
|
+
"implementationClassName": "NitroPoseExercises"
|
|
15
|
+
},
|
|
16
|
+
"android": {
|
|
17
|
+
"language": "kotlin",
|
|
18
|
+
"implementationClassName": "NitroPoseExercises"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"ignorePaths": ["node_modules"]
|
|
23
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JAngleDefinition.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 "AngleDefinition.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::nitroposeexercises {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "AngleDefinition" and the the Kotlin data class "AngleDefinition".
|
|
21
|
+
*/
|
|
22
|
+
struct JAngleDefinition final: public jni::JavaClass<JAngleDefinition> {
|
|
23
|
+
public:
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroposeexercises/AngleDefinition;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct AngleDefinition by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
AngleDefinition toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldName = clazz->getField<jni::JString>("name");
|
|
35
|
+
jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
|
|
36
|
+
static const auto fieldLandmarkA = clazz->getField<double>("landmarkA");
|
|
37
|
+
double landmarkA = this->getFieldValue(fieldLandmarkA);
|
|
38
|
+
static const auto fieldLandmarkB = clazz->getField<double>("landmarkB");
|
|
39
|
+
double landmarkB = this->getFieldValue(fieldLandmarkB);
|
|
40
|
+
static const auto fieldLandmarkC = clazz->getField<double>("landmarkC");
|
|
41
|
+
double landmarkC = this->getFieldValue(fieldLandmarkC);
|
|
42
|
+
return AngleDefinition(
|
|
43
|
+
name->toStdString(),
|
|
44
|
+
landmarkA,
|
|
45
|
+
landmarkB,
|
|
46
|
+
landmarkC
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
/**
|
|
52
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
53
|
+
*/
|
|
54
|
+
[[maybe_unused]]
|
|
55
|
+
static jni::local_ref<JAngleDefinition::javaobject> fromCpp(const AngleDefinition& value) {
|
|
56
|
+
using JSignature = JAngleDefinition(jni::alias_ref<jni::JString>, double, double, double);
|
|
57
|
+
static const auto clazz = javaClassStatic();
|
|
58
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
59
|
+
return create(
|
|
60
|
+
clazz,
|
|
61
|
+
jni::make_jstring(value.name),
|
|
62
|
+
value.landmarkA,
|
|
63
|
+
value.landmarkB,
|
|
64
|
+
value.landmarkC
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
} // namespace margelo::nitro::nitroposeexercises
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JAngleSnapshot.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 "AngleSnapshot.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::nitroposeexercises {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "AngleSnapshot" and the the Kotlin data class "AngleSnapshot".
|
|
21
|
+
*/
|
|
22
|
+
struct JAngleSnapshot final: public jni::JavaClass<JAngleSnapshot> {
|
|
23
|
+
public:
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroposeexercises/AngleSnapshot;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct AngleSnapshot by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
AngleSnapshot toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldName = clazz->getField<jni::JString>("name");
|
|
35
|
+
jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
|
|
36
|
+
static const auto fieldValue = clazz->getField<double>("value");
|
|
37
|
+
double value = this->getFieldValue(fieldValue);
|
|
38
|
+
return AngleSnapshot(
|
|
39
|
+
name->toStdString(),
|
|
40
|
+
value
|
|
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<JAngleSnapshot::javaobject> fromCpp(const AngleSnapshot& value) {
|
|
50
|
+
using JSignature = JAngleSnapshot(jni::alias_ref<jni::JString>, double);
|
|
51
|
+
static const auto clazz = javaClassStatic();
|
|
52
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
53
|
+
return create(
|
|
54
|
+
clazz,
|
|
55
|
+
jni::make_jstring(value.name),
|
|
56
|
+
value.value
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::nitroposeexercises
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JExerciseConfig.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 "ExerciseConfig.hpp"
|
|
12
|
+
|
|
13
|
+
#include "AngleDefinition.hpp"
|
|
14
|
+
#include "ExercisePhase.hpp"
|
|
15
|
+
#include "ExerciseType.hpp"
|
|
16
|
+
#include "FormRule.hpp"
|
|
17
|
+
#include "FormSeverity.hpp"
|
|
18
|
+
#include "JAngleDefinition.hpp"
|
|
19
|
+
#include "JExercisePhase.hpp"
|
|
20
|
+
#include "JExerciseType.hpp"
|
|
21
|
+
#include "JFormRule.hpp"
|
|
22
|
+
#include "JFormSeverity.hpp"
|
|
23
|
+
#include "JPhaseThreshold.hpp"
|
|
24
|
+
#include "PhaseThreshold.hpp"
|
|
25
|
+
#include <string>
|
|
26
|
+
#include <vector>
|
|
27
|
+
|
|
28
|
+
namespace margelo::nitro::nitroposeexercises {
|
|
29
|
+
|
|
30
|
+
using namespace facebook;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The C++ JNI bridge between the C++ struct "ExerciseConfig" and the the Kotlin data class "ExerciseConfig".
|
|
34
|
+
*/
|
|
35
|
+
struct JExerciseConfig final: public jni::JavaClass<JExerciseConfig> {
|
|
36
|
+
public:
|
|
37
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroposeexercises/ExerciseConfig;";
|
|
38
|
+
|
|
39
|
+
public:
|
|
40
|
+
/**
|
|
41
|
+
* Convert this Java/Kotlin-based struct to the C++ struct ExerciseConfig by copying all values to C++.
|
|
42
|
+
*/
|
|
43
|
+
[[maybe_unused]]
|
|
44
|
+
[[nodiscard]]
|
|
45
|
+
ExerciseConfig toCpp() const {
|
|
46
|
+
static const auto clazz = javaClassStatic();
|
|
47
|
+
static const auto fieldName = clazz->getField<jni::JString>("name");
|
|
48
|
+
jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
|
|
49
|
+
static const auto fieldType = clazz->getField<JExerciseType>("type");
|
|
50
|
+
jni::local_ref<JExerciseType> type = this->getFieldValue(fieldType);
|
|
51
|
+
static const auto fieldAngles = clazz->getField<jni::JArrayClass<JAngleDefinition>>("angles");
|
|
52
|
+
jni::local_ref<jni::JArrayClass<JAngleDefinition>> angles = this->getFieldValue(fieldAngles);
|
|
53
|
+
static const auto fieldPhases = clazz->getField<jni::JArrayClass<JPhaseThreshold>>("phases");
|
|
54
|
+
jni::local_ref<jni::JArrayClass<JPhaseThreshold>> phases = this->getFieldValue(fieldPhases);
|
|
55
|
+
static const auto fieldRepSequence = clazz->getField<jni::JArrayClass<JExercisePhase>>("repSequence");
|
|
56
|
+
jni::local_ref<jni::JArrayClass<JExercisePhase>> repSequence = this->getFieldValue(fieldRepSequence);
|
|
57
|
+
static const auto fieldFormRules = clazz->getField<jni::JArrayClass<JFormRule>>("formRules");
|
|
58
|
+
jni::local_ref<jni::JArrayClass<JFormRule>> formRules = this->getFieldValue(fieldFormRules);
|
|
59
|
+
static const auto fieldHoldDurationMs = clazz->getField<double>("holdDurationMs");
|
|
60
|
+
double holdDurationMs = this->getFieldValue(fieldHoldDurationMs);
|
|
61
|
+
return ExerciseConfig(
|
|
62
|
+
name->toStdString(),
|
|
63
|
+
type->toCpp(),
|
|
64
|
+
[&](auto&& __input) {
|
|
65
|
+
size_t __size = __input->size();
|
|
66
|
+
std::vector<AngleDefinition> __vector;
|
|
67
|
+
__vector.reserve(__size);
|
|
68
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
69
|
+
auto __element = __input->getElement(__i);
|
|
70
|
+
__vector.push_back(__element->toCpp());
|
|
71
|
+
}
|
|
72
|
+
return __vector;
|
|
73
|
+
}(angles),
|
|
74
|
+
[&](auto&& __input) {
|
|
75
|
+
size_t __size = __input->size();
|
|
76
|
+
std::vector<PhaseThreshold> __vector;
|
|
77
|
+
__vector.reserve(__size);
|
|
78
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
79
|
+
auto __element = __input->getElement(__i);
|
|
80
|
+
__vector.push_back(__element->toCpp());
|
|
81
|
+
}
|
|
82
|
+
return __vector;
|
|
83
|
+
}(phases),
|
|
84
|
+
[&](auto&& __input) {
|
|
85
|
+
size_t __size = __input->size();
|
|
86
|
+
std::vector<ExercisePhase> __vector;
|
|
87
|
+
__vector.reserve(__size);
|
|
88
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
89
|
+
auto __element = __input->getElement(__i);
|
|
90
|
+
__vector.push_back(__element->toCpp());
|
|
91
|
+
}
|
|
92
|
+
return __vector;
|
|
93
|
+
}(repSequence),
|
|
94
|
+
[&](auto&& __input) {
|
|
95
|
+
size_t __size = __input->size();
|
|
96
|
+
std::vector<FormRule> __vector;
|
|
97
|
+
__vector.reserve(__size);
|
|
98
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
99
|
+
auto __element = __input->getElement(__i);
|
|
100
|
+
__vector.push_back(__element->toCpp());
|
|
101
|
+
}
|
|
102
|
+
return __vector;
|
|
103
|
+
}(formRules),
|
|
104
|
+
holdDurationMs
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
public:
|
|
109
|
+
/**
|
|
110
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
111
|
+
*/
|
|
112
|
+
[[maybe_unused]]
|
|
113
|
+
static jni::local_ref<JExerciseConfig::javaobject> fromCpp(const ExerciseConfig& value) {
|
|
114
|
+
using JSignature = JExerciseConfig(jni::alias_ref<jni::JString>, jni::alias_ref<JExerciseType>, jni::alias_ref<jni::JArrayClass<JAngleDefinition>>, jni::alias_ref<jni::JArrayClass<JPhaseThreshold>>, jni::alias_ref<jni::JArrayClass<JExercisePhase>>, jni::alias_ref<jni::JArrayClass<JFormRule>>, double);
|
|
115
|
+
static const auto clazz = javaClassStatic();
|
|
116
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
117
|
+
return create(
|
|
118
|
+
clazz,
|
|
119
|
+
jni::make_jstring(value.name),
|
|
120
|
+
JExerciseType::fromCpp(value.type),
|
|
121
|
+
[&](auto&& __input) {
|
|
122
|
+
size_t __size = __input.size();
|
|
123
|
+
jni::local_ref<jni::JArrayClass<JAngleDefinition>> __array = jni::JArrayClass<JAngleDefinition>::newArray(__size);
|
|
124
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
125
|
+
const auto& __element = __input[__i];
|
|
126
|
+
auto __elementJni = JAngleDefinition::fromCpp(__element);
|
|
127
|
+
__array->setElement(__i, *__elementJni);
|
|
128
|
+
}
|
|
129
|
+
return __array;
|
|
130
|
+
}(value.angles),
|
|
131
|
+
[&](auto&& __input) {
|
|
132
|
+
size_t __size = __input.size();
|
|
133
|
+
jni::local_ref<jni::JArrayClass<JPhaseThreshold>> __array = jni::JArrayClass<JPhaseThreshold>::newArray(__size);
|
|
134
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
135
|
+
const auto& __element = __input[__i];
|
|
136
|
+
auto __elementJni = JPhaseThreshold::fromCpp(__element);
|
|
137
|
+
__array->setElement(__i, *__elementJni);
|
|
138
|
+
}
|
|
139
|
+
return __array;
|
|
140
|
+
}(value.phases),
|
|
141
|
+
[&](auto&& __input) {
|
|
142
|
+
size_t __size = __input.size();
|
|
143
|
+
jni::local_ref<jni::JArrayClass<JExercisePhase>> __array = jni::JArrayClass<JExercisePhase>::newArray(__size);
|
|
144
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
145
|
+
const auto& __element = __input[__i];
|
|
146
|
+
auto __elementJni = JExercisePhase::fromCpp(__element);
|
|
147
|
+
__array->setElement(__i, *__elementJni);
|
|
148
|
+
}
|
|
149
|
+
return __array;
|
|
150
|
+
}(value.repSequence),
|
|
151
|
+
[&](auto&& __input) {
|
|
152
|
+
size_t __size = __input.size();
|
|
153
|
+
jni::local_ref<jni::JArrayClass<JFormRule>> __array = jni::JArrayClass<JFormRule>::newArray(__size);
|
|
154
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
155
|
+
const auto& __element = __input[__i];
|
|
156
|
+
auto __elementJni = JFormRule::fromCpp(__element);
|
|
157
|
+
__array->setElement(__i, *__elementJni);
|
|
158
|
+
}
|
|
159
|
+
return __array;
|
|
160
|
+
}(value.formRules),
|
|
161
|
+
value.holdDurationMs
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
} // namespace margelo::nitro::nitroposeexercises
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JExercisePhase.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 "ExercisePhase.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroposeexercises {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "ExercisePhase" and the the Kotlin enum "ExercisePhase".
|
|
19
|
+
*/
|
|
20
|
+
struct JExercisePhase final: public jni::JavaClass<JExercisePhase> {
|
|
21
|
+
public:
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroposeexercises/ExercisePhase;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum ExercisePhase.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
ExercisePhase toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<ExercisePhase>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JExercisePhase> fromCpp(ExercisePhase value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
switch (value) {
|
|
45
|
+
case ExercisePhase::HOLD:
|
|
46
|
+
static const auto fieldHOLD = clazz->getStaticField<JExercisePhase>("HOLD");
|
|
47
|
+
return clazz->getStaticFieldValue(fieldHOLD);
|
|
48
|
+
case ExercisePhase::UP:
|
|
49
|
+
static const auto fieldUP = clazz->getStaticField<JExercisePhase>("UP");
|
|
50
|
+
return clazz->getStaticFieldValue(fieldUP);
|
|
51
|
+
case ExercisePhase::DOWN:
|
|
52
|
+
static const auto fieldDOWN = clazz->getStaticField<JExercisePhase>("DOWN");
|
|
53
|
+
return clazz->getStaticFieldValue(fieldDOWN);
|
|
54
|
+
case ExercisePhase::TRANSITION:
|
|
55
|
+
static const auto fieldTRANSITION = clazz->getStaticField<JExercisePhase>("TRANSITION");
|
|
56
|
+
return clazz->getStaticFieldValue(fieldTRANSITION);
|
|
57
|
+
case ExercisePhase::UNKNOWN:
|
|
58
|
+
static const auto fieldUNKNOWN = clazz->getStaticField<JExercisePhase>("UNKNOWN");
|
|
59
|
+
return clazz->getStaticFieldValue(fieldUNKNOWN);
|
|
60
|
+
default:
|
|
61
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
62
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
} // namespace margelo::nitro::nitroposeexercises
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JExerciseType.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 "ExerciseType.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroposeexercises {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "ExerciseType" and the the Kotlin enum "ExerciseType".
|
|
19
|
+
*/
|
|
20
|
+
struct JExerciseType final: public jni::JavaClass<JExerciseType> {
|
|
21
|
+
public:
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroposeexercises/ExerciseType;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum ExerciseType.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
ExerciseType toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<ExerciseType>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JExerciseType> fromCpp(ExerciseType value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
switch (value) {
|
|
45
|
+
case ExerciseType::REP:
|
|
46
|
+
static const auto fieldREP = clazz->getStaticField<JExerciseType>("REP");
|
|
47
|
+
return clazz->getStaticFieldValue(fieldREP);
|
|
48
|
+
case ExerciseType::HOLD:
|
|
49
|
+
static const auto fieldHOLD = clazz->getStaticField<JExerciseType>("HOLD");
|
|
50
|
+
return clazz->getStaticFieldValue(fieldHOLD);
|
|
51
|
+
case ExerciseType::FLOW:
|
|
52
|
+
static const auto fieldFLOW = clazz->getStaticField<JExerciseType>("FLOW");
|
|
53
|
+
return clazz->getStaticFieldValue(fieldFLOW);
|
|
54
|
+
default:
|
|
55
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
56
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::nitroposeexercises
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JFormFeedback.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 "FormFeedback.hpp"
|
|
12
|
+
|
|
13
|
+
#include "FormSeverity.hpp"
|
|
14
|
+
#include "JFormSeverity.hpp"
|
|
15
|
+
#include <string>
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::nitroposeexercises {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The C++ JNI bridge between the C++ struct "FormFeedback" and the the Kotlin data class "FormFeedback".
|
|
23
|
+
*/
|
|
24
|
+
struct JFormFeedback final: public jni::JavaClass<JFormFeedback> {
|
|
25
|
+
public:
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroposeexercises/FormFeedback;";
|
|
27
|
+
|
|
28
|
+
public:
|
|
29
|
+
/**
|
|
30
|
+
* Convert this Java/Kotlin-based struct to the C++ struct FormFeedback by copying all values to C++.
|
|
31
|
+
*/
|
|
32
|
+
[[maybe_unused]]
|
|
33
|
+
[[nodiscard]]
|
|
34
|
+
FormFeedback toCpp() const {
|
|
35
|
+
static const auto clazz = javaClassStatic();
|
|
36
|
+
static const auto fieldRuleName = clazz->getField<jni::JString>("ruleName");
|
|
37
|
+
jni::local_ref<jni::JString> ruleName = this->getFieldValue(fieldRuleName);
|
|
38
|
+
static const auto fieldMessage = clazz->getField<jni::JString>("message");
|
|
39
|
+
jni::local_ref<jni::JString> message = this->getFieldValue(fieldMessage);
|
|
40
|
+
static const auto fieldSeverity = clazz->getField<JFormSeverity>("severity");
|
|
41
|
+
jni::local_ref<JFormSeverity> severity = this->getFieldValue(fieldSeverity);
|
|
42
|
+
return FormFeedback(
|
|
43
|
+
ruleName->toStdString(),
|
|
44
|
+
message->toStdString(),
|
|
45
|
+
severity->toCpp()
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
/**
|
|
51
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
52
|
+
*/
|
|
53
|
+
[[maybe_unused]]
|
|
54
|
+
static jni::local_ref<JFormFeedback::javaobject> fromCpp(const FormFeedback& value) {
|
|
55
|
+
using JSignature = JFormFeedback(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JFormSeverity>);
|
|
56
|
+
static const auto clazz = javaClassStatic();
|
|
57
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
58
|
+
return create(
|
|
59
|
+
clazz,
|
|
60
|
+
jni::make_jstring(value.ruleName),
|
|
61
|
+
jni::make_jstring(value.message),
|
|
62
|
+
JFormSeverity::fromCpp(value.severity)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
} // namespace margelo::nitro::nitroposeexercises
|