nn_ComputerState real
This commit is contained in:
@@ -5,6 +5,10 @@
|
||||
#define CARBON_MAP_TO_NN_EXIT(enumcase) case enumcase:\
|
||||
jfieldID id = env->GetFieldID(clazz, #enumcase, "Lorg.neoflock.NeoNucleus.nn_Exit;");\
|
||||
return env->GetStaticObjectField(clazz, id);
|
||||
#define CARBON_MAP_TO_NN_COMPUTERSTATE(enumcase) case enumcase:\
|
||||
jfieldID id = env->GetFieldID(clazz, #enumcase, "Lorg.neoflock.NeoNucleus.nn_ComputerState;");\
|
||||
return env->GetStaticObjectField(clazz, id);
|
||||
|
||||
// codename for NN JNI is Carbon because i needed something better than NN JNI
|
||||
bool Carbon::PointerBacked::SetPointer(JNIEnv * env, jobject obj, void* ptr) {
|
||||
jfieldID id = env->GetFieldID(env->GetObjectClass(obj), "ptr", "J");
|
||||
@@ -77,6 +81,24 @@ nn_Exit From_nn_Exit(JNIEnv* env, jobject a) {
|
||||
jint value = env->CallIntMethod(a, ordMID);
|
||||
return (nn_Exit) value; // this should be fine as long as the header and java side don't desync
|
||||
}
|
||||
jobject Carbon::Map::To_nn_ComputerState(JNIEnv* env, nn_ComputerState a) {
|
||||
jclass clazz = env->FindClass("org/neoflock/NeoComputers/nn_ComputerState");
|
||||
switch (a) {
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_RUNNING)
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_BOOTUP)
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_POWEROFF)
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_RESTART)
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_CRASHED)
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_BLACKOUT)
|
||||
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_CHARCH)
|
||||
}
|
||||
}
|
||||
nn_Exit From_nn_ComputerState(JNIEnv* env, jobject a) {
|
||||
jclass clazz = env->FindClass("org/neoflock/NeoNucleus/nn_ComputerState");
|
||||
jmethodID ordMID = env->GetMethodID(clazz, "ordinal", "()I");
|
||||
jint value = env->CallIntMethod(a, ordMID);
|
||||
return (nn_Exit) value;
|
||||
}
|
||||
namespace Carbon::Exceptions {
|
||||
CARBON_EXCEPTION_FUNC(ThrowNullPtr, "java/lang/NullPointerException");
|
||||
}
|
||||
@@ -26,7 +26,8 @@ namespace Carbon {
|
||||
namespace Map {
|
||||
jobject To_nn_Exit(JNIEnv* env, nn_Exit a);
|
||||
nn_Exit From_nn_Exit(JNIEnv* env, jobject a);
|
||||
|
||||
jobject To_nn_ComputerState(JNIEnv* env, nn_ComputerState a);
|
||||
nn_ComputerState From_nn_ComputerState(JNIEnv* env, jobject a);
|
||||
}
|
||||
|
||||
typedef struct JavaObjectTarget { // i might lowkey drop this struct
|
||||
|
||||
@@ -135,8 +135,8 @@ JNIEXPORT jobject JNICALL Java_org_neoflock_NeoNucleus_NativeBindings_nn_1mountC
|
||||
(JNIEnv * env, jclass, jobject computer, jobject comp, jint slot, jboolean silent) {
|
||||
nn_Computer* nnPC = (nn_Computer*) Carbon::PointerBacked::GetPointer(env, computer);
|
||||
nn_Component* nnComp = (nn_Component*) Carbon::PointerBacked::GetPointer(env, comp);
|
||||
NULLPTR_CHECK(nnPC, nn_Component);
|
||||
NULLPTR_CHECK(nnComp, nn_Computer);
|
||||
NULLPTR_CHECK(nnPC, nn_Computer);
|
||||
NULLPTR_CHECK(nnComp, nn_Component);
|
||||
return Carbon::Map::To_nn_Exit(env, nn_mountComponent(nnPC, nnComp, slot, silent));
|
||||
}
|
||||
|
||||
@@ -169,3 +169,10 @@ JNIEXPORT jobject JNICALL Java_org_neoflock_NeoNucleus_NativeBindings_nn_1create
|
||||
env->ReleaseStringUTFChars(address, addr);
|
||||
return Carbon::InstantiateDefaultPBC(env, "org/neoflock/NeoNucleus/nn_Computer", computer);
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL Java_org_neoflock_NeoNucleus_NativeBindings_nn_1getComputerState
|
||||
(JNIEnv * env, jclass, jobject computer) {
|
||||
nn_Computer* nnPC = (nn_Computer*) Carbon::PointerBacked::GetPointer(env, computer);
|
||||
NULLPTR_CHECK(nnPC, nn_Component);
|
||||
return Carbon::Map::To_nn_ComputerState(env, nn_getComputerState(nnPC));
|
||||
}
|
||||
Reference in New Issue
Block a user