diff --git a/Main/src/main/java/Classes/SettingsManager.java b/Main/src/main/java/Classes/SettingsManager.java index 9f6af0959..0e9760ca4 100644 --- a/Main/src/main/java/Classes/SettingsManager.java +++ b/Main/src/main/java/Classes/SettingsManager.java @@ -3,11 +3,13 @@ import Objects.*; import java.io.*; import java.nio.file.*; import com.google.gson.Gson; + +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import edu.wpi.cscore.*; -import edu.wpi.first.cameraserver.CameraServer; +import org.opencv.videoio.VideoCapture; public class SettingsManager { private static SettingsManager instance; @@ -29,7 +31,7 @@ public class SettingsManager { } public static HashMap cams = new HashMap(); public static HashMap UsbCameras = new HashMap(); - public static HashMap USBCamerasInfo = new HashMap(); + public static HashMap USBCamerasInfo = new HashMap(); public static DefaultGeneralSettings GeneralSettings; public static HashMap CameraPort = new HashMap(); public static HashMap CamerasCurrentPipeline = new HashMap(); @@ -53,10 +55,25 @@ public class SettingsManager { } private void InitiateCamerasInfo(){ -// UsbCameraInfo[] TrueCameras = new UsbCameraInfo[]; + List TrueCameras = new ArrayList(); UsbCameraInfo[] UsbDevices = UsbCamera.enumerateUsbCameras(); + for (var i=0; i < UsbDevices.length; i++){ + var cap = new VideoCapture(UsbDevices[i].dev); + if (cap.isOpened()){ + TrueCameras.add(i); + cap.release(); + } - + } + for (var i: TrueCameras){ + var DeviceName = UsbDevices[i].name; + var suffix = 0; + while (USBCamerasInfo.containsKey(DeviceName)){ + suffix++; + DeviceName = String.format("%s(%s)",UsbDevices[i].name,suffix); + } + USBCamerasInfo.put(DeviceName,UsbDevices[i]); + } } private void InitiateUsbCameras(){ diff --git a/Main/target/classes/META-INF/Main.kotlin_module b/Main/target/classes/META-INF/Main.kotlin_module deleted file mode 100644 index 2983af706..000000000 Binary files a/Main/target/classes/META-INF/Main.kotlin_module and /dev/null differ