org.deken.game.sound.audio.streamAudioFilter
Class StreamAudioFilter

java.lang.Object
  extended by org.deken.game.sound.audio.streamAudioFilter.StreamAudioFilter
Direct Known Subclasses:
DistanceStreamFilter, EchoStreamFilter

public abstract class StreamAudioFilter
extends java.lang.Object

Title: SoundFilter

Description: An abstract class designed to filter sound samples. Since SoundFilters my use internal buffering of samples, a new SoundFilter object should be created for every sound played. However, SoundFilters can be reused after they are finished by calling the reset() method. Assumes all samples are 16-bit, signed, little-endian format.

Version:
1.0
Author:
David Brackeen (Developing Games in Java)
See Also:
FilteredSoundStream

Constructor Summary
  StreamAudioFilter()
           
protected StreamAudioFilter(int sampleSizeInBits)
           
 
Method Summary
 void filter(byte[] samples)
          Filters an array of samples.
abstract  void filter(byte[] samples, int offset, int length)
          Filters an array of samples.
 int getRemainingSize()
          Gets the remaining size, in bytes, that this filter plays after the sound is finished.
 short getSample(byte[] buffer, int position)
          Convenience method for getting a sample from a byte array.
 void reset()
          Resets this SoundFilter.
protected  void setAudioFormat(javax.sound.sampled.AudioFormat audioFormat)
           
 void setSample(byte[] buffer, int position, short sample)
          Convenience method for setting a sample in a byte array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StreamAudioFilter

public StreamAudioFilter()

StreamAudioFilter

protected StreamAudioFilter(int sampleSizeInBits)
Method Detail

reset

public void reset()
Resets this SoundFilter. Does nothing by default.


getRemainingSize

public int getRemainingSize()
Gets the remaining size, in bytes, that this filter plays after the sound is finished. An example would be an echo that plays longer than it's original sound. This method returns 0 by default.

Returns:
int

filter

public void filter(byte[] samples)
Filters an array of samples. Samples should be in 16-bit, signed, little-endian format.

Parameters:
samples - byte[]

filter

public abstract void filter(byte[] samples,
                            int offset,
                            int length)
Filters an array of samples. Samples should be in 16-bit, signed, little-endian format. This method is implemented by subclasses. Note that the offset and length are number of bytes, not sample.

Parameters:
samples - byte[]
offset - int
length - int

getSample

public short getSample(byte[] buffer,
                       int position)
Convenience method for getting a sample from a byte array. Default is a samples should be in 16-bit, signed, little-endian format.

Parameters:
buffer - byte[]
position - int
Returns:
short

setSample

public void setSample(byte[] buffer,
                      int position,
                      short sample)
Convenience method for setting a sample in a byte array. Default is a samples in 16-bit, signed, little-endian format.

Parameters:
buffer - byte[]
position - int
sample - short

setAudioFormat

protected void setAudioFormat(javax.sound.sampled.AudioFormat audioFormat)