|
|
@@ -341,6 +341,46 @@ constexpr int NUM_KEYBOARD_MODS_HID = NumKeyboardMods;
|
|
|
|
|
|
} // namespace NativeKeyboard
|
|
|
|
|
|
+using ButtonsRaw = std::array<std::string, NativeButton::NumButtons>;
|
|
|
+using AnalogsRaw = std::array<std::string, NativeAnalog::NumAnalogs>;
|
|
|
+using MouseButtonsRaw = std::array<std::string, NativeMouseButton::NumMouseButtons>;
|
|
|
+using KeyboardKeysRaw = std::array<std::string, NativeKeyboard::NumKeyboardKeys>;
|
|
|
+using KeyboardModsRaw = std::array<std::string, NativeKeyboard::NumKeyboardMods>;
|
|
|
+
|
|
|
+constexpr u32 JOYCON_BODY_NEON_RED = 0xFF3C28;
|
|
|
+constexpr u32 JOYCON_BUTTONS_NEON_RED = 0x1E0A0A;
|
|
|
+constexpr u32 JOYCON_BODY_NEON_BLUE = 0x0AB9E6;
|
|
|
+constexpr u32 JOYCON_BUTTONS_NEON_BLUE = 0x001E1E;
|
|
|
+
|
|
|
+enum class ControllerType {
|
|
|
+ ProController,
|
|
|
+ DualJoycon,
|
|
|
+ RightJoycon,
|
|
|
+ LeftJoycon,
|
|
|
+};
|
|
|
+
|
|
|
+struct PlayerInput {
|
|
|
+ bool connected;
|
|
|
+ ControllerType type;
|
|
|
+ ButtonsRaw buttons;
|
|
|
+ AnalogsRaw analogs;
|
|
|
+
|
|
|
+ u32 body_color_right;
|
|
|
+ u32 button_color_right;
|
|
|
+ u32 body_color_left;
|
|
|
+ u32 button_color_left;
|
|
|
+};
|
|
|
+
|
|
|
+struct TouchscreenInput {
|
|
|
+ bool enabled;
|
|
|
+ std::string device;
|
|
|
+
|
|
|
+ u32 finger;
|
|
|
+ u32 diameter_x;
|
|
|
+ u32 diameter_y;
|
|
|
+ u32 rotation_angle;
|
|
|
+};
|
|
|
+
|
|
|
struct Values {
|
|
|
// System
|
|
|
bool use_docked_mode;
|
|
|
@@ -350,8 +390,8 @@ struct Values {
|
|
|
s32 language_index;
|
|
|
|
|
|
// Controls
|
|
|
- std::array<std::string, NativeButton::NumButtons> buttons;
|
|
|
- std::array<std::string, NativeAnalog::NumAnalogs> analogs;
|
|
|
+ std::array<PlayerInput, 10> players;
|
|
|
+
|
|
|
bool mouse_enabled;
|
|
|
std::string mouse_device;
|
|
|
MouseButtonsRaw mouse_buttons;
|
|
|
@@ -359,8 +399,13 @@ struct Values {
|
|
|
bool keyboard_enabled;
|
|
|
KeyboardKeysRaw keyboard_keys;
|
|
|
KeyboardModsRaw keyboard_mods;
|
|
|
+
|
|
|
+ bool debug_pad_enabled;
|
|
|
+ ButtonsRaw debug_pad_buttons;
|
|
|
+ AnalogsRaw debug_pad_analogs;
|
|
|
+
|
|
|
std::string motion_device;
|
|
|
- std::string touch_device;
|
|
|
+ TouchscreenInput touchscreen;
|
|
|
std::atomic_bool is_device_reload_pending{true};
|
|
|
|
|
|
// Core
|