diff options
| author | 2019-08-24 15:57:49 +0200 | |
|---|---|---|
| committer | 2020-01-23 20:55:26 +0100 | |
| commit | ac3690f2057fb93ce18f156ff5ffd720a6d6f60c (patch) | |
| tree | d0ec80a2537b992146d34f5bf17ba0cc549bd88e /src/yuzu_cmd | |
| parent | Merge pull request #3341 from bunnei/time-posix-myrule (diff) | |
| download | yuzu-ac3690f2057fb93ce18f156ff5ffd720a6d6f60c.tar.gz yuzu-ac3690f2057fb93ce18f156ff5ffd720a6d6f60c.tar.xz yuzu-ac3690f2057fb93ce18f156ff5ffd720a6d6f60c.zip | |
Input: UDP Client to provide motion and touch controls
An implementation of the cemuhook motion/touch protocol, this adds the
ability for users to connect several different devices to citra to send
direct motion and touch data to citra.
Co-Authored-By: jroweboy <jroweboy@gmail.com>
Diffstat (limited to 'src/yuzu_cmd')
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 1a812cb87..86f65cf46 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include "core/hle/service/acc/profile_manager.h" | 12 | #include "core/hle/service/acc/profile_manager.h" |
| 13 | #include "core/settings.h" | 13 | #include "core/settings.h" |
| 14 | #include "input_common/main.h" | 14 | #include "input_common/main.h" |
| 15 | #include "input_common/udp/client.h" | ||
| 15 | #include "yuzu_cmd/config.h" | 16 | #include "yuzu_cmd/config.h" |
| 16 | #include "yuzu_cmd/default_ini.h" | 17 | #include "yuzu_cmd/default_ini.h" |
| 17 | 18 | ||
| @@ -297,6 +298,10 @@ void Config::ReadValues() { | |||
| 297 | sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_x", 15); | 298 | sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_x", 15); |
| 298 | Settings::values.touchscreen.diameter_y = | 299 | Settings::values.touchscreen.diameter_y = |
| 299 | sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_y", 15); | 300 | sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_y", 15); |
| 301 | Settings::values.udp_input_address = sdl2_config->GetString( | ||
| 302 | "Controls", "udp_input_address", InputCommon::CemuhookUDP::DEFAULT_ADDR); | ||
| 303 | Settings::values.udp_input_port = static_cast<u16>(sdl2_config->GetInteger( | ||
| 304 | "Controls", "udp_input_port", InputCommon::CemuhookUDP::DEFAULT_PORT)); | ||
| 300 | 305 | ||
| 301 | std::transform(keyboard_keys.begin(), keyboard_keys.end(), | 306 | std::transform(keyboard_keys.begin(), keyboard_keys.end(), |
| 302 | Settings::values.keyboard_keys.begin(), InputCommon::GenerateKeyboardParam); | 307 | Settings::values.keyboard_keys.begin(), InputCommon::GenerateKeyboardParam); |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index 8d18a4a5a..e829f8695 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -69,12 +69,29 @@ rstick= | |||
| 69 | # - "motion_emu" (default) for emulating motion input from mouse input. Required parameters: | 69 | # - "motion_emu" (default) for emulating motion input from mouse input. Required parameters: |
| 70 | # - "update_period": update period in milliseconds (default to 100) | 70 | # - "update_period": update period in milliseconds (default to 100) |
| 71 | # - "sensitivity": the coefficient converting mouse movement to tilting angle (default to 0.01) | 71 | # - "sensitivity": the coefficient converting mouse movement to tilting angle (default to 0.01) |
| 72 | # - "cemuhookudp" reads motion input from a udp server that uses cemuhook's udp protocol | ||
| 72 | motion_device= | 73 | motion_device= |
| 73 | 74 | ||
| 74 | # for touch input, the following devices are available: | 75 | # for touch input, the following devices are available: |
| 75 | # - "emu_window" (default) for emulating touch input from mouse input to the emulation window. No parameters required | 76 | # - "emu_window" (default) for emulating touch input from mouse input to the emulation window. No parameters required |
| 77 | # - "cemuhookudp" reads touch input from a udp server that uses cemuhook's udp protocol | ||
| 78 | # - "min_x", "min_y", "max_x", "max_y": defines the udp device's touch screen coordinate system | ||
| 76 | touch_device= | 79 | touch_device= |
| 77 | 80 | ||
| 81 | # Most desktop operating systems do not expose a way to poll the motion state of the controllers | ||
| 82 | # so as a way around it, cemuhook created a udp client/server protocol to broadcast the data directly | ||
| 83 | # from a controller device to the client program. Citra has a client that can connect and read | ||
| 84 | # from any cemuhook compatible motion program. | ||
| 85 | |||
| 86 | # IPv4 address of the udp input server (Default "127.0.0.1") | ||
| 87 | udp_input_address= | ||
| 88 | |||
| 89 | # Port of the udp input server. (Default 26760) | ||
| 90 | udp_input_port= | ||
| 91 | |||
| 92 | # The pad to request data on. Should be between 0 (Pad 1) and 3 (Pad 4). (Default 0) | ||
| 93 | udp_pad_index= | ||
| 94 | |||
| 78 | [Core] | 95 | [Core] |
| 79 | # Whether to use multi-core for CPU emulation | 96 | # Whether to use multi-core for CPU emulation |
| 80 | # 0 (default): Disabled, 1: Enabled | 97 | # 0 (default): Disabled, 1: Enabled |