diff --git a/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java b/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java index 24b4e838d15edf1eeaad3825af948c61205e5e80..4e865e8f96cb3f4dc78b7bf0a26240c1251f1a10 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 0000000000000000000000000000000000000000..debfdbdfa97f59b4b0d599c0d05e59d3d656db48 --- /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 a0982852b0e2c4766dc3c5a1782ef0e8451744c8..05b243b03c4ed3af64138b8db057535038ff0753 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 c4633e92364b92ab5f2760f8a98218312777102e..f5a37b51a00bdfd28b04c596fa8c389e6db12f6c 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 92c5255726809d7b30ee09b4158ccfcdaa2ce47f..516f0e1048bfd10142fd367d96bbfbeb0cac5823 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()); } } }