Commit Graph

2574 Commits

Author SHA1 Message Date
Diablodiab
47d5242dd7 Add middle mouse button support to Android input driver
Add lightgun support to Android input driver
2017-02-16 21:52:52 +01:00
Diablodiab
4f039cac22 This adds external mouse support to the Android input driver. It also adds support for using the touch screen as mouse in cores with mouse support (eg. ScummVM).
It has been tested with the ScummVM core on:
- NVIDIA Shield TV running Android Nougat 7.0
- NVIDIA Shield Tablet running Android Nougat 7.0
- NVIDIA Shield Tablet running Android Lollipop 5.1
- Huawei Honor 7 running Android Marshmallow 6.0
- HTC Desire 500 running Android Jelly Bean 4.1

It's been tested using the touch screen, a USB mouse/keyboard combo, and a bluetooth mouse.

The Android version running on the device limits the functionality and user experience of the external mouse support.
Android Nougat and/or an NVIDIA SHIELD device with NVIDIA extensions provides the best user experience:

Android API < 14:
- Only left mouse button supported
- The Android mouse cursor will be visible along with the in game mouse cursor
- When the Android mouse cursor hits the edge of the screen it will not be possible to move the in-game mouse cursor further in that direction

Android API < 24 and no NVIDIA extensions available:
- Both left and right mouse buttons supported
- The Android mouse cursor will be visible along with the in game mouse cursor
- When the Android mouse cursor hits the edge of the screen it will not be possible to move the in-game mouse cursor further in that direction

Android API > 23 and/or NVIDIA extensions available (SHIELD devices):
- Both left and right mouse buttons supported
- The Android mouse cursor will be hidden
- The mouse is not limited by the (hidden) Android mouse cursor hitting the edge of the screen

Description of how the the touchscreen mouse support works:
- You can move the in-game mouse cursor using the touch screen. The in-game mouse cursor will move relative to your movements on the touch screen, it will not be centered on where you press the screen.
- One quick tap on the touch screen results in the left mouse button being clicked
- Two taps on the screen and keeping the second tap pressed down results in a left mouse being held down until you release
- Two fingers on the touch screen results in the right mouse button being clicked

The touch screen mouse functionality is active at the same time as overlay support. This might cause some confusion when using cores that are designed for mouse support but where you have also enabled overlay controls. At the top of android_input.c there's a define that can be used to turn off this functionality if it causes more problems than it solves.
2017-02-14 22:34:46 +01:00
xhp-creations
b04bf809e3 WiiU Fix Keyboard Input
WiiU Fix Keyboard Input
2017-02-09 14:08:27 -05:00
xhp-creations
4915f452f5 WiiU Initial Keyboard Support
WiiU Initial Keyboard Support
2017-02-09 12:34:12 -05:00
Brad Parker
83619b25e6 DOS: add keyboard driver to support non-joypad keys 2017-02-05 13:55:21 -05:00
twinaphex
e3a1b1859d Fix ./configure --disable-rgui 2017-02-04 09:20:41 +01:00
twinaphex
f31ae11d29 Silence warnings 2017-01-31 04:00:16 +01:00
aliaspider
ffbd1e838a (3DS) build fix. 2017-01-31 03:27:26 +01:00
neville
fc2654cd0f (iohidmanager_hid.c) Silence a whole bunch of warnings 2017-01-29 20:20:43 +01:00
twinaphex
1b3225089e iohidmanager.c - Attempt to silence some warnings 2017-01-29 20:11:32 +01:00
twinaphex
bdaf00032e Add comments 2017-01-26 02:49:42 +01:00
twinaphex
be617c530b Expand input_keys_pressed 2017-01-25 04:31:55 +01:00
aliaspider
0ba9faa8bd (CTR) build fix. 2017-01-24 10:43:35 +01:00
Brad Parker
2c97e330de remove unused code 2017-01-24 01:04:00 -05:00
Brad Parker
57949227df DOS: initial input/joypad driver 2017-01-24 00:55:58 -05:00
aliaspider
021b510452 (WiiU) refactors/cleanups. 2017-01-23 16:14:05 +01:00
twinaphex
0761381e2a Fix overlay issue 2017-01-23 02:45:36 +01:00
twinaphex
daf0e90f82 input_driver.c - cleanup 2017-01-23 02:28:25 +01:00
twinaphex
3a711f6d4f Make conditional for polling the same as input_state 2017-01-23 01:46:33 +01:00
twinaphex
18662afe56 input_poll - cleanup 2017-01-23 01:44:13 +01:00
twinaphex
a42f66d629 Streamline input_state - hopefully turbo buttons still work 2017-01-23 01:18:08 +01:00
twinaphex
0d5b3b9273 Create menu_driver_is_alive 2017-01-23 00:37:52 +01:00
twinaphex
12c5cc51c5 Create bsv_movie_get_input 2017-01-22 17:03:42 +01:00
twinaphex
5bc611c885 Small cleanup 2017-01-22 16:54:33 +01:00
twinaphex
a9a3f6b078 Another cleanup 2017-01-22 16:49:08 +01:00
twinaphex
c283d2cf26 Small micro-opts to input_state 2017-01-22 16:44:34 +01:00
twinaphex
96c8ca5a09 Header update #1 2017-01-22 13:40:32 +01:00
Brad Parker
1d3e1a6962 DOS/DJGPP buildfix 2017-01-20 18:23:45 -05:00
twinaphex
aa59b33931 Use input_config_set_device 2017-01-17 19:59:33 +01:00
twinaphex
b4cdad1a6f Cleanups 2017-01-17 19:43:19 +01:00
twinaphex
0354ced675 Style nits 2017-01-17 19:02:49 +01:00
twinaphex
4743230b09 Some header includes shouldn't be system includes 2017-01-17 18:15:11 +01:00
twinaphex
7931436f5b Apply xerpi diff 2017-01-17 18:12:23 +01:00
Twinaphex
014ed5e87f Merge pull request #4441 from aliaspider/master
(WiiU) simplify input code + fix crash on content reload.
2017-01-17 13:16:56 +01:00
aliaspider
14660a8c12 (WiiU) simplify input code, add button labels for autoconfigs. 2017-01-17 12:41:55 +01:00
twinaphex
d519ad7017 (input_config.c) Move variable 2017-01-16 21:36:04 +01:00
aliaspider
8cb692622a (WiiU) add support for bluetooth controllers (Wiimote, nunchuk, classic
controller, wiiu pro controller).
2017-01-16 18:52:39 +01:00
twinaphex
77cf4f4e06 This should fix index issue 2017-01-16 16:09:40 +01:00
twinaphex
6eac6a6447 joy_idx goes through joypad_map now 2017-01-16 15:20:14 +01:00
twinaphex
e3e8796b2b (iohidmanager_hid.c) Stylistic cleanups 2017-01-15 21:13:01 +01:00
Twinaphex
1544a3d6e1 (OSX) Fix warnings 2017-01-15 21:07:15 +01:00
John Regan
4f352227ea OSX Joypad Improvements
This commit has two main changes to the OSX HID driver:

1.

Some joysticks have invalid/incorrect 'use' assigned to buttons and
axes. For example, my RetroUSB.com Genesis Retroport reports 8 buttons,
but they're reported as 1, 2, 3, 4, 1, 2, 3, 4, and my RetroLink
Gamecube-clone controller reports 2 axes with id 50.

OSX assigns each of these elements a unique cookie value, so it's still
possible to uniquely identify a button. Whenever a controller is
connected, the driver scans for all buttons and axes. When it identifies
a duplicate 'use' id, it reassigns it a new ID.

Whenever the input callback is called, it grabs the cookie value,
finds the input element with a matching cookie, and uses that element's
id instead of the one reported by the device.

The old joystick configs should not be broken by this - I'm using the
existing 'use' value wherever possible, and only changing it when it's
broken.

The 'faked' ids are done in a deterministic way, a joystick will never
have a button's 'faked' id change between launches of RetroArch.

2.

This enables HAT switch input.
2017-01-15 12:17:47 -06:00
Aaron Kling
8a2585f8dc Handle motion events if source is touchscreen or mouse regardless
of other sources being set.

API level 9 doesn't support stylus, but still needs to be handled.
Current code throws out additional sources that it doesn't
recognize. This instead ignores whether other sources are set.
2017-01-13 18:37:50 -06:00
twinaphex
6ed4de0d79 Create input_config_get_device_name 2017-01-13 16:02:10 +01:00
twinaphex
8b0127b122 (input_keyboard.c) Remove dependence on configuration.h header 2017-01-13 15:56:17 +01:00
twinaphex
17ff813310 (input_joypad_driver.c) reduce header dependencies on configuration.h 2017-01-13 15:53:14 +01:00
twinaphex
4ebf4d6938 Create input_config_get_bind_idx 2017-01-13 15:42:30 +01:00
twinaphex
0387e5e470 (input_keyboard.c) Cleanup 2017-01-13 15:26:40 +01:00
twinaphex
f9dbd4dc02 Remove config_label_to_key 2017-01-13 15:24:54 +01:00
twinaphex
b996df6447 Put back input flushing - fixes input entry 2017-01-13 15:11:00 +01:00
twinaphex
cab74cd4a2 Buildfix 2017-01-13 10:00:43 +01:00
twinaphex
ea3dd6a95b Set device name when autoconfig connect task fails for all
other input drivers too
2017-01-13 05:00:13 +01:00
twinaphex
455c3f35c9 Buildfix 2017-01-13 04:42:26 +01:00
twinaphex
add7d26c3d Set device name for xinput/dinput even when autoconfig is
disabled
2017-01-13 04:40:44 +01:00
twinaphex
b2ad5274b3 Cleanups/style nits 2017-01-12 09:01:07 +01:00
twinaphex
640c9aa824 Get rid of ifdef 2017-01-12 08:55:46 +01:00
Twinaphex
c5d1fe9ec5 Cleanup 2017-01-12 07:36:52 +01:00
twinaphex
404e60f7ed Initialize all users' binds 2017-01-11 23:37:01 +01:00
twinaphex
73a5e54ca8 Initialize libretro_input_binds inside input_driver_init 2017-01-11 23:32:33 +01:00
twinaphex
ca5bdab881 Rename get_state_menu_toggle_button_combo 2017-01-11 20:29:31 +01:00
twinaphex
640d7e69f3 Make menu toggle binds work again - still latching issues
but same as before so no regression
2017-01-11 11:48:26 +01:00
twinaphex
b45c96cc18 (WiiU) Buildfix 2017-01-11 08:24:55 +01:00
twinaphex
819f7c1e41 Get rid of input_keys_pressed_end macro 2017-01-11 07:31:37 +01:00
twinaphex
c79da6842e Found a better and clenaer way to flush input 2017-01-11 07:31:09 +01:00
twinaphex
d0df067e84 Ignore 'unified controls' when OSK keyboard is onscreen even
when unified controls are enabled
2017-01-11 06:05:21 +01:00
twinaphex
899601e7bb Do an early return inside menu_shader_manager_init if already initialized 2017-01-11 03:36:35 +01:00
twinaphex
9daf16ee55 Fix crash at startup when enable_hotkey is mapped 2017-01-11 03:23:47 +01:00
twinaphex
4f4af01349 Fix keyboard issues with OSK 2017-01-11 02:17:03 +01:00
twinaphex
997fa98887 Style nit 2017-01-11 00:00:24 +01:00
twinaphex
5b15119f06 (PSP) Buildfix 2017-01-10 22:48:39 +01:00
twinaphex
cd105e7432 (CTR) Buildfix 2017-01-10 22:45:53 +01:00
twinaphex
6b5bf1ccc3 (wiiu_input.c) Fix build 2017-01-10 22:44:44 +01:00
twinaphex
2ed1e38021 dinput.c - silence warning 2017-01-10 20:11:51 +01:00
twinaphex
5978cf89de Cleanups 2017-01-10 20:05:53 +01:00
twinaphex
1eb17b6315 Remove settings header includes 2017-01-10 20:03:55 +01:00
twinaphex
f3de77e93c (dinput.c) remove dependency on settings struct 2017-01-10 20:00:07 +01:00
twinaphex
da244c177b Fix signed/unsigned mismatch warning 2017-01-10 19:49:00 +01:00
twinaphex
8bd12368ef Pass joypad_driver name to input_driver_init function and make
sure we don't need to access the settings struct from the
input driver
2017-01-10 17:59:48 +01:00
twinaphex
db6fba51c3 Cleanup dinput.c 2017-01-10 17:42:57 +01:00
twinaphex
d48141041d Pass joypad_info to input_state function callback - less
settings pointer grabbing
2017-01-10 17:40:21 +01:00
twinaphex
da4d2a9f42 Remove conditionals for device JOYPAD from input_state callback functions 2017-01-10 17:05:04 +01:00
twinaphex
b44b025eab Do conditional checking (if bind is valid) outside of input_state
callback function
2017-01-10 17:00:01 +01:00
twinaphex
08a2acdc95 Update input_keys_pressed_checks 2017-01-10 16:51:35 +01:00
twinaphex
baf351e1ee CLeanup input_menu_keys_pressed_internal 2017-01-10 16:34:55 +01:00
twinaphex
98a346db2d Cleanup input_menu_keys_pressed_internal 2017-01-10 16:29:16 +01:00
twinaphex
f26fbbef83 (input_driver.c) Move settings variable 2017-01-10 16:17:34 +01:00
twinaphex
0e487e0acd Create input_keys_pressed_end 2017-01-10 16:15:20 +01:00
twinaphex
22b86226f8 Fix warnings 2017-01-10 16:14:49 +01:00
twinaphex
91e572d7ef Create input_keys_pressed_checks macro 2017-01-10 16:08:31 +01:00
twinaphex
466d5fd531 (input_driver.c) Cleanups 2017-01-10 16:03:25 +01:00
twinaphex
b94c4eec2b (input_driver.c) Cleanups 2017-01-10 16:00:20 +01:00
twinaphex
b9945f05f1 Pass joypad_info to input_joypad_analog 2017-01-10 03:53:57 +01:00
twinaphex
6376f2af68 Add rarch_joypad_info_t 2017-01-10 03:44:53 +01:00
Josh Palmer
437734e407 Rewrite QNX input & joypad drivers for proper BB10.3.1 support 2017-01-09 20:26:09 +00:00
Josh Palmer
8672b88eff First round of momentics project fixups 2017-01-09 20:24:51 +00:00
twinaphex
485385be80 Cleanups 2017-01-09 02:13:16 +01:00
twinaphex
42686f2f81 (input_overlay.c) remove bunch of header includes 2017-01-09 01:51:30 +01:00
twinaphex
e75633064a Add 'Y button' callback function for input binds 2017-01-05 04:52:04 +01:00
twinaphex
5bb741ffda (input) Cleanups/nits 2017-01-03 04:55:37 +01:00
twinaphex
4e3c2b3e66 (PSP/Vita) Buildfix 2017-01-02 02:39:15 +01:00
Alcaro
7b8a5b4f5b error: invalid conversion from ‘int’ to ‘xkb_keymap_compile_flags’ 2017-01-02 02:17:32 +01:00
twinaphex
92ca53db01 No more usage of settings_t inside input_overlay.c 2017-01-01 04:57:57 +01:00
twinaphex
36a6abede7 (input_overlay.c) Cleanup 2017-01-01 04:31:22 +01:00
twinaphex
46080f2194 (input_overlay.c) Cleanup 2017-01-01 04:28:25 +01:00
twinaphex
d84b75e1de (input_overlay.c) Cleanups 2017-01-01 04:26:21 +01:00
twinaphex
8d8fab60f9 input_overlay.c - cleanups 2017-01-01 04:21:29 +01:00
twinaphex
0ec6ef75df Move early return check to input_driver.c 2017-01-01 04:17:58 +01:00
twinaphex
6d4659a902 (overlay) Reduce dependence on grabbing settings pointer everywhere 2017-01-01 04:12:24 +01:00
twinaphex
103042de96 Rewrite task_autodetect.c 2016-12-31 07:43:34 +01:00
radius
af02b3ac85 Allow builtin autoconfs with the XBONE controller 2016-12-25 21:03:04 -05:00
twinaphex
66f189dff6 (wiiusb_hid.c) Prevent crashes 2016-12-26 00:38:54 +01:00
twinaphex
a5e4ea2f33 C89_BUILD fix 2016-12-24 01:47:01 +01:00
twinaphex
87e5c5a1bd input_menu_keys_pressed - remove some more boilerplate code 2016-12-23 02:28:13 +01:00
twinaphex
af5aaa9db8 Cleanup boilerplate code in input_menu_keys_pressed 2016-12-23 02:22:47 +01:00
twinaphex
32e1f96fa1 (PS3) Fix gamepad 2016-12-21 22:27:37 +01:00
twinaphex
8dcf05036c (input_config.c) Get rid of implicit memset 2016-12-19 18:55:02 +01:00
Gregor Richards
262d77546b Adding game/watch key
Adding a key to toggle between playing and spectating. This key takes
the place of the previous flip key, although player flipping does
continue to work (and must be rebound if you still want it)
2016-12-18 19:28:42 -05:00
radius
ab56b5f33c differentiate xbox one controllers 2016-12-18 13:44:15 -05:00
Hans-Kristian Arntzen
313ac63c33 Make use of xkb_state_update_mask.
Fixes mod keys in Wayland it seems.
2016-12-17 20:42:48 +01:00
Hans-Kristian Arntzen
b2059dcb79 Implement basic Wayland keyboard and mouse. 2016-12-17 20:28:08 +01:00
twinaphex
feae0823ce Prevent some implicit memsets 2016-12-17 14:40:06 +01:00
twinaphex
aafae944cb Don't memset autoconfig_params_t 2016-12-17 14:26:13 +01:00
twinaphex
2153f3f011 Check if autodetect is enabled at beginning of connect task 2016-12-16 15:18:04 +01:00
twinaphex
209305f944 Connect task now sets PID/VID too 2016-12-16 14:02:11 +01:00
twinaphex
1b0389713d (GX) Buildfix 2016-12-16 13:42:41 +01:00
Twinaphex
db1f3c058a (iohidmanager_hid.c) No longer need to include configuration.h now 2016-12-16 12:36:01 +01:00
twinaphex
d9def056e7 The 'connect' task now sets the device name upon completion 2016-12-16 12:33:56 +01:00
twinaphex
62f5b2d3c3 The disconnect task now clears the device name 2016-12-16 12:20:31 +01:00
Twinaphex
5c522c643c Merge pull request #4254 from danzel/fix-joypad-connection
Fix joypad_connection handling of unknown controllers
2016-12-16 12:15:40 +01:00
Dave Leaver
cd5a5c5fd7 iohidmanager_hid: Remove name from adapters when they are disconnected 2016-12-16 20:17:24 +13:00
Dave Leaver
f7c6574b37 Correctly handle adding controllers if we fail to match them to the known pad_map. 2016-12-16 20:16:55 +13:00
twinaphex
45e841c5c5 Don't include config_file.h inside input_config.h 2016-12-15 11:17:48 +01:00
Twinaphex
4964791cde Revert "changed input binding order" 2016-12-11 19:00:03 +01:00
Patrick Scheurenbrand
d40a0e2f3a changed input binding order 2016-12-11 13:03:02 +01:00
twinaphex
15c63c3de9 (input_driver.c) Cleanups 2016-12-11 09:13:24 +01:00
twinaphex
d2bd6677bd (udev_joypad.c) Cleanup 2016-12-11 08:48:25 +01:00
twinaphex
e9f853ba93 Move (joykey == NO_BTN ) to input_joypad_driver 2016-12-11 08:44:55 +01:00
twinaphex
37559c6f5f Cleanups 2016-12-11 08:31:55 +01:00
twinaphex
423578d972 (Joypad drivers) Simplify hat code 2016-12-11 07:28:33 +01:00
twinaphex
b087a7441a Fix game focus toggle 2016-12-11 03:52:08 +01:00
twinaphex
e32d93d886 Remove functions 2016-12-07 08:14:04 +01:00
twinaphex
04a3c3f15e Remove unused function input_driver_unset_flushing_input 2016-12-07 08:11:59 +01:00
twinaphex
dc7549434f Add headers 2016-12-07 08:10:02 +01:00
twinaphex
a12d0d082d Move input_translate_coord_viewport to video_driver.c 2016-12-07 08:07:11 +01:00
twinaphex
7327e98c8a Add HAVE_XINPUT ifdef 2016-12-07 07:08:27 +01:00
twinaphex
d04309fc05 Buildfix 2016-12-07 06:16:12 +01:00
twinaphex
31a7f64f2c Cleanups 2016-12-07 05:41:08 +01:00
twinaphex
f6dcfd21cf (MSVC) MSVC build fixes 2016-12-07 05:39:27 +01:00
twinaphex
e3620278a8 Add HAVE_MENU ifdefs for menu code 2016-12-07 03:16:34 +01:00
twinaphex
4b1c24adf9 - Move input flushing hack to input_keys_pressed functions
- Move menu binding state hack to menu_input_keys_pressed
2016-12-06 20:50:29 +01:00