diff options
Diffstat (limited to '')
| -rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt | 15 | ||||
| -rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt | 43 | ||||
| -rw-r--r-- | src/android/app/src/main/jni/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/android/app/src/main/jni/native.cpp | 150 | ||||
| -rw-r--r-- | src/android/app/src/main/jni/native.h | 165 | ||||
| -rw-r--r-- | src/android/app/src/main/res/drawable/ic_pip_sound.xml (renamed from src/android/app/src/main/res/drawable/ic_pip_audio.xml) | 0 | ||||
| -rw-r--r-- | src/android/app/src/main/res/values/strings.xml | 2 |
7 files changed, 99 insertions, 277 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt index f860cdd4b..6a4e07046 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt | |||
| @@ -314,6 +314,21 @@ object NativeLibrary { | |||
| 314 | external fun isPaused(): Boolean | 314 | external fun isPaused(): Boolean |
| 315 | 315 | ||
| 316 | /** | 316 | /** |
| 317 | * Mutes emulation sound | ||
| 318 | */ | ||
| 319 | external fun muteAudio(): Boolean | ||
| 320 | |||
| 321 | /** | ||
| 322 | * Unmutes emulation sound | ||
| 323 | */ | ||
| 324 | external fun unMuteAudio(): Boolean | ||
| 325 | |||
| 326 | /** | ||
| 327 | * Returns true if emulation audio is muted. | ||
| 328 | */ | ||
| 329 | external fun isMuted(): Boolean | ||
| 330 | |||
| 331 | /** | ||
| 317 | * Returns the performance stats for the current game | 332 | * Returns the performance stats for the current game |
| 318 | */ | 333 | */ |
| 319 | external fun getPerfStats(): DoubleArray | 334 | external fun getPerfStats(): DoubleArray |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt index 8a071f4da..b77c21380 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt | |||
| @@ -64,9 +64,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 64 | private val actionPause = "ACTION_EMULATOR_PAUSE" | 64 | private val actionPause = "ACTION_EMULATOR_PAUSE" |
| 65 | private val actionPlay = "ACTION_EMULATOR_PLAY" | 65 | private val actionPlay = "ACTION_EMULATOR_PLAY" |
| 66 | private val actionMute = "ACTION_EMULATOR_MUTE" | 66 | private val actionMute = "ACTION_EMULATOR_MUTE" |
| 67 | private val actionAudio = "ACTION_EMULATOR_AUDIO" | 67 | private val actionSound = "ACTION_EMULATOR_SOUND" |
| 68 | private var isAudioMuted = false | ||
| 69 | private var userAudio = IntSetting.AUDIO_VOLUME.int | ||
| 70 | 68 | ||
| 71 | private val settingsViewModel: SettingsViewModel by viewModels() | 69 | private val settingsViewModel: SettingsViewModel by viewModels() |
| 72 | 70 | ||
| @@ -309,21 +307,21 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 309 | pictureInPictureActions.add(pauseRemoteAction) | 307 | pictureInPictureActions.add(pauseRemoteAction) |
| 310 | } | 308 | } |
| 311 | 309 | ||
| 312 | if (isAudioMuted) { | 310 | if (NativeLibrary.isMuted()) { |
| 313 | val audioIcon = Icon.createWithResource(this@EmulationActivity, R.drawable.ic_pip_audio) | 311 | val soundIcon = Icon.createWithResource(this@EmulationActivity, R.drawable.ic_pip_sound) |
| 314 | val audioPendingIntent = PendingIntent.getBroadcast( | 312 | val soundPendingIntent = PendingIntent.getBroadcast( |
| 315 | this@EmulationActivity, | 313 | this@EmulationActivity, |
| 316 | R.drawable.ic_pip_audio, | 314 | R.drawable.ic_pip_sound, |
| 317 | Intent(actionAudio), | 315 | Intent(actionSound), |
| 318 | pendingFlags | 316 | pendingFlags |
| 319 | ) | 317 | ) |
| 320 | val audioRemoteAction = RemoteAction( | 318 | val soundRemoteAction = RemoteAction( |
| 321 | audioIcon, | 319 | soundIcon, |
| 322 | getString(R.string.audio), | 320 | getString(R.string.sound), |
| 323 | getString(R.string.audio), | 321 | getString(R.string.sound), |
| 324 | audioPendingIntent | 322 | soundPendingIntent |
| 325 | ) | 323 | ) |
| 326 | pictureInPictureActions.add(audioRemoteAction) | 324 | pictureInPictureActions.add(soundRemoteAction) |
| 327 | } else { | 325 | } else { |
| 328 | val muteIcon = Icon.createWithResource(this@EmulationActivity, R.drawable.ic_pip_mute) | 326 | val muteIcon = Icon.createWithResource(this@EmulationActivity, R.drawable.ic_pip_mute) |
| 329 | val mutePendingIntent = PendingIntent.getBroadcast( | 327 | val mutePendingIntent = PendingIntent.getBroadcast( |
| @@ -362,17 +360,10 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 362 | } else if (intent.action == actionPause) { | 360 | } else if (intent.action == actionPause) { |
| 363 | if (!NativeLibrary.isPaused()) NativeLibrary.pauseEmulation() | 361 | if (!NativeLibrary.isPaused()) NativeLibrary.pauseEmulation() |
| 364 | } | 362 | } |
| 365 | if (intent.action == actionAudio) { | 363 | if (intent.action == actionSound) { |
| 366 | if (isAudioMuted) { | 364 | if (NativeLibrary.isMuted()) NativeLibrary.unMuteAudio() |
| 367 | IntSetting.AUDIO_VOLUME.int = userAudio | ||
| 368 | isAudioMuted = false | ||
| 369 | } | ||
| 370 | } else if (intent.action == actionMute) { | 365 | } else if (intent.action == actionMute) { |
| 371 | if (!isAudioMuted) { | 366 | if (!NativeLibrary.isMuted()) NativeLibrary.muteAudio() |
| 372 | isAudioMuted = true | ||
| 373 | userAudio = IntSetting.AUDIO_VOLUME.int | ||
| 374 | IntSetting.AUDIO_VOLUME.int = 0 | ||
| 375 | } | ||
| 376 | } | 367 | } |
| 377 | buildPictureInPictureParams() | 368 | buildPictureInPictureParams() |
| 378 | } | 369 | } |
| @@ -387,6 +378,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 387 | IntentFilter().apply { | 378 | IntentFilter().apply { |
| 388 | addAction(actionPause) | 379 | addAction(actionPause) |
| 389 | addAction(actionPlay) | 380 | addAction(actionPlay) |
| 381 | addAction(actionMute) | ||
| 382 | addAction(actionSound) | ||
| 390 | }.also { | 383 | }.also { |
| 391 | registerReceiver(pictureInPictureReceiver, it) | 384 | registerReceiver(pictureInPictureReceiver, it) |
| 392 | } | 385 | } |
| @@ -395,6 +388,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 395 | unregisterReceiver(pictureInPictureReceiver) | 388 | unregisterReceiver(pictureInPictureReceiver) |
| 396 | } catch (ignored: Exception) { | 389 | } catch (ignored: Exception) { |
| 397 | } | 390 | } |
| 391 | // Always resume audio, since there is no UI button | ||
| 392 | if (NativeLibrary.isMuted()) NativeLibrary.unMuteAudio() | ||
| 398 | } | 393 | } |
| 399 | } | 394 | } |
| 400 | 395 | ||
diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt index 041781577..e2ed08e9f 100644 --- a/src/android/app/src/main/jni/CMakeLists.txt +++ b/src/android/app/src/main/jni/CMakeLists.txt | |||
| @@ -14,7 +14,6 @@ add_library(yuzu-android SHARED | |||
| 14 | id_cache.cpp | 14 | id_cache.cpp |
| 15 | id_cache.h | 15 | id_cache.h |
| 16 | native.cpp | 16 | native.cpp |
| 17 | native.h | ||
| 18 | ) | 17 | ) |
| 19 | 18 | ||
| 20 | set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR}) | 19 | set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR}) |
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 632aa50b3..07c2a7850 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <android/api-level.h> | 14 | #include <android/api-level.h> |
| 15 | #include <android/native_window_jni.h> | 15 | #include <android/native_window_jni.h> |
| 16 | #include <core/loader/nro.h> | 16 | #include <core/loader/nro.h> |
| 17 | #include <jni.h> | ||
| 17 | 18 | ||
| 18 | #include "common/detached_tasks.h" | 19 | #include "common/detached_tasks.h" |
| 19 | #include "common/dynamic_library.h" | 20 | #include "common/dynamic_library.h" |
| @@ -526,35 +527,32 @@ static Core::SystemResultStatus RunEmulation(const std::string& filepath) { | |||
| 526 | 527 | ||
| 527 | extern "C" { | 528 | extern "C" { |
| 528 | 529 | ||
| 529 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceChanged(JNIEnv* env, | 530 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceChanged(JNIEnv* env, jclass clazz, jobject surf) { |
| 530 | [[maybe_unused]] jclass clazz, | ||
| 531 | jobject surf) { | ||
| 532 | EmulationSession::GetInstance().SetNativeWindow(ANativeWindow_fromSurface(env, surf)); | 531 | EmulationSession::GetInstance().SetNativeWindow(ANativeWindow_fromSurface(env, surf)); |
| 533 | EmulationSession::GetInstance().SurfaceChanged(); | 532 | EmulationSession::GetInstance().SurfaceChanged(); |
| 534 | } | 533 | } |
| 535 | 534 | ||
| 536 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceDestroyed(JNIEnv* env, | 535 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceDestroyed(JNIEnv* env, jclass clazz) { |
| 537 | [[maybe_unused]] jclass clazz) { | ||
| 538 | ANativeWindow_release(EmulationSession::GetInstance().NativeWindow()); | 536 | ANativeWindow_release(EmulationSession::GetInstance().NativeWindow()); |
| 539 | EmulationSession::GetInstance().SetNativeWindow(nullptr); | 537 | EmulationSession::GetInstance().SetNativeWindow(nullptr); |
| 540 | EmulationSession::GetInstance().SurfaceChanged(); | 538 | EmulationSession::GetInstance().SurfaceChanged(); |
| 541 | } | 539 | } |
| 542 | 540 | ||
| 543 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, | 541 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, jclass clazz, |
| 544 | [[maybe_unused]] jclass clazz, | ||
| 545 | jstring j_directory) { | 542 | jstring j_directory) { |
| 546 | Common::FS::SetAppDirectory(GetJString(env, j_directory)); | 543 | Common::FS::SetAppDirectory(GetJString(env, j_directory)); |
| 547 | } | 544 | } |
| 548 | 545 | ||
| 549 | int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, | 546 | int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jclass clazz, |
| 550 | [[maybe_unused]] jclass clazz, | ||
| 551 | jstring j_file) { | 547 | jstring j_file) { |
| 552 | return EmulationSession::GetInstance().InstallFileToNand(GetJString(env, j_file)); | 548 | return EmulationSession::GetInstance().InstallFileToNand(GetJString(env, j_file)); |
| 553 | } | 549 | } |
| 554 | 550 | ||
| 555 | void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver( | 551 | void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver(JNIEnv* env, jclass clazz, |
| 556 | JNIEnv* env, [[maybe_unused]] jclass clazz, jstring hook_lib_dir, jstring custom_driver_dir, | 552 | jstring hook_lib_dir, |
| 557 | jstring custom_driver_name, jstring file_redirect_dir) { | 553 | jstring custom_driver_dir, |
| 554 | jstring custom_driver_name, | ||
| 555 | jstring file_redirect_dir) { | ||
| 558 | EmulationSession::GetInstance().InitializeGpuDriver( | 556 | EmulationSession::GetInstance().InitializeGpuDriver( |
| 559 | GetJString(env, hook_lib_dir), GetJString(env, custom_driver_dir), | 557 | GetJString(env, hook_lib_dir), GetJString(env, custom_driver_dir), |
| 560 | GetJString(env, custom_driver_name), GetJString(env, file_redirect_dir)); | 558 | GetJString(env, custom_driver_name), GetJString(env, file_redirect_dir)); |
| @@ -571,7 +569,7 @@ void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver( | |||
| 571 | } | 569 | } |
| 572 | 570 | ||
| 573 | jboolean JNICALL Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_supportsCustomDriverLoading( | 571 | jboolean JNICALL Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_supportsCustomDriverLoading( |
| 574 | [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jobject instance) { | 572 | JNIEnv* env, [[maybe_unused]] jobject instance) { |
| 575 | #ifdef ARCHITECTURE_arm64 | 573 | #ifdef ARCHITECTURE_arm64 |
| 576 | // If the KGSL device exists custom drivers can be loaded using adrenotools | 574 | // If the KGSL device exists custom drivers can be loaded using adrenotools |
| 577 | return SupportsCustomDriver(); | 575 | return SupportsCustomDriver(); |
| @@ -580,49 +578,52 @@ jboolean JNICALL Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_supportsCustomDri | |||
| 580 | #endif | 578 | #endif |
| 581 | } | 579 | } |
| 582 | 580 | ||
| 583 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadKeys(JNIEnv* env, | 581 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadKeys(JNIEnv* env, jclass clazz) { |
| 584 | [[maybe_unused]] jclass clazz) { | ||
| 585 | Core::Crypto::KeyManager::Instance().ReloadKeys(); | 582 | Core::Crypto::KeyManager::Instance().ReloadKeys(); |
| 586 | return static_cast<jboolean>(Core::Crypto::KeyManager::Instance().AreKeysLoaded()); | 583 | return static_cast<jboolean>(Core::Crypto::KeyManager::Instance().AreKeysLoaded()); |
| 587 | } | 584 | } |
| 588 | 585 | ||
| 589 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_unPauseEmulation([[maybe_unused]] JNIEnv* env, | 586 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_unPauseEmulation(JNIEnv* env, jclass clazz) { |
| 590 | [[maybe_unused]] jclass clazz) { | ||
| 591 | EmulationSession::GetInstance().UnPauseEmulation(); | 587 | EmulationSession::GetInstance().UnPauseEmulation(); |
| 592 | } | 588 | } |
| 593 | 589 | ||
| 594 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_pauseEmulation([[maybe_unused]] JNIEnv* env, | 590 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_pauseEmulation(JNIEnv* env, jclass clazz) { |
| 595 | [[maybe_unused]] jclass clazz) { | ||
| 596 | EmulationSession::GetInstance().PauseEmulation(); | 591 | EmulationSession::GetInstance().PauseEmulation(); |
| 597 | } | 592 | } |
| 598 | 593 | ||
| 599 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_stopEmulation([[maybe_unused]] JNIEnv* env, | 594 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_stopEmulation(JNIEnv* env, jclass clazz) { |
| 600 | [[maybe_unused]] jclass clazz) { | ||
| 601 | EmulationSession::GetInstance().HaltEmulation(); | 595 | EmulationSession::GetInstance().HaltEmulation(); |
| 602 | } | 596 | } |
| 603 | 597 | ||
| 604 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_resetRomMetadata([[maybe_unused]] JNIEnv* env, | 598 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_resetRomMetadata(JNIEnv* env, jclass clazz) { |
| 605 | [[maybe_unused]] jclass clazz) { | ||
| 606 | EmulationSession::GetInstance().ResetRomMetadata(); | 599 | EmulationSession::GetInstance().ResetRomMetadata(); |
| 607 | } | 600 | } |
| 608 | 601 | ||
| 609 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isRunning([[maybe_unused]] JNIEnv* env, | 602 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isRunning(JNIEnv* env, jclass clazz) { |
| 610 | [[maybe_unused]] jclass clazz) { | ||
| 611 | return static_cast<jboolean>(EmulationSession::GetInstance().IsRunning()); | 603 | return static_cast<jboolean>(EmulationSession::GetInstance().IsRunning()); |
| 612 | } | 604 | } |
| 613 | 605 | ||
| 614 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isPaused([[maybe_unused]] JNIEnv* env, | 606 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isPaused(JNIEnv* env, jclass clazz) { |
| 615 | [[maybe_unused]] jclass clazz) { | ||
| 616 | return static_cast<jboolean>(EmulationSession::GetInstance().IsPaused()); | 607 | return static_cast<jboolean>(EmulationSession::GetInstance().IsPaused()); |
| 617 | } | 608 | } |
| 618 | 609 | ||
| 619 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHandheldOnly([[maybe_unused]] JNIEnv* env, | 610 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_muteAduio(JNIEnv* env, jclass clazz) { |
| 620 | [[maybe_unused]] jclass clazz) { | 611 | Settings::values.audio_muted = true; |
| 612 | } | ||
| 613 | |||
| 614 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_unMuteAudio(JNIEnv* env, jclass clazz) { | ||
| 615 | Settings::values.audio_muted = false; | ||
| 616 | } | ||
| 617 | |||
| 618 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isMuted(JNIEnv* env, jclass clazz) { | ||
| 619 | return static_cast<jboolean>(Settings::values.audio_muted.GetValue()); | ||
| 620 | } | ||
| 621 | |||
| 622 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHandheldOnly(JNIEnv* env, jclass clazz) { | ||
| 621 | return EmulationSession::GetInstance().IsHandheldOnly(); | 623 | return EmulationSession::GetInstance().IsHandheldOnly(); |
| 622 | } | 624 | } |
| 623 | 625 | ||
| 624 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType([[maybe_unused]] JNIEnv* env, | 626 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType(JNIEnv* env, jclass clazz, |
| 625 | [[maybe_unused]] jclass clazz, | ||
| 626 | jint j_device, jint j_type) { | 627 | jint j_device, jint j_type) { |
| 627 | if (EmulationSession::GetInstance().IsRunning()) { | 628 | if (EmulationSession::GetInstance().IsRunning()) { |
| 628 | EmulationSession::GetInstance().SetDeviceType(j_device, j_type); | 629 | EmulationSession::GetInstance().SetDeviceType(j_device, j_type); |
| @@ -630,8 +631,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType([[maybe_unused]] JN | |||
| 630 | return static_cast<jboolean>(true); | 631 | return static_cast<jboolean>(true); |
| 631 | } | 632 | } |
| 632 | 633 | ||
| 633 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent([[maybe_unused]] JNIEnv* env, | 634 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent(JNIEnv* env, jclass clazz, |
| 634 | [[maybe_unused]] jclass clazz, | ||
| 635 | jint j_device) { | 635 | jint j_device) { |
| 636 | if (EmulationSession::GetInstance().IsRunning()) { | 636 | if (EmulationSession::GetInstance().IsRunning()) { |
| 637 | EmulationSession::GetInstance().OnGamepadConnectEvent(j_device); | 637 | EmulationSession::GetInstance().OnGamepadConnectEvent(j_device); |
| @@ -639,15 +639,14 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent([[maybe_unu | |||
| 639 | return static_cast<jboolean>(true); | 639 | return static_cast<jboolean>(true); |
| 640 | } | 640 | } |
| 641 | 641 | ||
| 642 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadDisconnectEvent( | 642 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadDisconnectEvent(JNIEnv* env, jclass clazz, |
| 643 | [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, jint j_device) { | 643 | jint j_device) { |
| 644 | if (EmulationSession::GetInstance().IsRunning()) { | 644 | if (EmulationSession::GetInstance().IsRunning()) { |
| 645 | EmulationSession::GetInstance().OnGamepadDisconnectEvent(j_device); | 645 | EmulationSession::GetInstance().OnGamepadDisconnectEvent(j_device); |
| 646 | } | 646 | } |
| 647 | return static_cast<jboolean>(true); | 647 | return static_cast<jboolean>(true); |
| 648 | } | 648 | } |
| 649 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadButtonEvent([[maybe_unused]] JNIEnv* env, | 649 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadButtonEvent(JNIEnv* env, jclass clazz, |
| 650 | [[maybe_unused]] jclass clazz, | ||
| 651 | [[maybe_unused]] jint j_device, | 650 | [[maybe_unused]] jint j_device, |
| 652 | jint j_button, jint action) { | 651 | jint j_button, jint action) { |
| 653 | if (EmulationSession::GetInstance().IsRunning()) { | 652 | if (EmulationSession::GetInstance().IsRunning()) { |
| @@ -659,8 +658,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadButtonEvent([[maybe_unus | |||
| 659 | return static_cast<jboolean>(true); | 658 | return static_cast<jboolean>(true); |
| 660 | } | 659 | } |
| 661 | 660 | ||
| 662 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadJoystickEvent([[maybe_unused]] JNIEnv* env, | 661 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadJoystickEvent(JNIEnv* env, jclass clazz, |
| 663 | [[maybe_unused]] jclass clazz, | ||
| 664 | jint j_device, jint stick_id, | 662 | jint j_device, jint stick_id, |
| 665 | jfloat x, jfloat y) { | 663 | jfloat x, jfloat y) { |
| 666 | if (EmulationSession::GetInstance().IsRunning()) { | 664 | if (EmulationSession::GetInstance().IsRunning()) { |
| @@ -670,9 +668,8 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadJoystickEvent([[maybe_un | |||
| 670 | } | 668 | } |
| 671 | 669 | ||
| 672 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMotionEvent( | 670 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMotionEvent( |
| 673 | [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, jint j_device, | 671 | JNIEnv* env, jclass clazz, jint j_device, jlong delta_timestamp, jfloat gyro_x, jfloat gyro_y, |
| 674 | jlong delta_timestamp, jfloat gyro_x, jfloat gyro_y, jfloat gyro_z, jfloat accel_x, | 672 | jfloat gyro_z, jfloat accel_x, jfloat accel_y, jfloat accel_z) { |
| 675 | jfloat accel_y, jfloat accel_z) { | ||
| 676 | if (EmulationSession::GetInstance().IsRunning()) { | 673 | if (EmulationSession::GetInstance().IsRunning()) { |
| 677 | EmulationSession::GetInstance().Window().OnGamepadMotionEvent( | 674 | EmulationSession::GetInstance().Window().OnGamepadMotionEvent( |
| 678 | j_device, delta_timestamp, gyro_x, gyro_y, gyro_z, accel_x, accel_y, accel_z); | 675 | j_device, delta_timestamp, gyro_x, gyro_y, gyro_z, accel_x, accel_y, accel_z); |
| @@ -680,8 +677,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMotionEvent( | |||
| 680 | return static_cast<jboolean>(true); | 677 | return static_cast<jboolean>(true); |
| 681 | } | 678 | } |
| 682 | 679 | ||
| 683 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag([[maybe_unused]] JNIEnv* env, | 680 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag(JNIEnv* env, jclass clazz, |
| 684 | [[maybe_unused]] jclass clazz, | ||
| 685 | jbyteArray j_data) { | 681 | jbyteArray j_data) { |
| 686 | jboolean isCopy{false}; | 682 | jboolean isCopy{false}; |
| 687 | std::span<u8> data(reinterpret_cast<u8*>(env->GetByteArrayElements(j_data, &isCopy)), | 683 | std::span<u8> data(reinterpret_cast<u8*>(env->GetByteArrayElements(j_data, &isCopy)), |
| @@ -693,39 +689,34 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag([[maybe_unused]] JNI | |||
| 693 | return static_cast<jboolean>(true); | 689 | return static_cast<jboolean>(true); |
| 694 | } | 690 | } |
| 695 | 691 | ||
| 696 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onRemoveNfcTag([[maybe_unused]] JNIEnv* env, | 692 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onRemoveNfcTag(JNIEnv* env, jclass clazz) { |
| 697 | [[maybe_unused]] jclass clazz) { | ||
| 698 | if (EmulationSession::GetInstance().IsRunning()) { | 693 | if (EmulationSession::GetInstance().IsRunning()) { |
| 699 | EmulationSession::GetInstance().Window().OnRemoveNfcTag(); | 694 | EmulationSession::GetInstance().Window().OnRemoveNfcTag(); |
| 700 | } | 695 | } |
| 701 | return static_cast<jboolean>(true); | 696 | return static_cast<jboolean>(true); |
| 702 | } | 697 | } |
| 703 | 698 | ||
| 704 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchPressed([[maybe_unused]] JNIEnv* env, | 699 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchPressed(JNIEnv* env, jclass clazz, jint id, |
| 705 | [[maybe_unused]] jclass clazz, jint id, | ||
| 706 | jfloat x, jfloat y) { | 700 | jfloat x, jfloat y) { |
| 707 | if (EmulationSession::GetInstance().IsRunning()) { | 701 | if (EmulationSession::GetInstance().IsRunning()) { |
| 708 | EmulationSession::GetInstance().Window().OnTouchPressed(id, x, y); | 702 | EmulationSession::GetInstance().Window().OnTouchPressed(id, x, y); |
| 709 | } | 703 | } |
| 710 | } | 704 | } |
| 711 | 705 | ||
| 712 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchMoved([[maybe_unused]] JNIEnv* env, | 706 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchMoved(JNIEnv* env, jclass clazz, jint id, |
| 713 | [[maybe_unused]] jclass clazz, jint id, | ||
| 714 | jfloat x, jfloat y) { | 707 | jfloat x, jfloat y) { |
| 715 | if (EmulationSession::GetInstance().IsRunning()) { | 708 | if (EmulationSession::GetInstance().IsRunning()) { |
| 716 | EmulationSession::GetInstance().Window().OnTouchMoved(id, x, y); | 709 | EmulationSession::GetInstance().Window().OnTouchMoved(id, x, y); |
| 717 | } | 710 | } |
| 718 | } | 711 | } |
| 719 | 712 | ||
| 720 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased([[maybe_unused]] JNIEnv* env, | 713 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased(JNIEnv* env, jclass clazz, jint id) { |
| 721 | [[maybe_unused]] jclass clazz, jint id) { | ||
| 722 | if (EmulationSession::GetInstance().IsRunning()) { | 714 | if (EmulationSession::GetInstance().IsRunning()) { |
| 723 | EmulationSession::GetInstance().Window().OnTouchReleased(id); | 715 | EmulationSession::GetInstance().Window().OnTouchReleased(id); |
| 724 | } | 716 | } |
| 725 | } | 717 | } |
| 726 | 718 | ||
| 727 | jbyteArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getIcon([[maybe_unused]] JNIEnv* env, | 719 | jbyteArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getIcon(JNIEnv* env, jclass clazz, |
| 728 | [[maybe_unused]] jclass clazz, | ||
| 729 | [[maybe_unused]] jstring j_filename) { | 720 | [[maybe_unused]] jstring j_filename) { |
| 730 | auto icon_data = EmulationSession::GetInstance().GetRomIcon(GetJString(env, j_filename)); | 721 | auto icon_data = EmulationSession::GetInstance().GetRomIcon(GetJString(env, j_filename)); |
| 731 | jbyteArray icon = env->NewByteArray(static_cast<jsize>(icon_data.size())); | 722 | jbyteArray icon = env->NewByteArray(static_cast<jsize>(icon_data.size())); |
| @@ -734,67 +725,58 @@ jbyteArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getIcon([[maybe_unused]] JNIEnv | |||
| 734 | return icon; | 725 | return icon; |
| 735 | } | 726 | } |
| 736 | 727 | ||
| 737 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getTitle([[maybe_unused]] JNIEnv* env, | 728 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getTitle(JNIEnv* env, jclass clazz, |
| 738 | [[maybe_unused]] jclass clazz, | ||
| 739 | [[maybe_unused]] jstring j_filename) { | 729 | [[maybe_unused]] jstring j_filename) { |
| 740 | auto title = EmulationSession::GetInstance().GetRomTitle(GetJString(env, j_filename)); | 730 | auto title = EmulationSession::GetInstance().GetRomTitle(GetJString(env, j_filename)); |
| 741 | return env->NewStringUTF(title.c_str()); | 731 | return env->NewStringUTF(title.c_str()); |
| 742 | } | 732 | } |
| 743 | 733 | ||
| 744 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getDescription([[maybe_unused]] JNIEnv* env, | 734 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getDescription(JNIEnv* env, jclass clazz, |
| 745 | [[maybe_unused]] jclass clazz, | ||
| 746 | jstring j_filename) { | 735 | jstring j_filename) { |
| 747 | return j_filename; | 736 | return j_filename; |
| 748 | } | 737 | } |
| 749 | 738 | ||
| 750 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGameId([[maybe_unused]] JNIEnv* env, | 739 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGameId(JNIEnv* env, jclass clazz, |
| 751 | [[maybe_unused]] jclass clazz, | ||
| 752 | jstring j_filename) { | 740 | jstring j_filename) { |
| 753 | return j_filename; | 741 | return j_filename; |
| 754 | } | 742 | } |
| 755 | 743 | ||
| 756 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getRegions([[maybe_unused]] JNIEnv* env, | 744 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getRegions(JNIEnv* env, jclass clazz, |
| 757 | [[maybe_unused]] jclass clazz, | ||
| 758 | [[maybe_unused]] jstring j_filename) { | 745 | [[maybe_unused]] jstring j_filename) { |
| 759 | return env->NewStringUTF(""); | 746 | return env->NewStringUTF(""); |
| 760 | } | 747 | } |
| 761 | 748 | ||
| 762 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCompany([[maybe_unused]] JNIEnv* env, | 749 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCompany(JNIEnv* env, jclass clazz, |
| 763 | [[maybe_unused]] jclass clazz, | ||
| 764 | [[maybe_unused]] jstring j_filename) { | 750 | [[maybe_unused]] jstring j_filename) { |
| 765 | return env->NewStringUTF(""); | 751 | return env->NewStringUTF(""); |
| 766 | } | 752 | } |
| 767 | 753 | ||
| 768 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHomebrew([[maybe_unused]] JNIEnv* env, | 754 | jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHomebrew(JNIEnv* env, jclass clazz, |
| 769 | [[maybe_unused]] jclass clazz, | ||
| 770 | [[maybe_unused]] jstring j_filename) { | 755 | [[maybe_unused]] jstring j_filename) { |
| 771 | return EmulationSession::GetInstance().GetIsHomebrew(GetJString(env, j_filename)); | 756 | return EmulationSession::GetInstance().GetIsHomebrew(GetJString(env, j_filename)); |
| 772 | } | 757 | } |
| 773 | 758 | ||
| 774 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmulation | 759 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmulation |
| 775 | [[maybe_unused]] (JNIEnv* env, [[maybe_unused]] jclass clazz) { | 760 | [[maybe_unused]] (JNIEnv* env, jclass clazz) { |
| 776 | // Create the default config.ini. | 761 | // Create the default config.ini. |
| 777 | Config{}; | 762 | Config{}; |
| 778 | // Initialize the emulated system. | 763 | // Initialize the emulated system. |
| 779 | EmulationSession::GetInstance().System().Initialize(); | 764 | EmulationSession::GetInstance().System().Initialize(); |
| 780 | } | 765 | } |
| 781 | 766 | ||
| 782 | jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore([[maybe_unused]] JNIEnv* env, | 767 | jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore(JNIEnv* env, jclass clazz) { |
| 783 | [[maybe_unused]] jclass clazz) { | ||
| 784 | return {}; | 768 | return {}; |
| 785 | } | 769 | } |
| 786 | 770 | ||
| 787 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2Ljava_lang_String_2Z( | 771 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2Ljava_lang_String_2Z( |
| 788 | [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, [[maybe_unused]] jstring j_file, | 772 | JNIEnv* env, jclass clazz, [[maybe_unused]] jstring j_file, |
| 789 | [[maybe_unused]] jstring j_savestate, [[maybe_unused]] jboolean j_delete_savestate) {} | 773 | [[maybe_unused]] jstring j_savestate, [[maybe_unused]] jboolean j_delete_savestate) {} |
| 790 | 774 | ||
| 791 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadSettings([[maybe_unused]] JNIEnv* env, | 775 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadSettings(JNIEnv* env, jclass clazz) { |
| 792 | [[maybe_unused]] jclass clazz) { | ||
| 793 | Config{}; | 776 | Config{}; |
| 794 | } | 777 | } |
| 795 | 778 | ||
| 796 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getUserSetting([[maybe_unused]] JNIEnv* env, | 779 | jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getUserSetting(JNIEnv* env, jclass clazz, |
| 797 | [[maybe_unused]] jclass clazz, | ||
| 798 | jstring j_game_id, jstring j_section, | 780 | jstring j_game_id, jstring j_section, |
| 799 | jstring j_key) { | 781 | jstring j_key) { |
| 800 | std::string_view game_id = env->GetStringUTFChars(j_game_id, 0); | 782 | std::string_view game_id = env->GetStringUTFChars(j_game_id, 0); |
| @@ -808,8 +790,7 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getUserSetting([[maybe_unused]] JN | |||
| 808 | return env->NewStringUTF(""); | 790 | return env->NewStringUTF(""); |
| 809 | } | 791 | } |
| 810 | 792 | ||
| 811 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_setUserSetting([[maybe_unused]] JNIEnv* env, | 793 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_setUserSetting(JNIEnv* env, jclass clazz, |
| 812 | [[maybe_unused]] jclass clazz, | ||
| 813 | jstring j_game_id, jstring j_section, | 794 | jstring j_game_id, jstring j_section, |
| 814 | jstring j_key, jstring j_value) { | 795 | jstring j_key, jstring j_value) { |
| 815 | std::string_view game_id = env->GetStringUTFChars(j_game_id, 0); | 796 | std::string_view game_id = env->GetStringUTFChars(j_game_id, 0); |
| @@ -823,16 +804,14 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_setUserSetting([[maybe_unused]] JNIEn | |||
| 823 | env->ReleaseStringUTFChars(j_value, value.data()); | 804 | env->ReleaseStringUTFChars(j_value, value.data()); |
| 824 | } | 805 | } |
| 825 | 806 | ||
| 826 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_initGameIni([[maybe_unused]] JNIEnv* env, | 807 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_initGameIni(JNIEnv* env, jclass clazz, |
| 827 | [[maybe_unused]] jclass clazz, | ||
| 828 | jstring j_game_id) { | 808 | jstring j_game_id) { |
| 829 | std::string_view game_id = env->GetStringUTFChars(j_game_id, 0); | 809 | std::string_view game_id = env->GetStringUTFChars(j_game_id, 0); |
| 830 | 810 | ||
| 831 | env->ReleaseStringUTFChars(j_game_id, game_id.data()); | 811 | env->ReleaseStringUTFChars(j_game_id, game_id.data()); |
| 832 | } | 812 | } |
| 833 | 813 | ||
| 834 | jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats([[maybe_unused]] JNIEnv* env, | 814 | jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jclass clazz) { |
| 835 | [[maybe_unused]] jclass clazz) { | ||
| 836 | jdoubleArray j_stats = env->NewDoubleArray(4); | 815 | jdoubleArray j_stats = env->NewDoubleArray(4); |
| 837 | 816 | ||
| 838 | if (EmulationSession::GetInstance().IsRunning()) { | 817 | if (EmulationSession::GetInstance().IsRunning()) { |
| @@ -848,11 +827,11 @@ jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats([[maybe_unused]] | |||
| 848 | return j_stats; | 827 | return j_stats; |
| 849 | } | 828 | } |
| 850 | 829 | ||
| 851 | void Java_org_yuzu_yuzu_1emu_utils_DirectoryInitialization_setSysDirectory( | 830 | void Java_org_yuzu_yuzu_1emu_utils_DirectoryInitialization_setSysDirectory(JNIEnv* env, |
| 852 | [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, jstring j_path) {} | 831 | jclass clazz, |
| 832 | jstring j_path) {} | ||
| 853 | 833 | ||
| 854 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2([[maybe_unused]] JNIEnv* env, | 834 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2(JNIEnv* env, jclass clazz, |
| 855 | [[maybe_unused]] jclass clazz, | ||
| 856 | jstring j_path) { | 835 | jstring j_path) { |
| 857 | const std::string path = GetJString(env, j_path); | 836 | const std::string path = GetJString(env, j_path); |
| 858 | 837 | ||
| @@ -863,8 +842,7 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2([[maybe_unus | |||
| 863 | } | 842 | } |
| 864 | } | 843 | } |
| 865 | 844 | ||
| 866 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_logDeviceInfo([[maybe_unused]] JNIEnv* env, | 845 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_logDeviceInfo(JNIEnv* env, jclass clazz) { |
| 867 | [[maybe_unused]] jclass clazz) { | ||
| 868 | LOG_INFO(Frontend, "yuzu Version: {}-{}", Common::g_scm_branch, Common::g_scm_desc); | 846 | LOG_INFO(Frontend, "yuzu Version: {}-{}", Common::g_scm_branch, Common::g_scm_desc); |
| 869 | LOG_INFO(Frontend, "Host OS: Android API level {}", android_get_device_api_level()); | 847 | LOG_INFO(Frontend, "Host OS: Android API level {}", android_get_device_api_level()); |
| 870 | } | 848 | } |
diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h deleted file mode 100644 index 24dcbbcb8..000000000 --- a/src/android/app/src/main/jni/native.h +++ /dev/null | |||
| @@ -1,165 +0,0 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include <jni.h> | ||
| 7 | |||
| 8 | // Function calls from the Java side | ||
| 9 | #ifdef __cplusplus | ||
| 10 | extern "C" { | ||
| 11 | #endif | ||
| 12 | |||
| 13 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_UnPauseEmulation(JNIEnv* env, | ||
| 14 | jclass clazz); | ||
| 15 | |||
| 16 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_PauseEmulation(JNIEnv* env, | ||
| 17 | jclass clazz); | ||
| 18 | |||
| 19 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_StopEmulation(JNIEnv* env, | ||
| 20 | jclass clazz); | ||
| 21 | |||
| 22 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_ResetRomMetadata(JNIEnv* env, | ||
| 23 | jclass clazz); | ||
| 24 | |||
| 25 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_IsRunning(JNIEnv* env, | ||
| 26 | jclass clazz); | ||
| 27 | |||
| 28 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_isHandheldOnly(JNIEnv* env, | ||
| 29 | jclass clazz); | ||
| 30 | |||
| 31 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType(JNIEnv* env, | ||
| 32 | jclass clazz, | ||
| 33 | jstring j_device, | ||
| 34 | jstring j_type); | ||
| 35 | |||
| 36 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent( | ||
| 37 | JNIEnv* env, jclass clazz, jstring j_device); | ||
| 38 | |||
| 39 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadDisconnectEvent( | ||
| 40 | JNIEnv* env, jclass clazz, jstring j_device); | ||
| 41 | |||
| 42 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadEvent( | ||
| 43 | JNIEnv* env, jclass clazz, jstring j_device, jint j_button, jint action); | ||
| 44 | |||
| 45 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMoveEvent( | ||
| 46 | JNIEnv* env, jclass clazz, jstring j_device, jint axis, jfloat x, jfloat y); | ||
| 47 | |||
| 48 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadAxisEvent( | ||
| 49 | JNIEnv* env, jclass clazz, jstring j_device, jint axis_id, jfloat axis_val); | ||
| 50 | |||
| 51 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag(JNIEnv* env, | ||
| 52 | jclass clazz, | ||
| 53 | jbyteArray j_data); | ||
| 54 | |||
| 55 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onRemoveNfcTag(JNIEnv* env, | ||
| 56 | jclass clazz); | ||
| 57 | |||
| 58 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchEvent(JNIEnv* env, | ||
| 59 | jclass clazz, | ||
| 60 | jfloat x, jfloat y, | ||
| 61 | jboolean pressed); | ||
| 62 | |||
| 63 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchMoved(JNIEnv* env, jclass clazz, | ||
| 64 | jfloat x, jfloat y); | ||
| 65 | |||
| 66 | JNIEXPORT jbyteArray JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetIcon(JNIEnv* env, | ||
| 67 | jclass clazz, | ||
| 68 | jstring j_file); | ||
| 69 | |||
| 70 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetTitle(JNIEnv* env, jclass clazz, | ||
| 71 | jstring j_filename); | ||
| 72 | |||
| 73 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetDescription(JNIEnv* env, | ||
| 74 | jclass clazz, | ||
| 75 | jstring j_filename); | ||
| 76 | |||
| 77 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetGameId(JNIEnv* env, jclass clazz, | ||
| 78 | jstring j_filename); | ||
| 79 | |||
| 80 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetRegions(JNIEnv* env, | ||
| 81 | jclass clazz, | ||
| 82 | jstring j_filename); | ||
| 83 | |||
| 84 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetCompany(JNIEnv* env, | ||
| 85 | jclass clazz, | ||
| 86 | jstring j_filename); | ||
| 87 | |||
| 88 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetGitRevision(JNIEnv* env, | ||
| 89 | jclass clazz); | ||
| 90 | |||
| 91 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetAppDirectory(JNIEnv* env, | ||
| 92 | jclass clazz, | ||
| 93 | jstring j_directory); | ||
| 94 | |||
| 95 | JNIEXPORT void JNICALL | ||
| 96 | Java_org_yuzu_yuzu_1emu_NativeLibrary_Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeGpuDriver( | ||
| 97 | JNIEnv* env, jclass clazz, jstring hook_lib_dir, jstring custom_driver_dir, | ||
| 98 | jstring custom_driver_name, jstring file_redirect_dir); | ||
| 99 | |||
| 100 | JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_ReloadKeys(JNIEnv* env, | ||
| 101 | jclass clazz); | ||
| 102 | |||
| 103 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_utils_DirectoryInitialization_SetSysDirectory( | ||
| 104 | JNIEnv* env, jclass clazz, jstring path_); | ||
| 105 | |||
| 106 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetSysDirectory(JNIEnv* env, | ||
| 107 | jclass clazz, | ||
| 108 | jstring path); | ||
| 109 | |||
| 110 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation(JNIEnv* env, | ||
| 111 | jclass clazz); | ||
| 112 | |||
| 113 | JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env, | ||
| 114 | jclass clazz); | ||
| 115 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetProfiling(JNIEnv* env, jclass clazz, | ||
| 116 | jboolean enable); | ||
| 117 | |||
| 118 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_WriteProfileResults(JNIEnv* env, | ||
| 119 | jclass clazz); | ||
| 120 | |||
| 121 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_NotifyOrientationChange( | ||
| 122 | JNIEnv* env, jclass clazz, jint layout_option, jint rotation); | ||
| 123 | |||
| 124 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_Run__Ljava_lang_String_2( | ||
| 125 | JNIEnv* env, jclass clazz, jstring j_path); | ||
| 126 | |||
| 127 | JNIEXPORT void JNICALL | ||
| 128 | Java_org_yuzu_yuzu_1emu_NativeLibrary_Run__Ljava_lang_String_2Ljava_lang_String_2Z( | ||
| 129 | JNIEnv* env, jclass clazz, jstring j_file, jstring j_savestate, jboolean j_delete_savestate); | ||
| 130 | |||
| 131 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env, | ||
| 132 | jclass clazz, | ||
| 133 | jobject surf); | ||
| 134 | |||
| 135 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env, | ||
| 136 | jclass clazz); | ||
| 137 | |||
| 138 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitGameIni(JNIEnv* env, jclass clazz, | ||
| 139 | jstring j_game_id); | ||
| 140 | |||
| 141 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_ReloadSettings(JNIEnv* env, | ||
| 142 | jclass clazz); | ||
| 143 | |||
| 144 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetUserSetting( | ||
| 145 | JNIEnv* env, jclass clazz, jstring j_game_id, jstring j_section, jstring j_key, | ||
| 146 | jstring j_value); | ||
| 147 | |||
| 148 | JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetUserSetting( | ||
| 149 | JNIEnv* env, jclass clazz, jstring game_id, jstring section, jstring key); | ||
| 150 | |||
| 151 | JNIEXPORT jdoubleArray JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetPerfStats(JNIEnv* env, | ||
| 152 | jclass clazz); | ||
| 153 | |||
| 154 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_LogDeviceInfo(JNIEnv* env, | ||
| 155 | jclass clazz); | ||
| 156 | |||
| 157 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SubmitInlineKeyboardText( | ||
| 158 | JNIEnv* env, jclass clazz, jstring j_text); | ||
| 159 | |||
| 160 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SubmitInlineKeyboardInput( | ||
| 161 | JNIEnv* env, jclass clazz, jint j_key_code); | ||
| 162 | |||
| 163 | #ifdef __cplusplus | ||
| 164 | } | ||
| 165 | #endif | ||
diff --git a/src/android/app/src/main/res/drawable/ic_pip_audio.xml b/src/android/app/src/main/res/drawable/ic_pip_sound.xml index f7ed0862e..f7ed0862e 100644 --- a/src/android/app/src/main/res/drawable/ic_pip_audio.xml +++ b/src/android/app/src/main/res/drawable/ic_pip_sound.xml | |||
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index d4f089c7f..eb1d83693 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml | |||
| @@ -388,7 +388,7 @@ | |||
| 388 | <string name="pause">Pause</string> | 388 | <string name="pause">Pause</string> |
| 389 | <string name="play">Play</string> | 389 | <string name="play">Play</string> |
| 390 | <string name="mute">Mute</string> | 390 | <string name="mute">Mute</string> |
| 391 | <string name="audio">Audio</string> | 391 | <string name="sound">Sound</string> |
| 392 | 392 | ||
| 393 | <!-- Licenses screen strings --> | 393 | <!-- Licenses screen strings --> |
| 394 | <string name="licenses">Licenses</string> | 394 | <string name="licenses">Licenses</string> |