From 0078ea27e90eed233b541c1808d6909ea276a9b5 Mon Sep 17 00:00:00 2001
From: Peter <pt033@hdm-stuttgart.de>
Date: Sat, 9 Dec 2023 15:02:20 +0100
Subject: [PATCH] update(ui): add basic volume control for main manu music #14

---
 .../Controller/MusicPlayerSingleton.java      |  2 +-
 .../Controller/OptionsController.java         | 24 +++++++++----------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java
index 0337d7e5..5653a7c8 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java
@@ -2,7 +2,7 @@ package de.hdm_stuttgart.battlearena.Controller;
 import javafx.scene.media.MediaPlayer;
 
 public class MusicPlayerSingleton {
-//    creating a singleton so it can be stopped from other controller classes
+//    creating a singleton, so it can be stopped from other controller classes
     private static final MusicPlayerSingleton instance = new MusicPlayerSingleton();
     private MediaPlayer mediaPlayer;
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java
index 947e9480..6cba2a46 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java
@@ -15,8 +15,8 @@ public class OptionsController implements Initializable {
     @FXML public VBox parent;
     @FXML public Slider volumeSlider;
     SceneLoader sceneLoader = new SceneLoader();
-    public int volume;
-    private boolean setVolume = false;
+    public double volume;
+    MusicPlayerSingleton musicPlayer = MusicPlayerSingleton.getInstance();
 
     public void creditScene() throws IOException {
         parent.getChildren().clear();
@@ -30,16 +30,16 @@ public class OptionsController implements Initializable {
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
-//        variables keep getting re-initialized after switching scenes. For now not working!!!!!
-        if (setVolume) {
-            volumeSlider.setValue(volume);
-        }
+        setVolume();
+    }
 
-//        TODO: use Runtime Database to save volume
-        volumeSlider.setOnMouseReleased(mouseEvent -> {
-            setVolume = true;
-            volume = (int) volumeSlider.getValue();
-            System.out.println("Volume: " + volume);
-        });
+    private void setVolume() {
+//        need a runtime database to save volume
+     volumeSlider.valueProperty().addListener((observableValue, oldValue, newValue) -> {
+         musicPlayer.getMediaPlayer().setVolume(volume);
+         volume = newValue.doubleValue() / 100;
+         musicPlayer.getMediaPlayer().setVolume(volume);
+         System.out.println(volume);
+     });
     }
 }
-- 
GitLab