From 05f7c8255536dd74e4b236551e2e0473696b6df9 Mon Sep 17 00:00:00 2001 From: CodeDead Date: Sun, 5 Jun 2022 01:51:20 +0200 Subject: [PATCH] * Added a gong sound --- .../opal/controller/AudioController.java | 2 +- .../opal/controller/MainWindowController.java | 5 +++++ src/main/resources/audio/gong.mp3 | Bin 0 -> 23364 bytes src/main/resources/images/gong.png | Bin 0 -> 1062 bytes .../translations/OpalApplication.properties | 1 + .../OpalApplication_de_DE.properties | 1 + .../OpalApplication_en_US.properties | 1 + .../OpalApplication_es_ES.properties | 1 + .../OpalApplication_fr_FR.properties | 1 + .../OpalApplication_nl_NL.properties | 1 + .../OpalApplication_ru_RU.properties | 1 + src/main/resources/windows/MainWindow.fxml | 3 +++ 12 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/audio/gong.mp3 create mode 100644 src/main/resources/images/gong.png diff --git a/src/main/java/com/codedead/opal/controller/AudioController.java b/src/main/java/com/codedead/opal/controller/AudioController.java index c7db512..90ffeae 100644 --- a/src/main/java/com/codedead/opal/controller/AudioController.java +++ b/src/main/java/com/codedead/opal/controller/AudioController.java @@ -66,6 +66,7 @@ public AudioController(final IAudioTimer audioTimer) throws URISyntaxException { mediaPlayers.put("drumtribal", new MediaPlayer(new Media(Objects.requireNonNull(getClass().getResource("/audio/tribal2.mp3")).toURI().toString()))); mediaPlayers.put("football", new MediaPlayer(new Media(Objects.requireNonNull(getClass().getResource("/audio/football.mp3")).toURI().toString()))); mediaPlayers.put("sleepy", new MediaPlayer(new Media(Objects.requireNonNull(getClass().getResource("/audio/sleepy.mp3")).toURI().toString()))); + mediaPlayers.put("gong", new MediaPlayer(new Media(Objects.requireNonNull(getClass().getResource("/audio/gong.mp3")).toURI().toString()))); mediaVolumes = new HashMap<>(); for (final Map.Entry entry : mediaPlayers.entrySet()) { @@ -142,7 +143,6 @@ public void setPlayerVolume(final String key, final double newVolume) { logger.debug("Setting volume for MediaPlayer with key {} to {}", key, newVolume); final MediaPlayer player = mediaPlayers.get(key); - if (player == null) throw new NullPointerException(String.format("MediaPlayer with key %s cannot be found!", key)); diff --git a/src/main/java/com/codedead/opal/controller/MainWindowController.java b/src/main/java/com/codedead/opal/controller/MainWindowController.java index f01b532..7e638f6 100644 --- a/src/main/java/com/codedead/opal/controller/MainWindowController.java +++ b/src/main/java/com/codedead/opal/controller/MainWindowController.java @@ -33,6 +33,8 @@ public final class MainWindowController implements IAudioTimer { + @FXML + private SoundPane snpGong; @FXML private SoundPane snpDrumTribal; @FXML @@ -313,6 +315,7 @@ private void initialize() { snpCoffee.getSlider().valueProperty().addListener((observableValue, oldValue, newValue) -> audioController.setPlayerVolume("coffee", newValue.doubleValue() / 100)); snpZoo.getSlider().valueProperty().addListener((observableValue, oldValue, newValue) -> audioController.setPlayerVolume("zoo", newValue.doubleValue() / 100)); snpSleepy.getSlider().valueProperty().addListener((observableValue, oldValue, newValue) -> audioController.setPlayerVolume("sleepy", newValue.doubleValue() / 100)); + snpGong.getSlider().valueProperty().addListener((observableValue, oldValue, newValue) -> audioController.setPlayerVolume("gong", newValue.doubleValue() / 100)); // Audiences snpNetworkingEvent.getSlider().valueProperty().addListener((observableValue, oldValue, newValue) -> audioController.setPlayerVolume("networking", newValue.doubleValue() / 100)); @@ -385,6 +388,7 @@ private void openSoundPreset(final String filePath) { case "football" -> snpFootball.getSlider().setValue(entry.getValue() * 100); case "sleepy" -> snpSleepy.getSlider().setValue(entry.getValue() * 100); case "drumtribal" -> snpDrumTribal.getSlider().setValue(entry.getValue() * 100); + case "gong" -> snpGong.getSlider().setValue(entry.getValue() * 100); default -> logger.info("Unknown key found: {}", entry.getKey()); } } @@ -454,6 +458,7 @@ private void resetAction() { snpFootball.getSlider().setValue(0); snpSleepy.getSlider().setValue(0); snpDrumTribal.getSlider().setValue(0); + snpGong.getSlider().setValue(0); } /** diff --git a/src/main/resources/audio/gong.mp3 b/src/main/resources/audio/gong.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d6e642575c486436a4dc6b97237fd7bfe7520500 GIT binary patch literal 23364 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 H&)@$6hL8Yc literal 0 HcmV?d00001 diff --git a/src/main/resources/images/gong.png b/src/main/resources/images/gong.png new file mode 100644 index 0000000000000000000000000000000000000000..108f0a625261161000b6b15b435699325d202557 GIT binary patch literal 1062 zcmV+>1ljwEP)EX>4Tx04R}tkv&MmKpe$iKeQqh2MdZgWT*;aK~%(1t5Adrp;l+0Yt2!bCVj!sUBE>hzEl0u6Z503ls?%w0>9pJB(m}&;c09CV$ zR3a{9vMWO973~P37sD8ln5oZ-ViKO?>mEM7-o<#9_qjhumy$CX;1h^vm~L3a>%>!= zmd<&fIKqmOLVQjA{&2mgcL-J1D{aW^R(2ijh2`(qFY?E>|xZGRuzcKrkhJOfu+(_gLu)1RbQ zn_Bb;=-vh{uA7>?2VCv|eNVb%NRAYs>CfkZ_cQvYEYNccbgsI+HTH4(0Hmp_y{D4^000SaNLh0L z01ejw01ejxLMWSf0006tNkl=VTz#Af=k*JKN~#d+`D=eEsOt__^$)A zwkWTOuU+~si~oub0ky*0F5_PNxUcaDY19OK3C+~#jP$gRw|{$ zd9k;|ZW4RYw#hs&Aiid?H_D9VMZl8S55yh^>a4vH-+i&a9acakYv7geo;uEeOEKa% zIL?B{!g=ju5q}Y0jZLE{X9=h;5xd?v(LS3ND~hi^1pEOm2=|49_XFs6EaHCiDgU{| zyl7*2sf9)yHw4o~xPR^KZrZbp^WITLjQT9*@<5C5pCzb9_3gJ5DGpQp9#{a*824d} z0ZX<0$O1kM%pJuCO#%1-JW7~+RKydTPK8PZgqyi=tr7$T0ofC + @@ -236,6 +237,8 @@ image="/images/zen.png"/> +