Home | History | Annotate | Download | only in tts
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
      5  * use this file except in compliance with the License. You may obtain a copy of
      6  * the License at
      7  *
      8  * http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     13  * License for the specific language governing permissions and limitations under
     14  * the License.
     15  */
     16 package android.speech.tts;
     17 
     18 import android.os.ConditionVariable;
     19 import android.speech.tts.TextToSpeechService.UtteranceProgressDispatcher;
     20 
     21 class SilencePlaybackQueueItem extends PlaybackQueueItem {
     22     private final ConditionVariable mCondVar = new ConditionVariable();
     23     private final long mSilenceDurationMs;
     24 
     25     SilencePlaybackQueueItem(UtteranceProgressDispatcher dispatcher,
     26             Object callerIdentity, long silenceDurationMs) {
     27         super(dispatcher, callerIdentity);
     28         mSilenceDurationMs = silenceDurationMs;
     29     }
     30 
     31     @Override
     32     public void run() {
     33         getDispatcher().dispatchOnStart();
     34         boolean wasStopped = false;
     35         if (mSilenceDurationMs > 0) {
     36           wasStopped = mCondVar.block(mSilenceDurationMs);
     37         }
     38         if (wasStopped) {
     39             getDispatcher().dispatchOnStop();
     40         } else {
     41             getDispatcher().dispatchOnSuccess();
     42         }
     43 
     44     }
     45 
     46     @Override
     47     void stop(int errorCode) {
     48         mCondVar.open();
     49     }
     50 }
     51