|
73b545ed
|
2020-11-02T19:38:20
|
|
Fix joystick support
|
|
2d64e37e
|
2020-11-02T18:09:43
|
|
Initial rebase of xerpi's port
|
|
c287087f
|
2021-02-23T09:26:03
|
|
Only change joystick->nbuttons for Joy-Cons, since they're the only ones that have these "paddles"
|
|
ee52624f
|
2021-02-22T17:23:13
|
|
Switch Joy-Con SL and SR buttons are now mapped to matching paddle positions so that all buttons can be accessed when using SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
|
|
7a2b6f33
|
2021-02-22T13:32:42
|
|
Guard Inotify stuff with macro
This fix implicit declaration of close and unused variable warning.
|
|
1a17ab30
|
2021-02-21T11:03:26
|
|
Added mappings for popular controllers on Chromebooks
|
|
db58166e
|
2021-02-21T17:28:08
|
|
joystick: hidapi: Properly include <unistd.h> when inotify not available
In the extremely unlikely event that inotify is not available (and,
therefore, HAVE_INOTIFY is not #defined), SDL will no-longer build.
This is because <unistd.h> is only included when HAVE_INOTIFY is
defined, and PR #4098 adds a call to access(…, F_OK), which requires
<unistd.h>.
(Note that the F_OK symbol is the only one which actually prevented
SDL from compiling, but both access() and close() fell back to implicit
definitions, which is a bit concerning.)
Fixes: 8d43f45a7b ("Don't use udev for joystick enumeration if running in a container")
|
|
8d43f45a
|
2021-02-16T14:13:30
|
|
Don't use udev for joystick enumeration if running in a container
If we are running in a container, like Flatpak[1] or pressure-vessel[2],
it's likely that we are using user namespaces,
therefore udev event notification via netlink won't work reliably.
Use their filesystem API to detect them and automatically fallback to
the inotify-based enumeration.
[1] <https://flatpak.org/>
[2]
<https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tree/master/pressure-vessel>
Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
|
|
2c326915
|
2021-02-16T12:39:48
|
|
Use inotify for HIDAPI joystick enumeration if not using udev
This improves SDL's ability to detect HIDAPI joystick hotplug in a
container environment because we cannot reliably receive events from
udev in a container.
For a more detailed explanation of why this issue happens with
containers, please check the previous commit
"joystick: Use inotify to detect joystick unplug if not using udev"
(b0eba1c5).
Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
|
|
b17242bf
|
2021-02-16T11:50:20
|
|
Allow libudev for HIDAPI joystick to be disabled at runtime
As already explained in the previous commit "joystick: Allow libudev to
be disabled at runtime" (13e7d1a9), libudev can fail in a container.
To make it easier to experiment with, we add a new environment variable
"SDL_HIDAPI_JOYSTICK_DISABLE_UDEV" that disables udev and let it
fallback to the device enumeration using polling.
Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
|
|
42607909
|
2021-02-20T22:51:57
|
|
Remove devices from the list after they've been disconnected due to read errors.
This fixes problems with controllers not being re-detected when a computer goes to sleep and a controller is removed and plugged back in while it's asleep.
|
|
4aa2e748
|
2021-02-16T10:20:29
|
|
Add Xbox Controller S entry to gamecontrollerdb
|
|
39153f81
|
2021-02-11T09:37:58
|
|
add Linux mapping for Ipega PG-9087S, closes #3783
|
|
5427f486
|
2021-02-11T17:28:07
|
|
Added support for trigger rumble for all Microsoft Xbox One controllers
|
|
1f7ec3fa
|
2021-02-11T17:27:22
|
|
Added support for the PowerA Xbox One Series X Wired Controller
|
|
dc45a228
|
2021-02-08T00:20:56
|
|
avoid some pedantic warnings in array initializers
|
|
9c3aa7f0
|
2021-02-06T15:43:17
|
|
SDL: fix packet handling for original version of Stadia FW
|
|
f4d58689
|
2021-02-03T18:00:22
|
|
Fix Xbox Series X controller on macOS
There were two different implementations of IsBluetoothXboxOneController(), one
in SDL_hidapi_xbox360.c and one in SDL_hidapi_xboxone.c. The latter had been
updated to include USB_PRODUCT_XBOX_ONE_SERIES_X_BLUETOOTH while the former had
not.
This mismatch led to the Xbox Series X failing on macOS only. We have special
code for handling the 360Controller driver for macOS which requires us to use
the Xbox 360 driver for wired Xbox One controllers, and the SDL_hidapi_xbox360
version of IsBluetoothXboxOneController() was used to determine which devices
were wired.
In addition to adding the missing USB_PRODUCT_XBOX_ONE_SERIES_X_BLUETOOTH, this
change moves IsBluetoothXboxOneController() into a single shared function which
will ensure this bug won't happen again.
|
|
85235985
|
2021-02-02T11:53:31
|
|
Fixed detecting the paddles on the Xbox Elite Series 1 controller
|
|
fadfa510
|
2021-02-01T09:21:11
|
|
Don't uncorrelate while rumble is active and stay correlated longer in case raw input messages are lagging a bit.
|
|
2cc70ca3
|
2021-01-29T13:04:01
|
|
Fixed crash if the GameCube controller hasn't been opened yet
|
|
7f710e93
|
2021-01-28T14:54:01
|
|
Make sure we don't create a game controller mapping for HID devices that aren't supported by HIDAPI
|
|
7e19c634
|
2021-01-28T14:53:59
|
|
Note that the Logitech G29 (PS4) is a racing wheel
|
|
d81eaf8d
|
2021-01-27T12:43:35
|
|
Added explicit case from Uint8 to int before subtracting offset
|
|
bec9d740
|
2021-01-27T12:41:58
|
|
Fixed compile warning
|
|
ac72a2ba
|
2021-01-25T20:38:50
|
|
Fixed bug 5493 - Hint to let the user opt out of having Switch controllers' Home button lit when opened
jibb
New hint to let the user opt out of having Switch controllers' Home button lit when opened.
This is more consistent with the Switch itself (which doesn't light the button normally) and may be preferred by users who may disconnect their controller without letting the application close it.
I think this warrants a Switch-specific hint because the default behaviour is unusual (inconsistent with using a Switch controller on a Switch itself or with some other programs on PC), and because of that it's distinct from other lights (the player number on Switch controllers and the player colour on PlayStation controllers).
|
|
c857b5e0
|
2021-01-23T11:21:01
|
|
Minor cleanup
|
|
1981d23f
|
2021-01-23T11:06:35
|
|
Fixed bug 5466 - Add haptic support for Stadia Controller
Dimitriy Ryazantcev
Consider adding support for Stadia Controller haptics.
Here is example code how to deal with it:
https://github.com/chromium/chromium/blob/99314be8152e688bafbbf9a615536bdbb289ea87/device/gamepad/hid_haptic_gamepad.cc#L45
|
|
4a776557
|
2021-01-22T20:10:02
|
|
old os2 analogue joystick code ported from SDL-1.2. disabled by default,
build-tested only.
|
|
9e45372a
|
2021-01-21T22:47:37
|
|
Fixed build on Android and iOS
|
|
0f57864c
|
2021-01-18T19:57:29
|
|
Hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS added so we can recognise a Joy-Con as half a Pro Controller, so we can read its analog input and read its sensors just like we do a Pro Controller.
|
|
fd65aaa9
|
2021-01-23T17:30:50
|
|
move outdated winmm and psp joystick codes to struct _SDL_JoystickDriver
build-tested only. (bug #5472.)
|
|
23764588
|
2021-01-23T17:24:28
|
|
renamed SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H to SDL_HAVE_MACHINE_JOYSTICK_H
|
|
f68b36df
|
2021-01-22T11:42:42
|
|
Added support for the EVORETRO GameCube Adapter in PC mode
|
|
9c88eac8
|
2021-01-22T11:40:20
|
|
ControllerList: fix typo
|
|
11fce321
|
2021-01-22T20:20:02
|
|
SDL_dinputjoystick.c: fixes to dfDIJoystick2[] array from Wine git.
Fix V/A/FSlider dwOfs values in c_dfDIJoystick2
https://source.winehq.org/git/wine.git/commitdiff/af2f4194263702a946c65d255580176ee50b5914
Add missing ASPECT flags for c_dfDIJoystick2
https://source.winehq.org/git/wine.git/commitdiff/e2e100272ffede3c720da7bbd11b53ac0bcee8eb
Closes bug #5474.
|
|
3527b494
|
2021-01-21T22:30:34
|
|
Fixed initializing the Nyko and EVORETRO GameCube adaptors
This requires root on most Linux distributions, as we have to directly send USB messages to the devices to enable input reports.
|
|
178ae70a
|
2021-01-20T12:18:10
|
|
Don't add paddle mappings for the Xbox One Elite Series 1 controller, since they can't be unmapped and read directly on that controller.
|
|
6e97170e
|
2021-01-08T21:16:06
|
|
Use PS4 rumble hint as the default for the PS5 rumble hint
Existing SDL applications may not know about the need to set a specific
hint to enable rumble on PS5 controllers, even though they may already
set the equivalent SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE hint for PS4
controller rumble support.
Rather than requiring those developers update their apps, let's use the
SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE value as an indication of the behavior
they are expected for all PlayStation controllers.
|
|
6393d14d
|
2021-01-19T15:50:28
|
|
SDL_virtualjoystick.c: remove wrong #endif comment.
|
|
f3835702
|
2021-01-17T05:00:50
|
|
fix build with --disable-directx
|
|
2ea393bd
|
2021-01-15T14:36:21
|
|
Fixed the screenshot button mapping on third party Bluetooth Nintendo Switch Pro controllers
|
|
bdb3e6b8
|
2021-01-15T12:40:00
|
|
SDL_hidapi_switch.c: fix build with older compilers
|
|
e3dbae50
|
2021-01-14T23:49:41
|
|
Get the serial number for the Nintendo Switch Pro controller
|
|
5fc743c4
|
2021-01-14T23:49:37
|
|
Phantom Nintendo Switch Pro Controller initialization problem
|
|
92742306
|
2021-01-14T23:49:33
|
|
Fixed rumble reset failing for Switch Pro controllers in USB mode
|
|
d0b87fed
|
2021-01-14T23:49:27
|
|
Added HIDAPI rumble debug info
|
|
e2f46ed8
|
2021-01-14T23:49:20
|
|
Always lock the HIDAPI device when closing, in case rumble is pending
|
|
907b8eeb
|
2021-01-14T23:49:16
|
|
Make sure the HIDAPI device is locked when closing it, in case there is rumble pending that didn't complete
|
|
b3848c51
|
2021-01-14T15:15:57
|
|
Fixed bug 5445 - Incorrect Switch Pro Controller face buttons when SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS disabled
jibb
I'm testing with DualShock 4, DualSense, Switch Pro Controller, and PowerA Switch Controller.
I'm using the standard mapping file from here:
https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt
With SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS turned off (set to "0") I expect the button positions to be the same on all devices, based on Xbox controller button naming (eg SDL_GameControllerGetButton(g, SDL_CONTROLLER_BUTTON_Y) gives me whether the North face button is pressed).
However, the Switch Pro Controller layout is wrong (matching labels rather than positions, so X and Y are swapped and A and B are swapped). And with the PowerA controller the East and West buttons are correct, but the North and South buttons are swapped instead.
Mathias Kaerlev
Also seeing this on 2.0.14. This is most likely a regression, since we weren't seeing this on an earlier SDL version.
I suspect it might be caused by this commit:
https://github.com/spurious/SDL-mirror/commit/a569b211881c6d4c73f3f1019e9f66e754ca546b#diff-da9344d94c66b8c702a45e7649f412039f08bba83bd82de33f5c80ea9c8c39d5
It seems like both the HIDAPI driver and SDL_gamecontroller.c will try to swap the buttons if the hint is set to 0, causing the button remap to cancel out.
|
|
bdc6e4ff
|
2021-01-14T15:03:11
|
|
Fixed bug 5195 - Replugging in "mixed" controller types crashes on macOS
RustyM
This is related to Bug 5034, but crashes under a somewhat different condition.
In the latest tip (changeset 13914) or with the SDL 2.0.12 source + David?s 5034 patch, unplugging and then replugging in certain controller types on macOS will crash. A mix of new controllers like Switch Pro, PS4 and Xbox One all work without issue. But if a controller without a rumble function, like many SNES retro USB gamepads, is mixed with a PS4 or Switch Pro controller it will crash.
File: joystick/darwin/SDL_sysjoystick.c
Function: static recDevice *FreeDevice(recDevice *removeDevice)
On line 159: while (device->pNext != removeDevice) {
Causes: Thread 1: EXC_BAD_ACCESS (code=1, address=0x188)
This can be reproduced in testgamecontroller" by starting the test program with both a ?retro? controller plugged in and a ?modern rumble? controller (Switch Pro/PS4). This may crash on launch, but it depends on which controller ends up as device 0. If it doesn?t crash, unplug the ?modern rumble? controller and plug it back in.
Some of the "retro" controllers I?ve seen this crash with:
- iBuffalo SNES Controller
- 8Bitdo SN30 Gamepad (in MacOS mode)
- Retrolink NES Controller
- HuiJia SNES Controller Adaptor
The issue appears macOS specific. Seen on 10.12.6 and 10.14.6. Not seen on Windows 10.
The while loop in FreeDevice() assumes that every device is not NULL.
recDevice *device = gpDeviceList;
while (device->pNext != removeDevice) {
device = device->pNext;
}
device->pNext = pDeviceNext;
So maybe we should check for NULL here? Or instead prevent adding NULL devices to the list in the first place? Checking device for NULL before entering the loop appears to work.
recDevice *device = gpDeviceList;
if (!device) {
while (device->pNext != removeDevice) {
device = device->pNext;
}
}
device->pNext = pDeviceNext;
|
|
fbd7c718
|
2021-01-13T11:02:07
|
|
Don't blink the Xbox 360 LED when setting the player slot, it's probably already been set by a driver
|
|
d757ec7f
|
2021-01-13T11:02:01
|
|
Only select the gamepad interfaces on the Xbox 360 wireless adapter
|
|
e9887045
|
2021-01-11T15:36:40
|
|
Gyro and Accel sensor support for Switch Pro Controller.
Note that axes are changed to match the axes we're using with PlayStation controllers, since users will appreciate consistent behaviour across devices.
|
|
a5dba7d3
|
2021-01-08T09:54:52
|
|
Fixed Xbox One Series X share button incorrectly triggering on newer firmware
|
|
d72dbd98
|
2021-01-04T17:30:28
|
|
Fixed detection of the Wooting Two keyboard, which shows up as an Xbox 360 controller
|
|
b2a0c712
|
2021-01-04T12:24:44
|
|
Allow setting the player index to -1, which turns off the player LED for PS5 controllers
|
|
bf754b52
|
2021-01-04T12:17:24
|
|
Valve contributed code is under the Zlib license
|
|
a594b850
|
2021-01-04T10:00:30
|
|
use WIN_StringToUTF8W macro instead of WIN_StringToUTF8, where needed:
i.e. where the string is known guaranteed to be WCHAR*, in:
- SDL_dinputjoystick.c (WIN_IsXInputDevice): VARIANT->var is BSTR (WCHAR*)
- SDL_rawinputjoystick.c (RAWINPUT_AddDevice): string is WCHAR*
- SDL_windows_gaming_input.c (IEventHandler_CRawGameControllerVtbl_InvokeAdded):
string is WCHAR*
There should be more of these..
|
|
f2bd861c
|
2021-01-04T08:50:00
|
|
move SDL_tcsstr definition to core/windows/SDL_windows.h
|
|
ae18109a
|
2021-01-04T01:23:50
|
|
SDL_windowsjoystick.c (SDL_CreateDeviceNotification): use L, not TEXT()
cf. bug #5435.
|
|
398d2764
|
2021-01-04T01:23:50
|
|
RAWINPUT_InitWindowsGamingInput: change pNamespace from LPTSTR to PCWSTR
because WindowsCreateStringReference specifically accepts const WCHAR *
- WGI_JoystickInit(): ditto.
cf. bug #5435.
|
|
f09e0af7
|
2021-01-04T01:23:50
|
|
SDL_dinputjoystick.c (IsXInputDevice): adjust to be ANSI/UNICODE-agnostic
cf. bug #5435.
|
|
9130f7c3
|
2021-01-02T10:25:38
|
|
Updated copyright for 2021
|
|
480c1f9f
|
2021-01-01T11:12:36
|
|
Make sure we're not starving report reads when there's lots of rumble
|
|
0684572c
|
2020-12-29T12:13:10
|
|
Added a hint to control whether the player LEDs should be lit to indicate which player is associated with a PS5 controller.
|
|
0ed4d929
|
2020-12-23T04:53:23
|
|
Fixed setting player LEDs for PS5 controllers over Bluetooth
|
|
6341bb35
|
2020-12-22T21:51:59
|
|
Fixed controller disconnect detection for PS4 and PS5 controllers over Bluetooth
|
|
a30adae5
|
2020-12-22T20:58:32
|
|
Make it possible to turn on PS4 rumble effects at runtime using the hint
|
|
c93947a2
|
2020-12-22T20:12:03
|
|
Make it possible to turn on PS5 rumble effects at runtime using the hint
|
|
058a0ab4
|
2020-12-22T14:38:32
|
|
Set the pad lights on the PS5 controller corresponding to the player index
Also allow setting the player index from testgamecontroller using the number keys
|
|
6a57072e
|
2020-12-22T14:10:08
|
|
Only add the touchpad and sensors to the PS5 controller if effects are enabled
|
|
4ec776c3
|
2020-12-22T13:29:23
|
|
Don't switch the PS5 controller out of DirectInput mode by default
|
|
ee180efd
|
2020-12-20T12:08:49
|
|
Fixed bug 5406 - Upstreaming DragonFlyBSD changes from DeltaPorts (patch from David Carlier)
|
|
cbe13d23
|
2020-12-18T13:10:36
|
|
Fixed controller hotplug detection when joystick thread is not enabled
|
|
f0577bc9
|
2020-12-18T10:09:06
|
|
ControllerList: setup the ps5 default deadzone to match PS4 instead of defaulting to same a XboxOne/Switch
|
|
90456670
|
2020-12-17T14:11:00
|
|
more "'for' loop initial declarations are only allowed in C99 mode" fixes
|
|
f484abbd
|
2020-12-15T14:57:51
|
|
Added Android mapping for the Xbox One Series X controller over Bluetooth
|
|
637d425e
|
2020-12-15T00:11:10
|
|
whitespace.
|
|
e65e4fd3
|
2020-12-14T09:48:51
|
|
Fixed detecting the guide button on Xbox One S controllers over Bluetooth on Linux
|
|
8795ca70
|
2020-12-14T09:15:47
|
|
Fixed bug 5241 - SDL on Linux needs a way to turn deadzones off
pj5085
I added some printf to verify the math being done. Of the three joysticks I have, it works correctly for at least two, and seems to work correctly for the third. I say "seems to" because, for the third joystick, the values never go through the AxisCorrect function, and thus never hit my printf statements, even though they did in the version I wrote my patch against. I'm not sure what's going on there, but it at least seems to be working correctly in as much as I can tell.
I note this result in particular, for an SNES Gamepad (min=0, max=255):
Joystick value 0 becomes -32768
Joystick value 127 becomes 0
Joystick value 255 becomes 32767
Without the code that forces a zero point, the 127 input value would become -129, so I think you see why I added that code to turn it into zero. However, I think Kai Krakow has a point about how SDL shouldn't assume that there should be a center.
Obviously in the majority of cases there actually should be a center, and the code that turns that 127 into an actual 0 is creating only a 0.2% error over 0.4% of this joystick's range. However, what if there is an axis that is some kind of special control, like a 4-position switch, and, for whatever reason, the joystick reports it as an axis with 4 possible values, 0 to 3? In that case, mutilating the two center values to the same value is much more of an error and and turns that 4-position switch into a 3-position switch. If any joystick does this with a 2-position switch, then this code would render that control entirely useless as it would report the same value with the switch in either position. Obviously the code could require that there be at least N possible values, to guess whether something is a proper axis or just some kind of switch, but the choice of N would be arbitrary and that's ugly.
I guess the real problem here is that my gamepad is just kind of broken. It should be reporting a range of -1 to +1 since that's what it actually does. Also, as Kai Krakow points out, it's probably not SDL's place to fix broken hardware. I'll add that, if SDL does fix broken hardware, it should probably actually know that it's broken rather than be merely guessing that it is.
So, to the extent that SDL is able to do stuff like this, perhaps it's something better left for the user to configure in some kind of config file.
|
|
b6e63625
|
2020-12-13T15:32:24
|
|
fix bug #5395: handle old systems where inotify_init1 is not available
|
|
80e5c689
|
2020-12-13T01:20:38
|
|
Fixed the PS5 controller not disconnecting when powered off
|
|
db0a2025
|
2020-12-12T23:48:02
|
|
Fixed bug 5241 - SDL on Linux needs a way to turn deadzones off
pj5085
It occurred to me that my simple patch that comments out a few lines of code does not correctly remove the dead zone since the calculation presumably assumes the dead zone has been cut out of the range. Then, while looking into how to make it output the correct range of values, I realized SDL wasn't returning the correct range of values to begin with.
This line of code was already present:
printf("Values = { %d, %d, %d, %d, %d }\n", absinfo.value, absinfo.minimum, absinfo.maximum, absinfo.fuzz, absinfo.flat);
For my joystick this yeilds:
Values = { 0, -127, 127, 0, 15 }
Then this code calculates the coefficients:
In SDL1:
joystick->hwdata->abs_correct[i].coef[0] = (absinfo.maximum + absinfo.minimum) / 2 - absinfo.flat;
joystick->hwdata->abs_correct[i].coef[1] = (absinfo.maximum + absinfo.minimum) / 2 + absinfo.flat;
t = ((absinfo.maximum - absinfo.minimum) / 2 - 2 * absinfo.flat);
if ( t != 0 ) {
joystick->hwdata->abs_correct[i].coef[2] = (1 << 29) / t;
} else {
joystick->hwdata->abs_correct[i].coef[2] = 0;
}
In SDL2:
joystick->hwdata->abs_correct[i].coef[0] = (absinfo.maximum + absinfo.minimum) - 2 * absinfo.flat;
joystick->hwdata->abs_correct[i].coef[1] = (absinfo.maximum + absinfo.minimum) + 2 * absinfo.flat;
t = ((absinfo.maximum - absinfo.minimum) - 4 * absinfo.flat);
if (t != 0) {
joystick->hwdata->abs_correct[i].coef[2] = (1 << 28) / t;
} else {
joystick->hwdata->abs_correct[i].coef[2] = 0;
}
Neither calculates the correct coefficients for the code in the AxisCorrect function.
In SDL1:
if ( value > correct->coef[0] ) {
if ( value < correct->coef[1] ) {
return 0;
}
value -= correct->coef[1];
} else {
value -= correct->coef[0];
}
value *= correct->coef[2];
value >>= 14;
In SDL2:
value *= 2;
if (value > correct->coef[0]) {
if (value < correct->coef[1]) {
return 0;
}
value -= correct->coef[1];
} else {
value -= correct->coef[0];
}
In SDL1, the calculated coefficients are coef[0]=15, coef[1]=-15 and coef[2]=5534751. So with a full-scale input of 127, it calculates an output value of 37835, which is considerably out of range.
In SDL2, the calculated coefficients are coef[0]=30, coef[1]=-30, and coef[2]=1383687. So with a full-scale input of 127, it calculates the same output value of 37835.
I tested it with the 3 joysticks I have, and it produces out-of-range values for all of them.
Anyway, since dead zones are garbage, I just deleted all of that junk and wrote some code that takes the absinfo.minimum and absinfo.maximum values and uses them to scale the axis range to -32767 through +32767.
I also made it detect when a range doesn't have an integer center point, e.g. the center of -128 to + 127 is -0.5. In such cases, if either value to the side of the center is provided, it zeros it, but it otherwise doesn't implement any kind of dead zone. This seemed important with my gamepad which provides only the values of 0, 127, and 255, since without this hack it would never be centered.
Also, the previous minimum output value was -32768, but as that creates an output range that has no true center, I changed the minimum value to -32767.
I tested it with the 3 joystick devices I have and it seems to create correct values for all of them.
|
|
0ccb3afd
|
2020-12-12T22:33:11
|
|
Fixed polling values after SYN_DROPPED event
|
|
9ee0e888
|
2020-12-12T22:11:00
|
|
Whoops, make the hint actually default to false
|
|
13a4caf1
|
2020-12-12T22:08:02
|
|
Fixed bug 4286 - Joystick subsystem causes "not responding" when app is in the background
Added a hint to control whether a separate thread should be used for joystick events.
This is off by default because dispatching messages in other threads appears to cause problems on some versions of Windows.
|
|
797a6910
|
2020-12-09T20:28:51
|
|
Fixed bug 5375 - WGI: Fix HSTRING memory leak.
Joel Linn
TLDR; https://godbolt.org/z/43fd8G
Let's deduce this from C++ reference code:
https://docs.microsoft.com/en-us/cpp/cppcx/wrl/how-to-activate-and-use-a-windows-runtime-component-using-wrl?view=msvc-160
At the bottom of the page there is this snippet:
```
int wmain()
{
/* ... more code ... */
// Get the domain part of the URI.
HString domainName;
hr = uri->get_Domain(domainName.GetAddressOf());
if (FAILED(hr))
{
return PrintError(__LINE__, hr);
}
// Print the domain name and return.
wprintf_s(L"Domain name: %s\n", domainName.GetRawBuffer(nullptr));
// All smart pointers and RAII objects go out of scope here.
}
```
`HString` is defined in `corewrappers.h` and the call chain for the destructor is:
`~HString() -> Release() -> ::WindowsDeleteString()`
QED
|
|
a77a0715
|
2020-12-09T07:50:15
|
|
Disabled raw input debug output
|
|
cb361896
|
2020-12-09T07:16:22
|
|
Fixed bug 5235 - All internal sources should include SDL_assert.h
Ryan C. Gordon
We should really stick this in SDL_internal.h or something so it's always available.
|
|
f2fff217
|
2020-12-09T06:24:40
|
|
Fixed bug 5374 - WGI: Use fast-pass strings.
Joel Linn
Eliminate additional heap allocation for short-lived HSTRINGs.
Uses `WindowsCreateStringReference()` to disable reference counting and memory management by the Window Runtime.
|
|
c9723c40
|
2020-12-07T09:38:21
|
|
Fixed potential hang in joystick close if the rumble thread is blocked for some reason
It's still possible to hang when shutting down, if the rumble thread is still hung, but it won't block indefinitely at runtime.
|
|
09909d02
|
2020-12-03T19:44:47
|
|
Fixed handling of BACK button on newer Xbox One S controllers
|
|
54e5136b
|
2020-12-03T18:17:04
|
|
Refactored Xbox One Bluetooth protocol and verified Xbox One S, Xbox Series X, and Xbox One Elite Series 2 controllers
|
|
1031231b
|
2020-12-03T18:17:03
|
|
Fixed duplicating a device between XInput and HIDAPI
|
|
59f28b7f
|
2020-12-03T18:17:01
|
|
Fixed whitespace
|
|
c78ca2d1
|
2020-12-01T13:38:42
|
|
Fixed bug 5371 - Rawinput: Fix truncating cast of string length.
Joel Linn
Fixes an implicit truncation of a string length on 64bit systems.
|
|
a3ccf9ad
|
2020-12-01T13:36:41
|
|
Fixed bug 5373 - [PATCH] Rawinput: Get correlated XInput battery info
Joel Linn
Currently the rawinput driver always reports a device as "wired". This changes that to "unknown" and updates it once the device is correlated with xinput.
|
|
e3966e25
|
2020-11-30T13:04:30
|
|
Use the correct internal API for updating the battery level for PS5 controllers
|
|
f4ed07de
|
2020-11-30T13:02:34
|
|
We don't know whether the PS5 controller is Bluetooth or not when we open it
|