AudioPlaybackQueueItem.java revision 67ae6bc83cf2b30b0c61b9ebba5fed7a0038549c
18d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath/*
28d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * Copyright (C) 2011 The Android Open Source Project
38d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath *
48d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * Licensed under the Apache License, Version 2.0 (the "License"); you may not
58d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * use this file except in compliance with the License. You may obtain a copy of
68d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * the License at
78d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath *
88d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0
98d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath *
108d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * Unless required by applicable law or agreed to in writing, software
118d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
128d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
138d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * License for the specific language governing permissions and limitations under
148d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * the License.
158d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath */
168d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamathpackage android.speech.tts;
178d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath
18754c72ed9e8e83e5a913aa7552fc2e1b1b5277e0Narayan Kamathimport android.speech.tts.TextToSpeechService.UtteranceProgressDispatcher;
1967ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamathimport android.util.Log;
208d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath
2167ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamathclass AudioPlaybackQueueItem extends PlaybackQueueItem {
228d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath    private final BlockingMediaPlayer mPlayer;
238d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath
2467ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath    AudioPlaybackQueueItem(UtteranceProgressDispatcher dispatcher,
25492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath            Object callerIdentity, BlockingMediaPlayer player) {
26492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath        super(dispatcher, callerIdentity);
278d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath        mPlayer = player;
288d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath    }
2967ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath    @Override
3067ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath    public void run() {
3167ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath        getDispatcher().dispatchOnStart();
3267ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath        // TODO: This can be avoided. Will be fixed later in this CL.
3367ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath        mPlayer.startAndWait();
3467ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath        getDispatcher().dispatchOnDone();
358d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath    }
368d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath
378d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath    @Override
3867ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath    void stop(boolean isError) {
3967ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath        mPlayer.stop();
408d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath    }
418d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath}
42