jmri.jmrit.audio
Class JoalAudioListener

java.lang.Object
  extended by jmri.implementation.AbstractNamedBean
      extended by jmri.implementation.AbstractAudio
          extended by jmri.jmrit.audio.AbstractAudioListener
              extended by jmri.jmrit.audio.JoalAudioListener
All Implemented Interfaces:
Serializable, Audio, AudioListener, NamedBean

public class JoalAudioListener
extends AbstractAudioListener

JOAL implementation of the Audio Listener sub-class.

For now, no system-specific implementations are forseen - this will remain internal-only



This software is based on or using the JOAL Library available from http://joal.dev.java.net/

JOAL License:
Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-Redistribution of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided "AS IS," without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility.



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.

Author:
Matthew Harris copyright (c) 2009
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class jmri.jmrit.audio.AbstractAudioListener
AbstractAudioListener.AudioListenerMoveThread
 
Field Summary
 
Fields inherited from class jmri.implementation.AbstractNamedBean
mSystemName, mUserName
 
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_RESET_POSITION, CMD_RESUME, CMD_REWIND, CMD_STOP, 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.NamedBean
INCONSISTENT, UNKNOWN
 
Constructor Summary
JoalAudioListener(String systemName)
          Constructor for new JoalAudioListener with system name
JoalAudioListener(String systemName, String userName)
          Constructor for new JoalAudioListener with system name and user name
 
Method Summary
protected  void changePosition(Vector3f pos)
          Method to change the current position of this source
protected  void cleanUp()
          Abstract method that concrete classes will implement to perform necessary cleanup routines.
 void setGain(float gain)
          Set the gain of this AudioListener object Applicable values 0.0f to 1.0f When applied to Listeners, has the effect of altering the master gain (or volume) Applies only to sub-types: Listener Source
 void setMetersPerUnit(float metersPerUnit)
          Method to set the Meters per unit ratio for all distance calculations.
 void setOrientation(Vector3f at, Vector3f up)
          Set the orientation of this AudioListener object Applies only to sub-types: Listener
 void setVelocity(Vector3f vel)
          Sets the velocity of this AudioListener object Applies only to sub-types: Listener Source
 void stateChanged(int oldState)
          Method used to update the current state of the Audio object
 
Methods inherited from class jmri.jmrit.audio.AbstractAudioListener
calculateCurrentPosition, doResetCurrentPosition, getCurrentOrientation, getCurrentPosition, getGain, getMetersPerUnit, getOrientation, getPosition, getSubType, getVelocity, resetCurrentPosition, setPosition, setPosition, setPosition, toString
 
Methods inherited from class jmri.implementation.AbstractAudio
getState, roundDecimal, roundDecimal, setState
 
Methods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, dispose, firePropertyChange, getComment, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyKeys, getSystemName, getUserName, removePropertyChangeListener, setComment, setProperty, setUserName, updateListenerRef
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, dispose, getComment, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyKeys, getState, getSystemName, getUserName, removePropertyChangeListener, setComment, setProperty, setState, setUserName, updateListenerRef
 

Constructor Detail

JoalAudioListener

public JoalAudioListener(String systemName)
Constructor for new JoalAudioListener with system name

Parameters:
systemName - AudioListener object system name (e.g. IAL)

JoalAudioListener

public JoalAudioListener(String systemName,
                         String userName)
Constructor for new JoalAudioListener with system name and user name

Parameters:
systemName - AudioListener object system name (e.g. IAL)
userName - AudioListener object user name
Method Detail

changePosition

protected void changePosition(Vector3f pos)
Description copied from class: AbstractAudioListener
Method to change the current position of this source

Specified by:
changePosition in class AbstractAudioListener
Parameters:
pos - new position

setVelocity

public void setVelocity(Vector3f vel)
Description copied from interface: AudioListener
Sets the velocity of this AudioListener object

Applies only to sub-types:

Specified by:
setVelocity in interface AudioListener
Overrides:
setVelocity in class AbstractAudioListener
Parameters:
vel - 3d velocity vector

setOrientation

public void setOrientation(Vector3f at,
                           Vector3f up)
Description copied from interface: AudioListener
Set the orientation of this AudioListener object

Applies only to sub-types:

Specified by:
setOrientation in interface AudioListener
Overrides:
setOrientation in class AbstractAudioListener
Parameters:
at - 3d vector representing the position
up - 3d vector representing the look-at point

setGain

public void setGain(float gain)
Description copied from interface: AudioListener
Set the gain of this AudioListener object

Applicable values 0.0f to 1.0f

When applied to Listeners, has the effect of altering the master gain (or volume)

Applies only to sub-types:

Specified by:
setGain in interface AudioListener
Overrides:
setGain in class AbstractAudioListener

setMetersPerUnit

public void setMetersPerUnit(float metersPerUnit)
Description copied from interface: AudioListener
Method to set the Meters per unit ratio for all distance calculations.

Default value = 1.0f (i.e. 1 unit == 1 metre)

Typical alternative values:

Applies only to sub-types:

Specified by:
setMetersPerUnit in interface AudioListener
Overrides:
setMetersPerUnit in class AbstractAudioListener
Parameters:
metersPerUnit - Meters per unit ratio

stateChanged

public void stateChanged(int oldState)
Description copied from interface: Audio
Method used to update the current state of the Audio object

Specified by:
stateChanged in interface Audio
Overrides:
stateChanged in class AbstractAudioListener

cleanUp

protected void cleanUp()
Description copied from class: AbstractAudio
Abstract method that concrete classes will implement to perform necessary cleanup routines.

Specified by:
cleanUp in class AbstractAudio


Copyright © 1997 - 2011 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads