diff --git a/Main/src/main/java/com/chameleonvision/Main.java b/Main/src/main/java/com/chameleonvision/Main.java index a736697ce..8eca7dbf0 100644 --- a/Main/src/main/java/com/chameleonvision/Main.java +++ b/Main/src/main/java/com/chameleonvision/Main.java @@ -8,7 +8,7 @@ import com.chameleonvision.web.Server; public class Main { public static void main(String[] args) { if (CameraManager.initializeCameras()) { - SettingsManager manager = SettingsManager.getInstance(); + SettingsManager.intialize(); for (var camSet : CameraManager.getAllCamerasByName().entrySet()) { new Thread(new CameraProcess(camSet.getValue())).start(); } diff --git a/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java b/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java index a3c39224c..a2f1d3e8d 100644 --- a/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java +++ b/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java @@ -14,69 +14,55 @@ import java.nio.file.Path; import java.nio.file.Paths; public class SettingsManager { - private static SettingsManager instance; + public static final Path SettingsPath = Paths.get(System.getProperty("user.dir"), "Settings"); + public static com.chameleonvision.vision.GeneralSettings GeneralSettings; + // public static HashMap CameraPorts = new HashMap<>();//TODO Implement ports - private SettingsManager() { - InitiateGeneralSettings(); + private SettingsManager() {} - var allCameras = CameraManager.getAllCamerasByName(); - if (!allCameras.containsKey(GeneralSettings.curr_camera) && allCameras.size() > 0) { - var cam = allCameras.entrySet().stream().findFirst().get().getValue(); - GeneralSettings.curr_camera = cam.name; - GeneralSettings.curr_pipeline = cam.getCurrentPipelineIndex(); - } - } + public static void intialize() { + initGeneralSettings(); - public static synchronized SettingsManager getInstance() { - if (instance == null) { - synchronized (SettingsManager.class) { - if (instance == null) { - instance = new SettingsManager(); - } - } - } - return instance; - } + var allCameras = CameraManager.getAllCamerasByName(); + if (!allCameras.containsKey(GeneralSettings.curr_camera) && allCameras.size() > 0) { + var cam = allCameras.entrySet().stream().findFirst().get().getValue(); + GeneralSettings.curr_camera = cam.name; + GeneralSettings.curr_pipeline = cam.getCurrentPipelineIndex(); + } + } - public static com.chameleonvision.vision.GeneralSettings GeneralSettings; - // public static HashMap CameraPorts = new HashMap<>();//TODO Implement ports - public static final Path SettingsPath = Paths.get(System.getProperty("user.dir"), "Settings"); + private static void initGeneralSettings() { + FileHelper.CheckPath(SettingsPath); + try { + GeneralSettings = new Gson().fromJson(new FileReader(Paths.get(SettingsPath.toString(), "Settings.json").toString()), com.chameleonvision.vision.GeneralSettings.class); + } catch (FileNotFoundException e) { + GeneralSettings = new GeneralSettings(); + } + } + public static void updateCameraSetting(String cameraName, int pipelineNumber) { + GeneralSettings.curr_camera = cameraName; + GeneralSettings.curr_pipeline = pipelineNumber; + } - private void InitiateGeneralSettings() { - FileHelper.CheckPath(SettingsPath); - try { - GeneralSettings = new Gson().fromJson(new FileReader(Paths.get(SettingsPath.toString(), "Settings.json").toString()), com.chameleonvision.vision.GeneralSettings.class); - } catch (FileNotFoundException e) { - GeneralSettings = new GeneralSettings(); - } - } + public static void updatePipelineSetting(int pipelineNumber) { + GeneralSettings.curr_pipeline = pipelineNumber; + } - //Access Methods - public void updateCameraSetting(String cameraName, int pipelineNumber) { - GeneralSettings.curr_camera = cameraName; - GeneralSettings.curr_pipeline = pipelineNumber; - } + public static void saveSettings() { + CameraManager.saveCameras(); + saveGeneralSettings(); + } - public void updatePipelineSetting(int pipelineNumber){ - GeneralSettings.curr_pipeline = pipelineNumber; - } - - //Savers - public void SaveSettings() { - CameraManager.saveCameras(); - SaveGeneralSettings(); - } - - private void SaveGeneralSettings() { - try { - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - FileWriter writer = new FileWriter(Paths.get(SettingsPath.toString(), "settings.json").toString()); - gson.toJson(GeneralSettings, writer); - writer.flush(); - writer.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } + private static void saveGeneralSettings() { + try { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + FileWriter writer = new FileWriter(Paths.get(SettingsPath.toString(), "settings.json").toString()); + gson.toJson(GeneralSettings, writer); + writer.flush(); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java b/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java index 5d38b3c45..e83eb3f95 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java @@ -79,7 +79,7 @@ public class CameraManager { public static void setCurrentCamera(String cameraName) throws CameraException { if (!AllCamerasByName.containsKey(cameraName)) throw new CameraException(CameraException.CameraExceptionType.BAD_CAMERA); SettingsManager.GeneralSettings.curr_camera = cameraName; - SettingsManager.getInstance().updateCameraSetting(cameraName, getCurrentCamera().getCurrentPipelineIndex()); + SettingsManager.updateCameraSetting(cameraName, getCurrentCamera().getCurrentPipelineIndex()); } public static Camera getCurrentCamera() throws CameraException { @@ -92,7 +92,7 @@ public class CameraManager { public static void setCurrentPipeline(int pipelineNumber) throws CameraException { if (!getCurrentCamera().getPipelines().containsKey(pipelineNumber)) throw new CameraException(CameraException.CameraExceptionType.BAD_PIPELINE); getCurrentCamera().setCurrentPipelineIndex(pipelineNumber); - SettingsManager.getInstance().updatePipelineSetting(pipelineNumber); + SettingsManager.updatePipelineSetting(pipelineNumber); } public static Pipeline getCurrentPipeline() throws CameraException { diff --git a/Main/src/main/java/com/chameleonvision/web/Server.java b/Main/src/main/java/com/chameleonvision/web/Server.java index 351c833e5..2f3b3c3f6 100644 --- a/Main/src/main/java/com/chameleonvision/web/Server.java +++ b/Main/src/main/java/com/chameleonvision/web/Server.java @@ -30,7 +30,7 @@ public class Server { ws.onClose(ctx -> { users.remove(ctx); System.out.println("Socket Disconnected"); - SettingsManager.getInstance().SaveSettings(); + SettingsManager.saveSettings(); }); ws.onMessage(ctx -> { broadcastMessage(ctx.message(), ctx);