mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-21 14:03:11 -07:00
Add support for touchpad and sensor handling via SDL
This should enable support for more controllers besides the DS4 and DualSense, basically any controller supported by SDL that has at least one touchpad, an accelerometer and a gyroscope. Older SDL versions have been tested down to 2.0.9. Versions older than 2.0.14 won't have sensors and touchpad support, though. Setsu is deprecated and remains in-tree for now, but defaults to being disabled if SDL2 is found and >= 2.0.14. If Setsu is enabled explicitly, touchpad and sensors are not handled by SDL.
This commit is contained in:
parent
76690a319c
commit
4c8209762c
9 changed files with 298 additions and 59 deletions
|
@ -150,21 +150,30 @@ if(CHIAKI_ENABLE_CLI)
|
|||
add_subdirectory(cli)
|
||||
endif()
|
||||
|
||||
if(CHIAKI_ENABLE_GUI AND CHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER)
|
||||
find_package(SDL2 MODULE REQUIRED)
|
||||
endif()
|
||||
|
||||
if(CHIAKI_ENABLE_SETSU)
|
||||
find_package(Udev QUIET)
|
||||
find_package(Evdev QUIET)
|
||||
if(Udev_FOUND AND Evdev_FOUND)
|
||||
set(CHIAKI_ENABLE_SETSU ON)
|
||||
else()
|
||||
if(NOT CHIAKI_ENABLE_SETSU STREQUAL AUTO)
|
||||
message(FATAL_ERROR "
|
||||
CHIAKI_ENABLE_SETSU is set to ON, but its dependencies (udev and evdev) could not be resolved.
|
||||
Keep in mind that setsu is only supported on Linux!")
|
||||
endif()
|
||||
if(CHIAKI_ENABLE_SETSU STREQUAL AUTO AND SDL2_FOUND AND (SDL2_VERSION_MINOR GREATER 0 OR SDL2_VERSION_PATCH GREATER_EQUAL 14))
|
||||
message(STATUS "SDL version ${SDL2_VERSION} is >= 2.0.14, disabling Setsu")
|
||||
set(CHIAKI_ENABLE_SETSU OFF)
|
||||
endif()
|
||||
if(CHIAKI_ENABLE_SETSU)
|
||||
add_subdirectory(setsu)
|
||||
else()
|
||||
find_package(Udev QUIET)
|
||||
find_package(Evdev QUIET)
|
||||
if(Udev_FOUND AND Evdev_FOUND)
|
||||
set(CHIAKI_ENABLE_SETSU ON)
|
||||
else()
|
||||
if(NOT CHIAKI_ENABLE_SETSU STREQUAL AUTO)
|
||||
message(FATAL_ERROR "
|
||||
CHIAKI_ENABLE_SETSU is set to ON, but its dependencies (udev and evdev) could not be resolved.
|
||||
Keep in mind that setsu is only supported on Linux!")
|
||||
endif()
|
||||
set(CHIAKI_ENABLE_SETSU OFF)
|
||||
endif()
|
||||
if(CHIAKI_ENABLE_SETSU)
|
||||
add_subdirectory(setsu)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -175,7 +184,6 @@ else()
|
|||
endif()
|
||||
|
||||
if(CHIAKI_ENABLE_GUI)
|
||||
#add_subdirectory(setsu)
|
||||
add_subdirectory(gui)
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue