Fix prevent issue and Merge with master branch
[platform/core/uifw/stt.git] / server / sttd_engine_agent.h
1 /*
2 *  Copyright (c) 2012, 2013 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 void (*partial_result_callback)(sttp_result_event_e event, const char* data, void *user_data);
36
37 typedef void (*silence_dectection_callback)(void *user_data);
38
39
40
41 /*
42 * STT Engine Agent Interfaces
43 */
44
45 /** Init engine agent */
46 int sttd_engine_agent_init(result_callback result_cb, partial_result_callback partial_result_cb, silence_dectection_callback silence_cb);
47
48 /** Release engine agent */
49 int sttd_engine_agent_release();
50
51 /** Set current engine */
52 int sttd_engine_agent_initialize_current_engine();
53
54 /** load current engine */
55 int sttd_engine_agent_load_current_engine();
56
57 /** Unload current engine */
58 int sttd_engine_agent_unload_current_engine();
59
60 /** test for language list */
61 int sttd_print_enginelist();
62
63 /** Get state of current engine to need network */
64 bool sttd_engine_agent_need_network();
65
66 int sttd_engine_get_option_supported(bool* silence, bool* profanity, bool* punctuation);
67
68 /*
69 * STT Engine Interfaces for client
70 */
71
72 int sttd_engine_supported_langs(GList** lang_list);
73
74 int sttd_engine_get_default_lang(char** lang);
75
76 int sttd_engine_recognize_start(const char* lang, const char* recognition_type, 
77                                 int profanity, int punctuation, int silence, void* user_param);
78
79 int sttd_engine_recognize_audio(const void* data, unsigned int length);
80
81 int sttd_engine_is_partial_result_supported(bool* partial_result);
82
83 int sttd_engine_recognize_stop();
84
85 int sttd_engine_recognize_cancel();
86
87 int sttd_engine_get_audio_format(sttp_audio_type_e* types, int* rate, int* channels);
88
89 int sttd_engine_recognize_start_file(const char* filepath, const char* lang, const char* recognition_type, 
90                                      int profanity, int punctuation, void* user_param);
91
92 /*
93 * STT Engine Interfaces for setting
94 */
95
96 int sttd_engine_setting_get_engine_list(GList** engine_list);
97
98 int sttd_engine_setting_get_engine(char** engine_id);
99
100 int sttd_engine_setting_set_engine(const char* engine_id);
101
102 int sttd_engine_setting_get_lang_list(char** engine_id, GList** lang_list);
103
104 int sttd_engine_setting_get_default_lang(char** language);
105
106 int sttd_engine_setting_set_default_lang(const char* language);
107
108 int sttd_engine_setting_get_profanity_filter(bool* value);
109
110 int sttd_engine_setting_set_profanity_filter(bool value);
111
112 int sttd_engine_setting_get_punctuation_override(bool* value);
113
114 int sttd_engine_setting_set_punctuation_override(bool value);
115
116 int sttd_engine_setting_get_silence_detection(bool* value);
117
118 int sttd_engine_setting_set_silence_detection(bool value);
119
120 int sttd_engine_setting_get_engine_setting_info(char** engine_id, GList** setting_list); 
121
122 int sttd_engine_setting_set_engine_setting(const char* key, const char* value);
123
124
125 #ifdef __cplusplus
126 }
127 #endif
128
129 #endif /* __STTD_ENGINE_AGENT_H_ */