Class TextSynthesizer.OutputHandler
java.lang.Object
java.lang.Thread
com.sun.speech.engine.synthesis.text.TextSynthesizer.OutputHandler
- All Implemented Interfaces:
Runnable
- Enclosing class:
TextSynthesizer
The output device for a
TextSynthesizer
. Sends
all text to standard out.-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final int
protected static final int
protected static final int
protected int
For the item at the top of the queue, the output command reflects whether item should be PAUSE, RESUME, CANCEL.protected Object
Object on which accesses to the command must synchronize.protected Object
Object to lock on for setting the current item.protected boolean
protected static final int
protected Vector
Internal speech output queue that will contain a set of TextSynthesizerQueueItems.protected static final int
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds an item to be spoken to the output queue.protected void
Cancels all items.protected void
Cancels the current item.protected void
cancelItem
(int cancelType) Cancels all or just the current item.protected void
cancelItem
(Object source) Cancels the given item.Returns the current queue.protected TextSynthesizerQueueItem
Returns, but does not remove, the first item on the queue.protected boolean
Determines if the next thing in line is a command.boolean
Determines if the queue is empty.protected boolean
isWhitespace
(String engineText, int index) Determines if there is whitespace at the current index.protected int
Starts outputting the item.protected void
Pauses the output.protected int
processCommand
(TextSynthesizerQueueItem item, String engineText, int index) Attempts to process a command starting at the next character in the synthesizer text.protected int
processNormalText
(TextSynthesizerQueueItem item, String engineText, int index) Processes next set of characters in output up to whitespace or next '/' that could indicate the start of a command.protected int
processWhitespace
(String engineText, int index) Processes whitespace at the current index in the synthesizer text.protected void
Resumes the output.void
run()
Controls output of text until terminate is called.void
Stops execution of the Thread.Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
done
protected boolean done -
queue
Internal speech output queue that will contain a set of TextSynthesizerQueueItems.- See Also:
-
currentItemLock
Object to lock on for setting the current item. -
command
protected int commandFor the item at the top of the queue, the output command reflects whether item should be PAUSE, RESUME, CANCEL. -
PAUSE
protected static final int PAUSE- See Also:
-
RESUME
protected static final int RESUME- See Also:
-
CANCEL
protected static final int CANCEL- See Also:
-
CANCEL_ALL
protected static final int CANCEL_ALL- See Also:
-
CANCEL_COMPLETE
protected static final int CANCEL_COMPLETE- See Also:
-
commandLock
Object on which accesses to the command must synchronize.
-
-
Constructor Details
-
OutputHandler
public OutputHandler()Class constructor.
-
-
Method Details
-
terminate
public void terminate()Stops execution of the Thread. -
enumerateQueue
Returns the current queue.- Returns:
- the current queue
-
isQueueEmpty
public boolean isQueueEmpty()Determines if the queue is empty.- Returns:
true
if the queue is empty
-
appendQueue
Adds an item to be spoken to the output queue.- Parameters:
item
- the item to be added
-
cancelItem
protected void cancelItem()Cancels the current item. -
cancelAllItems
protected void cancelAllItems()Cancels all items. -
cancelItem
protected void cancelItem(int cancelType) Cancels all or just the current item.- Parameters:
cancelType
-CANCEL
orCANCEL_ALL
-
cancelItem
Cancels the given item.- Parameters:
source
- the item to cancel
-
pauseItem
protected void pauseItem()Pauses the output. -
resumeItem
protected void resumeItem()Resumes the output. -
run
public void run()Controls output of text until terminate is called. -
getQueueItem
Returns, but does not remove, the first item on the queue.- Returns:
- the first item on the queue
-
outputItem
Starts outputting the item. Returns the current command.- Parameters:
item
- to be output- Returns:
- the current command
-
isCommand
Determines if the next thing in line is a command.- Parameters:
engineText
- the text containing embedded commandsindex
- the current index- Returns:
true
if the next thing in line is a command
-
processCommand
Attempts to process a command starting at the next character in the synthesizer text. Returns the new index.- Parameters:
item
- the current queue itemengineText
- the text containing embedded commandsindex
- the current index- Returns:
- the new index
-
isWhitespace
Determines if there is whitespace at the current index.- Parameters:
engineText
- the text containing embedded commandsindex
- the current index- Returns:
true
if there is whitespace at the current index
-
processWhitespace
Processes whitespace at the current index in the synthesizer text. If next character is not whitespace, does nothing. If next character is whitespace, displays it and pauses briefly to simulate the speaking rate.- Parameters:
engineText
- the text containing embedded commandsindex
- the current index- Returns:
- the new index
-
processNormalText
Processes next set of characters in output up to whitespace or next '/' that could indicate the start of a command.- Parameters:
item
- the current queue itemengineText
- the text containing embedded commandsindex
- the current index- Returns:
- the new index
-