Commit Graph

2479 Commits

Author SHA1 Message Date
Twinaphex
b7b3b2cb5f Try to prevent truckload of warnings on iOS 2017-02-26 10:33:03 +01:00
Twinaphex
aa2e7dc794 Silence warning 2017-02-26 03:53:05 +01:00
David Erickson
da8662bb4a Detect non-standard joystick buttons
The Xbox One S controller when connected via Bluetooth
is exposing its select button with the Linux KEY_BACK
code, which is outside of the normal input code
scan range for joysticks.  This patch adds additional
scanning to pick up such extra buttons, and adds
them as buttons after the normal ranges to preserve
compatibility with existing key mappings.
2017-02-24 01:09:15 -08:00
twinaphex
75188800b1 Use C comments 2017-02-19 04:37:40 +01:00
Diablodiab
2cbd1898e8 Android input driver mouse support fixes:
- Fix bug with cursor moving down to the right
- Remove handling of "copy" and "thread" input states simplifying the driver
2017-02-19 02:57:28 +01:00
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