From f7666f44da5408bbfa38eb6a475bb75dfc1eaec8 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sat, 22 Feb 2020 20:42:49 +0100 Subject: [PATCH] Untangle GUI and input includes --- Utilities/rXml.h | 3 +- rpcs3/Emu/CMakeLists.txt | 3 +- rpcs3/Emu/Cell/Modules/cellGem.cpp | 1 + rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp | 2 + rpcs3/Emu/Cell/Modules/cellPad.cpp | 1 + rpcs3/Emu/Cell/Modules/cellSaveData.h | 1 + rpcs3/Emu/Cell/Modules/sceNpTrophy.h | 1 + rpcs3/Emu/Io/PadHandler.h | 279 +----------------- rpcs3/Emu/Io/pad_config.cpp | 24 -- rpcs3/Emu/Io/pad_config.h | 17 +- rpcs3/Emu/Io/pad_config_types.cpp | 26 ++ rpcs3/Emu/Io/pad_config_types.h | 25 ++ rpcs3/Emu/Io/pad_types.h | 273 +++++++++++++++++ rpcs3/Emu/Io/usb_device.cpp | 2 - rpcs3/Emu/Io/usb_device.h | 3 +- rpcs3/Emu/RSX/Overlays/overlay_perf_metrics.h | 1 + .../Emu/RSX/Overlays/overlay_save_dialog.cpp | 1 + rpcs3/Emu/RSX/Overlays/overlays.cpp | 3 +- rpcs3/Emu/RSX/Overlays/overlays.h | 5 +- rpcs3/Emu/RSX/RSXThread.cpp | 1 + rpcs3/Input/basic_keyboard_handler.cpp | 1 - rpcs3/Input/basic_mouse_handler.h | 2 +- rpcs3/Input/ds3_pad_handler.cpp | 1 + rpcs3/Input/ds4_pad_handler.cpp | 1 + rpcs3/Input/evdev_joystick_handler.cpp | 3 +- rpcs3/Input/evdev_joystick_handler.h | 3 +- rpcs3/Input/keyboard_pad_handler.cpp | 2 +- rpcs3/Input/keyboard_pad_handler.h | 2 +- rpcs3/Input/mm_joystick_handler.cpp | 1 + rpcs3/Input/mm_joystick_handler.h | 2 +- rpcs3/Input/pad_thread.cpp | 2 + rpcs3/Input/pad_thread.h | 12 +- rpcs3/Input/xinput_pad_handler.cpp | 1 + rpcs3/Input/xinput_pad_handler.h | 1 - rpcs3/display_sleep_control.cpp | 4 +- rpcs3/emucore.vcxproj | 5 +- rpcs3/emucore.vcxproj.filters | 23 +- rpcs3/main.cpp | 6 +- rpcs3/main_application.h | 2 +- rpcs3/rpcs3qt/_discord_utils.cpp | 3 +- rpcs3/rpcs3qt/_discord_utils.h | 4 +- rpcs3/rpcs3qt/about_dialog.cpp | 2 +- rpcs3/rpcs3qt/auto_pause_settings_dialog.cpp | 6 + rpcs3/rpcs3qt/auto_pause_settings_dialog.h | 9 - rpcs3/rpcs3qt/breakpoint_handler.h | 3 +- rpcs3/rpcs3qt/breakpoint_list.cpp | 3 + rpcs3/rpcs3qt/breakpoint_list.h | 9 +- rpcs3/rpcs3qt/cg_disasm_window.cpp | 9 +- rpcs3/rpcs3qt/cg_disasm_window.h | 8 +- rpcs3/rpcs3qt/debugger_frame.cpp | 15 + rpcs3/rpcs3qt/debugger_frame.h | 23 +- rpcs3/rpcs3qt/debugger_list.cpp | 6 +- rpcs3/rpcs3qt/debugger_list.h | 13 +- rpcs3/rpcs3qt/emu_settings.cpp | 1 - rpcs3/rpcs3qt/emu_settings.h | 6 +- rpcs3/rpcs3qt/find_dialog.cpp | 6 +- rpcs3/rpcs3qt/find_dialog.h | 3 +- rpcs3/rpcs3qt/game_compatibility.cpp | 5 +- rpcs3/rpcs3qt/game_compatibility.h | 8 +- rpcs3/rpcs3qt/game_list_frame.cpp | 9 +- rpcs3/rpcs3qt/game_list_frame.h | 16 +- rpcs3/rpcs3qt/game_list_grid.cpp | 1 - rpcs3/rpcs3qt/game_list_grid.h | 6 +- rpcs3/rpcs3qt/gl_gs_frame.cpp | 1 - rpcs3/rpcs3qt/gl_gs_frame.h | 2 +- rpcs3/rpcs3qt/gs_frame.cpp | 12 +- rpcs3/rpcs3qt/gs_frame.h | 11 +- rpcs3/rpcs3qt/gui_application.cpp | 7 + rpcs3/rpcs3qt/gui_application.h | 16 +- rpcs3/rpcs3qt/gui_settings.cpp | 2 +- rpcs3/rpcs3qt/gui_settings.h | 1 - rpcs3/rpcs3qt/input_dialog.cpp | 4 +- rpcs3/rpcs3qt/input_dialog.h | 2 - rpcs3/rpcs3qt/instruction_editor_dialog.cpp | 9 +- rpcs3/rpcs3qt/instruction_editor_dialog.h | 10 +- rpcs3/rpcs3qt/kernel_explorer.cpp | 38 ++- rpcs3/rpcs3qt/log_frame.cpp | 12 +- rpcs3/rpcs3qt/log_frame.h | 5 +- rpcs3/rpcs3qt/main_window.cpp | 19 +- rpcs3/rpcs3qt/main_window.h | 17 +- rpcs3/rpcs3qt/memory_string_searcher.cpp | 1 + rpcs3/rpcs3qt/memory_string_searcher.h | 1 - rpcs3/rpcs3qt/memory_viewer_panel.cpp | 10 +- rpcs3/rpcs3qt/memory_viewer_panel.h | 13 +- rpcs3/rpcs3qt/msg_dialog_frame.cpp | 17 +- rpcs3/rpcs3qt/msg_dialog_frame.h | 15 +- rpcs3/rpcs3qt/osk_dialog_frame.cpp | 4 +- rpcs3/rpcs3qt/osk_dialog_frame.h | 4 +- rpcs3/rpcs3qt/pad_settings_dialog.h | 5 +- rpcs3/rpcs3qt/pkg_install_dialog.cpp | 2 +- rpcs3/rpcs3qt/progress_dialog.cpp | 8 + rpcs3/rpcs3qt/progress_dialog.h | 7 - rpcs3/rpcs3qt/qt_utils.cpp | 3 +- rpcs3/rpcs3qt/qt_utils.h | 2 +- rpcs3/rpcs3qt/register_editor_dialog.cpp | 13 +- rpcs3/rpcs3qt/register_editor_dialog.h | 11 +- rpcs3/rpcs3qt/rsx_debugger.cpp | 13 +- rpcs3/rpcs3qt/rsx_debugger.h | 16 +- rpcs3/rpcs3qt/save_data_dialog.cpp | 2 + rpcs3/rpcs3qt/save_data_info_dialog.cpp | 1 + rpcs3/rpcs3qt/save_data_info_dialog.h | 4 +- rpcs3/rpcs3qt/save_data_list_dialog.cpp | 5 +- rpcs3/rpcs3qt/save_data_list_dialog.h | 3 +- rpcs3/rpcs3qt/save_manager_dialog.cpp | 8 +- rpcs3/rpcs3qt/save_manager_dialog.h | 5 +- rpcs3/rpcs3qt/settings_dialog.cpp | 8 +- rpcs3/rpcs3qt/settings_dialog.h | 8 +- rpcs3/rpcs3qt/skylander_dialog.cpp | 5 + rpcs3/rpcs3qt/skylander_dialog.h | 5 - rpcs3/rpcs3qt/syntax_highlighter.h | 2 +- rpcs3/rpcs3qt/trophy_manager_dialog.cpp | 9 +- rpcs3/rpcs3qt/trophy_manager_dialog.h | 8 +- rpcs3/rpcs3qt/trophy_notification_frame.cpp | 2 +- rpcs3/rpcs3qt/trophy_notification_frame.h | 4 +- rpcs3/rpcs3qt/trophy_notification_helper.cpp | 1 - rpcs3/rpcs3qt/trophy_notification_helper.h | 1 - rpcs3/rpcs3qt/update_manager.cpp | 3 +- rpcs3/rpcs3qt/update_manager.h | 5 +- rpcs3/rpcs3qt/user_manager_dialog.cpp | 12 + rpcs3/rpcs3qt/user_manager_dialog.h | 15 +- rpcs3/rpcs3qt/vfs_dialog.cpp | 4 + rpcs3/rpcs3qt/vfs_dialog.h | 6 +- rpcs3/rpcs3qt/vfs_dialog_tab.cpp | 1 + rpcs3/rpcs3qt/vfs_dialog_tab.h | 1 - rpcs3/rpcs3qt/welcome_dialog.cpp | 3 - rpcs3/rpcs3qt/welcome_dialog.h | 4 +- 126 files changed, 702 insertions(+), 666 deletions(-) create mode 100644 rpcs3/Emu/Io/pad_config_types.cpp create mode 100644 rpcs3/Emu/Io/pad_config_types.h create mode 100644 rpcs3/Emu/Io/pad_types.h diff --git a/Utilities/rXml.h b/Utilities/rXml.h index ab5b2f1cb1..a68069ef57 100644 --- a/Utilities/rXml.h +++ b/Utilities/rXml.h @@ -1,6 +1,7 @@ -#pragma once +#pragma once #include +#include struct rXmlNode { diff --git a/rpcs3/Emu/CMakeLists.txt b/rpcs3/Emu/CMakeLists.txt index 6142d581b9..a630e9616c 100644 --- a/rpcs3/Emu/CMakeLists.txt +++ b/rpcs3/Emu/CMakeLists.txt @@ -341,8 +341,9 @@ target_link_libraries(rpcs3_emu # Io target_sources(rpcs3_emu PRIVATE - Io/pad_config.cpp Io/KeyboardHandler.cpp + Io/pad_config.cpp + Io/pad_config_types.cpp Io/PadHandler.cpp Io/usb_device.cpp Io/Skylander.cpp diff --git a/rpcs3/Emu/Cell/Modules/cellGem.cpp b/rpcs3/Emu/Cell/Modules/cellGem.cpp index 148a6d54c0..4d0235c0f5 100644 --- a/rpcs3/Emu/Cell/Modules/cellGem.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGem.cpp @@ -6,6 +6,7 @@ #include "Emu/Io/MouseHandler.h" #include "Emu/RSX/GSRender.h" #include "Utilities/Timer.h" +#include "Input/pad_thread.h" LOG_CHANNEL(cellGem); diff --git a/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp b/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp index 5e10191add..da4c8c5be1 100644 --- a/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp +++ b/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp @@ -4,6 +4,8 @@ #include "Emu/Cell/lv2/sys_sync.h" #include "Emu/RSX/Overlays/overlays.h" +#include "Input/pad_thread.h" + #include "cellSysutil.h" #include "cellMsgDialog.h" diff --git a/rpcs3/Emu/Cell/Modules/cellPad.cpp b/rpcs3/Emu/Cell/Modules/cellPad.cpp index fec83fdc42..663235c160 100644 --- a/rpcs3/Emu/Cell/Modules/cellPad.cpp +++ b/rpcs3/Emu/Cell/Modules/cellPad.cpp @@ -3,6 +3,7 @@ #include "Emu/Cell/PPUModule.h" #include "Emu/Cell/lv2/sys_process.h" +#include "Emu/Io/pad_types.h" #include "Input/pad_thread.h" #include "cellPad.h" diff --git a/rpcs3/Emu/Cell/Modules/cellSaveData.h b/rpcs3/Emu/Cell/Modules/cellSaveData.h index f502539266..c649ae617a 100644 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.h +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.h @@ -1,5 +1,6 @@ #pragma once +#include "stdafx.h" #include // Return codes diff --git a/rpcs3/Emu/Cell/Modules/sceNpTrophy.h b/rpcs3/Emu/Cell/Modules/sceNpTrophy.h index e75dcfdf10..e7b33c54f2 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpTrophy.h +++ b/rpcs3/Emu/Cell/Modules/sceNpTrophy.h @@ -1,5 +1,6 @@ #pragma once +#include "stdafx.h" #include "Emu/Memory/vm_ptr.h" #include diff --git a/rpcs3/Emu/Io/PadHandler.h b/rpcs3/Emu/Io/PadHandler.h index 2cdcce6491..3b3b0027af 100644 --- a/rpcs3/Emu/Io/PadHandler.h +++ b/rpcs3/Emu/Io/PadHandler.h @@ -1,285 +1,10 @@ #pragma once #include +#include "pad_types.h" #include "pad_config.h" +#include "pad_config_types.h" #include "Utilities/types.h" -#include "Emu/GameInfo.h" - -// TODO: HLE info (constants, structs, etc.) should not be available here - -enum SystemInfo -{ - CELL_PAD_INFO_INTERCEPTED = 0x00000001 -}; - -enum PortStatus -{ - CELL_PAD_STATUS_DISCONNECTED = 0x00000000, - CELL_PAD_STATUS_CONNECTED = 0x00000001, - CELL_PAD_STATUS_ASSIGN_CHANGES = 0x00000002, - CELL_PAD_STATUS_CUSTOM_CONTROLLER = 0x00000004, -}; - -enum PortSettings -{ - CELL_PAD_SETTING_LDD = 0x00000001, // Speculative - CELL_PAD_SETTING_PRESS_ON = 0x00000002, - CELL_PAD_SETTING_SENSOR_ON = 0x00000004, - CELL_PAD_SETTING_PRESS_OFF = 0x00000000, - CELL_PAD_SETTING_SENSOR_OFF = 0x00000000, -}; - -enum Digital1Flags -{ - CELL_PAD_CTRL_LEFT = 0x00000080, - CELL_PAD_CTRL_DOWN = 0x00000040, - CELL_PAD_CTRL_RIGHT = 0x00000020, - CELL_PAD_CTRL_UP = 0x00000010, - CELL_PAD_CTRL_START = 0x00000008, - CELL_PAD_CTRL_R3 = 0x00000004, - CELL_PAD_CTRL_L3 = 0x00000002, - CELL_PAD_CTRL_SELECT = 0x00000001, -}; - -enum Digital2Flags -{ - CELL_PAD_CTRL_SQUARE = 0x00000080, - CELL_PAD_CTRL_CROSS = 0x00000040, - CELL_PAD_CTRL_CIRCLE = 0x00000020, - CELL_PAD_CTRL_TRIANGLE = 0x00000010, - CELL_PAD_CTRL_R1 = 0x00000008, - CELL_PAD_CTRL_L1 = 0x00000004, - CELL_PAD_CTRL_R2 = 0x00000002, - CELL_PAD_CTRL_L2 = 0x00000001, -}; - -enum DeviceCapability -{ - CELL_PAD_CAPABILITY_PS3_CONFORMITY = 0x00000001, // PS3 Conformity Controller - CELL_PAD_CAPABILITY_PRESS_MODE = 0x00000002, // Press mode supported - CELL_PAD_CAPABILITY_SENSOR_MODE = 0x00000004, // Sensor mode supported - CELL_PAD_CAPABILITY_HP_ANALOG_STICK = 0x00000008, // High Precision analog stick - CELL_PAD_CAPABILITY_ACTUATOR = 0x00000010, // Motor supported -}; - -enum DeviceType -{ - CELL_PAD_DEV_TYPE_STANDARD = 0, - CELL_PAD_DEV_TYPE_BD_REMOCON = 4, - CELL_PAD_DEV_TYPE_LDD = 5, -}; - -enum ButtonDataOffset -{ - CELL_PAD_BTN_OFFSET_DIGITAL1 = 2, - CELL_PAD_BTN_OFFSET_DIGITAL2 = 3, - CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_X = 4, - CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_Y = 5, - CELL_PAD_BTN_OFFSET_ANALOG_LEFT_X = 6, - CELL_PAD_BTN_OFFSET_ANALOG_LEFT_Y = 7, - CELL_PAD_BTN_OFFSET_PRESS_RIGHT = 8, - CELL_PAD_BTN_OFFSET_PRESS_LEFT = 9, - CELL_PAD_BTN_OFFSET_PRESS_UP = 10, - CELL_PAD_BTN_OFFSET_PRESS_DOWN = 11, - CELL_PAD_BTN_OFFSET_PRESS_TRIANGLE = 12, - CELL_PAD_BTN_OFFSET_PRESS_CIRCLE = 13, - CELL_PAD_BTN_OFFSET_PRESS_CROSS = 14, - CELL_PAD_BTN_OFFSET_PRESS_SQUARE = 15, - CELL_PAD_BTN_OFFSET_PRESS_L1 = 16, - CELL_PAD_BTN_OFFSET_PRESS_R1 = 17, - CELL_PAD_BTN_OFFSET_PRESS_L2 = 18, - CELL_PAD_BTN_OFFSET_PRESS_R2 = 19, - CELL_PAD_BTN_OFFSET_SENSOR_X = 20, - CELL_PAD_BTN_OFFSET_SENSOR_Y = 21, - CELL_PAD_BTN_OFFSET_SENSOR_Z = 22, - CELL_PAD_BTN_OFFSET_SENSOR_G = 23, -}; - -enum -{ - CELL_PAD_ACTUATOR_MAX = 2, - CELL_PAD_MAX_PORT_NUM = 7, - CELL_PAD_MAX_CAPABILITY_INFO = 32, - CELL_PAD_MAX_CODES = 64, - CELL_MAX_PADS = 127, -}; - -struct Button -{ - u32 m_offset; - u32 m_keyCode; - u32 m_outKeyCode; - u16 m_value = 0; - bool m_pressed = false; - - u16 m_actual_value = 0; // only used in keyboard_pad_handler - bool m_analog = false; // only used in keyboard_pad_handler - bool m_trigger = false; // only used in keyboard_pad_handler - - Button(u32 offset, u32 keyCode, u32 outKeyCode) - : m_offset(offset) - , m_keyCode(keyCode) - , m_outKeyCode(outKeyCode) - { - if (offset == CELL_PAD_BTN_OFFSET_DIGITAL1) - { - if (outKeyCode == CELL_PAD_CTRL_LEFT || outKeyCode == CELL_PAD_CTRL_RIGHT || - outKeyCode == CELL_PAD_CTRL_UP || outKeyCode == CELL_PAD_CTRL_DOWN) - { - m_analog = true; - } - } - else if (offset == CELL_PAD_BTN_OFFSET_DIGITAL2) - { - if (outKeyCode == CELL_PAD_CTRL_CROSS || outKeyCode == CELL_PAD_CTRL_CIRCLE || - outKeyCode == CELL_PAD_CTRL_SQUARE || outKeyCode == CELL_PAD_CTRL_TRIANGLE || - outKeyCode == CELL_PAD_CTRL_L1 || outKeyCode == CELL_PAD_CTRL_R1) - { - m_analog = true; - } - else if (outKeyCode == CELL_PAD_CTRL_L2 || outKeyCode == CELL_PAD_CTRL_R2) - { - m_trigger = true; - } - } - } -}; - -struct AnalogStick -{ - u32 m_offset; - u32 m_keyCodeMin; - u32 m_keyCodeMax; - u16 m_value = 128; - - AnalogStick(u32 offset, u32 keyCodeMin, u32 keyCodeMax) - : m_offset(offset) - , m_keyCodeMin(keyCodeMin) - , m_keyCodeMax(keyCodeMax) - { - } -}; - -struct AnalogSensor -{ - u32 m_offset; - u16 m_value; - - AnalogSensor(u32 offset, u16 value) - : m_offset(offset) - , m_value(value) - {} -}; - -struct VibrateMotor -{ - bool m_isLargeMotor; - u16 m_value; - - VibrateMotor(bool largeMotor, u16 value) - : m_isLargeMotor(largeMotor) - , m_value(value) - {} -}; - -struct Pad -{ - bool m_buffer_cleared; - u32 m_port_status; - u32 m_device_capability; - u32 m_device_type; - u32 m_class_type; - - // Cable State: 0 - 1 plugged in ? - u8 m_cable_state; - - // DS4: 0 - 9 while unplugged, 0 - 10 while plugged in, 11 charge complete - // XInput: 0 = Empty, 1 = Low, 2 = Medium, 3 = Full - u8 m_battery_level; - - std::vector