Merge "Add codes in client side to set/unset callback for retrieving sythesized pcm...
[platform/core/uifw/tts.git] / client / tts_client.h
1 /*
2 *  Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
3 *  Licensed under the Apache License, Version 2.0 (the "License");
4 *  you may not use this file except in compliance with the License.
5 *  You may obtain a copy of the License at
6 *  http://www.apache.org/licenses/LICENSE-2.0
7 *  Unless required by applicable law or agreed to in writing, software
8 *  distributed under the License is distributed on an "AS IS" BASIS,
9 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 *  See the License for the specific language governing permissions and
11 *  limitations under the License.
12 */
13
14
15 #ifndef __TTS_CLIENT_H_
16 #define __TTS_CLIENT_H_
17
18 #include <Ecore.h>
19
20 #include "tts.h"
21 #include "tts_config_mgr.h"
22 #include "tts_main.h"
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28
29 #define TTS_STATE_INVALID -1
30
31 typedef struct {
32         /* base info */
33         tts_h   tts;
34         int     pid;
35         unsigned int    uid;                    /*<< unique id = pid + handle */
36         int     current_utt_id;
37
38         /* callback info */
39         tts_state_changed_cb            state_changed_cb;
40         void*                           state_changed_user_data;
41         tts_utterance_started_cb        utt_started_cb;
42         void*                           utt_started_user_data;
43         tts_utterance_completed_cb      utt_completed_cb;
44         void*                           utt_completed_user_data;
45         tts_error_cb                    error_cb;
46         void*                           error_user_data;
47         tts_default_voice_changed_cb    default_voice_changed_cb;
48         void*                           default_voice_changed_user_data;
49         tts_engine_changed_cb           engine_changed_cb;
50         void*                           engine_changed_user_data;
51         tts_screen_reader_changed_cb    screen_reader_changed_cb;
52         void*                           screen_reader_changed_user_data;
53         tts_supported_voice_cb          supported_voice_cb;
54         void*                           supported_voice_user_data;
55         tts_service_state_changed_cb            service_state_changed_cb;
56         void*                           service_state_changed_user_data;
57         tts_synthesized_pcm_cb          synthesized_pcm_cb;
58         void*                           synthesized_pcm_user_data;
59
60         int registered_event_mask;
61
62         /* mode / state */
63         tts_mode_e      mode;
64         tts_state_e     before_state;
65         tts_state_e     current_state;
66
67         /* semaphore */
68         int             cb_ref_count;
69
70         /* callback data */
71         int             utt_id;
72         int             reason;
73         char*           err_msg;
74
75         /* connection */
76         int             prepare_count;
77         Ecore_Timer*    hello_timer;
78         bool start_listening;
79         bool reprepared;
80
81         /* options */
82         char*           credential;
83         bool            credential_needed;
84         bool            internal;
85
86         /* repetition */
87         char*           text_repeat;
88
89         /* timer */
90         Ecore_Timer* notify_error_timer;
91         Ecore_Timer* notify_state_timer;
92
93 } tts_client_s;
94
95 int tts_client_new(tts_h* tts);
96 int tts_client_destroy(tts_h tts);
97
98 tts_client_s* tts_client_get(tts_h tts);
99 tts_client_s* tts_client_get_by_uid(unsigned int uid);
100 tts_h tts_client_get_handle(tts_client_s* client);
101
102 bool tts_client_is_valid_uid(unsigned int uid);
103 bool tts_client_is_valid_client(tts_client_s* client);
104
105 unsigned int tts_client_get_size();
106
107 int tts_client_use_callback(tts_client_s* client);
108 int tts_client_not_use_callback(tts_client_s* client);
109
110 int tts_client_get_use_callback(tts_client_s* client);
111
112 GList* tts_client_get_client_list();
113
114 unsigned int tts_client_get_uid(tts_client_s* client);
115
116 void tts_client_set_current_state(tts_client_s* client, tts_state_e state);
117 tts_state_e tts_client_get_current_state(tts_client_s* client);
118
119 void tts_client_set_start_listening(unsigned int uid, bool is_listening_started);
120 bool tts_client_is_listening_started(unsigned int uid);
121
122 void tts_client_set_reprepared(tts_client_s* client, bool is_reprepared);
123 bool tts_client_is_reprepared(tts_client_s* client);
124
125 void tts_client_set_mode(tts_client_s* client, tts_mode_e mode);
126 tts_mode_e tts_client_get_mode(tts_client_s* client);
127
128 void tts_client_set_repeat_text(tts_client_s* client, const char* text);
129 char* tts_client_get_repeat_text(tts_client_s* client);
130
131 int tts_client_new_utterance_id(tts_client_s* client);
132
133 void tts_client_set_error_message(tts_client_s* client, const char* error_message);
134 const char* tts_client_get_error_message(tts_client_s* client);
135
136 void tts_client_set_credential_key(tts_client_s* client, const char* credential_key);
137 const char* tts_client_get_credential_key(tts_client_s* client);
138
139 void tts_client_set_state_changed_cb(tts_client_s* client, tts_state_changed_cb callback, void* user_data);
140 void tts_client_set_utterance_started_cb(tts_client_s* client, tts_utterance_started_cb callback, void* user_data);
141 void tts_client_set_utterance_completed_cb(tts_client_s* client, tts_utterance_completed_cb callback, void* user_data);
142 void tts_client_set_error_cb(tts_client_s* client, tts_error_cb callback, void* user_data);
143 void tts_client_set_default_voice_changed_cb(tts_client_s* client, tts_default_voice_changed_cb callback, void* user_data);
144 void tts_client_set_engine_changed_cb(tts_client_s* client, tts_engine_changed_cb callback, void* user_data);
145 void tts_client_set_screen_reader_changed_cb(tts_client_s* client, tts_screen_reader_changed_cb callback, void* user_data);
146 void tts_client_set_supported_voice_cb(tts_client_s* client, tts_supported_voice_cb callback, void* user_data);
147 void tts_client_set_service_state_changed_cb(tts_client_s* client, tts_service_state_changed_cb callback, void* user_data);
148 void tts_client_set_synthesized_pcm_cb(tts_client_s* client, tts_synthesized_pcm_cb callback, void* user_data);
149
150 tts_state_changed_cb tts_client_get_state_changed_cb(tts_client_s* client);
151 void* tts_client_get_state_changed_user_data(tts_client_s* client);
152
153 tts_utterance_started_cb tts_client_get_utterance_started_cb(tts_client_s* client);
154 void* tts_client_get_utterance_started_user_data(tts_client_s* client);
155
156 tts_utterance_completed_cb tts_client_get_utterance_completed_cb(tts_client_s* client);
157 void* tts_client_get_utterance_completed_user_data(tts_client_s* client);
158
159 tts_error_cb tts_client_get_error_cb(tts_client_s* client);
160 void* tts_client_get_error_user_data(tts_client_s* client);
161
162 tts_default_voice_changed_cb tts_client_get_default_voice_changed_cb(tts_client_s* client);
163 void* tts_client_get_default_voice_changed_user_data(tts_client_s* client);
164
165 tts_engine_changed_cb tts_client_get_engine_changed_cb(tts_client_s* client);
166 void* tts_client_get_engine_changed_user_data(tts_client_s* client);
167
168 tts_screen_reader_changed_cb tts_client_get_screen_reader_changed_cb(tts_client_s* client);
169 void* tts_client_get_screen_reader_changed_user_data(tts_client_s* client);
170
171 tts_supported_voice_cb tts_client_get_supported_voice_cb(tts_client_s* client);
172 void* tts_client_get_supported_voice_user_data(tts_client_s* client);
173
174 tts_service_state_changed_cb tts_client_get_service_state_changed_cb(tts_client_s* client);
175 void* tts_client_get_service_state_changed_user_data(tts_client_s* client);
176
177 tts_synthesized_pcm_cb tts_client_get_synthesized_pcm_cb(tts_client_s* client);
178 void* tts_client_get_synthesized_pcm_user_data(tts_client_s* client);
179
180 int tts_client_get_registered_event_mask(tts_client_s* client);
181
182 void tts_client_unset_all_cb(tts_client_s* client);
183
184 #ifdef __cplusplus
185 }
186 #endif
187
188 #endif /* __TTS_CLIENT_H_ */