Fix errors which are created by solving merge conflict
[platform/core/uifw/voice-control.git] / server / vcd_client_data.h
1 /*
2 * Copyright (c) 2011-2015 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 #ifndef __VCD_CLIENT_DATA_H_
19 #define __VCD_CLIENT_DATA_H_
20
21 #include <glib.h>
22 #include "vc_command.h"
23 #include "vc_info_parser.h"
24 #include "vcd_stub.h"
25 #include "vcd_setting_stub.h"
26 #include "vcd_mgr_stub.h"
27 #include "vcd_mgr_proxy.h"
28 #include "vcd_widget_stub.h"
29 #include "vcd_widget_proxy.h"
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 typedef struct {
36         int     pid;
37         int     cmd_count;
38
39         GSList* cmds;
40 } command_list_s;
41
42 typedef struct {
43         int total_cmd_count;
44
45         /* Foreground application */
46         int foreground;
47         GSList* widget_cmds;
48         GSList* foreground_cmds;
49
50         /* Manager application */
51         GSList* system_cmds;
52         GSList* exclusive_system_cmds;
53         GSList* system_background_cmds;
54
55         /* Other applications */
56         int     bg_cmd_count;
57         GSList* background_cmds;
58 } current_commands_list_s;
59
60
61 typedef struct {
62         int     pid;
63         char*   appid;
64         bool    manager_cmd;
65         bool    exclusive_cmd_option;
66 } manager_info_s;
67
68 typedef struct {
69         int     pid;
70         bool    widget_cmd;
71         bool    asr_result_enabled;
72 } widget_info_s;
73
74 typedef struct {
75         int pid;
76         rpc_port_stub_vcd_stub_vc_notify_cb_h   notify_cb;
77         void*   notify_cb_user_data;
78         rpc_port_stub_vcd_stub_vc_feedback_cb_h feedback_cb;
79         void*   feedback_cb_user_data;
80 } client_tidl_info_s;
81
82 typedef struct {
83         rpc_port_stub_vcd_mgr_stub_vc_mgr_notify_cb_h notify_cb;
84         void*   notify_cb_user_data;
85         rpc_port_stub_vcd_mgr_stub_vc_mgr_send_buffer_cb_h send_buffer_cb;
86         void*   send_buffer_cb_user_data;
87
88         bool connected;
89         bool connection_requesting;
90
91         rpc_port_proxy_vcd_mgr_proxy_vcd_mgr_h rpc_h;
92 } manager_tidl_info_s;
93
94 typedef struct {
95         int pid;
96
97         rpc_port_stub_vcd_widget_stub_vc_widget_notify_cb_h notify_cb;
98         void*   notify_cb_user_data;
99
100         bool connected;
101         bool connection_requesting;
102
103         rpc_port_proxy_vcd_widget_proxy_vcd_widget_h rpc_h;
104 } widget_tidl_info_s;
105
106 typedef struct {
107         int pid;
108         rpc_port_stub_vcd_setting_stub_vc_setting_notify_cb_h   notify_cb;
109         void*   notify_cb_user_data;
110 } setting_tidl_info_s;
111
112
113 typedef enum {
114         VCD_RECOGNITION_MODE_STOP_BY_SILENCE,           /**< Default mode */
115         VCD_RECOGNITION_MODE_RESTART_AFTER_REJECT,      /**< Restart recognition after rejected result */
116         VCD_RECOGNITION_MODE_RESTART_CONTINUOUSLY,      /**< Continuously restart recognition - not support yet*/
117         VCD_RECOGNITION_MODE_MANUAL                     /**< Start and stop manually without silence */
118 } vcd_recognition_mode_e;
119
120
121 /*
122 * Command API
123 */
124 typedef bool (* client_foreach_command_cb)(int id, int type, int format, const char* command, const char* param, int domain, void* user_data);
125
126 int vcd_client_command_collect_command();
127
128 int vcd_client_get_length();
129
130 int vcd_client_foreach_command(client_foreach_command_cb callback, void* user_data);
131
132 int vcd_client_get_cmd_from_result_id(int result_id, vc_cmd_s** result);
133
134 int vcd_client_get_cmd_info_from_result_id(int result_id, int* pid, int* cmd_type, vc_cmd_s** result);
135
136 int vcd_client_set_slience_detection(bool value);
137
138 bool vcd_client_get_slience_detection();
139
140 int vcd_client_set_recognition_mode(vcd_recognition_mode_e mode);
141
142 vcd_recognition_mode_e vcd_client_get_recognition_mode();
143
144 int vcd_client_append_cmd_from_type(int type, vc_cmd_list_h list);
145
146 /*
147 * Manager API
148 */
149 int vcd_client_manager_set(int pid);
150
151 int vcd_client_manager_unset();
152
153 int vcd_client_manager_unset_appid();
154
155 bool vcd_client_manager_is_valid(int pid);
156
157 int vcd_client_manager_set_command(int pid);
158
159 int vcd_client_manager_unset_command(int pid);
160
161 int vcd_client_manager_set_demandable_client(int pid, GSList* client_list);
162
163 bool vcd_client_manager_check_demandable_client(int pid);
164
165 bool vcd_client_manager_get_exclusive();
166
167 int vcd_client_manager_set_exclusive(bool value);
168
169 int vcd_client_manager_get_pid();
170
171 int vcd_client_manager_get_appid(char** appid);
172
173 int vcd_client_manager_set_result_text(const char* result);
174
175 char* vcd_client_manager_get_result_text();
176
177 bool vcd_client_manager_is_system_command_valid(int pid);
178
179 int vcd_client_manager_create_tidl_info();
180
181 int vcd_client_manager_set_tidl_notify_cb(rpc_port_stub_vcd_mgr_stub_vc_mgr_notify_cb_h callback, void* user_data);
182
183 int vcd_client_manager_unset_tidl_notify_cb();
184
185 int vcd_client_manager_set_tidl_send_buffer_cb(rpc_port_stub_vcd_mgr_stub_vc_mgr_send_buffer_cb_h callback, void* user_data);
186
187 int vcd_client_manager_unset_tidl_send_buffer_cb();
188
189 int vcd_client_manager_delete_tidl_info();
190
191 manager_tidl_info_s* vcd_client_manager_get_tidl_info();
192
193 /*
194 * client API
195 */
196 int vcd_client_add(int pid);
197
198 int vcd_client_delete(int pid);
199
200 int vcd_client_add_tidl_info(int pid);
201
202 int vcd_client_set_tidl_notify_cb(int pid, rpc_port_stub_vcd_stub_vc_notify_cb_h callback, void* user_data);
203
204 int vcd_client_unset_tidl_notify_cb(int pid);
205
206 int vcd_client_set_tidl_feedback_cb(int pid, rpc_port_stub_vcd_stub_vc_feedback_cb_h callback, void* user_data);
207
208 int vcd_client_unset_tidl_feedback_cb(int pid);
209
210 int vcd_client_delete_tidl_info(int pid);
211
212 client_tidl_info_s* vcd_client_get_tidl_info(int pid);
213
214 int vcd_client_get_tidl_list(int** pids, int* pid_count);
215
216 bool vcd_client_is_available(int pid);
217
218 int vcd_client_get_ref_count();
219
220 int vcd_client_get_list(int** pids, int* pid_count);
221
222 int vcd_client_set_command_type(int pid, int type);
223
224 int vcd_client_unset_command_type(int pid, int type);
225
226 int vcd_client_set_exclusive_command(int pid);
227
228 int vcd_client_unset_exclusive_command(int pid);
229
230 int vcd_client_save_client_info();
231
232 void vcd_client_update_foreground_pid();
233
234 int vcd_client_set_server_dialog(int pid, bool is_server_dialog);
235
236 int vcd_client_get_server_dialog(int pid, bool* is_server_dialog);
237
238 /*
239 * widget API
240 */
241 int vcd_client_widget_get_list(int** pids, int* pid_count);
242
243 int vcd_client_widget_add(int pid);
244
245 int vcd_client_widget_delete(int pid);
246
247 bool vcd_client_widget_is_available(int pid);
248
249 int vcd_client_widget_get_foreground_pid();
250
251 int vcd_client_widget_set_command(int pid);
252
253 int vcd_client_widget_unset_command(int pid);
254
255 int vcd_client_widget_set_asr_result_enabled(int pid, bool enable);
256
257 int vcd_client_widget_get_asr_result_enabled(int pid, bool* enable);
258
259 int vcd_client_widget_set_waiting_for_recording(int pid, bool waiting);
260
261 int vcd_client_widget_get_waiting_for_recording(int pid, bool* waiting);
262
263 int vcd_client_widget_add_tidl_info(int pid);
264
265 int vcd_client_widget_set_tidl_notify_cb(int pid, rpc_port_stub_vcd_widget_stub_vc_widget_notify_cb_h callback, void* user_data);
266
267 int vcd_client_widget_unset_tidl_notify_cb(int pid);
268
269 int vcd_client_widget_delete_tidl_info(int pid);
270
271 widget_tidl_info_s* vcd_client_widget_get_tidl_info(int pid);
272
273 GSList* vcd_client_widget_get_tidl_info_list();
274
275 /*
276 * setting API
277 */
278 int vcd_client_setting_add_tidl_info(int pid);
279
280 int vcd_client_setting_set_tidl_notify_cb(int pid, rpc_port_stub_vcd_setting_stub_vc_setting_notify_cb_h callback, void* user_data);
281
282 int vcd_client_setting_unset_tidl_notify_cb(int pid);
283
284 int vcd_client_setting_delete_tidl_info(int pid);
285
286 setting_tidl_info_s* vcd_client_setting_get_tidl_info(int pid);
287
288 int vcd_client_setting_get_tidl_list(int** pids, int* pid_count);
289
290 #ifdef __cplusplus
291 }
292 #endif
293
294 #endif  /* __VCD_CLIENT_DATA_H_ */
295