From 9efb6373a64d9bcfb09b1ac6adbc957a27c0d334 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sat, 30 Nov 2019 11:52:35 -0500 Subject: [PATCH] DriverMode changed to "real" pipeline, fixed pipeline renames --- .../vision/pipeline/PipelineManager.java | 28 +++++++++++++++---- .../chameleonvision/web/SocketHandler.java | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/PipelineManager.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/PipelineManager.java index de92fd325..847117a21 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/PipelineManager.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/PipelineManager.java @@ -15,13 +15,15 @@ import java.util.List; @SuppressWarnings("WeakerAccess") public class PipelineManager { + private static final int DRIVERMODE_INDEX = -1; + public final LinkedList pipelines = new LinkedList<>(); public final CVPipeline driverModePipeline = new DriverVisionPipeline(new CVPipelineSettings()); private final VisionProcess parentProcess; + private int lastPipelineIndex; private int currentPipelineIndex; - private boolean driverMode; public NetworkTableEntry ntIndexEntry; public PipelineManager(VisionProcess visionProcess, List loadedPipelineSettings) { @@ -80,11 +82,15 @@ public class PipelineManager { } public void setDriverMode(boolean driverMode) { - this.driverMode = driverMode; + if (driverMode) { + setCurrentPipeline(DRIVERMODE_INDEX); + } else { + setCurrentPipeline(lastPipelineIndex); + } } public boolean getDriverMode() { - return driverMode; + return currentPipelineIndex == DRIVERMODE_INDEX; } public int getCurrentPipelineIndex() { @@ -92,12 +98,18 @@ public class PipelineManager { } public CVPipeline getCurrentPipeline() { - return driverMode ? driverModePipeline : pipelines.get(currentPipelineIndex); + return pipelines.get(currentPipelineIndex); } public void setCurrentPipeline(int index) { - CVPipeline newPipeline = pipelines.get(index); + CVPipeline newPipeline; + if (index == DRIVERMODE_INDEX) { + newPipeline = driverModePipeline; + } else { + newPipeline = pipelines.get(index); + } if (newPipeline != null) { + lastPipelineIndex = currentPipelineIndex; currentPipelineIndex = index; getCurrentPipeline().initPipeline(parentProcess.getCamera()); @@ -156,6 +168,12 @@ public class PipelineManager { destinationProcess.pipelineManager.addPipeline(pipeline); } + public void renameCurrentPipeline(String newName) { + CVPipelineSettings settings = getCurrentPipeline().settings; + settings.nickname = newName; + renamePipelineConfig(settings, newName); + } + public void deleteCurrentPipeline() { deletePipeline(currentPipelineIndex); } diff --git a/Main/src/main/java/com/chameleonvision/web/SocketHandler.java b/Main/src/main/java/com/chameleonvision/web/SocketHandler.java index 15069472a..0980588b7 100644 --- a/Main/src/main/java/com/chameleonvision/web/SocketHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/SocketHandler.java @@ -70,7 +70,7 @@ public class SocketHandler { break; } case "changePipelineName": { - currentPipeline.settings.nickname = ((String) entry.getValue()); + currentProcess.pipelineManager.renameCurrentPipeline((String) entry.getValue()); sendFullSettings(); VisionManager.saveCurrentCameraPipelines(); break;