paulscode.sound
Class CommandThread

java.lang.Object
  extended by java.lang.Thread
      extended by paulscode.sound.SimpleThread
          extended by paulscode.sound.CommandThread
All Implemented Interfaces:
java.lang.Runnable

public class CommandThread
extends SimpleThread

The CommandThread class is designed to move all command processing into a single thread to be run in the background and avoid conflicts between threads. Commands are processed in the order that they were queued. The arguements for each command are stored in a CommandObject. The Command Queue is located in the SoundSystem class. Calling kill() stops the thread, and this should be immediatly followed by a call to interrupt() to wake up the thread so it may end. This class also checks for temporary sources that are finished playing, and removes them. NOTE: The command thread is created automatically by the sound system, so it is unlikely that the user would ever need to use this class.

SoundSystem License:

You are free to use this library for any purpose, commercial or otherwise. You may modify this library or source code, and distribute it any way you like, provided the following conditions are met:
1) You may not falsely claim to be the author of this library or any unmodified portion of it.
2) You may not copyright this library or a modified version of it and then sue me for copyright infringement.
3) If you modify the source code, you must clearly document the changes made before redistributing the modified source code, so other users know it is not the original code.
4) You are not required to give me credit for this library in any derived work, but if you do, you must also mention my website: http://www.paulscode.com
5) I the author will not be responsible for any damages (physical, financial, or otherwise) caused by the use if this library or any part of it.
6) I the author do not guarantee, warrant, or make any representations, either expressed or implied, regarding the use of this library or any part of it.

Author: Paul Lamb
http://www.paulscode.com


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected  java.lang.String className
          Name of this class.
protected  SoundSystemLogger logger
          Processes status messages, warnings, and error messages.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
CommandThread(SoundSystem s)
          Constructor: Takes a handle to the SoundSystem object as a parameter.
 
Method Summary
protected  void cleanup()
          Shuts the thread down and removes references to all instantiated objects.
protected  boolean errorCheck(boolean error, java.lang.String message)
          Prints the specified message if error is true.
protected  void errorMessage(java.lang.String message, int indent)
          Prints an error message.
protected  void importantMessage(java.lang.String message, int indent)
          Prints an important message.
protected  void message(java.lang.String message, int indent)
          Prints a message.
 void run()
          The main loop for processing commands.
 
Methods inherited from class paulscode.sound.SimpleThread
alive, dying, kill, restart, snooze
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

protected SoundSystemLogger logger
Processes status messages, warnings, and error messages.


className

protected java.lang.String className
Name of this class.

Constructor Detail

CommandThread

public CommandThread(SoundSystem s)
Constructor: Takes a handle to the SoundSystem object as a parameter.

Parameters:
s - Handle to the SoundSystem.
Method Detail

cleanup

protected void cleanup()
Shuts the thread down and removes references to all instantiated objects. NOTE: Method alive() will return false when cleanup() has finished.

Overrides:
cleanup in class SimpleThread

run

public void run()
The main loop for processing commands. The Command Thread starts out asleep, and it sleeps again after it finishes processing commands, so it must be interrupted when commands are queued for processing.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class SimpleThread

message

protected void message(java.lang.String message,
                       int indent)
Prints a message.

Parameters:
message - Message to print.

importantMessage

protected void importantMessage(java.lang.String message,
                                int indent)
Prints an important message.

Parameters:
message - Message to print.

errorCheck

protected boolean errorCheck(boolean error,
                             java.lang.String message)
Prints the specified message if error is true.

Parameters:
error - True or False.
message - Message to print if error is true.
Returns:
True if error is true.

errorMessage

protected void errorMessage(java.lang.String message,
                            int indent)
Prints an error message.

Parameters:
message - Message to print.