From 4ae2e550aae29978ad4c67ff2a015d929d6ede1c Mon Sep 17 00:00:00 2001 From: Wyatt Gillette Date: Tue, 13 May 2025 19:23:11 +0200 Subject: [PATCH 1/3] LowPassFilter: add no-args constructor --- .../src/main/java/com/jme3/audio/LowPassFilter.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java b/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java index 518d1c2af8..4fa8baede1 100644 --- a/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java +++ b/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java @@ -49,13 +49,21 @@ public class LowPassFilter extends Filter { /** * The overall volume scaling of the filtered sound */ - protected float volume; + protected float volume = 1.0f; /** * The volume scaling of the high frequencies allowed to pass through. Valid values range * from 0.0 to 1.0, where 0.0 completely eliminates high frequencies and 1.0 lets them pass * through unchanged. */ - protected float highFreqVolume; + protected float highFreqVolume = 1.0f; + + /** + * Constructs a low-pass filter with default settings. + * Required for jME deserialization. + */ + public LowPassFilter() { + super(); + } /** * Constructs a low-pass filter. From c3c6ba47b729a76e390aaa237c2ece3c5ed4fb07 Mon Sep 17 00:00:00 2001 From: Wyatt Gillette Date: Tue, 13 May 2025 19:24:06 +0200 Subject: [PATCH 2/3] Add files via upload --- .../java/com/jme3/audio/AudioFilterTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 jme3-core/src/test/java/com/jme3/audio/AudioFilterTest.java diff --git a/jme3-core/src/test/java/com/jme3/audio/AudioFilterTest.java b/jme3-core/src/test/java/com/jme3/audio/AudioFilterTest.java new file mode 100644 index 0000000000..ad9016b4c0 --- /dev/null +++ b/jme3-core/src/test/java/com/jme3/audio/AudioFilterTest.java @@ -0,0 +1,31 @@ +package com.jme3.audio; + +import com.jme3.asset.AssetManager; +import com.jme3.asset.DesktopAssetManager; +import com.jme3.export.binary.BinaryExporter; +import org.junit.Assert; +import org.junit.Test; + +/** + * Automated tests for the Filter class. + * + * @author capdevon + */ +public class AudioFilterTest { + + /** + * Tests serialization and de-serialization of a {@code LowPassFilter}. + */ + @Test + public void testSaveAndLoad() { + AssetManager assetManager = new DesktopAssetManager(true); + + LowPassFilter f = new LowPassFilter(.5f, .5f); + LowPassFilter copy = BinaryExporter.saveAndLoad(assetManager, f); + + float delta = 0.001f; + Assert.assertEquals(f.getVolume(), copy.getVolume(), delta); + Assert.assertEquals(f.getHighFreqVolume(), copy.getHighFreqVolume(), delta); + } + +} From 3eebd56efdcf1077cc188c354e600061db2c5ec6 Mon Sep 17 00:00:00 2001 From: Wyatt Gillette Date: Tue, 13 May 2025 20:26:07 +0200 Subject: [PATCH 3/3] LowPassFilter: correct default values for read/write fields --- jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java b/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java index 4fa8baede1..8c70490ba6 100644 --- a/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java +++ b/jme3-core/src/main/java/com/jme3/audio/LowPassFilter.java @@ -136,16 +136,16 @@ public void setVolume(float volume) { public void write(JmeExporter ex) throws IOException { super.write(ex); OutputCapsule oc = ex.getCapsule(this); - oc.write(volume, "volume", 0); - oc.write(highFreqVolume, "hf_volume", 0); + oc.write(volume, "volume", 1f); + oc.write(highFreqVolume, "hf_volume", 1f); } @Override public void read(JmeImporter im) throws IOException { super.read(im); InputCapsule ic = im.getCapsule(this); - volume = ic.readFloat("volume", 0); - highFreqVolume = ic.readFloat("hf_volume", 0); + volume = ic.readFloat("volume", 1f); + highFreqVolume = ic.readFloat("hf_volume", 1f); } /**