Commit Graph

348 Commits

Author SHA1 Message Date
Brad Parker f6dc7f4f02 android: add option to vibrate on touch 2019-03-10 21:36:52 -04:00
radius b549f5181b try to fix #8121 by making the interval configurable 2019-02-07 22:34:18 -05:00
orbea 28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
orbea bfc366decc Squeeze extra blank lines with cat(1).
Example:

find . -type f -iname '*.c' | while read -r i; do
  cat -s "$i" > "$i.new"
  mv "$i.new" "$i"
done
2019-01-08 11:04:58 -08:00
Royerson ba435ce22a
add more model names for Xperia Play hack 2018-11-21 14:06:34 -07:00
radius 390c9a4dde xperia play hack 2018-11-18 17:34:54 -05:00
twinaphex a6941fb4ed Initial work done on VS2017 solution for Android 2018-08-14 16:02:31 +02:00
twinaphex ea09c29e04 Update implementations for other input drivers - not all input
drivers support this yet
2018-07-15 14:34:02 +02:00
radius 717e45dc52 Add mouse wheel support
enable hold to bind on android

cleanup
2018-06-29 21:12:47 -05:00
radius fef9b63bc0 Revert "Disable ENABLE_TOUCH_SCREEN_MOUSE for now until issues are resolved"
This reverts commit 2b02616512.
2018-06-29 21:12:47 -05:00
twinaphex 981b0eec91 Take this out 2018-06-19 06:28:38 +02:00
twinaphex 54a95eed83 These defines are not available on Android NDK APIs lower than 24 2018-06-18 01:56:22 +02:00
twinaphex 2b02616512 Disable ENABLE_TOUCH_SCREEN_MOUSE for now until issues are resolved 2018-02-15 14:50:14 +01:00
radius 3ee75e86c5 ake the hack less specific 2018-01-06 13:47:54 -05:00
twinaphex 69f85556a3 Get rid of meta_key_pressed 2017-12-18 05:59:57 +01:00
twinaphex 7b210ccf37 Don't call meta key pressed if not bound 2017-12-18 05:49:17 +01:00
gblues 6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
twinaphex e16371b8a5 Merge input_config.c and input_driver.c 2017-08-31 02:25:04 +02:00
radius f5360d0d82 extra devices 2017-08-04 01:17:32 -05:00
radius 2ef75cb300 buildfix 2017-08-04 01:11:31 -05:00
radius a6b24b4d42 fire tv hack 2017-08-04 01:09:05 -05:00
twinaphex f087419165 Rename platform_linux.c to platform_unix.c 2017-06-19 17:38:49 +02:00
twinaphex 9b13894438 Slightly rewrite input_state for android input driver 2017-06-10 12:48:09 +02:00
twinaphex 6b3dbff75f Merge input_driver.c and input_joypad_driver.c 2017-06-06 05:56:02 +02:00
radius 304a647248 dlopen libandroid from lib64 instead 2017-06-04 21:20:39 -05:00
twinaphex 59fb7700b8 Combine menu_driver.c and menu_display.c 2017-05-19 15:25:14 +02:00
twinaphex bf3188eac4 Combine runloop_ctl and rarch_ctl 2017-05-15 05:06:23 +02:00
twinaphex 9a6e137a56 Get rid of header include 2017-05-10 07:10:05 +02:00
twinaphex ef8094836f Create input_driver_get_float 2017-05-10 07:07:06 +02:00
twinaphex 6d4ac23f26 Cleanup 2017-04-29 16:20:26 +02:00
twinaphex fa9b641ef0 (Android) Buildfix 2017-04-28 15:53:38 +02:00
twinaphex b9f110679a Remove unused variable 2017-04-27 21:38:39 +02:00
twinaphex 549ed6fc6b (Android) Buildfix 2017-04-26 15:43:16 +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 fc5d240297 Get rid of some now-unused functions 2017-04-25 23:30:50 +02:00
twinaphex 53c9acacd6 Wrap access to settings->input.binds completely 2017-04-25 18:50:49 +02:00
twinaphex d66aff8fbd Start wrapping settings->input.binds 2017-04-25 18:12:13 +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
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
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
twinaphex 96c8ca5a09 Header update #1 2017-01-22 13:40:32 +01: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 ea3dd6a95b Set device name when autoconfig connect task fails for all
other input drivers too
2017-01-13 05:00:13 +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 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 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
twinaphex 103042de96 Rewrite task_autodetect.c 2016-12-31 07:43:34 +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 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 2ba311274e Simplify input_translate_coord_viewport 2016-12-05 05:18:36 +01:00
twinaphex 779b680264 (Android) Buildfix 2016-12-01 23:05:36 +01:00
twinaphex d3c22cb0e4 Move input/input_autodetect.c to tasks/task_autodetect.c 2016-12-01 20:38:20 +01:00
twinaphex 76d0380e45 Rename input_autoconfigure_joypad to input_autoconfigure_connect 2016-12-01 18:57:44 +01:00
twinaphex e689d55414 Rename autoconfig functions 2016-12-01 18:52:34 +01:00
twinaphex 31a95b8972 (android_input.c) Get rid of HAVE_MENU ifdefs 2016-12-01 17:31:26 +01:00
twinaphex e9846aae68 (Android) Remove unused variables 2016-11-27 15:02:14 +01:00
twinaphex 95254aa79b Remove 'back as menu toggle' setting 2016-11-21 13:05:23 +01:00
twinaphex 763a925a17 Fix Android build 2016-10-29 04:59:56 +02:00
twinaphex ce98a4dd19 Get rid of now unused input_driver_key_pressed 2016-10-29 04:57:28 +02:00
radius 6a950526d5 add group for other android atv devices 2016-10-28 20:49:44 -05:00
twinaphex d246d320c7 Get rid of messy 'all_users_control_menu' hack - will be dealt
with better once menu_input branch has been merged
2016-10-27 07:00:13 +02:00
twinaphex 8ce882c829 Should hopefully fix most of the remaining issues 2016-10-26 10:29:26 +02:00
twinaphex b0ed69f05c Optimize android_keyboard_port_input_pressed 2016-10-23 20:43:14 +02:00
twinaphex 647ffca76c Optimize input_joypad_pressed code 2016-10-23 20:37:12 +02:00
twinaphex a4a1e96210 Prevent more implicit memsets 2016-10-16 01:40:29 +02:00
twinaphex 51b0e61712 Cleanups 2016-09-11 16:24:02 +02:00
twinaphex 012e069f86 Get rid of general.h includes 2016-09-11 13:21:56 +02:00
twinaphex d4122806ab (Android) Buildfix 2016-09-05 18:34:21 +02:00
twinaphex acd4dd527b Header include cleanups 2016-09-05 18:31:32 +02:00
Brad Parker a17679a0c5 add input option to allow any user to control the menu 2016-09-03 19:01:29 -04:00
twinaphex 2f7684c743 (Android) Cleanups 2016-05-25 16:03:32 +02:00
radius b6b2fdfaa6 comment out xbox 360 & dualshock hacks that are not needed anymore, friendly labels can be applied on the autoconf files instead 2016-05-25 00:47:01 -05:00
twinaphex b79b2dca13 Create performance_counters 2016-05-10 08:53:14 +02:00
twinaphex 2691ab0c7d Rename command_event enums 2016-05-09 20:51:53 +02:00
twinaphex a98ef36d36 Rename event_cmd_ctl to command_event 2016-05-09 20:20:50 +02:00
twinaphex 725c202498 Remove input_driver_ctl 2016-05-08 23:12:04 +02:00
Hans-Kristian Arntzen 8870e85395 More fixes for menu_display_ctl.
Grep shows nothing now.
2016-05-08 14:18:12 +02:00
Hans-Kristian Arntzen 66c4f608e6 Clear out rest of video_driver_ctl use. 2016-05-08 14:10:28 +02:00
Diablodiab 58c5cc6f46 Change ALooper_pollAll in android_input_poll from a non blocking call into a 1 ms
blocking call. For some reason this allows more input events to queue up in the
input queue for processing making it easier to press multiple gamepad buttons and
have it register within a single frame.
2016-04-29 00:42:09 +02:00
twinaphex 6f80e09ce1 Change MIN/MAX to upper-case 2016-03-02 00:07:31 +01:00
Diablodiab 84b6b505ad Fix crash when defining gamepad keys 2016-02-08 01:53:33 +01:00
Diablodiab bdb9471d13 Added support for using keyboards in the Retroarch menu and for mapping to gamepad keys. 2016-02-08 01:06:15 +01:00
twinaphex 372d673a26 Rename event_command to event_cmd_ctl - add second parameter 2016-01-22 15:34:43 +01:00
twinaphex fbd2e9aa84 Use string_is_equal more 2016-01-21 02:48:00 +01:00
Diablodiab e738b57cf8 Add handling of Nvidia Shield Virtual Controller
The NVIDIA Button on the Nvidia Shield Controller and inputs received from CEC remotes
are detected as a "Virtual" controller on the Shield TV.

If a virtual controller is detected on the Shield TV before an actual game controller
then it will be configured as "Shield Virtual Device". This allows the use of the
buttons on a CEC remote to control the Retroarch menu and games.

When an actual controller is connected the Virtual Device will be overwritten and
the NVIDIA button of the Virtual device will be mapped to the controller as the
menu button.

This also fixes the situation where you press the NVIDIA Button before any other
button on the game controller and it does nothing. Now it will go into the
Retroarch menu even if it is the first button pressed.

A matching profile for "Nvidia Shield Virtual Controller" has been sent as a pull request to
the "retroarch-joypad-autoconfig" repository.
2016-01-15 18:41:17 +01:00
Diablodiab 9245113738 Fix if clause that could result in a keyboard key being handled as gamepad input 2016-01-14 21:16:54 +01:00
Diablodiab 2c08dc0f4f Extends Android keyboard functionality to allow for up to three keyboards.
This solves the problem with volume buttons on phones being detected as
keyboards and blocking a real keyboard from being mapped afterwards.

Renamed id_1 and id_2 to pad_id1 and pad_id2
Renamed id_3 to kbd_id and change it to an array

Implement function is_keyboard_id(int id) which checks if an id is mapped as
a keyboard
2016-01-14 20:59:25 +01:00
Diablodiab afe8d2d617 Fixed two bugs in Android keyboard functionality and changed the way the keyboard
is registered (introduced an id_3 value)
2016-01-12 21:48:09 +01:00
twinaphex f374af9dbc Revert "Add keyboard input functionality to Android version"
This reverts commit 17bdb549d4.
2016-01-12 15:52:42 +01:00
Twinaphex db51b5a2c0 Merge pull request #2636 from diablodiab/android-keyboard-support
Add keyboard input functionality to Android version
2016-01-11 22:26:51 +01:00
Diablodiab 17bdb549d4 Add keyboard input functionality to Android version 2016-01-11 21:06:46 +01:00
twinaphex 347a18cb30 Update input headers 2016-01-10 04:33:01 +01:00
twinaphex 697351ee67 (input) Use string_is_empty 2015-12-26 07:54:17 +01:00
radius 4b082daa7e fix input labels empty on android 2015-12-12 20:56:42 -05:00
radius 48fbc5eda4 Improve the shield portable workaround and reimplement the workaround for the shield atv,
This workaround could be used as a foundation for other console like devices.
2015-12-11 17:25:03 -05:00
twinaphex 4727ddb52d Create RARCH_INPUT_CTL_KEY_PRESSED 2015-12-10 12:47:36 +01:00
twinaphex 7a791fa6e8 Turn primary_id/secondary_id into static variables 2015-12-09 22:17:55 +01:00
Twinaphex 2bb440bc08 Merge pull request #2535 from fr500/master
new workaround for pads implemented as two independents hid devices
2015-12-09 22:16:43 +01:00
twinaphex 23c13c0043 Delay reinit, gets rid of the remaining concurrency errors 2015-12-09 20:30:55 +01:00
radius 08f42beefb add ARCHOS gamepad 2015-12-09 10:00:32 -05:00
twinaphex 959b781c06 (Android) Implement input_alive 2015-12-08 13:47:46 +01:00
twinaphex 629a660af4 Check if android_app or android variables are NULL in android_input_poll_memcpy 2015-12-08 08:53:26 +01:00
twinaphex c1312d3b41 Buildfix 2015-12-07 21:21:13 +01:00
twinaphex 84bcf896b6 Set SET/UNSET_FRAME for Android 2015-12-07 21:17:55 +01:00
twinaphex 1e522f4035 (Android) Start calling SET_STUB_FRAME for LOST_FOCUS/GAINED_FOCUS 2015-12-07 21:07:04 +01:00
radius e28450368f reset the ids when the driver is reinitialized 2015-12-06 23:39:42 -05:00
radius 17aa00db1a change variables 2015-12-06 23:20:47 -05:00
radius cbd8819fb3 new workaround for pads implemented as two independents hid devices 2015-12-06 22:58:54 -05:00
Higor Eurípedes b64ecfae92 (android_input) Fix negative port issue 2015-12-06 21:08:27 -03:00
Higor Eurípedes 1cd0a0ff0a (android_input.c) Fix usage of signed/unsigned
This caused a segmentation failure in android_keyboard_state_get()
2015-12-05 19:23:02 -03:00
twinaphex 3517fdc02a (Android) Buildfix 2015-12-05 21:18:06 +01:00
twinaphex c0a1a6a3fe Move system->shutdown to runloop_ctl, turn it into a local
static variable
2015-12-04 12:44:12 +01:00
twinaphex 071912871b (android_input.c) Attempt to only grab dlopen handle once 2015-12-03 21:19:16 +01:00
twinaphex 8ae39377e7 (Android) Cleanups 2015-12-03 01:59:43 +01:00
twinaphex 694e64831b Create thread duplicate variant of android_input_data_t variable 2015-12-02 23:23:21 +01:00
twinaphex 923433ead7 Move engine_handle_dpad code to android_input.c - copy
hat and analog state to intermediary on android_app during
poll time
2015-12-02 22:33:27 +01:00
twinaphex 69ee18cea6 Create android_input_data_t 2015-12-02 22:12:43 +01:00
twinaphex e859fae4ee (Android) Move sensorManager and sensorEventQueue to android_app 2015-12-02 21:38:21 +01:00
twinaphex b7d7dcef1c Expand android_app 2015-12-02 19:28:15 +01:00
twinaphex cfe5491b05 (Android) Reimplement how shutdown gets signalled 2015-12-02 17:55:31 +01:00
twinaphex d6b5dd6ac4 Flesh out android_native_app_glue.c implementation some more 2015-12-02 17:46:20 +01:00
twinaphex 986e4bf40d (Android) Native activity updates 2015-12-02 08:54:24 +01:00
twinaphex 0db7cda264 Start moving rewind code to rewind.c 2015-11-30 22:25:13 +01:00
twinaphex 9824eb7ea9 Rename rarch_main_ctl to runloop_ctl 2015-11-30 21:42:59 +01:00
twinaphex 4e333302ae Rename RARCH_MAIN_CTL* to RUNLOOP_CTL* 2015-11-30 21:35:50 +01:00
twinaphex 9a743ec357 Create input_driver_key_pressed 2015-11-29 16:45:38 +01:00
twinaphex 025d2c6328 (Android) Cleanups 2015-11-29 16:20:04 +01:00
twinaphex 2d455d78b3 Move inptu state to android_joypad.c 2015-11-29 16:18:29 +01:00
twinaphex 7856c4e940 (Android) Cleanups 2015-11-28 18:39:43 +01:00
twinaphex b06d08a32e Remove some references to driver->input_data 2015-11-28 18:33:59 +01:00
twinaphex c23846c5dc Merged input_joypad.c and input_joypad_driver.c 2015-11-28 16:22:49 +01:00
twinaphex a6ccc188a8 Rename input_common.c to input_config.c 2015-11-28 02:22:58 +01:00
twinaphex a8d868f187 (Android) Implement 'focused' callback for androidegl_ctx 2015-11-27 20:38:29 +01:00
twinaphex a1ecc5eee3 (Android) Some cleanups in engine_handle_cmd 2015-11-27 18:27:30 +01:00
twinaphex daeb8cacaf Set idle when APP_CMD_LOST_FOCUS 2015-11-27 00:23:47 +01:00
Twinaphex 57e8cfe1f9 Totally reimplemented MFi support 2015-11-16 02:39:38 +01:00
twinaphex 53c0e57d6d (Android) Buildfix 2015-11-07 21:13:11 +01:00
twinaphex 22f85b11df Don't need this anymore 2015-11-07 20:59:12 +01:00
twinaphex 6ac88eed54 Cleanups 2015-10-23 08:34:15 +02:00