summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/joypad_linux.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-04-18 23:38:51 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-04-18 23:38:51 +0200
commit63d17df83eb3ab8c4b66ccb6e942160ca8164e01 (patch)
tree3a801ebe9e861f725e5684de2a79968439845ed4 /platform/linuxbsd/joypad_linux.cpp
parentb5b371cf7ce2dfd20bf566c7ea0c7bf5b4849e3e (diff)
parentbed46f723c759ce9ffbd467e595deaf001c00499 (diff)
downloadredot-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.cpp8
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.");
}