[Tts][TCSACR-449] Add new method for checking screen reader status (#3475)
[platform/core/csapi/tizenfx.git] / src / Tizen.Uix.Tts / Interop / Interop.Tts.cs
1 /*
2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3 *
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
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,
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.
15 */
16
17
18 using System;
19 using System.Runtime.InteropServices;
20 using Tizen.Uix.Tts;
21
22 /// <summary>
23 /// Partial interop class.
24 /// </summary>
25 internal static partial class Interop
26 {
27     /// <summary>
28     /// Tts interop class.
29     /// </summary>
30     internal static class Tts
31     {
32         internal const string LogTag = "Tizen.Uix.Tts";
33
34         private const int ErrorTts = -0x02F10000;
35
36         internal enum TtsError
37         {
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 */
54         };
55
56         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
57         internal delegate void TtsStateChangedCB(IntPtr handle, State previous, State current, IntPtr userData);
58
59         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
60         internal delegate void TtsUtteranceStartedCB(IntPtr handle, int uttId, IntPtr userData);
61
62         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
63         internal delegate void TtsUtteranceCompletedCB(IntPtr handle, int uttId, IntPtr userData);
64
65         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
66         internal delegate void TtsErrorCB(IntPtr handle, int uttId, TtsError reason, IntPtr userData);
67
68         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
69         internal delegate bool TtsSupportedVoiceCB(IntPtr handle, IntPtr language, int voiceType, IntPtr userData);
70
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);
73
74         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
75         internal delegate void TtsEngineChangedCB(IntPtr handle, IntPtr engine_id, IntPtr language, int voice_type, bool need_credential, IntPtr userData);
76
77         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
78         internal delegate void TtsScreenReaderChangedCB(IntPtr handle, bool is_on, IntPtr userData);
79
80         [DllImport(Libraries.Tts, EntryPoint = "tts_create", CallingConvention = CallingConvention.Cdecl)]
81         internal static extern TtsError TtsCreate(out IntPtr handle);
82
83         [DllImport(Libraries.Tts, EntryPoint = "tts_destroy", CallingConvention = CallingConvention.Cdecl)]
84         internal static extern TtsError TtsDestroy(IntPtr handle);
85
86         [DllImport(Libraries.Tts, EntryPoint = "tts_set_mode", CallingConvention = CallingConvention.Cdecl)]
87         internal static extern TtsError TtsSetMode(IntPtr handle, Mode m);
88
89         [DllImport(Libraries.Tts, EntryPoint = "tts_get_mode", CallingConvention = CallingConvention.Cdecl)]
90         internal static extern TtsError TtsGetMode(IntPtr handle, out Mode m);
91
92         [DllImport(Libraries.Tts, EntryPoint = "tts_set_credential", CallingConvention = CallingConvention.Cdecl)]
93         internal static extern TtsError TtsSetCredential(IntPtr handle, string credential);
94
95         [DllImport(Libraries.Tts, EntryPoint = "tts_prepare", CallingConvention = CallingConvention.Cdecl)]
96         internal static extern TtsError TtsPrepare(IntPtr handle);
97
98         [DllImport(Libraries.Tts, EntryPoint = "tts_unprepare", CallingConvention = CallingConvention.Cdecl)]
99         internal static extern TtsError TtsUnprepare(IntPtr handle);
100
101         [DllImport(Libraries.Tts, EntryPoint = "tts_foreach_supported_voices", CallingConvention = CallingConvention.Cdecl)]
102         internal static extern TtsError TtsForeachSupportedVoices(IntPtr handle, TtsSupportedVoiceCB callback, IntPtr userData);
103
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);
106
107         [DllImport(Libraries.Tts, EntryPoint = "tts_set_private_data", CallingConvention = CallingConvention.Cdecl)]
108         internal static extern TtsError TtsSetPrivateData(IntPtr handle, string key, string data);
109
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);
112
113         [DllImport(Libraries.Tts, EntryPoint = "tts_get_max_text_size", CallingConvention = CallingConvention.Cdecl)]
114         internal static extern TtsError TtsGetMaxTextSize(IntPtr handle, out uint size);
115
116         [DllImport(Libraries.Tts, EntryPoint = "tts_get_state", CallingConvention = CallingConvention.Cdecl)]
117         internal static extern TtsError TtsGetState(IntPtr handle, out State state);
118
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);
121
122         [DllImport(Libraries.Tts, EntryPoint = "tts_get_error_message", CallingConvention = CallingConvention.Cdecl)]
123         internal static extern TtsError TtsGetErrorMessage(IntPtr handle, out string err_msg);
124
125         [DllImport(Libraries.Tts, EntryPoint = "tts_check_screen_reader_on", CallingConvention = CallingConvention.Cdecl)]
126         internal static extern TtsError TtsCheckScreenReaderOn(IntPtr handle, out bool isOn);
127
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);
130
131         [DllImport(Libraries.Tts, EntryPoint = "tts_play", CallingConvention = CallingConvention.Cdecl)]
132         internal static extern TtsError TtsPlay(IntPtr handle);
133
134         [DllImport(Libraries.Tts, EntryPoint = "tts_stop", CallingConvention = CallingConvention.Cdecl)]
135         internal static extern TtsError TtsStop(IntPtr handle);
136
137         [DllImport(Libraries.Tts, EntryPoint = "tts_pause", CallingConvention = CallingConvention.Cdecl)]
138         internal static extern TtsError TtsPause(IntPtr handle);
139
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);
142
143         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_state_changed_cb", CallingConvention = CallingConvention.Cdecl)]
144         internal static extern TtsError TtsUnsetStateChangedCB(IntPtr handle);
145
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);
148
149         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_utterance_started_cb", CallingConvention = CallingConvention.Cdecl)]
150         internal static extern TtsError TtsUnsetUtteranceStartedCB(IntPtr handle);
151
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);
154
155         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_utterance_completed_cb", CallingConvention = CallingConvention.Cdecl)]
156         internal static extern TtsError TtsUnsetUtteranceCompletedCB(IntPtr handle);
157
158         [DllImport(Libraries.Tts, EntryPoint = "tts_set_error_cb", CallingConvention = CallingConvention.Cdecl)]
159         internal static extern TtsError TtsSetErrorCB(IntPtr handle, TtsErrorCB callback, IntPtr userData);
160
161         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_error_cb", CallingConvention = CallingConvention.Cdecl)]
162         internal static extern TtsError TtsUnsetErrorCB(IntPtr handle);
163
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);
166
167         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_default_voice_changed_cb", CallingConvention = CallingConvention.Cdecl)]
168         internal static extern TtsError TtsUnsetDefaultVoiceChangedCB(IntPtr handle);
169
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);
172
173         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_engine_changed_cb", CallingConvention = CallingConvention.Cdecl)]
174         internal static extern TtsError TtsUnsetEngineChangedCB(IntPtr handle);
175
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);
178
179         [DllImport(Libraries.Tts, EntryPoint = "tts_unset_screen_reader_changed_cb", CallingConvention = CallingConvention.Cdecl)]
180         internal static extern TtsError TtsUnsetScreenReaderChangedCB(IntPtr handle);
181     }
182 }