android: jni cleanup
This commit is contained in:
parent
03568fdb93
commit
9930fdbf28
@ -638,7 +638,7 @@ public final class EmulationActivity extends AppCompatActivity {
|
|||||||
@IntDef({MENU_ACTION_EDIT_CONTROLS_PLACEMENT, MENU_ACTION_TOGGLE_CONTROLS, MENU_ACTION_ADJUST_SCALE,
|
@IntDef({MENU_ACTION_EDIT_CONTROLS_PLACEMENT, MENU_ACTION_TOGGLE_CONTROLS, MENU_ACTION_ADJUST_SCALE,
|
||||||
MENU_ACTION_EXIT, MENU_ACTION_SHOW_FPS, MENU_ACTION_SCREEN_LAYOUT_LANDSCAPE,
|
MENU_ACTION_EXIT, MENU_ACTION_SHOW_FPS, MENU_ACTION_SCREEN_LAYOUT_LANDSCAPE,
|
||||||
MENU_ACTION_SCREEN_LAYOUT_PORTRAIT, MENU_ACTION_SCREEN_LAYOUT_SINGLE, MENU_ACTION_SCREEN_LAYOUT_SIDEBYSIDE,
|
MENU_ACTION_SCREEN_LAYOUT_PORTRAIT, MENU_ACTION_SCREEN_LAYOUT_SINGLE, MENU_ACTION_SCREEN_LAYOUT_SIDEBYSIDE,
|
||||||
MENU_ACTION_SWAP_SCREENS, MENU_ACTION_RESET_OVERLAY, MENU_ACTION_SHOW_OVERLAY})
|
MENU_ACTION_SWAP_SCREENS, MENU_ACTION_RESET_OVERLAY, MENU_ACTION_SHOW_OVERLAY, MENU_ACTION_OPEN_SETTINGS})
|
||||||
public @interface MenuAction {
|
public @interface MenuAction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ char16_t* GetTitle(std::string physical_name) {
|
|||||||
char16_t* title;
|
char16_t* title;
|
||||||
title = reinterpret_cast<char16_t*>(smdh.titles[static_cast<int>(language)].long_title.data());
|
title = reinterpret_cast<char16_t*>(smdh.titles[static_cast<int>(language)].long_title.data());
|
||||||
|
|
||||||
LOG_INFO(Frontend, "Title: %s", Common::UTF16ToUTF8(title).data());
|
LOG_INFO(Frontend, "Title: {}", Common::UTF16ToUTF8(title));
|
||||||
|
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
@ -91,7 +91,7 @@ char16_t* GetPublisher(std::string physical_name) {
|
|||||||
publisher =
|
publisher =
|
||||||
reinterpret_cast<char16_t*>(smdh.titles[static_cast<int>(language)].publisher.data());
|
reinterpret_cast<char16_t*>(smdh.titles[static_cast<int>(language)].publisher.data());
|
||||||
|
|
||||||
LOG_INFO(Frontend, "Publisher: %s", Common::UTF16ToUTF8(publisher).data());
|
LOG_INFO(Frontend, "Publisher: {}", Common::UTF16ToUTF8(publisher));
|
||||||
|
|
||||||
return publisher;
|
return publisher;
|
||||||
}
|
}
|
||||||
|
@ -3,32 +3,21 @@
|
|||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <string>
|
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
// This needs to be included before getopt.h because the latter #defines symbols used by it
|
|
||||||
#include "common/microprofile.h"
|
|
||||||
|
|
||||||
#include <getopt.h>
|
|
||||||
|
|
||||||
#include <android/native_window_jni.h>
|
#include <android/native_window_jni.h>
|
||||||
#include <jni.h>
|
|
||||||
|
|
||||||
#include "common/file_util.h"
|
#include "common/file_util.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
|
#include "common/microprofile.h"
|
||||||
#include "common/scm_rev.h"
|
#include "common/scm_rev.h"
|
||||||
#include "common/scope_exit.h"
|
#include "common/scope_exit.h"
|
||||||
#include "common/string_util.h"
|
#include "common/string_util.h"
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
#include "core/file_sys/cia_container.h"
|
|
||||||
#include "core/frontend/applets/default_applets.h"
|
#include "core/frontend/applets/default_applets.h"
|
||||||
#include "core/frontend/scope_acquire_context.h"
|
#include "core/frontend/scope_acquire_context.h"
|
||||||
#include "core/gdbstub/gdbstub.h"
|
|
||||||
#include "core/hle/service/am/am.h"
|
#include "core/hle/service/am/am.h"
|
||||||
#include "core/loader/loader.h"
|
|
||||||
#include "core/movie.h"
|
|
||||||
#include "core/settings.h"
|
#include "core/settings.h"
|
||||||
#include "jni/button_manager.h"
|
#include "jni/button_manager.h"
|
||||||
#include "jni/config.h"
|
#include "jni/config.h"
|
||||||
@ -37,17 +26,12 @@
|
|||||||
#include "jni/id_cache.h"
|
#include "jni/id_cache.h"
|
||||||
#include "jni/native.h"
|
#include "jni/native.h"
|
||||||
#include "jni/ndk_motion.h"
|
#include "jni/ndk_motion.h"
|
||||||
#include "network/network.h"
|
|
||||||
#include "video_core/renderer_base.h"
|
#include "video_core/renderer_base.h"
|
||||||
#include "video_core/video_core.h"
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
ANativeWindow* s_surf;
|
ANativeWindow* s_surf;
|
||||||
|
|
||||||
jclass s_jni_class;
|
|
||||||
jmethodID s_jni_method_alert;
|
|
||||||
|
|
||||||
std::unique_ptr<EmuWindow_Android> window;
|
std::unique_ptr<EmuWindow_Android> window;
|
||||||
|
|
||||||
std::atomic<bool> is_running{false};
|
std::atomic<bool> is_running{false};
|
||||||
@ -118,7 +102,6 @@ static Core::System::ResultStatus RunCitra(const std::string& filepath) {
|
|||||||
LOG_INFO(Frontend, "Citra is Starting");
|
LOG_INFO(Frontend, "Citra is Starting");
|
||||||
|
|
||||||
MicroProfileOnThreadCreate("EmuThread");
|
MicroProfileOnThreadCreate("EmuThread");
|
||||||
SCOPE_EXIT({ MicroProfileShutdown(); });
|
|
||||||
|
|
||||||
if (filepath.empty()) {
|
if (filepath.empty()) {
|
||||||
LOG_CRITICAL(Frontend, "Failed to load ROM: No ROM specified");
|
LOG_CRITICAL(Frontend, "Failed to load ROM: No ROM specified");
|
||||||
@ -126,23 +109,18 @@ static Core::System::ResultStatus RunCitra(const std::string& filepath) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
window = std::make_unique<EmuWindow_Android>(s_surf);
|
window = std::make_unique<EmuWindow_Android>(s_surf);
|
||||||
SCOPE_EXIT({ window.reset(); });
|
|
||||||
|
|
||||||
Core::System& system{Core::System::GetInstance()};
|
Core::System& system{Core::System::GetInstance()};
|
||||||
SCOPE_EXIT({ system.Shutdown(); });
|
|
||||||
|
|
||||||
{
|
|
||||||
// Forces a config reload on game boot, if the user changed settings in the UI
|
// Forces a config reload on game boot, if the user changed settings in the UI
|
||||||
Config config;
|
Config{};
|
||||||
Settings::Apply();
|
Settings::Apply();
|
||||||
}
|
|
||||||
|
|
||||||
// Register frontend applets
|
// Register frontend applets
|
||||||
Frontend::RegisterDefaultApplets();
|
Frontend::RegisterDefaultApplets();
|
||||||
system.RegisterSoftwareKeyboard(std::make_shared<AndroidKeyboard>());
|
system.RegisterSoftwareKeyboard(std::make_shared<AndroidKeyboard>());
|
||||||
|
|
||||||
InputManager::Init();
|
InputManager::Init();
|
||||||
SCOPE_EXIT({ InputManager::Shutdown(); });
|
|
||||||
|
|
||||||
Frontend::ScopeAcquireContext scope(*window);
|
Frontend::ScopeAcquireContext scope(*window);
|
||||||
const Core::System::ResultStatus load_result{system.Load(*window, filepath)};
|
const Core::System::ResultStatus load_result{system.Load(*window, filepath)};
|
||||||
@ -166,16 +144,24 @@ static Core::System::ResultStatus RunCitra(const std::string& filepath) {
|
|||||||
SCOPE_EXIT({ Settings::values.volume = volume; });
|
SCOPE_EXIT({ Settings::values.volume = volume; });
|
||||||
Settings::values.volume = 0;
|
Settings::values.volume = 0;
|
||||||
|
|
||||||
std::unique_lock<std::mutex> lock(paused_mutex);
|
std::unique_lock<std::mutex> pause_lock(paused_mutex);
|
||||||
running_cv.wait(lock, [] { return !pause_emulation || !is_running; });
|
running_cv.wait(pause_lock, [] { return !pause_emulation || !is_running; });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window->StopPresenting();
|
window->StopPresenting();
|
||||||
|
|
||||||
|
system.Shutdown();
|
||||||
|
window.reset();
|
||||||
|
InputManager::Shutdown();
|
||||||
|
MicroProfileShutdown();
|
||||||
|
|
||||||
return Core::System::ResultStatus::Success;
|
return Core::System::ResultStatus::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env, jobject obj,
|
extern "C" {
|
||||||
|
|
||||||
|
void Java_org_citra_citra_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz,
|
||||||
jobject surf) {
|
jobject surf) {
|
||||||
s_surf = ANativeWindow_fromSurface(env, surf);
|
s_surf = ANativeWindow_fromSurface(env, surf);
|
||||||
|
|
||||||
@ -186,7 +172,9 @@ void Java_org_citra_citra_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env, jobject
|
|||||||
LOG_INFO(Frontend, "Surface changed");
|
LOG_INFO(Frontend, "Surface changed");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env, jobject obj) {
|
void Java_org_citra_citra_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env,
|
||||||
|
[[maybe_unused]] [
|
||||||
|
[maybe_unused]] jclass clazz) {
|
||||||
ANativeWindow_release(s_surf);
|
ANativeWindow_release(s_surf);
|
||||||
s_surf = nullptr;
|
s_surf = nullptr;
|
||||||
if (window) {
|
if (window) {
|
||||||
@ -194,16 +182,17 @@ void Java_org_citra_citra_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env, jobje
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_NotifyOrientationChange(
|
void Java_org_citra_citra_1emu_NativeLibrary_NotifyOrientationChange(JNIEnv* env,
|
||||||
JNIEnv* env, jclass clazz, jint layout_option, jint rotation) {
|
[[maybe_unused]] jclass clazz,
|
||||||
|
jint layout_option,
|
||||||
|
jint rotation) {
|
||||||
Settings::values.layout_option = static_cast<Settings::LayoutOption>(layout_option);
|
Settings::values.layout_option = static_cast<Settings::LayoutOption>(layout_option);
|
||||||
VideoCore::g_renderer->UpdateCurrentFramebufferLayout(!(rotation % 2));
|
VideoCore::g_renderer->UpdateCurrentFramebufferLayout(!(rotation % 2));
|
||||||
InputManager::screen_rotation = rotation;
|
InputManager::screen_rotation = rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SwapScreens(JNIEnv* env, jclass clazz,
|
void Java_org_citra_citra_1emu_NativeLibrary_SwapScreens(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jboolean swap_screens,
|
jboolean swap_screens, jint rotation) {
|
||||||
jint rotation) {
|
|
||||||
Settings::values.swap_screen = swap_screens;
|
Settings::values.swap_screen = swap_screens;
|
||||||
if (VideoCore::g_renderer) {
|
if (VideoCore::g_renderer) {
|
||||||
VideoCore::g_renderer->UpdateCurrentFramebufferLayout(!(rotation % 2));
|
VideoCore::g_renderer->UpdateCurrentFramebufferLayout(!(rotation % 2));
|
||||||
@ -211,90 +200,100 @@ void Java_org_citra_citra_1emu_NativeLibrary_SwapScreens(JNIEnv* env, jclass cla
|
|||||||
InputManager::screen_rotation = rotation;
|
InputManager::screen_rotation = rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SetUserDirectory(JNIEnv* env, jobject obj,
|
void Java_org_citra_citra_1emu_NativeLibrary_SetUserDirectory(JNIEnv* env,
|
||||||
jstring jDirectory) {
|
[[maybe_unused]] jclass clazz,
|
||||||
FileUtil::SetCurrentDir(GetJString(env, jDirectory));
|
jstring j_directory) {
|
||||||
|
FileUtil::SetCurrentDir(GetJString(env, j_directory));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_UnPauseEmulation(JNIEnv* env, jobject obj) {
|
void Java_org_citra_citra_1emu_NativeLibrary_UnPauseEmulation(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
pause_emulation = false;
|
pause_emulation = false;
|
||||||
running_cv.notify_all();
|
running_cv.notify_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_PauseEmulation(JNIEnv* env, jobject obj) {
|
void Java_org_citra_citra_1emu_NativeLibrary_PauseEmulation(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
pause_emulation = true;
|
pause_emulation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_StopEmulation(JNIEnv* env, jobject obj) {
|
void Java_org_citra_citra_1emu_NativeLibrary_StopEmulation(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
is_running = false;
|
is_running = false;
|
||||||
pause_emulation = false;
|
pause_emulation = false;
|
||||||
running_cv.notify_all();
|
running_cv.notify_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
jboolean Java_org_citra_citra_1emu_NativeLibrary_IsRunning(JNIEnv* env, jobject obj) {
|
jboolean Java_org_citra_citra_1emu_NativeLibrary_IsRunning(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
return static_cast<jboolean>(is_running);
|
return static_cast<jboolean>(is_running);
|
||||||
}
|
}
|
||||||
|
|
||||||
jboolean Java_org_citra_citra_1emu_NativeLibrary_onGamePadEvent(JNIEnv* env, jobject obj,
|
jboolean Java_org_citra_citra_1emu_NativeLibrary_onGamePadEvent(JNIEnv* env,
|
||||||
jstring jDevice, jint button,
|
[[maybe_unused]] jclass clazz,
|
||||||
jint pressed) {
|
jstring j_device, jint j_button,
|
||||||
|
jint action) {
|
||||||
bool consumed{};
|
bool consumed{};
|
||||||
if (pressed) {
|
if (action) {
|
||||||
consumed = InputManager::ButtonHandler()->PressKey(button);
|
consumed = InputManager::ButtonHandler()->PressKey(j_button);
|
||||||
} else {
|
} else {
|
||||||
consumed = InputManager::ButtonHandler()->ReleaseKey(button);
|
consumed = InputManager::ButtonHandler()->ReleaseKey(j_button);
|
||||||
}
|
}
|
||||||
|
|
||||||
return static_cast<jboolean>(consumed);
|
return static_cast<jboolean>(consumed);
|
||||||
}
|
}
|
||||||
|
|
||||||
jboolean Java_org_citra_citra_1emu_NativeLibrary_onGamePadMoveEvent(JNIEnv* env, jobject obj,
|
jboolean Java_org_citra_citra_1emu_NativeLibrary_onGamePadMoveEvent(JNIEnv* env,
|
||||||
jstring jDevice, jint Axis,
|
[[maybe_unused]] jclass clazz,
|
||||||
|
jstring j_device, jint axis,
|
||||||
jfloat x, jfloat y) {
|
jfloat x, jfloat y) {
|
||||||
// Clamp joystick movement to supported minimum and maximum
|
// Clamp joystick movement to supported minimum and maximum
|
||||||
// Citra uses an inverted y axis sent by the frontend
|
// Citra uses an inverted y axis sent by the frontend
|
||||||
x = std::clamp(x, -1.f, 1.f);
|
x = std::clamp(x, -1.f, 1.f);
|
||||||
y = std::clamp(-y, -1.f, 1.f);
|
y = std::clamp(-y, -1.f, 1.f);
|
||||||
return static_cast<jboolean>(InputManager::AnalogHandler()->MoveJoystick(Axis, x, y));
|
return static_cast<jboolean>(InputManager::AnalogHandler()->MoveJoystick(axis, x, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
jboolean Java_org_citra_citra_1emu_NativeLibrary_onGamePadAxisEvent(JNIEnv* env, jobject obj,
|
jboolean Java_org_citra_citra_1emu_NativeLibrary_onGamePadAxisEvent(JNIEnv* env,
|
||||||
jstring jDevice,
|
[[maybe_unused]] jclass clazz,
|
||||||
jint axis_id,
|
jstring j_device, jint axis_id,
|
||||||
jfloat axis_val) {
|
jfloat axis_val) {
|
||||||
return static_cast<jboolean>(
|
return static_cast<jboolean>(
|
||||||
InputManager::ButtonHandler()->AnalogButtonEvent(axis_id, axis_val));
|
InputManager::ButtonHandler()->AnalogButtonEvent(axis_id, axis_val));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_onTouchEvent(JNIEnv* env, jobject obj, jfloat x,
|
void Java_org_citra_citra_1emu_NativeLibrary_onTouchEvent(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz, jfloat x,
|
||||||
jfloat y, jboolean pressed) {
|
jfloat y, jboolean pressed) {
|
||||||
window->OnTouchEvent((int)x, (int)y, (bool)pressed);
|
window->OnTouchEvent((int)x, (int)y, (bool)pressed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_onTouchMoved(JNIEnv* env, jobject obj, jfloat x,
|
void Java_org_citra_citra_1emu_NativeLibrary_onTouchMoved(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz, jfloat x,
|
||||||
jfloat y) {
|
jfloat y) {
|
||||||
window->OnTouchMoved((int)x, (int)y);
|
window->OnTouchMoved((int)x, (int)y);
|
||||||
}
|
}
|
||||||
|
|
||||||
jintArray Java_org_citra_citra_1emu_NativeLibrary_GetBanner(JNIEnv* env, jobject obj,
|
jintArray Java_org_citra_citra_1emu_NativeLibrary_GetBanner(JNIEnv* env,
|
||||||
jstring jFilepath) {
|
[[maybe_unused]] jclass clazz,
|
||||||
std::string filepath = GetJString(env, jFilepath);
|
jstring j_file) {
|
||||||
|
std::string filepath = GetJString(env, j_file);
|
||||||
|
|
||||||
std::vector<u16> icon_data = GameInfo::GetIcon(filepath);
|
std::vector<u16> icon_data = GameInfo::GetIcon(filepath);
|
||||||
if (icon_data.size() == 0) {
|
if (icon_data.size() == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
jintArray Banner = env->NewIntArray(icon_data.size());
|
jintArray banner = env->NewIntArray(static_cast<jsize>(icon_data.size()));
|
||||||
env->SetIntArrayRegion(Banner, 0, env->GetArrayLength(Banner),
|
env->SetIntArrayRegion(banner, 0, env->GetArrayLength(banner),
|
||||||
reinterpret_cast<jint*>(icon_data.data()));
|
reinterpret_cast<jint*>(icon_data.data()));
|
||||||
|
|
||||||
return Banner;
|
return banner;
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetTitle(JNIEnv* env, jobject obj,
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetTitle(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jstring jFilepath) {
|
jstring j_filename) {
|
||||||
std::string filepath = GetJString(env, jFilepath);
|
std::string filepath = GetJString(env, j_filename);
|
||||||
|
|
||||||
char16_t* Title = GameInfo::GetTitle(filepath);
|
char16_t* Title = GameInfo::GetTitle(filepath);
|
||||||
|
|
||||||
@ -305,147 +304,167 @@ jstring Java_org_citra_citra_1emu_NativeLibrary_GetTitle(JNIEnv* env, jobject ob
|
|||||||
return env->NewStringUTF(Common::UTF16ToUTF8(Title).data());
|
return env->NewStringUTF(Common::UTF16ToUTF8(Title).data());
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetDescription(JNIEnv* env, jobject obj,
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetDescription(JNIEnv* env,
|
||||||
jstring jFilename) {
|
[[maybe_unused]] jclass clazz,
|
||||||
return jFilename;
|
jstring j_filename) {
|
||||||
|
return j_filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetGameId(JNIEnv* env, jobject obj,
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetGameId(JNIEnv* env,
|
||||||
jstring jFilename) {
|
[[maybe_unused]] jclass clazz,
|
||||||
return jFilename;
|
jstring j_filename) {
|
||||||
|
return j_filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
jint Java_org_citra_citra_1emu_NativeLibrary_GetCountry(JNIEnv* env, jobject obj,
|
jint Java_org_citra_citra_1emu_NativeLibrary_GetCountry(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jstring jFilename) {
|
jstring j_filename) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetCompany(JNIEnv* env, jobject obj,
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetCompany(JNIEnv* env,
|
||||||
jstring jFilepath) {
|
[[maybe_unused]] jclass clazz,
|
||||||
std::string filepath = GetJString(env, jFilepath);
|
jstring j_filename) {
|
||||||
|
std::string filepath = GetJString(env, j_filename);
|
||||||
|
|
||||||
char16_t* Publisher = GameInfo::GetPublisher(filepath);
|
char16_t* publisher = GameInfo::GetPublisher(filepath);
|
||||||
|
|
||||||
if (!Publisher) {
|
if (!publisher) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
return env->NewStringUTF(Common::UTF16ToUTF8(Publisher).data());
|
return env->NewStringUTF(Common::UTF16ToUTF8(publisher).data());
|
||||||
}
|
}
|
||||||
|
|
||||||
jlong Java_org_citra_citra_1emu_NativeLibrary_GetFilesize(JNIEnv* env, jobject obj,
|
jlong Java_org_citra_citra_1emu_NativeLibrary_GetFilesize(JNIEnv* env,
|
||||||
jstring jFilename) {
|
[[maybe_unused]] jclass clazz,
|
||||||
|
jstring j_filename) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetVersionString(JNIEnv* env, jobject obj) {
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetVersionString(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetGitRevision(JNIEnv* env, jobject obj) {
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetGitRevision(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SaveScreenShot(JNIEnv* env, jobject obj) {}
|
void Java_org_citra_citra_1emu_NativeLibrary_SaveScreenShot(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_eglBindAPI(JNIEnv* env, jobject obj, jint api) {}
|
void Java_org_citra_citra_1emu_NativeLibrary_eglBindAPI(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
|
jint api) {}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetConfig(JNIEnv* env, jobject obj,
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetConfig(JNIEnv* env,
|
||||||
jstring jFile, jstring jSection,
|
[[maybe_unused]] jclass clazz,
|
||||||
jstring jKey, jstring jDefault) {
|
jstring j_file, jstring j_section,
|
||||||
|
jstring j_key, jstring j_default) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SetConfig(JNIEnv* env, jobject obj, jstring jFile,
|
void Java_org_citra_citra_1emu_NativeLibrary_SetConfig(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jstring jSection, jstring jKey,
|
jstring j_file, jstring j_section,
|
||||||
jstring jValue) {}
|
jstring j_key, jstring j_value) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SetFilename(JNIEnv* env, jobject obj,
|
void Java_org_citra_citra_1emu_NativeLibrary_SetFilename(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jstring jFile) {}
|
jstring j_file) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SaveState(JNIEnv* env, jobject obj, jint slot,
|
void Java_org_citra_citra_1emu_NativeLibrary_SaveState(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jboolean wait) {}
|
jint slot, jboolean wait) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SaveStateAs(JNIEnv* env, jobject obj, jstring path,
|
void Java_org_citra_citra_1emu_NativeLibrary_SaveStateAs(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jboolean wait) {}
|
jstring path, jboolean wait) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_LoadState(JNIEnv* env, jobject obj, jint slot) {}
|
void Java_org_citra_citra_1emu_NativeLibrary_LoadState(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
|
jint slot) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_LoadStateAs(JNIEnv* env, jobject obj,
|
void Java_org_citra_citra_1emu_NativeLibrary_LoadStateAs(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jstring path) {}
|
jstring path) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_utils_DirectoryInitialization_CreateUserDirectories(
|
void Java_org_citra_citra_1emu_utils_DirectoryInitialization_CreateUserDirectories(
|
||||||
JNIEnv* env, jobject obj) {}
|
JNIEnv* env, [[maybe_unused]] jclass clazz) {}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetUserDirectory(JNIEnv* env, jobject obj) {
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetUserDirectory(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_CreateConfigFile() {
|
void Java_org_citra_citra_1emu_NativeLibrary_CreateConfigFile(JNIEnv* env,
|
||||||
new Config();
|
[[maybe_unused]] jclass clazz) {
|
||||||
|
Config{};
|
||||||
}
|
}
|
||||||
|
|
||||||
jint Java_org_citra_citra_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env, jobject obj) {
|
jint Java_org_citra_citra_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SetProfiling(JNIEnv* env, jobject obj,
|
void Java_org_citra_citra_1emu_NativeLibrary_SetProfiling(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz,
|
||||||
jboolean enable) {}
|
jboolean enable) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_WriteProfileResults(JNIEnv* env, jobject obj) {}
|
void Java_org_citra_citra_1emu_NativeLibrary_WriteProfileResults(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2Ljava_lang_String_2Z(
|
void Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2Ljava_lang_String_2Z(
|
||||||
JNIEnv* env, jobject obj, jstring jFile, jstring jSavestate, jboolean jDeleteSavestate) {}
|
JNIEnv* env, [[maybe_unused]] jclass clazz, jstring j_file, jstring j_savestate,
|
||||||
|
jboolean j_delete_savestate) {}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_ReloadSettings(JNIEnv* env, jclass type) {
|
void Java_org_citra_citra_1emu_NativeLibrary_ReloadSettings(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
Config{};
|
Config{};
|
||||||
Settings::Apply();
|
Settings::Apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
jstring Java_org_citra_citra_1emu_NativeLibrary_GetUserSetting(JNIEnv* env, jclass type,
|
jstring Java_org_citra_citra_1emu_NativeLibrary_GetUserSetting(JNIEnv* env,
|
||||||
jstring gameID_,
|
[[maybe_unused]] jclass clazz,
|
||||||
jstring Section_, jstring Key_) {
|
jstring j_game_id, jstring j_section,
|
||||||
const char* gameID = env->GetStringUTFChars(gameID_, 0);
|
jstring j_key) {
|
||||||
const char* Section = env->GetStringUTFChars(Section_, 0);
|
std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
|
||||||
const char* Key = env->GetStringUTFChars(Key_, 0);
|
std::string_view section = env->GetStringUTFChars(j_section, 0);
|
||||||
|
std::string_view key = env->GetStringUTFChars(j_key, 0);
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
|
||||||
env->ReleaseStringUTFChars(gameID_, gameID);
|
env->ReleaseStringUTFChars(j_game_id, game_id.data());
|
||||||
env->ReleaseStringUTFChars(Section_, Section);
|
env->ReleaseStringUTFChars(j_section, section.data());
|
||||||
env->ReleaseStringUTFChars(Key_, Key);
|
env->ReleaseStringUTFChars(j_key, key.data());
|
||||||
|
|
||||||
return env->NewStringUTF("");
|
return env->NewStringUTF("");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_SetUserSetting(JNIEnv* env, jclass type,
|
void Java_org_citra_citra_1emu_NativeLibrary_SetUserSetting(JNIEnv* env,
|
||||||
jstring gameID_, jstring Section_,
|
[[maybe_unused]] jclass clazz,
|
||||||
jstring Key_, jstring Value_) {
|
jstring j_game_id, jstring j_section,
|
||||||
const char* gameID = env->GetStringUTFChars(gameID_, 0);
|
jstring j_key, jstring j_value) {
|
||||||
const char* Section = env->GetStringUTFChars(Section_, 0);
|
std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
|
||||||
const char* Key = env->GetStringUTFChars(Key_, 0);
|
std::string_view section = env->GetStringUTFChars(j_section, 0);
|
||||||
const char* Value = env->GetStringUTFChars(Value_, 0);
|
std::string_view key = env->GetStringUTFChars(j_key, 0);
|
||||||
|
std::string_view value = env->GetStringUTFChars(j_value, 0);
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
|
||||||
env->ReleaseStringUTFChars(gameID_, gameID);
|
env->ReleaseStringUTFChars(j_game_id, game_id.data());
|
||||||
env->ReleaseStringUTFChars(Section_, Section);
|
env->ReleaseStringUTFChars(j_section, section.data());
|
||||||
env->ReleaseStringUTFChars(Key_, Key);
|
env->ReleaseStringUTFChars(j_key, key.data());
|
||||||
env->ReleaseStringUTFChars(Value_, Value);
|
env->ReleaseStringUTFChars(j_value, value.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_InitGameIni(JNIEnv* env, jclass type,
|
void Java_org_citra_citra_1emu_NativeLibrary_InitGameIni(JNIEnv* env, [[maybe_unused]] jclass clazz,
|
||||||
jstring gameID_) {
|
jstring j_game_id) {
|
||||||
const char* gameID = env->GetStringUTFChars(gameID_, 0);
|
std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
|
||||||
env->ReleaseStringUTFChars(gameID_, gameID);
|
env->ReleaseStringUTFChars(j_game_id, game_id.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
jdoubleArray Java_org_citra_citra_1emu_NativeLibrary_GetPerfStats(JNIEnv* env, jclass type) {
|
jdoubleArray Java_org_citra_citra_1emu_NativeLibrary_GetPerfStats(JNIEnv* env,
|
||||||
|
[[maybe_unused]] jclass clazz) {
|
||||||
auto& core = Core::System::GetInstance();
|
auto& core = Core::System::GetInstance();
|
||||||
jdoubleArray jstats = env->NewDoubleArray(4);
|
jdoubleArray j_stats = env->NewDoubleArray(4);
|
||||||
|
|
||||||
if (core.IsPoweredOn()) {
|
if (core.IsPoweredOn()) {
|
||||||
auto results = core.GetAndResetPerfStats();
|
auto results = core.GetAndResetPerfStats();
|
||||||
@ -454,22 +473,23 @@ jdoubleArray Java_org_citra_citra_1emu_NativeLibrary_GetPerfStats(JNIEnv* env, j
|
|||||||
double stats[4] = {results.system_fps, results.game_fps, results.frametime,
|
double stats[4] = {results.system_fps, results.game_fps, results.frametime,
|
||||||
results.emulation_speed};
|
results.emulation_speed};
|
||||||
|
|
||||||
env->SetDoubleArrayRegion(jstats, 0, 4, stats);
|
env->SetDoubleArrayRegion(j_stats, 0, 4, stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
return jstats;
|
return j_stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_utils_DirectoryInitialization_SetSysDirectory(
|
void Java_org_citra_citra_1emu_utils_DirectoryInitialization_SetSysDirectory(
|
||||||
JNIEnv* env, jclass type, jstring path_) {
|
JNIEnv* env, [[maybe_unused]] jclass clazz, jstring j_path) {
|
||||||
const char* path = env->GetStringUTFChars(path_, 0);
|
std::string_view path = env->GetStringUTFChars(j_path, 0);
|
||||||
|
|
||||||
env->ReleaseStringUTFChars(path_, path);
|
env->ReleaseStringUTFChars(j_path, path.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2(JNIEnv* env, jclass type,
|
void Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2(JNIEnv* env,
|
||||||
jstring path_) {
|
[[maybe_unused]] jclass clazz,
|
||||||
const std::string path = GetJString(env, path_);
|
jstring j_path) {
|
||||||
|
const std::string path = GetJString(env, j_path);
|
||||||
|
|
||||||
if (is_running) {
|
if (is_running) {
|
||||||
is_running = false;
|
is_running = false;
|
||||||
@ -482,3 +502,5 @@ void Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2(JNIEnv* en
|
|||||||
IDCache::GetExitEmulationActivity(), static_cast<int>(result));
|
IDCache::GetExitEmulationActivity(), static_cast<int>(result));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // extern "C"
|
||||||
|
@ -12,166 +12,164 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_UnPauseEmulation(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_UnPauseEmulation(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_PauseEmulation(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_PauseEmulation(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_StopEmulation(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_StopEmulation(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_IsRunning(JNIEnv* env,
|
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_IsRunning(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_onGamePadEvent(
|
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_onGamePadEvent(
|
||||||
JNIEnv* env, jobject obj, jstring jDevice, jint Button, jint Action);
|
JNIEnv* env, jclass clazz, jstring j_device, jint j_button, jint action);
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_onGamePadMoveEvent(
|
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_onGamePadMoveEvent(
|
||||||
JNIEnv* env, jobject obj, jstring jDevice, jint Axis, jfloat x, jfloat y);
|
JNIEnv* env, jclass clazz, jstring j_device, jint axis, jfloat x, jfloat y);
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_onGamePadAxisEvent(
|
JNIEXPORT jboolean JNICALL Java_org_citra_citra_1emu_NativeLibrary_onGamePadAxisEvent(
|
||||||
JNIEnv* env, jobject obj, jstring jDevice, jint axis_id, jfloat axis_val);
|
JNIEnv* env, jclass clazz, jstring j_device, jint axis_id, jfloat axis_val);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_onTouchEvent(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_onTouchEvent(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz, jfloat x,
|
||||||
jfloat x, jfloat y,
|
jfloat y,
|
||||||
jboolean pressed);
|
jboolean pressed);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_onTouchMoved(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_onTouchMoved(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz, jfloat x,
|
||||||
jfloat x, jfloat y);
|
jfloat y);
|
||||||
|
|
||||||
JNIEXPORT jintArray JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetBanner(JNIEnv* env,
|
JNIEXPORT jintArray JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetBanner(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring jFile);
|
jstring j_file);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetTitle(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetTitle(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring jFilename);
|
jstring j_filename);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetDescription(
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetDescription(JNIEnv* env,
|
||||||
JNIEnv* env, jobject obj, jstring jFilename);
|
jclass clazz,
|
||||||
|
jstring j_filename);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetGameId(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetGameId(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring jFilename);
|
jstring j_filename);
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetCountry(JNIEnv* env,
|
JNIEXPORT jint JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetCountry(JNIEnv* env, jclass clazz,
|
||||||
jobject obj,
|
jstring j_filename);
|
||||||
jstring jFilename);
|
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetCompany(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetCompany(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring jFilename);
|
jstring j_filename);
|
||||||
|
|
||||||
JNIEXPORT jlong JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetFilesize(JNIEnv* env,
|
JNIEXPORT jlong JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetFilesize(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring jFilename);
|
jstring j_filename);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetVersionString(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetVersionString(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetGitRevision(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetGitRevision(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SaveScreenShot(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SaveScreenShot(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_eglBindAPI(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_eglBindAPI(JNIEnv* env, jclass clazz,
|
||||||
jobject obj,
|
|
||||||
jint api);
|
jint api);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetConfig(
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetConfig(
|
||||||
JNIEnv* env, jobject obj, jstring jFile, jstring jSection, jstring jKey, jstring jDefault);
|
JNIEnv* env, jclass clazz, jstring j_file, jstring j_section, jstring j_key, jstring j_default);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetConfig(
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetConfig(
|
||||||
JNIEnv* env, jobject obj, jstring jFile, jstring jSection, jstring jKey, jstring jValue);
|
JNIEnv* env, jclass clazz, jstring j_file, jstring j_section, jstring j_key, jstring j_value);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetFilename(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetFilename(JNIEnv* env, jclass clazz,
|
||||||
jobject obj,
|
jstring j_file);
|
||||||
jstring jFile);
|
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SaveState(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SaveState(JNIEnv* env, jclass clazz,
|
||||||
jobject obj, jint slot,
|
jint slot, jboolean wait);
|
||||||
jboolean wait);
|
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SaveStateAs(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SaveStateAs(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring path,
|
jstring path,
|
||||||
jboolean wait);
|
jboolean wait);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_LoadState(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_LoadState(JNIEnv* env, jclass clazz,
|
||||||
jobject obj,
|
|
||||||
jint slot);
|
jint slot);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_LoadStateAs(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_LoadStateAs(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring path);
|
jstring path);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
Java_org_citra_citra_1emu_utils_DirectoryInitialization_CreateUserDirectories(
|
Java_org_citra_citra_1emu_utils_DirectoryInitialization_CreateUserDirectories(JNIEnv* env,
|
||||||
JNIEnv* env, jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetUserDirectory(
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetUserDirectory(JNIEnv* env,
|
||||||
JNIEnv* env, jobject obj, jstring jDirectory);
|
jclass clazz,
|
||||||
|
jstring j_directory);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_utils_DirectoryInitialization_SetSysDirectory(
|
||||||
Java_org_citra_citra_1emu_utils_DirectoryInitialization_SetSysDirectory(
|
JNIEnv* env, jclass clazz, jstring path_);
|
||||||
JNIEnv* env, jclass type, jstring path_);
|
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetUserDirectory(JNIEnv* env,
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetUserDirectory(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetSysDirectory(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetSysDirectory(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jstring path);
|
jstring path);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_CreateConfigFile();
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_CreateConfigFile(JNIEnv* env,
|
||||||
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_org_citra_citra_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
|
JNIEXPORT jint JNICALL Java_org_citra_citra_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetProfiling(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetProfiling(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jboolean enable);
|
jboolean enable);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_WriteProfileResults(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_WriteProfileResults(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_NotifyOrientationChange(
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_NotifyOrientationChange(
|
||||||
JNIEnv* env, jclass clazz, jint layout_option, jint rotation);
|
JNIEnv* env, jclass clazz, jint layout_option, jint rotation);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SwapScreens(
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SwapScreens(JNIEnv* env,
|
||||||
JNIEnv* env, jclass clazz, jboolean swap_screens, jint rotation);
|
jclass clazz,
|
||||||
|
jboolean swap_screens,
|
||||||
|
jint rotation);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2(
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2(
|
||||||
JNIEnv* env, jclass type, jstring path_);
|
JNIEnv* env, jclass clazz, jstring j_path);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2Ljava_lang_String_2Z(
|
Java_org_citra_citra_1emu_NativeLibrary_Run__Ljava_lang_String_2Ljava_lang_String_2Z(
|
||||||
JNIEnv* env, jobject obj, jstring jFile, jstring jSavestate, jboolean jDeleteSavestate);
|
JNIEnv* env, jclass clazz, jstring j_file, jstring j_savestate, jboolean j_delete_savestate);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env,
|
||||||
jobject obj,
|
jclass clazz,
|
||||||
jobject surf);
|
jobject surf);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env,
|
||||||
jobject obj);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_InitGameIni(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_InitGameIni(JNIEnv* env, jclass clazz,
|
||||||
jclass type,
|
jstring j_game_id);
|
||||||
jstring gameID_);
|
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_ReloadSettings(JNIEnv* env,
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_ReloadSettings(JNIEnv* env,
|
||||||
jclass type);
|
jclass clazz);
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetUserSetting(
|
JNIEXPORT void JNICALL Java_org_citra_citra_1emu_NativeLibrary_SetUserSetting(
|
||||||
JNIEnv* env, jclass type, jstring gameID_, jstring Section_, jstring Key_, jstring Value_);
|
JNIEnv* env, jclass clazz, jstring j_game_id, jstring j_section, jstring j_key, jstring j_value);
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetUserSetting(
|
JNIEXPORT jstring JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetUserSetting(
|
||||||
JNIEnv* env, jclass type, jstring gameID_, jstring Section_, jstring Key_);
|
JNIEnv* env, jclass clazz, jstring game_id, jstring section, jstring key);
|
||||||
|
|
||||||
JNIEXPORT jdoubleArray JNICALL
|
JNIEXPORT jdoubleArray JNICALL Java_org_citra_citra_1emu_NativeLibrary_GetPerfStats(JNIEnv* env,
|
||||||
Java_org_citra_citra_1emu_NativeLibrary_GetPerfStats(JNIEnv* env, jclass type);
|
jclass clazz);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user