summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/jni/emu_window/emu_window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/jni/emu_window/emu_window.cpp')
-rw-r--r--src/android/app/src/main/jni/emu_window/emu_window.cpp43
1 files changed, 8 insertions, 35 deletions
diff --git a/src/android/app/src/main/jni/emu_window/emu_window.cpp b/src/android/app/src/main/jni/emu_window/emu_window.cpp
index c927cddda..06db55369 100644
--- a/src/android/app/src/main/jni/emu_window/emu_window.cpp
+++ b/src/android/app/src/main/jni/emu_window/emu_window.cpp
@@ -5,6 +5,7 @@
#include "common/android/id_cache.h"
#include "common/logging/log.h"
+#include "input_common/drivers/android.h"
#include "input_common/drivers/touch_screen.h"
#include "input_common/drivers/virtual_amiibo.h"
#include "input_common/drivers/virtual_gamepad.h"
@@ -24,39 +25,18 @@ void EmuWindow_Android::OnSurfaceChanged(ANativeWindow* surface) {
void EmuWindow_Android::OnTouchPressed(int id, float x, float y) {
const auto [touch_x, touch_y] = MapToTouchScreen(x, y);
- m_input_subsystem->GetTouchScreen()->TouchPressed(touch_x, touch_y, id);
+ EmulationSession::GetInstance().GetInputSubsystem().GetTouchScreen()->TouchPressed(touch_x,
+ touch_y, id);
}
void EmuWindow_Android::OnTouchMoved(int id, float x, float y) {
const auto [touch_x, touch_y] = MapToTouchScreen(x, y);
- m_input_subsystem->GetTouchScreen()->TouchMoved(touch_x, touch_y, id);
+ EmulationSession::GetInstance().GetInputSubsystem().GetTouchScreen()->TouchMoved(touch_x,
+ touch_y, id);
}
void EmuWindow_Android::OnTouchReleased(int id) {
- m_input_subsystem->GetTouchScreen()->TouchReleased(id);
-}
-
-void EmuWindow_Android::OnGamepadButtonEvent(int player_index, int button_id, bool pressed) {
- m_input_subsystem->GetVirtualGamepad()->SetButtonState(player_index, button_id, pressed);
-}
-
-void EmuWindow_Android::OnGamepadJoystickEvent(int player_index, int stick_id, float x, float y) {
- m_input_subsystem->GetVirtualGamepad()->SetStickPosition(player_index, stick_id, x, y);
-}
-
-void EmuWindow_Android::OnGamepadMotionEvent(int player_index, u64 delta_timestamp, float gyro_x,
- float gyro_y, float gyro_z, float accel_x,
- float accel_y, float accel_z) {
- m_input_subsystem->GetVirtualGamepad()->SetMotionState(
- player_index, delta_timestamp, gyro_x, gyro_y, gyro_z, accel_x, accel_y, accel_z);
-}
-
-void EmuWindow_Android::OnReadNfcTag(std::span<u8> data) {
- m_input_subsystem->GetVirtualAmiibo()->LoadAmiibo(data);
-}
-
-void EmuWindow_Android::OnRemoveNfcTag() {
- m_input_subsystem->GetVirtualAmiibo()->CloseAmiibo();
+ EmulationSession::GetInstance().GetInputSubsystem().GetTouchScreen()->TouchReleased(id);
}
void EmuWindow_Android::OnFrameDisplayed() {
@@ -67,10 +47,9 @@ void EmuWindow_Android::OnFrameDisplayed() {
}
}
-EmuWindow_Android::EmuWindow_Android(InputCommon::InputSubsystem* input_subsystem,
- ANativeWindow* surface,
+EmuWindow_Android::EmuWindow_Android(ANativeWindow* surface,
std::shared_ptr<Common::DynamicLibrary> driver_library)
- : m_input_subsystem{input_subsystem}, m_driver_library{driver_library} {
+ : m_driver_library{driver_library} {
LOG_INFO(Frontend, "initializing");
if (!surface) {
@@ -80,10 +59,4 @@ EmuWindow_Android::EmuWindow_Android(InputCommon::InputSubsystem* input_subsyste
OnSurfaceChanged(surface);
window_info.type = Core::Frontend::WindowSystemType::Android;
-
- m_input_subsystem->Initialize();
-}
-
-EmuWindow_Android::~EmuWindow_Android() {
- m_input_subsystem->Shutdown();
}