150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert/*
250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Copyright (C) 2011 The Android Open Source Project
350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * you may not use this file except in compliance with the License.
650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * You may obtain a copy of the License at
750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
1050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Unless required by applicable law or agreed to in writing, software
1150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
1250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * See the License for the specific language governing permissions and
1450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * limitations under the License.
1550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert */
1650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
1750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertpackage android.speech.tts;
1850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
1950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertimport android.net.Uri;
2050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertimport android.os.Bundle;
215acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniakimport android.os.ParcelFileDescriptor;
2250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertimport android.speech.tts.ITextToSpeechCallback;
23ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniakimport android.speech.tts.Voice;
2450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
2550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert/**
2650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Interface for TextToSpeech to talk to TextToSpeechService.
2750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
2850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * {@hide}
2950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert */
3050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertinterface ITextToSpeechService {
3150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
3250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
3350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Tells the engine to synthesize some speech and play it back.
3450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
35492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
36492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
3750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param text The text to synthesize.
3850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param queueMode Determines what to do to requests already in the queue.
3950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
40df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts     * @param utteranceId Unique identifier of synthesized utterance.
4150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
42df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts    int speak(in IBinder callingInstance, in CharSequence text, in int queueMode, in Bundle params,
43df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts            String utteranceId);
4450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
4550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
4650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Tells the engine to synthesize some speech and write it to a file.
4750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
48492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
49492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
5050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param text The text to synthesize.
515acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniak     * @param fileDescriptor The file descriptor to write the synthesized audio to. Has to be
525acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniak              writable.
53df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts     * @param utteranceId Unique identifier of synthesized utterance.
5450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
5550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
56df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts    int synthesizeToFileDescriptor(in IBinder callingInstance, in CharSequence text,
57df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts        in ParcelFileDescriptor fileDescriptor, in Bundle params, String utteranceId);
5850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
5950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
6050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Plays an existing audio resource.
6150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
62492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
63492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
6450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param audioUri URI for the audio resource (a file or android.resource URI)
6550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param queueMode Determines what to do to requests already in the queue.
66df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts     * @param utteranceId Unique identifier of synthesized utterance.
6750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
6850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
69df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts    int playAudio(in IBinder callingInstance, in Uri audioUri, in int queueMode, in Bundle params,
70df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1Niels Egberts            String utteranceId);
7150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
7250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
7350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Plays silence.
7450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
75492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
76492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
7750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param duration Number of milliseconds of silence to play.
7850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param queueMode Determines what to do to requests already in the queue.
7990d15d2371ad85f22254be6985455aa2baa5d15dPrzemyslaw Szczepaniak     * @param utteranceId Unique id used to identify this request in callbacks.
8050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
8190d15d2371ad85f22254be6985455aa2baa5d15dPrzemyslaw Szczepaniak    int playSilence(in IBinder callingInstance, in long duration, in int queueMode,
8290d15d2371ad85f22254be6985455aa2baa5d15dPrzemyslaw Szczepaniak        in String utteranceId);
8350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
8450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
8550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Checks whether the service is currently playing some audio.
8650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
8750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    boolean isSpeaking();
8850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
8950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
9050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Interrupts the current utterance (if from the given app) and removes any utterances
9150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * in the queue that are from the given app.
9250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
93492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
94492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
9550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
96492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    int stop(in IBinder callingInstance);
9750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
9850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
9950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Returns the language, country and variant currently being used by the TTS engine.
10050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Can be called from multiple threads.
10150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
10250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @return A 3-element array, containing language (ISO 3-letter code),
10350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         country (ISO 3-letter code) and variant used by the engine.
10450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         The country and variant may be {@code ""}. If country is empty, then variant must
10550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         be empty too.
10650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
10750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    String[] getLanguage();
10890d15d2371ad85f22254be6985455aa2baa5d15dPrzemyslaw Szczepaniak
109b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak    /**
110b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     * Returns a default TTS language, country and variant as set by the user.
111b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *
112b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     * Can be called from multiple threads.
113b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *
114b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     * @return A 3-element array, containing language (ISO 3-letter code),
115b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *         country (ISO 3-letter code) and variant used by the engine.
116b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *         The country and variant may be {@code ""}. If country is empty, then variant must
117b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *         be empty too.
118b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     */
119b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak    String[] getClientDefaultLanguage();
12090d15d2371ad85f22254be6985455aa2baa5d15dPrzemyslaw Szczepaniak
12150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
12250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Checks whether the engine supports a given language.
12350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
12450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param lang ISO-3 language code.
12550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param country ISO-3 country code. May be empty or null.
12650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param variant Language variant. May be empty or null.
12750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @return Code indicating the support status for the locale.
12850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         One of {@link TextToSpeech#LANG_AVAILABLE},
12950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_AVAILABLE},
13050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE},
13150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_MISSING_DATA}
13250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_NOT_SUPPORTED}.
13350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
13450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    int isLanguageAvailable(in String lang, in String country, in String variant);
13550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
13650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
137748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * Returns a list of features available for a given language. Elements of the returned
138748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * string array can be passed in as keys to {@link TextToSpeech#speak} and
139748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * {@link TextToSpeech#synthesizeToFile} to select a given feature or features to be
140748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * used during synthesis.
141748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     *
142748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @param lang ISO-3 language code.
143748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @param country ISO-3 country code. May be empty or null.
144748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @param variant Language variant. May be empty or null.
145748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @return An array of strings containing the set of features supported for
14690d15d2371ad85f22254be6985455aa2baa5d15dPrzemyslaw Szczepaniak     *         the supplied locale. The array of strings must not contain
147748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     *         duplicates.
148748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     */
149748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath    String[] getFeaturesForLanguage(in String lang, in String country, in String variant);
150748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath
151748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath    /**
15250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Notifies the engine that it should load a speech synthesis language.
15350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
15413896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     * @param caller a binder representing the identity of the calling
15513896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     *        TextToSpeech object.
15650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param lang ISO-3 language code.
15750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param country ISO-3 country code. May be empty or null.
15850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param variant Language variant. May be empty or null.
15950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @return Code indicating the support status for the locale.
16050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         One of {@link TextToSpeech#LANG_AVAILABLE},
16150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_AVAILABLE},
16250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE},
16350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_MISSING_DATA}
16450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_NOT_SUPPORTED}.
16550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
16613896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak    int loadLanguage(in IBinder caller, in String lang, in String country, in String variant);
16750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
16850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
16950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Sets the callback that will be notified when playback of utterance from the
17050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * given app are completed.
17150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
17213896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     * @param caller Instance a binder representing the identity of the calling
17313896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     *        TextToSpeech object.
17450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param cb The callback.
17550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
176492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    void setCallback(in IBinder caller, ITextToSpeechCallback cb);
177ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak
178ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak    /**
179ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * Get the array of available voices.
180ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     */
181ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak    List<Voice> getVoices();
182ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak
183ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak    /**
184ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * Notifies the engine that it should load a speech synthesis voice.
185ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *
186ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @param caller a binder representing the identity of the calling
187ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *        TextToSpeech object.
188ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @param voiceName Unique voice of the name.
189ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @return {@link TextToSpeech#SUCCESS} or {@link TextToSpeech#ERROR}.
190ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     */
191ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak    int loadVoice(in IBinder caller, in String voiceName);
192ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak
193ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak    /**
194ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * Return a name of the default voice for a given locale.
195ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *
196ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * This allows {@link TextToSpeech#getVoice} to return a sensible value after a client calls
197ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * {@link TextToSpeech#setLanguage}.
198ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *
199ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @param lang ISO 3-character language code.
200ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @param country ISO 3-character country code. May be empty or null.
201ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @param variant Language variant. May be empty or null.
202ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     * @return Code indicating the support status for the locale.
203ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *         One of {@link TextToSpeech#LANG_AVAILABLE},
204ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *         {@link TextToSpeech#LANG_COUNTRY_AVAILABLE},
205ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *         {@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE},
206ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *         {@link TextToSpeech#LANG_MISSING_DATA}
207ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     *         {@link TextToSpeech#LANG_NOT_SUPPORTED}.
208ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak     */
209ad6df74ada7c478257425b746588f22eeec199a6Przemyslaw Szczepaniak    String getDefaultVoiceNameFor(in String lang, in String country, in String variant);
21050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert}
211