Removed AudioNode.Type in favor of AudioData.DataType, which is what we are using now.

experimental
MeFisto94 9 years ago
parent 6f6e93e01b
commit c90048595f
  1. 70
      jme3-core/src/main/java/com/jme3/audio/AudioNode.java

@ -33,6 +33,7 @@ package com.jme3.audio;
import com.jme3.asset.AssetManager; import com.jme3.asset.AssetManager;
import com.jme3.asset.AssetNotFoundException; import com.jme3.asset.AssetNotFoundException;
import com.jme3.audio.AudioData.DataType;
import com.jme3.export.InputCapsule; import com.jme3.export.InputCapsule;
import com.jme3.export.JmeExporter; import com.jme3.export.JmeExporter;
import com.jme3.export.JmeImporter; import com.jme3.export.JmeImporter;
@ -86,7 +87,6 @@ public class AudioNode extends Node implements AudioSource {
protected float innerAngle = 360; protected float innerAngle = 360;
protected float outerAngle = 360; protected float outerAngle = 360;
protected boolean positional = true; protected boolean positional = true;
protected Type type = null;
/** /**
* <code>Status</code> indicates the current status of the audio node. * <code>Status</code> indicates the current status of the audio node.
@ -113,26 +113,6 @@ public class AudioNode extends Node implements AudioSource {
Stopped, Stopped,
} }
/**
* <code>Type</code> indicates how to retrieve the audio data.
* It replaced the old "stream" and "streamCache" parameters.
* It defines whether the whole file is read and buffered or
* if it is read gradually from disk.
*/
public enum Type {
/**
* The audio data will be loaded as whole and be buffered in memory.
* Use this for short sounds.
*/
Buffered,
/**
* The audio data will be streamed gradually from disk.
* Use this for longer sounds.
* Note: looping and seeking <b>is</b> supported.
*/
Streaming,
}
/** /**
* Creates a new <code>AudioNode</code> without any audio data set. * Creates a new <code>AudioNode</code> without any audio data set.
*/ */
@ -147,22 +127,17 @@ public class AudioNode extends Node implements AudioSource {
*/ */
public AudioNode(AudioData audioData, AudioKey audioKey) { public AudioNode(AudioData audioData, AudioKey audioKey) {
setAudioData(audioData, audioKey); setAudioData(audioData, audioKey);
if (audioKey.isStream()) {
type = Type.Streaming;
} else {
type = Type.Buffered;
}
} }
/** /**
* Creates a new <code>AudioNode</code> with the given audio file. * Creates a new <code>AudioNode</code> with the given audio file.
* @param assetManager The asset manager to use to load the audio file * @param assetManager The asset manager to use to load the audio file
* @param name The filename of the audio file * @param name The filename of the audio file
* @param type The type. If <code>Type.Streaming</code>, the audio will be streamed gradually from disk, * @param type The type. If <code>{@link com.jme3.audio.AudioData.DataType}.Stream</code>, the audio will be streamed gradually from disk,
* otherwise it will be buffered (<code>Type.Buffered</code>) * otherwise it will be buffered (<code>{@link com.jme3.audio.AudioData.DataType}.Buffer</code>)
*/ */
public AudioNode(AssetManager assetManager, String name, Type type) { public AudioNode(AssetManager assetManager, String name, DataType type) {
this(assetManager, name, type == Type.Streaming, true); this(assetManager, name, type == DataType.Stream, true);
} }
/** /**
@ -177,16 +152,11 @@ public class AudioNode extends Node implements AudioSource {
* be read entirely but not decoded, allowing features such as * be read entirely but not decoded, allowing features such as
* seeking, looping and determining duration. * seeking, looping and determining duration.
* *
* @deprecated Use {@link AudioNode#AudioNode(com.jme3.asset.AssetManager, java.lang.String, com.jme3.audio.AudioNode.Type)} instead * @deprecated Use {@link AudioNode#AudioNode(com.jme3.asset.AssetManager, java.lang.String, com.jme3.audio.AudioData.DataType)} instead
*/ */
public AudioNode(AssetManager assetManager, String name, boolean stream, boolean streamCache) { public AudioNode(AssetManager assetManager, String name, boolean stream, boolean streamCache) {
this.audioKey = new AudioKey(name, stream, streamCache); this.audioKey = new AudioKey(name, stream, streamCache);
this.data = (AudioData) assetManager.loadAsset(audioKey); this.data = (AudioData) assetManager.loadAsset(audioKey);
if (stream) {
type = Type.Streaming;
} else {
type = Type.Buffered;
}
} }
/** /**
@ -197,7 +167,7 @@ public class AudioNode extends Node implements AudioSource {
* @param stream If true, the audio will be streamed gradually from disk, * @param stream If true, the audio will be streamed gradually from disk,
* otherwise, it will be buffered. * otherwise, it will be buffered.
* *
* @deprecated Use {@link AudioNode#AudioNode(com.jme3.asset.AssetManager, java.lang.String, com.jme3.audio.AudioNode.Type)} instead * @deprecated Use {@link AudioNode#AudioNode(com.jme3.asset.AssetManager, java.lang.String, com.jme3.audio.AudioData.DataType)} instead
*/ */
public AudioNode(AssetManager assetManager, String name, boolean stream) { public AudioNode(AssetManager assetManager, String name, boolean stream) {
this(assetManager, name, stream, true); // Always streamCached this(assetManager, name, stream, true); // Always streamCached
@ -213,7 +183,7 @@ public class AudioNode extends Node implements AudioSource {
* @deprecated AudioRenderer parameter is ignored. * @deprecated AudioRenderer parameter is ignored.
*/ */
public AudioNode(AudioRenderer audioRenderer, AssetManager assetManager, String name) { public AudioNode(AudioRenderer audioRenderer, AssetManager assetManager, String name) {
this(assetManager, name, Type.Buffered); this(assetManager, name, DataType.Buffer);
} }
/** /**
@ -221,10 +191,10 @@ public class AudioNode extends Node implements AudioSource {
* *
* @param assetManager The asset manager to use to load the audio file * @param assetManager The asset manager to use to load the audio file
* @param name The filename of the audio file * @param name The filename of the audio file
* @deprecated Use {@link AudioNode#AudioNode(com.jme3.asset.AssetManager, java.lang.String, com.jme3.audio.AudioNode.Type)} instead * @deprecated Use {@link AudioNode#AudioNode(com.jme3.asset.AssetManager, java.lang.String, com.jme3.audio.AudioData.DataType) } instead
*/ */
public AudioNode(AssetManager assetManager, String name) { public AudioNode(AssetManager assetManager, String name) {
this(assetManager, name, Type.Buffered); this(assetManager, name, DataType.Buffer);
} }
protected AudioRenderer getRenderer() { protected AudioRenderer getRenderer() {
@ -330,12 +300,6 @@ public class AudioNode extends Node implements AudioSource {
data = audioData; data = audioData;
this.audioKey = audioKey; this.audioKey = audioKey;
if (audioKey.isStream()) {
type = Type.Streaming;
} else {
type = Type.Buffered;
}
} }
/** /**
@ -364,14 +328,16 @@ public class AudioNode extends Node implements AudioSource {
} }
/** /**
* This is set only once in the constructor. * Get the Type of the underlying AudioData to see if it's streamed or buffered.
* It defines, whether the underlying Data is Buffered or * This is a shortcut to getAudioData().getType()
* Streamed continuously.
* <b>Warning</b>: Can return null! * <b>Warning</b>: Can return null!
* @return The {@link Type} of the audio node. * @return The {@link com.jme3.audio.AudioData.DataType} of the audio node.
*/ */
public Type getType() { public DataType getType() {
return type; if (data == null)
return null;
else
return data.getDataType();
} }
/** /**

Loading…
Cancel
Save