diff --git a/Main/src/main/java/com/chameleonvision/vision/Pipeline.java b/Main/src/main/java/com/chameleonvision/vision/Pipeline.java index 84fd22b5f..e1c3c3066 100644 --- a/Main/src/main/java/com/chameleonvision/vision/Pipeline.java +++ b/Main/src/main/java/com/chameleonvision/vision/Pipeline.java @@ -1,6 +1,7 @@ package com.chameleonvision.vision; import java.util.Arrays; +import java.util.HashMap; import java.util.List; public class Pipeline { diff --git a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java index 03ea31bfb..a16a09691 100644 --- a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java @@ -1,10 +1,7 @@ package com.chameleonvision.web; import com.chameleonvision.settings.GeneralSettings; -import com.chameleonvision.vision.Orientation; -import com.chameleonvision.vision.SortMode; -import com.chameleonvision.vision.TargetGroup; -import com.chameleonvision.vision.TargetIntersection; +import com.chameleonvision.vision.*; import com.chameleonvision.vision.camera.Camera; import com.chameleonvision.vision.camera.CameraException; import com.chameleonvision.settings.SettingsManager; @@ -126,7 +123,19 @@ public class ServerHandler { broadcastMessage(obj, null);//Broadcasts the message to every user } + public static HashMap getOrdinalPipeline() throws CameraException, IllegalAccessException { + HashMap tmp = new HashMap<>(); + for (Field f : Pipeline.class.getFields()){ + if (!f.getType().isEnum()){ + tmp.put(f.getName(),f.get(CameraManager.getCurrentCamera().getCurrentPipeline())); + } else{ + var i = (Enum) f.get(CameraManager.getCurrentCamera().getCurrentPipeline()); + tmp.put(f.getName(),i.ordinal()); + } + } + return tmp; + } public static void sendFullSettings() { //General settings Map fullSettings = new HashMap(); @@ -134,13 +143,12 @@ public class ServerHandler { fullSettings.put("cameraList", CameraManager.getAllCamerasByName().keySet()); try { var currentCamera = CameraManager.getCurrentCamera(); - fullSettings.put("pipeline",currentCamera.getCurrentPipeline()); + fullSettings.put("pipeline", getOrdinalPipeline()); fullSettings.put("pipelineList", currentCamera.getPipelines().keySet()); fullSettings.put("resolutionList", CameraManager.getResolutionList()); fullSettings.put("port", currentCamera.getStreamPort()); - } catch (CameraException e) { + } catch (CameraException | IllegalAccessException e) { System.err.println("No camera found!"); - //TODO: add message to ui to inform that there are no cameras } broadcastMessage(fullSettings); }