Commit Graph

2561 Commits

Author SHA1 Message Date
twinaphex 3dc26db377 Simplify libretro_input_binds 2017-04-26 02:43:39 +02:00
twinaphex 58fcf421b5 Simplify input_poll 2017-04-26 02:35:41 +02:00
twinaphex e179108080 Cleanups 2017-04-26 00:24:59 +02:00
twinaphex a146dfee79 Use input_config_binds directly 2017-04-25 23:47:23 +02:00
twinaphex 33dda78ea8 Cleanups 2017-04-25 23:32:38 +02:00
twinaphex fc5d240297 Get rid of some now-unused functions 2017-04-25 23:30:50 +02:00
twinaphex f0eaef9d51 Cleanups 2017-04-25 22:14:56 +02:00
twinaphex 3087ceb482 Don't go through all these slow wrapper functions 2017-04-25 20:47:21 +02:00
twinaphex 5f9f43929a Turn settings->input.binds into static struct inside input_config.c 2017-04-25 18:54:01 +02:00
twinaphex 53c9acacd6 Wrap access to settings->input.binds completely 2017-04-25 18:50:49 +02:00
twinaphex c68c8a8cfe Rewrite this 2017-04-25 18:48:06 +02:00
twinaphex 87f05b3a7b Cleanups 2017-04-25 18:32:08 +02:00
twinaphex 8d0e3d7777 Wrap settings->input.binds 2017-04-25 18:27:18 +02:00
twinaphex 4845c4b4db Cleanup 2017-04-25 18:20:10 +02:00
twinaphex 3b3b008614 Move code to input_config_reset 2017-04-25 18:18:37 +02:00
twinaphex d66aff8fbd Start wrapping settings->input.binds 2017-04-25 18:12:13 +02:00
twinaphex e1e83b17b7 Wrap settings->input.libretro_device 2017-04-25 17:14:46 +02:00
twinaphex c871faa1f5 Move pid/vid arrays out of settings struct and move them
to input_config
2017-04-25 16:49:54 +02:00
twinaphex 6ace8ce66a Rewrite autoconf_binds and move it to task_autodetect.c - take
it out of the settings struct
2017-04-25 16:33:30 +02:00
twinaphex 20ed6eb90a Start using input_config_get_device_name 2017-04-25 16:04:28 +02:00
twinaphex f4b168f9b6 Call functions from task_autodetect.c 2017-04-25 15:53:30 +02:00
twinaphex 1c93cc4b18 Update logs 2017-04-23 12:00:49 +02:00
twinaphex f9bc2d3783 Use memcmp instead of string_is_equal where possible for
better performance
2017-04-21 22:47:15 +02:00
twinaphex 271edb4ca1 We don't want uppercase for these instances 2017-04-21 14:26:35 +02:00
twinaphex d1664481c2 Don't call input_remote_state unless pointer is non-NULL 2017-04-20 10:57:09 +02:00
twinaphex 69a3bf6a31 Create bsv_movie_is_playback_{on|off} 2017-04-20 10:40:11 +02:00
twinaphex f4071ba6ec Set axis_threshold 2017-04-18 05:11:44 +02:00
radius d70d04c473 improve shield portable hack 2017-04-16 16:48:37 -05:00
twinaphex 7f4b490fdb Prevent implicit memsets with struct video_viewport 2017-04-15 19:43:52 +02:00
Tatsuya79 5649f084e3 Make mouse relative again. 2017-03-31 17:28:49 +02:00
Jean-André Santoni 0b05fdf0b5 (Input) Fix shift release in xkb 2017-03-13 00:52:42 +01:00
twinaphex 58c08c0c02 Cleanups 2017-02-27 09:33:20 +01:00
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
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