mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-06 14:15:41 +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;
|
||||
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>();
|
||||
|
||||
if (emulator->getRendererType() != RendererType::OpenGL) {
|
||||
|
@ -31,7 +34,7 @@ extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_Initial
|
|||
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->resetStateManager();
|
||||
emulator->runFrame();
|
||||
|
@ -39,36 +42,33 @@ extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_RunFram
|
|||
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;
|
||||
hidService = 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);
|
||||
romLoaded = emulator->loadROM(pathStr);
|
||||
__android_log_print(ANDROID_LOG_INFO, "AlberDriver", "Loading ROM %s, result: %d", pathStr, (int)romLoaded);
|
||||
env->ReleaseStringUTFChars(path, pathStr);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_TouchScreenDown(JNIEnv* env, jobject obj, jint x, jint y) {
|
||||
hidService->setTouchScreenPress((u16)x, (u16)y);
|
||||
}
|
||||
AlberFunction(void, TouchScreenDown)(JNIEnv* env, jobject obj, jint x, jint 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) {
|
||||
hidService->releaseKey((u32)keyCode);
|
||||
}
|
||||
AlberFunction(void, KeyUp)(JNIEnv* env, jobject obj, jint keyCode) { hidService->releaseKey((u32)keyCode); }
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL Java_com_panda3ds_pandroid_AlberDriver_KeyDown(JNIEnv* env, jobject obj, jint keyCode) {
|
||||
hidService->pressKey((u32)keyCode);
|
||||
}
|
||||
AlberFunction(void, KeyDown)(JNIEnv* env, jobject obj, jint 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->setCirclepadY((s16)y);
|
||||
}
|
||||
}
|
||||
|
||||
#undef AlberFunction
|
Loading…
Add table
Reference in a new issue