blob: a5e47aea857068df90feb178ac1d963db7f3a072 [file] [log] [blame]
Narayan Kamath8d1fc242011-06-03 18:11:54 +01001/*
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 */
16package android.speech.tts;
17
18import android.os.ConditionVariable;
Narayan Kamath754c72e2011-11-09 14:22:32 +000019import android.speech.tts.TextToSpeechService.UtteranceProgressDispatcher;
Narayan Kamath67ae6bc2011-11-30 14:51:00 +000020import android.util.Log;
Narayan Kamath8d1fc242011-06-03 18:11:54 +010021
Narayan Kamath67ae6bc2011-11-30 14:51:00 +000022class SilencePlaybackQueueItem extends PlaybackQueueItem {
Narayan Kamath8d1fc242011-06-03 18:11:54 +010023 private final ConditionVariable mCondVar = new ConditionVariable();
24 private final long mSilenceDurationMs;
25
Narayan Kamath67ae6bc2011-11-30 14:51:00 +000026 SilencePlaybackQueueItem(UtteranceProgressDispatcher dispatcher,
Narayan Kamath492b7f02011-11-29 17:02:06 +000027 Object callerIdentity, long silenceDurationMs) {
28 super(dispatcher, callerIdentity);
Narayan Kamath8d1fc242011-06-03 18:11:54 +010029 mSilenceDurationMs = silenceDurationMs;
30 }
31
Narayan Kamath67ae6bc2011-11-30 14:51:00 +000032 @Override
33 public void run() {
34 getDispatcher().dispatchOnStart();
35 if (mSilenceDurationMs > 0) {
36 mCondVar.block(mSilenceDurationMs);
37 }
38 getDispatcher().dispatchOnDone();
Narayan Kamath8d1fc242011-06-03 18:11:54 +010039 }
40
41 @Override
Narayan Kamath67ae6bc2011-11-30 14:51:00 +000042 void stop(boolean isError) {
43 mCondVar.open();
Narayan Kamath8d1fc242011-06-03 18:11:54 +010044 }
Narayan Kamath8d1fc242011-06-03 18:11:54 +010045}