Hajime Hoshi
fab9482e0e
Revert "internal/debug: rename functions"
...
This reverts commit 74722298a2
.
Reason: This included an unexpected change in internal/gamepad
2024-08-07 23:47:51 +09:00
Hajime Hoshi
74722298a2
internal/debug: rename functions
2024-08-07 23:42:36 +09:00
Hajime Hoshi
abc056ab29
internal/gamepad: refactoring
2024-07-21 09:10:04 +09:00
Hajime Hoshi
7ab9382424
internal/gamepad: bug fix: crash when XInput and DInput gamepads were connected
...
Closes #3047
2024-07-20 22:30:38 +09:00
Hajime Hoshi
687e505db0
internal/gamepad: specify dwHow explicitly
...
As _DIPH_DEVICE is 0, this worked even without setting it, but this
was less readable.
2024-07-20 19:37:53 +09:00
Hajime Hoshi
b6b08f4fce
internal/gamepad: typo
2024-07-20 19:21:09 +09:00
Hajime Hoshi
122877c265
internal/gamepad: bug fix: GUID was not reliable as a unique identifier
...
Use a HID path as a gamepad unique identifier instead.
Closes #3046
2024-07-20 19:17:57 +09:00
Hajime Hoshi
f34932151d
all: use atomic.Bool instead of atomic.Store/LoadUint32
...
Updates #2422
2024-04-29 21:16:01 +09:00
Hajime Hoshi
4647e9de53
internal/glfw, internal/gamepad: update GLFW to v3.3.9
...
Updates #2960
2024-04-14 01:14:22 +09:00
Hajime Hoshi
b7dd45c0e4
internal/gamepad: ignore the very first MotionEvent with 0 value for Android
...
On Android, MotionEvent with 0 values might come for axes when connecting
a gamepad, even though a user didn't touch any axes. This is problematic
especially for tirgger axes, where the default value should be -1.
This change fixes the issue by adding a new state `axesReady` to check
if an axis is really touched or not. If an axis is not touched yet,
a button value for a standard (trigger) button always returns 0.
This change also removes an old hack to initialize axis values for
triggers.
Closes #2598
2024-03-21 22:28:48 +09:00
Hajime Hoshi
696938987d
internal/gamepad: use locks for consistency
...
Perhaps Gamepad's m might not be needed, but let's use the lock for
consistency for the current situation.
2024-03-16 16:31:49 +09:00
Hajime Hoshi
047858aa59
internal/gamepaddb: rename functions
2024-03-16 15:16:29 +09:00
Hajime Hoshi
630789757f
all: add files for PlayStation 5
...
The implementation is WIP.
Updates #2799
2023-10-16 00:54:08 +09:00
Hajime Hoshi
95b4eeafce
all: remove unnecessary build tag restrictions
2023-10-01 23:27:57 +09:00
Hajime Hoshi
dec08b9e4e
all: bug fix: relative paths for dlopen didn't work on macOS Sonoma
...
Closes #2732
2023-08-26 14:52:52 +09:00
Hajime Hoshi
4267e5d22e
internal/gamepad: bug fix: do not call GetRawInputDeviceList with the count 0
...
Updates #2696
2023-07-08 19:18:05 +09:00
Hajime Hoshi
22dfdfc418
internal/gamepad: bug fix: possible crash at iterating gamepads
...
Closes #2603
2023-03-17 11:40:24 +09:00
divVerent
06c141475c
internal/gamepad: native standard layout for Linux ( #2587 )
...
Implements native standard layout for Linux gamepads by using the kernel-provided button IDs, thereby expanding
support to gamepads not listed in gamecontrollerdb.txt.
Linux's docs: https://www.kernel.org/doc/Documentation/input/gamepad.txt
SDL2's source: https://fossies.org/linux/SDL2/src/joystick/linux/SDL_sysjoystick.c#l_1740
Note that I am NOT 100% convinced about the X/Y swap between Xbox and PlayStation controllers - the Xbox
compatible pad I have however does have BTN_NORTH and BTN_WEST swapped (and thus BTN_X and BTN_Y
assigned right), which confirms SDL's logic and opposes the kernel docs.
Tested with this gamepad: "20d6:2802 BDA Xbox ONE Core controller", label says "PowerA Model 1508491-02" - even
after clearing out gamecontrollerdb.txt, examples/gamepad shows a 100% correct mapping.
Closes #2052
2023-03-04 01:47:24 +09:00
Hajime Hoshi
7998e4d31d
update purego to v0.3.0-alpha
...
There are breaking changes between purego v0.2.0 and v0.3.0-alpha.
2023-03-04 01:22:54 +09:00
divVerent
809ad991c2
internal/gamepad: refactor standard layout support to allow remapping in the per-platform implementations. ( #2588 )
...
Refactors native standard layout so standard axes and buttons can be implemented using any of axes, buttons or hats.
This is required to be able to implement a native standard layout mapping for Linux, as e.g. shoulder buttons can be
backed either by an analog or digital input.
Precedes #2587
Updates #2052
2023-03-03 23:29:04 +09:00
Hajime Hoshi
b278e5521f
internal/gamepad: rename variables
2023-03-03 21:17:47 +09:00
Hajime Hoshi
f4371991fe
internal/gamepad: refactoring
2023-02-02 22:33:01 +09:00
Pierre Curto
4de807cc44
all: fix typos ( #2558 )
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
2023-01-28 19:06:38 +09:00
Hajime Hoshi
afbd1aebf1
internal/ui: use -overlay to provide the implementation for Nintendo Switch
...
Updates #2372
2023-01-01 01:35:05 +09:00
Hajime Hoshi
58692f6d85
internal/gamepad: refactoring
2023-01-01 00:58:42 +09:00
Hajime Hoshi
77f32bd088
internal/gamepad: use -overlay to provide the implementation for Nintendo Switch
...
Updates #2372
2022-12-31 18:08:28 +09:00
TotallyGamerJet
f09c4a624e
internal/gamepad: use RegisterLibFunc ( #2465 )
...
RegisterLibFunction is typesafe and now supports float arguments.
Updates #1162
2022-11-21 00:24:27 +09:00
TotallyGamerJet
56ec19caa1
all: use RTLD_LAZY in dlopen for darwin ( #2453 )
...
dlopen requires either RTLD_LAZY or RTLD_NOW but there was neither.
Updates #1162
2022-11-14 04:44:51 +09:00
Artem Yadelskyi
10415d417a
all: replace interface{}
with any
( #2430 )
...
Closes #2429
2022-11-03 15:33:09 +09:00
Artem Yadelskyi
5b53cef59e
all: remove old // +build
comments ( #2431 )
...
Closes #2325
2022-11-03 12:55:14 +09:00
Hajime Hoshi
ee595659e7
Revert "internal/gamepad: remove dependency on golang.org/x/sys/unix"
...
This reverts commit 046f7e52a3
.
Reason: As we drop Go 1.16, we no longer have to remove this dependency.
Updates #2421
2022-10-29 23:23:13 +09:00
Hajime Hoshi
046f7e52a3
internal/gamepad: remove dependency on golang.org/x/sys/unix
2022-10-29 21:42:08 +09:00
Hajime Hoshi
8a7d860632
all: unify Windows error handlings for Windows HANDLE
...
Updates #2366
2022-10-02 02:22:06 +09:00
Hajime Hoshi
cd9477491d
internal/gamepad: refactoring
2022-09-18 20:09:10 +09:00
Hajime Hoshi
963eb2756a
all: fix TODO comments
2022-09-16 02:02:02 +09:00
Hajime Hoshi
b13fa2817c
internal/gamepad: clean up codes for Darwin
...
* Removes redundant assignments.
* Fixes types for the Apple libraries.
Updates #1162
2022-09-16 00:25:51 +09:00
TotallyGamerJet
4a569be6f6
internal/gamepad: remove Cgo on darwin ( #2330 )
...
Updates #1162
2022-09-16 00:11:59 +09:00
Hajime Hoshi
5404e4d68a
all: replace io/ioutil
with io
and os
...
Closes #1770
2022-09-15 02:54:25 +09:00
Hajime Hoshi
655cd4bf68
all: remove the build tag
...
Updates #1415
2022-09-15 00:23:40 +09:00
Hajime Hoshi
7d6ee39c15
internal/gamepad: bug fix: a wireless Xbox controller didn't work correctly on macOS
...
The button and hat values must be adjusted by their minimum values.
See also GLFW's implementation.
Closes #266
2022-09-12 01:55:05 +09:00
Hajime Hoshi
89598df520
internal/gamepad: refactoring
...
Updates #2311
2022-09-11 22:44:06 +09:00
Hajime Hoshi
4629306f4b
internal/gamepad: bug fix: wrong SDL ID on iOS
...
The gamepad database already worked well with this fix.
Closes #2311
2022-09-11 22:29:38 +09:00
Hajime Hoshi
b5acb1e53d
internal/gamepad: remove .errcheck_excludes_windows
...
Updates #2287
2022-09-10 02:11:08 +09:00
Terra Brown
a1cc44833d
add errcheck static analysis ( #2293 )
...
Closes #2287
2022-09-10 01:52:46 +09:00
Hajime Hoshi
4c76356803
internal/gamepad: refactoring
2022-09-09 22:31:47 +09:00
Hajime Hoshi
47558d20c5
internal/gamepaddb: enable the database for Android
...
Before this fix, the button and axis IDs are from the OS. These
didn't match with the SDL game controller databaes unfortunately.
This fix changes the assignments of the buttons and the axes to match
with the database.
Closes #2312
2022-09-09 22:20:39 +09:00
Hajime Hoshi
d66c599938
cmd/ebitenmobile: remove counting buttons and use a constant instead
...
Updates #2309
2022-09-07 15:43:11 +09:00
Hajime Hoshi
db1255cdf8
internal/gamepad: rename ButtonNum -> ButtonCount
2022-09-07 15:40:52 +09:00
divVerent
34a500c305
internal/gamepad: ignore EPERM when opening gamepads ( #2308 )
...
This seems required for the Snap sandbox when probing a non-gamepad device node.
Closes #2307
2022-09-06 21:29:32 +09:00
divVerent
9bc571af5e
internal/gamepad: fix a typo that caused oddly cut off gamepad names. ( #2300 )
...
This change allows gamepad names up to 256 characters, which is usually
enough. Before, names were cut off after 7 characters, matching the string
"Unknown" that is used if querying the name fails.
Closes #2300
2022-09-03 20:44:03 +09:00