From 7124cf006c89077e6d3c7a1296e7035d03e997b4 Mon Sep 17 00:00:00 2001 From: tobias <tobias.ullerich@icloud.com> Date: Thu, 8 Sep 2016 12:36:11 +0200 Subject: [PATCH] Changed Equalizeable --- .../playpad/pad/content/AudioContent.java | 13 ++---------- .../de/tobias/playpad/audio/AudioTypable.java | 6 ++++++ .../de/tobias/playpad/audio/Equalizable.java | 10 ++++++++++ .../src/de/tobias/playpad/audio/Peakable.java | 17 ++++++++++++---- .../main/impl/EqualizerPluginImpl.java | 20 ++++++++++++------- 5 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 PlayWallCore/src/de/tobias/playpad/audio/AudioTypable.java diff --git a/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java b/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java index 24b4e838..4e865e8f 100644 --- a/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java +++ b/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java @@ -11,7 +11,7 @@ import org.dom4j.Element; import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.audio.AudioHandler; import de.tobias.playpad.audio.AudioRegistry; -import de.tobias.playpad.audio.Equalizable; +import de.tobias.playpad.audio.AudioTypable; import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.PadSettings; import de.tobias.playpad.pad.PadStatus; @@ -31,10 +31,9 @@ import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.value.ChangeListener; -import javafx.scene.media.AudioEqualizer; import javafx.util.Duration; -public class AudioContent extends PadContent implements Pauseable, Durationable, Fadeable, Equalizable, SinglePathContent { +public class AudioContent extends PadContent implements Pauseable, Durationable, Fadeable, SinglePathContent, AudioTypable { private static final String TYPE = "audio"; @@ -188,14 +187,6 @@ public class AudioContent extends PadContent implements Pauseable, Durationable, return false; } - @Override - public AudioEqualizer getAudioEqualizer() { - if (audioHandler instanceof Equalizable) { - return ((Equalizable) audioHandler).getAudioEqualizer(); - } - return null; - } - @Override public boolean isPadLoaded() { return audioHandler.isMediaLoaded(); diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioTypable.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioTypable.java new file mode 100644 index 00000000..debfdbdf --- /dev/null +++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioTypable.java @@ -0,0 +1,6 @@ +package de.tobias.playpad.audio; + +public interface AudioTypable { + + public AudioHandler getAudioHandler(); +} diff --git a/PlayWallCore/src/de/tobias/playpad/audio/Equalizable.java b/PlayWallCore/src/de/tobias/playpad/audio/Equalizable.java index a0982852..05b243b0 100644 --- a/PlayWallCore/src/de/tobias/playpad/audio/Equalizable.java +++ b/PlayWallCore/src/de/tobias/playpad/audio/Equalizable.java @@ -2,6 +2,16 @@ package de.tobias.playpad.audio; import javafx.scene.media.AudioEqualizer; +/** + * Interface für AudioHandler + * + * @author tobias + * + * @since 6.0.0 + * + * @see AudioHandler + * + */ public interface Equalizable { public AudioEqualizer getAudioEqualizer(); diff --git a/PlayWallCore/src/de/tobias/playpad/audio/Peakable.java b/PlayWallCore/src/de/tobias/playpad/audio/Peakable.java index c4633e92..f5a37b51 100644 --- a/PlayWallCore/src/de/tobias/playpad/audio/Peakable.java +++ b/PlayWallCore/src/de/tobias/playpad/audio/Peakable.java @@ -2,14 +2,23 @@ package de.tobias.playpad.audio; import javafx.beans.property.DoubleProperty; +/** + * Schnittstelle für AudioHandler. Ermöglicht dem AudioHandler die Fähigkeit das Peakmeter zu aktivieren. + * + * @author tobias + * + * @since 6.0.0 + * + * @see AudioHandler + * + */ public interface Peakable { public enum Channel { - LEFT, - RIGHT; + LEFT, RIGHT; } - + public double getAudioLevel(Channel channel); - + public DoubleProperty audioLevelProperty(Channel channel); } diff --git a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java index 92c52557..516f0e10 100644 --- a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java +++ b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java @@ -6,6 +6,8 @@ import java.util.ResourceBundle; import org.dom4j.DocumentException; import de.tobias.playpad.PlayPadPlugin; +import de.tobias.playpad.audio.AudioHandler; +import de.tobias.playpad.audio.AudioTypable; import de.tobias.playpad.audio.Equalizable; import de.tobias.playpad.equalizerplugin.main.Equalizer; import de.tobias.playpad.equalizerplugin.main.EqualizerPlugin; @@ -101,16 +103,20 @@ public class EqualizerPluginImpl implements EqualizerPlugin, WindowListener<IMai @Override public void onStop(Pad pad) { PadContent content = pad.getContent(); - if (content != null && content instanceof Equalizable) { + if (content != null && content instanceof AudioTypable) { + AudioTypable audioTypable = (AudioTypable) content; + AudioHandler handler = audioTypable.getAudioHandler(); // Equalizer - Equalizable equalizable = (Equalizable) content; - AudioEqualizer audioEqualizer = equalizable.getAudioEqualizer(); - if (audioEqualizer != null) { - for (EqualizerBand band : audioEqualizer.getBands()) { - band.gainProperty().bind(Equalizer.getInstance().gainProperty((int) band.getBandwidth())); + if (handler instanceof Equalizable) { + Equalizable equalizable = (Equalizable) handler; + AudioEqualizer audioEqualizer = equalizable.getAudioEqualizer(); + if (audioEqualizer != null) { + for (EqualizerBand band : audioEqualizer.getBands()) { + band.gainProperty().bind(Equalizer.getInstance().gainProperty((int) band.getBandwidth())); + } + audioEqualizer.enabledProperty().bind(Equalizer.getInstance().enableProperty()); } - audioEqualizer.enabledProperty().bind(Equalizer.getInstance().enableProperty()); } } } -- GitLab