125 Commits

Author SHA1 Message Date
David Lawson
0bdf574cfd udev_joypad: make rumble work
Rumble was not working for me. I learnt a bit about how evdev works and it seems like you need to set a replay which defines how long the effect is (previously we set it to 0). This means there's a maximum length to the rumble effect which feels wrong.

When we do `play.value = !!strength;` we're setting the number of times for the effect to repeat, which works fine because the effect stops when we set it to 0.

It doesn't feel quite right to me playing e.g. Goldeneye but I've not played on real hardware for a while.

I'm hoping someone is more familiar with evdev and can suggest a better approach.
2020-12-31 07:55:02 +00:00
David Lawson
b0de18ea12 udev_joypad: some cleanup 2020-12-30 22:07:26 +00:00
David Guillen Fandos
bf48757a2e Add support for 64 buttons in udev gamepads
It seems only 16 were only really supported anyway due to the
usage of BITS_COPY16_PTR (which only copies 16 bit states)?
2020-11-18 19:29:46 +01:00
jdgleaver
3fa1166ec4 (udev/linuxraw/wayland) Fix return key keyboard input 2020-09-29 11:23:35 +01:00
twinaphex
236622ffa6 (Joypad driver) Init function - return void pointer 2020-09-22 02:30:47 +02:00
twinaphex
99cff42988 (udev_joypad) Struct reordering, alignment 2020-09-11 15:53:18 +02:00
twinaphex
88a93b0053 Cleanups 2020-08-28 19:59:31 +02:00
twinaphex
4676e102d0 (input/drivers_joypad) Add TODO/FIXME notes 2020-08-03 17:31:22 +02:00
twinaphex
ed3ee2511f Cleanups - add local variable 2020-07-29 05:31:23 +02:00
rsn8887
78c9dbbd20 Fix input port assignments 2020-07-28 16:35:16 -05:00
twinaphex
897a9de5be (drivers_joypad) Cleanup axis functions 2020-07-19 18:51:05 +02:00
twinaphex
285b0ec0bb Buildfix 2020-07-19 03:20:41 +02:00
twinaphex
d97e590aaf Reimplement multi button state functions 2020-07-19 03:18:12 +02:00
twinaphex
cb5b22b6ac (Android) Refactor axis functions 2020-07-18 22:38:23 +02:00
Autechre
f8d6cea02a
Update udev_joypad.c 2020-07-18 21:56:27 +02:00
twinaphex
08ad00f5d3 Start preparing for being able to grab multiple buttons at the same time 2020-07-18 19:51:14 +02:00
twinaphex
8b078662cd Change function signature of joypad driver's 'button' 2020-07-18 18:07:57 +02:00
jdgleaver
84a71ea133 Rewrite 'task_autodetect.c': Ensure thread safety + clean-ups/rationalisation 2020-07-14 17:46:58 +01:00
twinaphex
79cc4f9c4f Revert "Start going through wrapper functions for access to input_device_names"
This reverts commit 92293525c130f202604bcf078f38426c7090d2e0.
2020-07-05 16:41:55 +02:00
twinaphex
92293525c1 Start going through wrapper functions for access to input_device_names 2020-07-05 10:33:21 +02:00
twinaphex
b363ed7d79 (drivers_joypad) get rid of excessive logging 2020-06-11 04:06:33 +02:00
twinaphex
ad1aa59ce1 Cleanup != NULL comparisons 2020-05-19 21:15:06 +02:00
twinaphex
f06607141d dinput_joypad_button - further cleanups 2019-07-23 18:37:28 +02:00
twinaphex
0257e01bee Refactor input_autoconfigure_connect - don't return
value - set input device name upon failure implicitly
2019-07-16 15:28:22 +02:00
David Skywalker
89645ac296 fix wrong udev devices order, fixes #9071 2019-07-08 01:27:41 +02:00
orbea
28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
orbea
5d56080312 Use the posix poll.h instead of sys/poll.h. 2019-02-01 09:58:04 -08:00
orbea
ff2e3bbbce Fix CXX_BUILD errors. 2019-01-13 11:51:33 -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
Greg V
a838582b11 udev: support on FreeBSD via libepoll-shim/libudev-devd 2019-01-01 03:16:33 +03:00
mickski56
aa0e0de1d9
address #6920 Proper analog trigger support 2018-07-24 22:48:50 +01:00
twinaphex
a82bb0ec94 Create special type input_bits_t 2018-04-08 20:21:12 +02:00
David Demelier
e99049a8ff Use EVIOCGID's ioctl to get vendor/product id, #6325
The current code get the USB vendor/product controller, in case of
bluetooth connection this means that you get the bluetooth dongle ids
instead of gamepads. This is not fine as we match gamepads using their
product and vendor ids.

Credits go to SDL which helped me to figure out this issue.

http://hg.libsdl.org/SDL/file/f7c6b974d5af/src/joystick/linux/SDL_sysjoystick.c#l208
2018-02-23 09:19:43 +01:00
twinaphex
61ff51be2f Start using string_is_equal predominantly 2018-01-16 22:53:38 +01:00
gblues
0f7de204f7 Last batch of whitespace cleanup (post-rebase)
-- looks like a few files committed with DOS line endings
2017-12-12 00:24:46 -08:00
twinaphex
c950613098 C comments 2017-12-11 11:28:48 +01:00
Peter Y. Hammond
b14598657c Fixed a bug where the joypad devices were not always being assigned in the same order as they were numbered under /dev/input/. This showed up mainly when using an external USB Bluetooth dongle. In that case, controllers would be assigned often in reverse order. 2017-12-10 22:22:01 -07:00
twinaphex
f0c143766e Change to 256bit macros 2017-12-05 12:07:35 +01:00
twinaphex
6c09661a64 Move defines to retro_miscellaneous.h 2017-12-05 10:42:37 +01:00
twinaphex
e94300a581 Get rid of a lot of RARCH_INPUT_STATE_BIT_ macros - replace them
with BIT128_ equivalents instead
2017-12-05 09:22:56 +01:00
David Walters
c5bdc02d6f replace uint64_t with retro_bits_t* for pad buttons state 2017-11-28 10:04:34 +00:00
twinaphex
e16371b8a5 Merge input_config.c and input_driver.c 2017-08-31 02:25:04 +02:00
twinaphex
c70526b7af Fix hotplug regressions with udev 2017-06-10 11:58:22 +02:00
twinaphex
eb08a86647 Get rid of udev_common.c 2017-06-08 21:46:26 +02:00
twinaphex
f9061ca931 Simplify udev_joypad_button 2017-06-07 20:48:33 +02:00
twinaphex
9a471d0ef4 Simplify udev_joypad.c 2017-06-07 20:44:14 +02:00
twinaphex
126a5bf121 Use string_is_equal_fast/string_is_not_equal_fast 2017-05-16 04:00:37 +02:00
twinaphex
1bf7cbccbe input_device_names no longer part of settings struct 2017-04-27 21:35:46 +02:00
twinaphex
f9bc2d3783 Use memcmp instead of string_is_equal where possible for
better performance
2017-04-21 22:47:15 +02: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