mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-08 07:05:40 +12:00
Reduce jni boilerplate
This commit is contained in:
parent
609d3fc196
commit
00bf1bc6b8
1 changed files with 16 additions and 16 deletions
|
@ -13,7 +13,10 @@ HIDService* hidService = nullptr;
|
||||||
RendererGL* renderer = nullptr;
|
RendererGL* renderer = nullptr;
|
||||||
bool romLoaded = false;
|
bool romLoaded = false;
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_Initialize(JNIEnv* env, jobject obj) {
|
#define AlberFunction(type, name) JNIEXPORT type JNICALL Java_com_panda3ds_pandroid_AlberDriver_##name
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
AlberFunction(void, Initialize)(JNIEnv* env, jobject obj) {
|
||||||
emulator = std::make_unique<Emulator>();
|
emulator = std::make_unique<Emulator>();
|
||||||
|
|
||||||
if (emulator->getRendererType() != RendererType::OpenGL) {
|
if (emulator->getRendererType() != RendererType::OpenGL) {
|
||||||
|
@ -31,7 +34,7 @@ extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_Initial
|
||||||
emulator->initGraphicsContext(nullptr);
|
emulator->initGraphicsContext(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_RunFrame(JNIEnv* env, jobject obj, jint fbo) {
|
AlberFunction(void, RunFrame)(JNIEnv* env, jobject obj, jint fbo) {
|
||||||
renderer->setFBO(fbo);
|
renderer->setFBO(fbo);
|
||||||
renderer->resetStateManager();
|
renderer->resetStateManager();
|
||||||
emulator->runFrame();
|
emulator->runFrame();
|
||||||
|
@ -39,36 +42,33 @@ extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_RunFram
|
||||||
hidService->updateInputs(emulator->getTicks());
|
hidService->updateInputs(emulator->getTicks());
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_Finalize(JNIEnv* env, jobject obj) {
|
AlberFunction(void, Finalize)(JNIEnv* env, jobject obj) {
|
||||||
emulator = nullptr;
|
emulator = nullptr;
|
||||||
hidService = nullptr;
|
hidService = nullptr;
|
||||||
renderer = nullptr;
|
renderer = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT jboolean JNICALL Java_com_panda3ds_pandroid_AlberDriver_HasRomLoaded(JNIEnv* env, jobject obj) { return romLoaded; }
|
AlberFunction(jboolean, HasRomLoaded)(JNIEnv* env, jobject obj) { return romLoaded; }
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_LoadRom(JNIEnv* env, jobject obj, jstring path) {
|
AlberFunction(void, LoadRom)(JNIEnv* env, jobject obj, jstring path) {
|
||||||
const char* pathStr = env->GetStringUTFChars(path, nullptr);
|
const char* pathStr = env->GetStringUTFChars(path, nullptr);
|
||||||
romLoaded = emulator->loadROM(pathStr);
|
romLoaded = emulator->loadROM(pathStr);
|
||||||
__android_log_print(ANDROID_LOG_INFO, "AlberDriver", "Loading ROM %s, result: %d", pathStr, (int)romLoaded);
|
__android_log_print(ANDROID_LOG_INFO, "AlberDriver", "Loading ROM %s, result: %d", pathStr, (int)romLoaded);
|
||||||
env->ReleaseStringUTFChars(path, pathStr);
|
env->ReleaseStringUTFChars(path, pathStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_TouchScreenDown(JNIEnv* env, jobject obj, jint x, jint y) {
|
AlberFunction(void, TouchScreenDown)(JNIEnv* env, jobject obj, jint x, jint y) { hidService->setTouchScreenPress((u16)x, (u16)y); }
|
||||||
hidService->setTouchScreenPress((u16)x, (u16)y);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_TouchScreenUp(JNIEnv* env, jobject obj) { hidService->releaseTouchScreen(); }
|
AlberFunction(void, TouchScreenUp)(JNIEnv* env, jobject obj) { hidService->releaseTouchScreen(); }
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_KeyUp(JNIEnv* env, jobject obj, jint keyCode) {
|
AlberFunction(void, KeyUp)(JNIEnv* env, jobject obj, jint keyCode) { hidService->releaseKey((u32)keyCode); }
|
||||||
hidService->releaseKey((u32)keyCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_KeyDown(JNIEnv* env, jobject obj, jint keyCode) {
|
AlberFunction(void, KeyDown)(JNIEnv* env, jobject obj, jint keyCode) { hidService->pressKey((u32)keyCode); }
|
||||||
hidService->pressKey((u32)keyCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_SetCirclepadAxis(JNIEnv* env, jobject obj, jint x, jint y) {
|
AlberFunction(void, SetCirclepadAxis)(JNIEnv* env, jobject obj, jint x, jint y) {
|
||||||
hidService->setCirclepadX((s16)x);
|
hidService->setCirclepadX((s16)x);
|
||||||
hidService->setCirclepadY((s16)y);
|
hidService->setCirclepadY((s16)y);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef AlberFunction
|
Loading…
Add table
Reference in a new issue