DriverMode changed to "real" pipeline, fixed pipeline renames

This commit is contained in:
Banks Troutman
2019-11-30 11:52:35 -05:00
parent 98add64c35
commit 9efb6373a6
2 changed files with 24 additions and 6 deletions

View File

@@ -15,13 +15,15 @@ import java.util.List;
@SuppressWarnings("WeakerAccess")
public class PipelineManager {
private static final int DRIVERMODE_INDEX = -1;
public final LinkedList<CVPipeline> 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<CVPipelineSettings> 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);
}