Skip to content

Commit f891f14

Browse files
committed
Introduce new joypad features provided by SDL3
This commit adds support for new SDL joypad features that weren't previously possible due to older custom joypad implementations. These features include accelerometer, gyroscope, LED lights, touchpads and more.
1 parent 0564019 commit f891f14

File tree

14 files changed

+1724
-12
lines changed

14 files changed

+1724
-12
lines changed

COPYRIGHT.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,11 @@ Comment: International Components for Unicode
337337
Copyright: 2016-2024, Unicode, Inc.
338338
License: Unicode
339339

340+
Files: thirdparty/isteamdualsense/isteamdualsense.h
341+
Comment: Sony PlayStation 5 SDK for Dualsense Adaptive Triggers
342+
Copyright: 2019, Sony Interactive Entertainment Inc.
343+
License: Unknown
344+
340345
Files: thirdparty/jolt_physics/*
341346
Comment: Jolt Physics
342347
Copyright: 2021, Jorrit Rouwe

core/core_constants.cpp

Lines changed: 52 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,16 @@ void register_global_constants() {
527527
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MB_XBUTTON1);
528528
BIND_CORE_BITFIELD_CLASS_FLAG(MouseButtonMask, MOUSE_BUTTON_MASK, MB_XBUTTON2);
529529

530+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, INVALID);
531+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_X);
532+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_Y);
533+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_X);
534+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_Y);
535+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_LEFT);
536+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_RIGHT);
537+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, SDL_MAX);
538+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, MAX);
539+
530540
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, INVALID);
531541
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, A);
532542
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, B);
@@ -552,15 +562,48 @@ void register_global_constants() {
552562
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, SDL_MAX);
553563
BIND_CORE_ENUM_CLASS_CONSTANT(JoyButton, JOY_BUTTON, MAX);
554564

555-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, INVALID);
556-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_X);
557-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, LEFT_Y);
558-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_X);
559-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, RIGHT_Y);
560-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_LEFT);
561-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, TRIGGER_RIGHT);
562-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, SDL_MAX);
563-
BIND_CORE_ENUM_CLASS_CONSTANT(JoyAxis, JOY_AXIS, MAX);
565+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, INVALID);
566+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, UNKNOWN);
567+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, STANDARD);
568+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, XBOX360);
569+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, XBOXONE);
570+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, PS3);
571+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, PS4);
572+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, PS5);
573+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, SWITCH_PRO);
574+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, JOYCON_LEFT);
575+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, JOYCON_RIGHT);
576+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyModel, JOY_MODEL, JOYCON_PAIR);
577+
578+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyScheme, JOY_SCHEME, INVALID);
579+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyScheme, JOY_SCHEME, UNKNOWN);
580+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyScheme, JOY_SCHEME, XBOX);
581+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyScheme, JOY_SCHEME, PLAYSTATION);
582+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyScheme, JOY_SCHEME, NINTENDO);
583+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyScheme, JOY_SCHEME, JOYCON_HORIZONTAL);
584+
585+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, INVALID);
586+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, UNKNOWN);
587+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, GAMEPAD);
588+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, WHEEL);
589+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, ARCADE_STICK);
590+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, FLIGHT_STICK);
591+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, DANCE_PAD);
592+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, GUITAR);
593+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, DRUM_KIT);
594+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, ARCADE_PAD);
595+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyDeviceType, JOY_DEVICE, THROTTLE);
596+
597+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyPowerState, JOY_POWER, INVALID);
598+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyPowerState, JOY_POWER, UNKNOWN);
599+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyPowerState, JOY_POWER, ON_BATTERY);
600+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyPowerState, JOY_POWER, NO_BATTERY);
601+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyPowerState, JOY_POWER, CHARGING);
602+
603+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyConnectionState, JOY_CONNECTION, INVALID);
604+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyConnectionState, JOY_CONNECTION, UNKNOWN);
605+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyConnectionState, JOY_CONNECTION, WIRED);
606+
BIND_CORE_ENUM_CLASS_CONSTANT(JoyConnectionState, JOY_CONNECTION, WIRELESS);
564607

565608
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NONE);
566609
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, NOTE_OFF);

0 commit comments

Comments
 (0)