e0ba8144b12a45c55a339e376efe5c96fad029dc
[platform/core/uifw/stt.git] / server / sttd_engine_agent.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
16 #ifndef __STTD_ENGINE_AGENT_H_
17 #define __STTD_ENGINE_AGENT_H_
18
19 #include "sttd_main.h"
20 #include "sttp.h"
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /*
27 * Constants & Structures        
28 */
29
30 #define ENGINE_PATH_SIZE 256
31
32 typedef void (*result_callback)(sttp_result_event_e event, const char* type, 
33                                 const char** data, int data_count, const char* msg, void *user_data);
34
35 typedef bool (*result_time_callback)(int index, sttp_result_time_event_e event, const char* text, 
36                                 long start_time, long end_time, void *user_data);
37
38 typedef void (*silence_dectection_callback)(sttp_silence_type_e type, void *user_data);
39
40
41
42 /*
43 * STT Engine Agent Interfaces
44 */
45
46 /** Init / Release engine agent */
47 int sttd_engine_agent_init(result_callback result_cb, result_time_callback time_cb, 
48                            silence_dectection_callback silence_cb);
49
50 int sttd_engine_agent_release();
51
52
53 /** Manage engine */
54 int sttd_engine_agent_initialize_engine_list();
55
56
57 /** load / unload engine */
58 int sttd_engine_agent_load_current_engine(int uid, const char* engine_uuid);
59
60 int sttd_engine_agent_unload_current_engine(int uid);
61
62 bool sttd_engine_agent_is_default_engine();
63
64 int sttd_engine_agent_get_engine_list(GSList** engine_list);
65
66 int sttd_engine_agent_get_current_engine(int uid, char** engine_uuid);
67
68
69 /** Get/Set app option */
70 bool sttd_engine_agent_need_network(int uid);
71
72 int sttd_engine_agent_supported_langs(int uid, GSList** lang_list);
73
74 int sttd_engine_agent_get_default_lang(int uid, char** lang);
75
76 int sttd_engine_agent_set_private_data(int uid, const char* key, const char* data);
77
78 int sttd_engine_agent_get_private_data(int uid, const char* key, char** data);
79
80 int sttd_engine_agent_get_option_supported(int uid, bool* silence);
81
82 int sttd_engine_agent_is_credential_needed(int uid, bool* credential);
83
84 int sttd_engine_agent_is_recognition_type_supported(int uid, const char* type, bool* support);
85
86 int sttd_engine_agent_set_default_engine(const char* engine_uuid);
87
88 int sttd_engine_agent_set_default_language(const char* language);
89
90 int sttd_engine_agent_set_silence_detection(bool value);
91
92 int sttd_engine_agent_check_app_agreed(int uid, const char* appid, bool* result);
93
94 /** Control engine */
95 int sttd_engine_agent_recognize_start_engine(int uid, const char* lang, const char* recognition_type, 
96                                 int silence, const char* credential, void* user_param);
97
98 int sttd_engine_agent_recognize_start_recorder(int uid);
99
100 int sttd_engine_agent_set_recording_data(int uid, const void* data, unsigned int length);
101
102 int sttd_engine_agent_recognize_stop(int uid);
103
104 int sttd_engine_agent_recognize_stop_recorder(int uid);
105
106 int sttd_engine_agent_recognize_stop_engine(int uid);
107
108 int sttd_engine_agent_recognize_cancel(int uid);
109
110
111 #ifdef __cplusplus
112 }
113 #endif
114
115 #endif /* __STTD_ENGINE_AGENT_H_ */