content: /*
   * Copyright (C) 2011 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
   * License for the specific language governing permissions and limitations under
   * the License.
   */
  package android.speech.tts;
  
  import android.os.Bundle;
  
  /**
   * Contains data required by engines to synthesize speech. This data is:
   * <ul>
   *   <li>The text to synthesize</li>
   *   <li>The synthesis locale, represented as a language, country and a variant.
   *   The language is an ISO 639-3 letter language code, and the country is an
   *   ISO 3166 alpha 3 code. The variant is not specified.</li>
   *   <li>The name of the voice requested for this synthesis. May be empty if
   *   the client uses {@link TextToSpeech#setLanguage} instead of
   *   {@link TextToSpeech#setVoice}</li>
   *   <li>The synthesis speech rate, with 100 being the normal, and
   *   higher values representing higher speech rates.</li>
   *   <li>The voice pitch, with 100 being the default pitch.</li>
   * </ul>
   *
   * Any additional parameters sent to the text to speech service are passed in
   * uninterpreted, see the {@code params} argument in {@link TextToSpeech#speak}
   * and {@link TextToSpeech#synthesizeToFile}.
   */
  public final class SynthesisRequest {
      private final CharSequence mText;
      private final Bundle mParams;
      private String mVoiceName;
      private String mLanguage;
      private String mCountry;
      private String mVariant;
      private int mSpeechRate;
      private int mPitch;
      private int mCallerUid;
  
      public SynthesisRequest(String text, Bundle params) {
          mText = text;
          // Makes a copy of params.
          mParams = new Bundle(params);
      }
  
      public SynthesisRequest(CharSequence text, Bundle params) {
          mText = text;
          // Makes a copy of params.
          mParams = new Bundle(params);
      }
  
      /**
       * Gets the text which should be synthesized.
       * @deprecated As of API level 21, replaced by {@link #getCharSequenceText}.
       */
      @Deprecated
      public String getText() {
          return mText.toString();
      }
  
      /**
       * Gets the text which should be synthesized.
       */
      public CharSequence getCharSequenceText() {
          return mText;
      }
  
      /**
       * Gets the name of the voice to use.
       */
      public String getVoiceName() {
          return mVoiceName;
      }
  
      /**
       * Gets the ISO 3-letter language code for the language to use.
       */
      public String getLanguage() {
          return mLanguage;
      }
  
      /**
       * Gets the ISO 3-letter country code for the language to use.
       */
      public String getCountry() {
          return mCountry;
      }
  
      /**
       * Gets the language variant to use.
       */
      public String getVariant() {
          return mVariant;
      }
  
      /**
       * Gets the speech rate to use. The normal rate is 100.
       */
      public int getSpeechRate() {
          return mSpeechRate;
      }
  
      /**
       * Gets the pitch to use. The normal pitch is 100.
       */
      public int getPitch() {
          return mPitch;
      }
  
      /**
       * Gets the additional params, if any.
       */
      public Bundle getParams() {
          return mParams;
      }
  
      /**
       * Gets the request caller Uid.
       */
      public int getCallerUid() {
          return mCallerUid;
      }
  
      /**
       * Sets the locale for the request.
       */
      void setLanguage(String language, String country, String variant) {
          mLanguage = language;
          mCountry = country;
          mVariant = variant;
      }
  
      /**
       * Sets the voice name for the request.
       */
      void setVoiceName(String voiceName) {
          mVoiceName = voiceName;
      }
  
      /**
       * Sets the speech rate.
       */
      void setSpeechRate(int speechRate) {
          mSpeechRate = speechRate;
      }
  
      /**
       * Sets the pitch.
       */
      void setPitch(int pitch) {
          mPitch = pitch;
      }
  
      /**
       * Sets Caller Uid
       */
      void setCallerUid(int uid) {
          mCallerUid = uid;
      }
  }
  