/**@class android.speech.tts.TextToSpeech.Engine
@extends java.lang.Object

 Constants and parameter names for controlling text-to-speech. These include:

 <ul>
     <li>
         Intents to ask engine to install data or check its data and
         extras for a TTS engine's check data activity.
     </li>
     <li>
         Keys for the parameters passed with speak commands, e.g.
         {@link android.speech.tts.TextToSpeech.Engine#KEY_PARAM_UTTERANCE_ID}, {@link android.speech.tts.TextToSpeech.Engine#KEY_PARAM_STREAM}.
     </li>
     <li>
         A list of feature strings that engines might support, e.g
         {@link android.speech.tts.TextToSpeech.Engine#KEY_FEATURE_NETWORK_SYNTHESIS}. These values may be passed in to
         {@link android.speech.tts.TextToSpeech#speak} and {@link android.speech.tts.TextToSpeech#synthesizeToFile} to modify
         engine behaviour. The engine can be queried for the set of features it supports
         through {@link android.speech.tts.TextToSpeech#getFeatures(java.util.Locale)}.
     </li>
 </ul>
*/
var Engine = {

/** Default speech rate.
 @hide
*/
DEFAULT_RATE : "100",
/** Default pitch.
 @hide
*/
DEFAULT_PITCH : "100",
/** Default volume.
 @hide
*/
DEFAULT_VOLUME : "1.0",
/** Default pan (centered).
 @hide
*/
DEFAULT_PAN : "0.0",
/** Default value for {@link Settings.Secure#TTS_USE_DEFAULTS}.
 @hide
*/
USE_DEFAULTS : "0",
/** Package name of the default TTS engine.

 @hide
 @deprecated No longer in use, the default engine is determined by
         the sort order defined in {@link android.speech.tts.TtsEngines}. Note that
         this doesn't "break" anything because there is no guarantee that
         the engine specified below is installed on a given build, let
         alone be the default.
*/
DEFAULT_ENGINE : "com.svox.pico",
/** Default audio stream used when playing synthesized speech.
*/
DEFAULT_STREAM : "3",
/** Indicates success when checking the installation status of the resources used by the
 TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
CHECK_VOICE_DATA_PASS : "1",
/** Indicates failure when checking the installation status of the resources used by the
 TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
CHECK_VOICE_DATA_FAIL : "0",
/** Indicates erroneous data when checking the installation status of the resources used by
 the TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.

 @deprecated Use CHECK_VOICE_DATA_FAIL instead.
*/
CHECK_VOICE_DATA_BAD_DATA : "-1",
/** Indicates missing resources when checking the installation status of the resources used
 by the TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.

 @deprecated Use CHECK_VOICE_DATA_FAIL instead.
*/
CHECK_VOICE_DATA_MISSING_DATA : "-2",
/** Indicates missing storage volume when checking the installation status of the resources
 used by the TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.

 @deprecated Use CHECK_VOICE_DATA_FAIL instead.
*/
CHECK_VOICE_DATA_MISSING_VOLUME : "-3",
/** Intent for starting a TTS service. Services that handle this intent must
 extend {@link android.speech.tts.TextToSpeechService}. Normal applications should not use this intent
 directly, instead they should talk to the TTS service using the the methods in this
 class.
*/
INTENT_ACTION_TTS_SERVICE : "android.intent.action.TTS_SERVICE",
/** Name under which a text to speech engine publishes information about itself.
 This meta-data should reference an XML resource containing a
 <code>&lt;{@link android.R.styleable#TextToSpeechEngine tts-engine}&gt;</code>
 tag.
*/
SERVICE_META_DATA : "android.speech.tts",
/** Activity Action: Triggers the platform TextToSpeech engine to
 start the activity that installs the resource files on the device
 that are required for TTS to be operational. Since the installation
 of the data can be interrupted or declined by the user, the application
 shouldn't expect successful installation upon return from that intent,
 and if need be, should check installation status with
 {@link #ACTION_CHECK_TTS_DATA}.
*/
ACTION_INSTALL_TTS_DATA : "android.speech.tts.engine.INSTALL_TTS_DATA",
/** Broadcast Action: broadcast to signal the change in the list of available
 languages or/and their features.
*/
ACTION_TTS_DATA_INSTALLED : "android.speech.tts.engine.TTS_DATA_INSTALLED",
/** Activity Action: Starts the activity from the platform TextToSpeech
 engine to verify the proper installation and availability of the
 resource files on the system. Upon completion, the activity will
 return one of the following codes:
 {@link #CHECK_VOICE_DATA_PASS},
 {@link #CHECK_VOICE_DATA_FAIL},
 <p> Moreover, the data received in the activity result will contain the following
 fields:
 <ul>
   <li>{@link #EXTRA_AVAILABLE_VOICES} which contains an ArrayList<String> of all the
   available voices. The format of each voice is: lang-COUNTRY-variant where COUNTRY and
   variant are optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").</li>
   <li>{@link #EXTRA_UNAVAILABLE_VOICES} which contains an ArrayList<String> of all the
   unavailable voices (ones that user can install). The format of each voice is:
   lang-COUNTRY-variant where COUNTRY and variant are optional (ie, "eng" or
   "eng-USA" or "eng-USA-FEMALE").</li>
 </ul>
*/
ACTION_CHECK_TTS_DATA : "android.speech.tts.engine.CHECK_TTS_DATA",
/** Activity intent for getting some sample text to use for demonstrating TTS. Specific
 locale have to be requested by passing following extra parameters:
 <ul>
   <li>language</li>
   <li>country</li>
   <li>variant</li>
 </ul>

 Upon completion, the activity result may contain the following fields:
 <ul>
   <li>{@link #EXTRA_SAMPLE_TEXT} which contains an String with sample text.</li>
 </ul>
*/
ACTION_GET_SAMPLE_TEXT : "android.speech.tts.engine.GET_SAMPLE_TEXT",
/** Extra information received with the {@link #ACTION_GET_SAMPLE_TEXT} intent result where
 the TextToSpeech engine returns an String with sample text for requested voice
*/
EXTRA_SAMPLE_TEXT : "sampleText",
/** Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent result where
 the TextToSpeech engine returns an ArrayList<String> of all the available voices.
 The format of each voice is: lang-COUNTRY-variant where COUNTRY and variant are
 optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").
*/
EXTRA_AVAILABLE_VOICES : "availableVoices",
/** Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent result where
 the TextToSpeech engine returns an ArrayList<String> of all the unavailable voices.
 The format of each voice is: lang-COUNTRY-variant where COUNTRY and variant are
 optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").
*/
EXTRA_UNAVAILABLE_VOICES : "unavailableVoices",
/** Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent result where
 the TextToSpeech engine specifies the path to its resources.

 It may be used by language packages to find out where to put their data.

 @deprecated TTS engine implementation detail, this information has no use for
 text-to-speech API client.
*/
EXTRA_VOICE_DATA_ROOT_DIRECTORY : "dataRoot",
/** Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent result where
 the TextToSpeech engine specifies the file names of its resources under the
 resource path.

 @deprecated TTS engine implementation detail, this information has no use for
 text-to-speech API client.
*/
EXTRA_VOICE_DATA_FILES : "dataFiles",
/** Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent result where
 the TextToSpeech engine specifies the locale associated with each resource file.

 @deprecated TTS engine implementation detail, this information has no use for
 text-to-speech API client.
*/
EXTRA_VOICE_DATA_FILES_INFO : "dataFilesInfo",
/** Extra information sent with the {@link #ACTION_CHECK_TTS_DATA} intent where the
 caller indicates to the TextToSpeech engine which specific sets of voice data to
 check for by sending an ArrayList<String> of the voices that are of interest.
 The format of each voice is: lang-COUNTRY-variant where COUNTRY and variant are
 optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").

 @deprecated Redundant functionality, checking for existence of specific sets of voice
 data can be done on client side.
*/
EXTRA_CHECK_VOICE_DATA_FOR : "checkVoiceDataFor",
/** Extra information received with the {@link #ACTION_TTS_DATA_INSTALLED} intent result.
 It indicates whether the data files for the synthesis engine were successfully
 installed. The installation was initiated with the  {@link #ACTION_INSTALL_TTS_DATA}
 intent. The possible values for this extra are
 {@link android.speech.tts.TextToSpeech#SUCCESS} and {@link android.speech.tts.TextToSpeech#ERROR}.

 @deprecated No longer in use. If client is interested in information about what
 changed, it should use the ACTION_CHECK_TTS_DATA
 intent to discover available voices.
*/
EXTRA_TTS_DATA_INSTALLED : "dataInstalled",
/** @hide
*/
KEY_PARAM_RATE : "rate",
/** @hide
*/
KEY_PARAM_VOICE_NAME : "voiceName",
/** @hide
*/
KEY_PARAM_LANGUAGE : "language",
/** @hide
*/
KEY_PARAM_COUNTRY : "country",
/** @hide
*/
KEY_PARAM_VARIANT : "variant",
/** @hide
*/
KEY_PARAM_ENGINE : "engine",
/** @hide
*/
KEY_PARAM_PITCH : "pitch",
/** Parameter key to specify the audio stream type to be used when speaking text
 or playing back a file. The value should be one of the STREAM_ constants
 defined in {@link AudioManager}.

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#playEarcon(String, int, HashMap)
*/
KEY_PARAM_STREAM : "streamType",
/** Parameter key to specify the audio attributes to be used when
 speaking text or playing back a file. The value should be set
 using {@link android.speech.tts.TextToSpeech#setAudioAttributes(AudioAttributes)}.

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#playEarcon(String, int, HashMap)
 @hide
*/
KEY_PARAM_AUDIO_ATTRIBUTES : "audioAttributes",
/** Parameter key to identify an utterance in the
 {@link android.speech.tts.TextToSpeech.OnUtteranceCompletedListener} after text has been
 spoken, a file has been played back or a silence duration has elapsed.

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#playEarcon(String, int, HashMap)
 @see TextToSpeech#synthesizeToFile(String, HashMap, String)
*/
KEY_PARAM_UTTERANCE_ID : "utteranceId",
/** Parameter key to specify the speech volume relative to the current stream type
 volume used when speaking text. Volume is specified as a float ranging from 0 to 1
 where 0 is silence, and 1 is the maximum volume (the default behavior).

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#playEarcon(String, int, HashMap)
*/
KEY_PARAM_VOLUME : "volume",
/** Parameter key to specify how the speech is panned from left to right when speaking text.
 Pan is specified as a float ranging from -1 to +1 where -1 maps to a hard-left pan,
 0 to center (the default behavior), and +1 to hard-right.

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#playEarcon(String, int, HashMap)
*/
KEY_PARAM_PAN : "pan",
/** Feature key for network synthesis. See {@link android.speech.tts.TextToSpeech#getFeatures(Locale)}
 for a description of how feature keys work. If set (and supported by the engine
 as per {@link android.speech.tts.TextToSpeech#getFeatures(Locale)}, the engine must
 use network based synthesis.

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#synthesizeToFile(String, java.util.HashMap, String)
 @see TextToSpeech#getFeatures(java.util.Locale)

 @deprecated Starting from API level 21, to select network synthesis, call
 {@link android.speech.tts.TextToSpeech#getVoices()}, find a suitable network voice
 ({@link android.speech.tts.Voice#isNetworkConnectionRequired()}) and pass it
 to {@link android.speech.tts.TextToSpeech#setVoice(Voice)}.
*/
KEY_FEATURE_NETWORK_SYNTHESIS : "networkTts",
/** Feature key for embedded synthesis. See {@link android.speech.tts.TextToSpeech#getFeatures(Locale)}
 for a description of how feature keys work. If set and supported by the engine
 as per {@link android.speech.tts.TextToSpeech#getFeatures(Locale)}, the engine must synthesize
 text on-device (without making network requests).

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#synthesizeToFile(String, java.util.HashMap, String)
 @see TextToSpeech#getFeatures(java.util.Locale)

 @deprecated Starting from API level 21, to select embedded synthesis, call
 ({@link android.speech.tts.TextToSpeech#getVoices()}, find a suitable embedded voice
 ({@link android.speech.tts.Voice#isNetworkConnectionRequired()}) and pass it
 to {@link android.speech.tts.TextToSpeech#setVoice(Voice)}).
*/
KEY_FEATURE_EMBEDDED_SYNTHESIS : "embeddedTts",
/** Parameter key to specify an audio session identifier (obtained from
 {@link AudioManager#generateAudioSessionId()}) that will be used by the request audio
 output. It can be used to associate one of the {@link android.media.audiofx.AudioEffect}
 objects with the synthesis (or earcon) output.

 @see TextToSpeech#speak(CharSequence, int, Bundle, String)
 @see TextToSpeech#playEarcon(String, int, HashMap)
*/
KEY_PARAM_SESSION_ID : "sessionId",
/** Feature key that indicates that the voice may need to download additional data to be fully
 functional. The download will be triggered by calling
 {@link android.speech.tts.TextToSpeech#setVoice(Voice)} or {@link android.speech.tts.TextToSpeech#setLanguage(Locale)}.
 Until download is complete, each synthesis request will either report
 {@link android.speech.tts.TextToSpeech#ERROR_NOT_INSTALLED_YET} error, or use a different voice to synthesize
 the request. This feature should NOT be used as a key of a request parameter.

 @see TextToSpeech#getFeatures(java.util.Locale)
 @see Voice#getFeatures()
*/
KEY_FEATURE_NOT_INSTALLED : "notInstalled",
/** Feature key that indicate that a network timeout can be set for the request. If set and
 supported as per {@link android.speech.tts.TextToSpeech#getFeatures(Locale)} or {@link android.speech.tts.Voice#getFeatures()},
 it can be used as request parameter to set the maximum allowed time for a single
 request attempt, in milliseconds, before synthesis fails. When used as a key of
 a request parameter, its value should be a string with an integer value.

 @see TextToSpeech#getFeatures(java.util.Locale)
 @see Voice#getFeatures()
*/
KEY_FEATURE_NETWORK_TIMEOUT_MS : "networkTimeoutMs",
/** Feature key that indicates that network request retries count can be set for the request.
 If set and supported as per {@link android.speech.tts.TextToSpeech#getFeatures(Locale)} or
 {@link android.speech.tts.Voice#getFeatures()}, it can be used as a request parameter to set the
 number of network request retries that are attempted in case of failure. When used as
 a key of a request parameter, its value should be a string with an integer value.

 @see TextToSpeech#getFeatures(java.util.Locale)
 @see Voice#getFeatures()
*/
KEY_FEATURE_NETWORK_RETRIES_COUNT : "networkRetriesCount",

};