Class JavaSoundAudioBuffer
- java.lang.Object
-
- jmri.implementation.AbstractNamedBean
-
- jmri.implementation.AbstractAudio
-
- jmri.jmrit.audio.AbstractAudioBuffer
-
- jmri.jmrit.audio.JavaSoundAudioBuffer
-
- All Implemented Interfaces:
java.lang.Comparable<NamedBean>
,Audio
,PropertyChangeProvider
,AudioBuffer
,NamedBean
public class JavaSoundAudioBuffer extends AbstractAudioBuffer
JavaSound implementation of the Audio Buffer sub-class.For now, no system-specific implementations are forseen - this will remain internal-only
For more information about the JavaSound API, visit http://java.sun.com/products/java-media/sound/
This file is part of JMRI.JMRI is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the "COPYING" file for a copy of this license.
JMRI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jmri.NamedBean
NamedBean.BadNameException, NamedBean.BadSystemNameException, NamedBean.BadUserNameException, NamedBean.DisplayOptions, NamedBean.DuplicateSystemNameException
-
-
Field Summary
-
Fields inherited from class jmri.jmrit.audio.AbstractAudioBuffer
LOOP_POINT_BOTH, LOOP_POINT_END, LOOP_POINT_START
-
Fields inherited from class jmri.implementation.AbstractNamedBean
listenerRefs, mSystemName, register
-
Fields inherited from interface jmri.Audio
AT, BUFFER, CMD_BIND_BUFFER, CMD_FADE_IN, CMD_FADE_OUT, CMD_INIT_FACTORY, CMD_LOAD_SOUND, CMD_PAUSE, CMD_PAUSE_TOGGLE, CMD_PLAY, CMD_PLAY_TOGGLE, CMD_QUEUE_BUFFERS, CMD_RESET_POSITION, CMD_RESUME, CMD_REWIND, CMD_STOP, CMD_UNQUEUE_BUFFERS, DECIMAL_PLACES, FADE_IN, FADE_NONE, FADE_OUT, LISTENER, MAX_DISTANCE, SOURCE, STATE_EMPTY, STATE_INITIAL, STATE_LOADED, STATE_MOVING, STATE_PLAYING, STATE_POSITIONED, STATE_STOPPED, UP
-
Fields inherited from interface jmri.jmrit.audio.AudioBuffer
FORMAT_16BIT_5DOT1, FORMAT_16BIT_6DOT1, FORMAT_16BIT_7DOT1, FORMAT_16BIT_MONO, FORMAT_16BIT_QUAD, FORMAT_16BIT_STEREO, FORMAT_8BIT_5DOT1, FORMAT_8BIT_6DOT1, FORMAT_8BIT_7DOT1, FORMAT_8BIT_MONO, FORMAT_8BIT_QUAD, FORMAT_8BIT_STEREO, FORMAT_UNKNOWN
-
Fields inherited from interface jmri.NamedBean
DISPLAY_NAME_FORMAT, INCONSISTENT, PROPERTY_STATE, QUOTED_NAME_FORMAT, UNKNOWN
-
-
Constructor Summary
Constructors Constructor Description JavaSoundAudioBuffer(java.lang.String systemName)
Constructor for new JavaSoundAudioBuffer with system nameJavaSoundAudioBuffer(java.lang.String systemName, java.lang.String userName)
Constructor for new JavaSoundAudioBuffer with system name and user name
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
cleanup()
Abstract method that concrete classes will implement to perform necessary cleanup routines.protected void
generateLoopBuffers(int which)
Method used to generate any necessary loop buffers.protected boolean
generateStreamingBuffers()
Internal method used to generate buffers for streamingprotected javax.sound.sampled.AudioFormat
getAudioFormat()
Retrieves the format of the sound sample stored in this buffer as an AudioFormat objectprotected byte[]
getDataStorageBuffer()
Return reference to the DataStorageBuffer byte arrayint
getFormat()
Retrieves the format of the sound sample stored in this bufferint
getFrequency()
Retrieves the frequency of the sound sample stored in this bufferlong
getLength()
Retrieves the length of the sound sample stored in this bufferprotected boolean
loadBuffer()
Method used to load the actual sound data into the bufferprotected boolean
loadBuffer(java.io.InputStream stream)
Method used to load the actual sound data from an InputStream into the bufferprotected void
removeStreamingBuffers()
Internal method used to remove streaming buffers-
Methods inherited from class jmri.jmrit.audio.AbstractAudioBuffer
getEndLoopPoint, getFrameSize, getStartLoopPoint, getSubType, getURL, isStreamed, isStreamedForced, loadBuffer, setEndLoopPoint, setEndLoopPoint, setInputStream, setStartLoopPoint, setStartLoopPoint, setStreamed, setStreamedForced, setURL, stateChanged
-
Methods inherited from class jmri.implementation.AbstractAudio
dispose, getBeanType, getState, getUsageReport, roundDecimal, roundDecimal, setState
-
Methods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, describeState, equals, firePropertyChange, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeListenersByReference, getPropertyKeys, getSystemName, getUserName, hashCode, removeProperty, removePropertyChangeListener, removePropertyChangeListener, setComment, setProperty, setUserName, toString, toStringSuffix, updateListenerRef, vetoableChange
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, compareTo, describeState, dispose, getBeanType, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListenersByReference, getPropertyKeys, getState, getSystemName, getUsageReport, getUserName, removeProperty, setComment, setProperty, setState, setUserName, toString, updateListenerRef, vetoableChange
-
Methods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
-
-
-
Constructor Detail
-
JavaSoundAudioBuffer
public JavaSoundAudioBuffer(java.lang.String systemName)
Constructor for new JavaSoundAudioBuffer with system name- Parameters:
systemName
- AudioBuffer object system name (e.g. IAB4)
-
JavaSoundAudioBuffer
public JavaSoundAudioBuffer(java.lang.String systemName, java.lang.String userName)
Constructor for new JavaSoundAudioBuffer with system name and user name- Parameters:
systemName
- AudioBuffer object system name (e.g. IAB4)userName
- AudioBuffer object user name
-
-
Method Detail
-
getDataStorageBuffer
protected byte[] getDataStorageBuffer()
Return reference to the DataStorageBuffer byte arrayApplies only to sub-types:
- Buffer
- Returns:
- buffer[] reference to DataStorageBuffer
-
getAudioFormat
protected javax.sound.sampled.AudioFormat getAudioFormat()
Retrieves the format of the sound sample stored in this buffer as an AudioFormat object- Returns:
- audio format as an AudioFormat object
-
loadBuffer
protected boolean loadBuffer(java.io.InputStream stream)
Description copied from class:AbstractAudioBuffer
Method used to load the actual sound data from an InputStream into the buffer- Specified by:
loadBuffer
in classAbstractAudioBuffer
- Parameters:
stream
- InputStream containing sound data- Returns:
- True if successful; False if not
-
loadBuffer
protected boolean loadBuffer()
Description copied from class:AbstractAudioBuffer
Method used to load the actual sound data into the buffer- Specified by:
loadBuffer
in classAbstractAudioBuffer
- Returns:
- True if successful; False if not
-
generateLoopBuffers
protected void generateLoopBuffers(int which)
Description copied from class:AbstractAudioBuffer
Method used to generate any necessary loop buffers.- Specified by:
generateLoopBuffers
in classAbstractAudioBuffer
- Parameters:
which
- the loop buffer to generate:AbstractAudioBuffer.LOOP_POINT_START
for the start loop bufferAbstractAudioBuffer.LOOP_POINT_END
for the end loop bufferAbstractAudioBuffer.LOOP_POINT_BOTH
for both loop buffers
-
generateStreamingBuffers
protected boolean generateStreamingBuffers()
Description copied from class:AbstractAudioBuffer
Internal method used to generate buffers for streaming- Specified by:
generateStreamingBuffers
in classAbstractAudioBuffer
- Returns:
- True if successful; False if not
-
removeStreamingBuffers
protected void removeStreamingBuffers()
Description copied from class:AbstractAudioBuffer
Internal method used to remove streaming buffers- Specified by:
removeStreamingBuffers
in classAbstractAudioBuffer
-
getFormat
public int getFormat()
Description copied from interface:AudioBuffer
Retrieves the format of the sound sample stored in this bufferApplies only to sub-types:
- Buffer
- Returns:
- constant representing format
-
getLength
public long getLength()
Description copied from interface:AudioBuffer
Retrieves the length of the sound sample stored in this bufferApplies only to sub-types:
- Buffer
- Returns:
- length of sound sample in frames
- See Also:
AudioBuffer.getFrameSize()
-
getFrequency
public int getFrequency()
Description copied from interface:AudioBuffer
Retrieves the frequency of the sound sample stored in this bufferApplies only to sub-types:
- Buffer
- Returns:
- frequency of sound sample in Hz
-
cleanup
protected void cleanup()
Description copied from class:AbstractAudio
Abstract method that concrete classes will implement to perform necessary cleanup routines.This method is now included in dispose(). The caller can call dispose() to cleanup and deregister an audio object.
- Specified by:
cleanup
in classAbstractAudio
-
-