2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 using System.Runtime.InteropServices;
23 /// Partial interop class.
25 internal static partial class Interop
28 /// Tts interop class.
30 internal static class Tts
32 internal const string LogTag = "Tizen.Uix.Tts";
34 private const int ErrorTts = -0x02F10000;
36 internal enum TtsError
38 None = Tizen.Internals.Errors.ErrorCode.None, /* Successful */
39 OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory, /* Out of Memory */
40 IoError = Tizen.Internals.Errors.ErrorCode.IoError, /* I/O error */
41 InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter, /* Invalid parameter */
42 OutOfNetwork = Tizen.Internals.Errors.ErrorCode.Networkdown, /* Network is down */
43 TimedOut = Tizen.Internals.Errors.ErrorCode.TimedOut, /* No answer from the STT service */
44 PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied, /* Permission denied */
45 NotSupported = Tizen.Internals.Errors.ErrorCode.NotSupported, /* STT NOT supported */
46 InvalidState = ErrorTts | 0x01, /* Invalid state */
47 InvalidVoice = ErrorTts | 0x02, /* Invalid language */
48 EngineNotFound = ErrorTts | 0x03, /* No available engine */
49 OperationFailed = ErrorTts | 0x04, /* Operation failed */
50 AudioPolicyBlocked = ErrorTts | 0x05, /* Audio policy blocked */
51 NotSupportedFeature = ErrorTts | 0x06, /* Not supported feature of current engine */
52 ServiceReset = ErrorTts | 0x07, /* Service reset*/
53 ScreenReaderOff = ErrorTts | 0x08 /* Screen reader off */
56 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
57 internal delegate void TtsStateChangedCB(IntPtr handle, State previous, State current, IntPtr userData);
59 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
60 internal delegate void TtsUtteranceStartedCB(IntPtr handle, int uttId, IntPtr userData);
62 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
63 internal delegate void TtsUtteranceCompletedCB(IntPtr handle, int uttId, IntPtr userData);
65 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
66 internal delegate void TtsErrorCB(IntPtr handle, int uttId, TtsError reason, IntPtr userData);
68 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
69 internal delegate bool TtsSupportedVoiceCB(IntPtr handle, IntPtr language, int voiceType, IntPtr userData);
71 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
72 internal delegate void TtsDefaultVoiceChangedCB(IntPtr handle, IntPtr previous_language, int previous_voice_type, IntPtr current_language, int current_voice_type, IntPtr userData);
74 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
75 internal delegate void TtsEngineChangedCB(IntPtr handle, IntPtr engine_id, IntPtr language, int voice_type, bool need_credential, IntPtr userData);
77 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
78 internal delegate void TtsScreenReaderChangedCB(IntPtr handle, bool is_on, IntPtr userData);
80 [DllImport(Libraries.Tts, EntryPoint = "tts_create", CallingConvention = CallingConvention.Cdecl)]
81 internal static extern TtsError TtsCreate(out IntPtr handle);
83 [DllImport(Libraries.Tts, EntryPoint = "tts_destroy", CallingConvention = CallingConvention.Cdecl)]
84 internal static extern TtsError TtsDestroy(IntPtr handle);
86 [DllImport(Libraries.Tts, EntryPoint = "tts_set_mode", CallingConvention = CallingConvention.Cdecl)]
87 internal static extern TtsError TtsSetMode(IntPtr handle, Mode m);
89 [DllImport(Libraries.Tts, EntryPoint = "tts_get_mode", CallingConvention = CallingConvention.Cdecl)]
90 internal static extern TtsError TtsGetMode(IntPtr handle, out Mode m);
92 [DllImport(Libraries.Tts, EntryPoint = "tts_set_credential", CallingConvention = CallingConvention.Cdecl)]
93 internal static extern TtsError TtsSetCredential(IntPtr handle, string credential);
95 [DllImport(Libraries.Tts, EntryPoint = "tts_prepare", CallingConvention = CallingConvention.Cdecl)]
96 internal static extern TtsError TtsPrepare(IntPtr handle);
98 [DllImport(Libraries.Tts, EntryPoint = "tts_unprepare", CallingConvention = CallingConvention.Cdecl)]
99 internal static extern TtsError TtsUnprepare(IntPtr handle);
101 [DllImport(Libraries.Tts, EntryPoint = "tts_foreach_supported_voices", CallingConvention = CallingConvention.Cdecl)]
102 internal static extern TtsError TtsForeachSupportedVoices(IntPtr handle, TtsSupportedVoiceCB callback, IntPtr userData);
104 [DllImport(Libraries.Tts, EntryPoint = "tts_get_default_voice", CallingConvention = CallingConvention.Cdecl)]
105 internal static extern TtsError TtsGetDefaultVoice(IntPtr handle, out string language, out int voice_type);
107 [DllImport(Libraries.Tts, EntryPoint = "tts_set_private_data", CallingConvention = CallingConvention.Cdecl)]
108 internal static extern TtsError TtsSetPrivateData(IntPtr handle, string key, string data);
110 [DllImport(Libraries.Tts, EntryPoint = "tts_get_private_data", CallingConvention = CallingConvention.Cdecl)]
111 internal static extern TtsError TtsGetPrivateData(IntPtr handle, string key, out string data);
113 [DllImport(Libraries.Tts, EntryPoint = "tts_get_max_text_size", CallingConvention = CallingConvention.Cdecl)]
114 internal static extern TtsError TtsGetMaxTextSize(IntPtr handle, out uint size);
116 [DllImport(Libraries.Tts, EntryPoint = "tts_get_state", CallingConvention = CallingConvention.Cdecl)]
117 internal static extern TtsError TtsGetState(IntPtr handle, out State state);
119 [DllImport(Libraries.Tts, EntryPoint = "tts_get_speed_range", CallingConvention = CallingConvention.Cdecl)]
120 internal static extern TtsError TtsGetSpeedRange(IntPtr handle, out int min, out int normal, out int max);
122 [DllImport(Libraries.Tts, EntryPoint = "tts_get_error_message", CallingConvention = CallingConvention.Cdecl)]
123 internal static extern TtsError TtsGetErrorMessage(IntPtr handle, out string err_msg);
125 [DllImport(Libraries.Tts, EntryPoint = "tts_check_screen_reader_on", CallingConvention = CallingConvention.Cdecl)]
126 internal static extern TtsError TtsCheckScreenReaderOn(IntPtr handle, out bool isOn);
128 [DllImport(Libraries.Tts, EntryPoint = "tts_add_text", CallingConvention = CallingConvention.Cdecl)]
129 internal static extern TtsError TtsAddText(IntPtr handle, string text, string language, int voice_type, int speed, out int uttId);
131 [DllImport(Libraries.Tts, EntryPoint = "tts_play", CallingConvention = CallingConvention.Cdecl)]
132 internal static extern TtsError TtsPlay(IntPtr handle);
134 [DllImport(Libraries.Tts, EntryPoint = "tts_stop", CallingConvention = CallingConvention.Cdecl)]
135 internal static extern TtsError TtsStop(IntPtr handle);
137 [DllImport(Libraries.Tts, EntryPoint = "tts_pause", CallingConvention = CallingConvention.Cdecl)]
138 internal static extern TtsError TtsPause(IntPtr handle);
140 [DllImport(Libraries.Tts, EntryPoint = "tts_set_state_changed_cb", CallingConvention = CallingConvention.Cdecl)]
141 internal static extern TtsError TtsSetStateChangedCB(IntPtr handle, TtsStateChangedCB callback, IntPtr userData);
143 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_state_changed_cb", CallingConvention = CallingConvention.Cdecl)]
144 internal static extern TtsError TtsUnsetStateChangedCB(IntPtr handle);
146 [DllImport(Libraries.Tts, EntryPoint = "tts_set_utterance_started_cb", CallingConvention = CallingConvention.Cdecl)]
147 internal static extern TtsError TtsSetUtteranceStartedCB(IntPtr handle, TtsUtteranceStartedCB callback, IntPtr userData);
149 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_utterance_started_cb", CallingConvention = CallingConvention.Cdecl)]
150 internal static extern TtsError TtsUnsetUtteranceStartedCB(IntPtr handle);
152 [DllImport(Libraries.Tts, EntryPoint = "tts_set_utterance_completed_cb", CallingConvention = CallingConvention.Cdecl)]
153 internal static extern TtsError TtsSetUtteranceCompletedCB(IntPtr handle, TtsUtteranceCompletedCB callback, IntPtr userData);
155 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_utterance_completed_cb", CallingConvention = CallingConvention.Cdecl)]
156 internal static extern TtsError TtsUnsetUtteranceCompletedCB(IntPtr handle);
158 [DllImport(Libraries.Tts, EntryPoint = "tts_set_error_cb", CallingConvention = CallingConvention.Cdecl)]
159 internal static extern TtsError TtsSetErrorCB(IntPtr handle, TtsErrorCB callback, IntPtr userData);
161 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_error_cb", CallingConvention = CallingConvention.Cdecl)]
162 internal static extern TtsError TtsUnsetErrorCB(IntPtr handle);
164 [DllImport(Libraries.Tts, EntryPoint = "tts_set_default_voice_changed_cb", CallingConvention = CallingConvention.Cdecl)]
165 internal static extern TtsError TtsSetDefaultVoiceChangedCB(IntPtr handle, TtsDefaultVoiceChangedCB callback, IntPtr userData);
167 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_default_voice_changed_cb", CallingConvention = CallingConvention.Cdecl)]
168 internal static extern TtsError TtsUnsetDefaultVoiceChangedCB(IntPtr handle);
170 [DllImport(Libraries.Tts, EntryPoint = "tts_set_engine_changed_cb", CallingConvention = CallingConvention.Cdecl)]
171 internal static extern TtsError TtsSetEngineChangedCB(IntPtr handle, TtsEngineChangedCB callback, IntPtr userData);
173 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_engine_changed_cb", CallingConvention = CallingConvention.Cdecl)]
174 internal static extern TtsError TtsUnsetEngineChangedCB(IntPtr handle);
176 [DllImport(Libraries.Tts, EntryPoint = "tts_set_screen_reader_changed_cb", CallingConvention = CallingConvention.Cdecl)]
177 internal static extern TtsError TtsSetScreenReaderChangedCB(IntPtr handle, TtsScreenReaderChangedCB callback, IntPtr userData);
179 [DllImport(Libraries.Tts, EntryPoint = "tts_unset_screen_reader_changed_cb", CallingConvention = CallingConvention.Cdecl)]
180 internal static extern TtsError TtsUnsetScreenReaderChangedCB(IntPtr handle);