1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

linux: respect order of device list when enumerating camera feeds

This commit is contained in:
erodozer
2025-04-24 17:00:15 -04:00
parent 1f787b63a5
commit 5dc4ac2bb2

View File

@@ -61,23 +61,23 @@ void CameraLinux::_update_devices() {
}
}
DIR *devices = opendir("/dev");
struct dirent **devices;
int count = scandir("/dev", &devices, nullptr, alphasort);
if (devices) {
struct dirent *device;
while ((device = readdir(devices)) != nullptr) {
if (strncmp(device->d_name, "video", 5) != 0) {
continue;
}
String device_name = String("/dev/") + String(device->d_name);
if (!_has_device(device_name)) {
_add_device(device_name);
if (count != -1) {
for (int i = 0; i < count; i++) {
struct dirent *device = devices[i];
if (strncmp(device->d_name, "video", 5) == 0) {
String device_name = String("/dev/") + String(device->d_name);
if (!_has_device(device_name)) {
_add_device(device_name);
}
}
free(device);
}
}
closedir(devices);
free(devices);
}
usleep(1000000);