Class TextSynthesizer.OutputHandler

  • All Implemented Interfaces:
    java.lang.Runnable
    Enclosing class:
    TextSynthesizer

    public class TextSynthesizer.OutputHandler
    extends java.lang.Thread
    The output device for a TextSynthesizer. Sends all text to standard out.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static int CANCEL  
      protected static int CANCEL_ALL  
      protected static int CANCEL_COMPLETE  
      protected int command
      For the item at the top of the queue, the output command reflects whether item should be PAUSE, RESUME, CANCEL.
      protected java.lang.Object commandLock
      Object on which accesses to the command must synchronize.
      protected java.lang.Object currentItemLock
      Object to lock on for setting the current item.
      protected boolean done  
      protected static int PAUSE  
      protected java.util.Vector queue
      Internal speech output queue that will contain a set of TextSynthesizerQueueItems.
      protected static int RESUME  
      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Constructor Summary

      Constructors 
      Constructor Description
      OutputHandler()
      Class constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void appendQueue​(TextSynthesizerQueueItem item)
      Adds an item to be spoken to the output queue.
      protected void cancelAllItems()
      Cancels all items.
      protected void cancelItem()
      Cancels the current item.
      protected void cancelItem​(int cancelType)
      Cancels all or just the current item.
      protected void cancelItem​(java.lang.Object source)
      Cancels the given item.
      java.util.Enumeration enumerateQueue()
      Returns the current queue.
      protected TextSynthesizerQueueItem getQueueItem()
      Returns, but does not remove, the first item on the queue.
      protected boolean isCommand​(java.lang.String engineText, int index)
      Determines if the next thing in line is a command.
      boolean isQueueEmpty()
      Determines if the queue is empty.
      protected boolean isWhitespace​(java.lang.String engineText, int index)
      Determines if there is whitespace at the current index.
      protected int outputItem​(TextSynthesizerQueueItem item)
      Starts outputting the item.
      protected void pauseItem()
      Pauses the output.
      protected int processCommand​(TextSynthesizerQueueItem item, java.lang.String engineText, int index)
      Attempts to process a command starting at the next character in the synthesizer text.
      protected int processNormalText​(TextSynthesizerQueueItem item, java.lang.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​(java.lang.String engineText, int index)
      Processes whitespace at the current index in the synthesizer text.
      protected void resumeItem()
      Resumes the output.
      void run()
      Controls output of text until terminate is called.
      void terminate()
      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, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • done

        protected boolean done
      • queue

        protected java.util.Vector queue
        Internal speech output queue that will contain a set of TextSynthesizerQueueItems.
        See Also:
        BaseSynthesizerQueueItem
      • currentItemLock

        protected java.lang.Object currentItemLock
        Object to lock on for setting the current item.
      • command

        protected int command
        For the item at the top of the queue, the output command reflects whether item should be PAUSE, RESUME, CANCEL.
      • commandLock

        protected java.lang.Object commandLock
        Object on which accesses to the command must synchronize.
    • Constructor Detail

      • OutputHandler

        public OutputHandler()
        Class constructor.
    • Method Detail

      • terminate

        public void terminate()
        Stops execution of the Thread.
      • enumerateQueue

        public java.util.Enumeration 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

        public void appendQueue​(TextSynthesizerQueueItem item)
        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 or CANCEL_ALL
      • cancelItem

        protected void cancelItem​(java.lang.Object source)
        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.
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread
        See Also:
        terminate()
      • getQueueItem

        protected TextSynthesizerQueueItem getQueueItem()
        Returns, but does not remove, the first item on the queue.
        Returns:
        the first item on the queue
      • outputItem

        protected int outputItem​(TextSynthesizerQueueItem item)
        Starts outputting the item. Returns the current command.
        Parameters:
        item - to be output
        Returns:
        the current command
      • isCommand

        protected boolean isCommand​(java.lang.String engineText,
                                    int index)
        Determines if the next thing in line is a command.
        Parameters:
        engineText - the text containing embedded commands
        index - the current index
        Returns:
        true if the next thing in line is a command
      • processCommand

        protected int processCommand​(TextSynthesizerQueueItem item,
                                     java.lang.String engineText,
                                     int index)
        Attempts to process a command starting at the next character in the synthesizer text. Returns the new index.
        Parameters:
        item - the current queue item
        engineText - the text containing embedded commands
        index - the current index
        Returns:
        the new index
      • isWhitespace

        protected boolean isWhitespace​(java.lang.String engineText,
                                       int index)
        Determines if there is whitespace at the current index.
        Parameters:
        engineText - the text containing embedded commands
        index - the current index
        Returns:
        true if there is whitespace at the current index
      • processWhitespace

        protected int processWhitespace​(java.lang.String engineText,
                                        int index)
        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 commands
        index - the current index
        Returns:
        the new index
      • processNormalText

        protected int processNormalText​(TextSynthesizerQueueItem item,
                                        java.lang.String engineText,
                                        int index)
        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 item
        engineText - the text containing embedded commands
        index - the current index
        Returns:
        the new index