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 import android.util.Log;
     21 
     22 class SilencePlaybackQueueItem extends PlaybackQueueItem {
     23     private final ConditionVariable mCondVar = new ConditionVariable();
     24     private final long mSilenceDurationMs;
     25 
     26     SilencePlaybackQueueItem(UtteranceProgressDispatcher dispatcher,
     27             Object callerIdentity, long silenceDurationMs) {
     28         super(dispatcher, callerIdentity);
     29         mSilenceDurationMs = silenceDurationMs;
     30     }
     31 
     32     @Override
     33     public void run() {
     34         getDispatcher().dispatchOnStart();
     35         if (mSilenceDurationMs > 0) {
     36             mCondVar.block(mSilenceDurationMs);
     37         }
     38         getDispatcher().dispatchOnDone();
     39     }
     40 
     41     @Override
     42     void stop(boolean isError) {
     43         mCondVar.open();
     44     }
     45 }
     46