diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-18 23:38:51 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-18 23:38:51 +0200 |
commit | 63d17df83eb3ab8c4b66ccb6e942160ca8164e01 (patch) | |
tree | 3a801ebe9e861f725e5684de2a79968439845ed4 /platform/linuxbsd/joypad_linux.cpp | |
parent | b5b371cf7ce2dfd20bf566c7ea0c7bf5b4849e3e (diff) | |
parent | bed46f723c759ce9ffbd467e595deaf001c00499 (diff) | |
download | redot-engine-63d17df83eb3ab8c4b66ccb6e942160ca8164e01.tar.gz |
Merge pull request #74978 from bruvzg/linux_version_check
[Linux/BSD] Add dynamically loaded library version checks.
Diffstat (limited to 'platform/linuxbsd/joypad_linux.cpp')
-rw-r--r-- | platform/linuxbsd/joypad_linux.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/platform/linuxbsd/joypad_linux.cpp b/platform/linuxbsd/joypad_linux.cpp index 0256af0a59..5c623b8ba2 100644 --- a/platform/linuxbsd/joypad_linux.cpp +++ b/platform/linuxbsd/joypad_linux.cpp @@ -82,7 +82,13 @@ JoypadLinux::JoypadLinux(Input *in) { #endif use_udev = initialize_libudev(dylibloader_verbose) == 0; if (use_udev) { - print_verbose("JoypadLinux: udev enabled and loaded successfully."); + if (!udev_new || !udev_unref || !udev_enumerate_new || !udev_enumerate_add_match_subsystem || !udev_enumerate_scan_devices || !udev_enumerate_get_list_entry || !udev_list_entry_get_next || !udev_list_entry_get_name || !udev_device_new_from_syspath || !udev_device_get_devnode || !udev_device_get_action || !udev_device_unref || !udev_enumerate_unref || !udev_monitor_new_from_netlink || !udev_monitor_filter_add_match_subsystem_devtype || !udev_monitor_enable_receiving || !udev_monitor_get_fd || !udev_monitor_receive_device || !udev_monitor_unref) { + // There's no API to check version, check if functions are available instead. + use_udev = false; + print_verbose("JoypadLinux: Unsupported udev library version!"); + } else { + print_verbose("JoypadLinux: udev enabled and loaded successfully."); + } } else { print_verbose("JoypadLinux: udev enabled, but couldn't be loaded. Falling back to /dev/input to detect joypads."); } |