/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package javafx.scene.media;
import java.util.List;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.BooleanPropertyBase;
import javafx.collections.ObservableList;
import javafx.collections.FXCollections;
import com.sun.javafx.collections.VetoableListDecorator;
import com.sun.media.jfxmedia.logging.Logger;
/**
* The The constraints for a valid {@link EqualizerBand} instance are:
* AudioEqualizer
class provides audio equalization control for
* a media player. It contains an {@link ObservableList} of {@link EqualizerBand}
* elements. Each AudioEqualizer
instance is connected to a
* {@link MediaPlayer} and may be obtained using the
* {@link MediaPlayer#getAudioEqualizer MediaPlayer.getAudioEqualizer} method.
*
* @see MediaPlayer
* @see EqualizerBand
* @since JavaFX 2.0
*/
public final class AudioEqualizer {
/**
* Maximum number of bands an AudioEqualizer
may contain.
* In the current implementation this value is 64
.
*/
public static final int MAX_NUM_BANDS = com.sun.media.jfxmedia.effects.AudioEqualizer.MAX_NUM_BANDS;
private com.sun.media.jfxmedia.effects.AudioEqualizer jfxEqualizer = null;
private final ObservableList
*
*
The default set of bands is as in the following table; all bands have * unity gain (0 dB). *
Band Index | Center Frequency (Hz) | Bandwidth (Hz) |
---|---|---|
0 | 32 | 19 |
1 | 64 | 39 |
2 | 125 | 78 |
3 | 250 | 156 |
4 | 500 | 312 |
5 | 1000 | 625 |
6 | 2000 | 1250 |
7 | 4000 | 2500 |
8 | 8000 | 5000 |
9 | 16000 | 10000 |
AudioEqualizer
is enabled. The default value is
* true
.
*/
private BooleanProperty enabled;
/**
* Enables or disables AudioEqualizer
. If the enabled property
* is set to false, {@link AudioEqualizer} settings are preserved but
* not taken into account during playback, which is equivalent to setting all
* {@link EqualizerBand#gainProperty EqualizerBand.gain} properties to zero.
*/
public final void setEnabled(boolean value) {
enabledProperty().set(value);
}
/**
* Return enabled state of the AudioEqualizer.
* @return true if AudioEqulizer is enabled, false otherwise.
*/
public final boolean isEnabled() {
return enabled == null ? false : enabled.get();
}
public BooleanProperty enabledProperty() {
if (enabled == null) {
enabled = new BooleanPropertyBase() {
@Override
protected void invalidated() {
synchronized (disposeLock) {
if (jfxEqualizer != null) {
jfxEqualizer.setEnabled(enabled.get());
}
}
}
@Override
public Object getBean() {
return AudioEqualizer.this;
}
@Override
public String getName() {
return "enabled";
}
};
}
return enabled;
}
private class Bands extends VetoableListDecorator