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.
16 #ifndef __STTD_ENGINE_AGENT_H_
17 #define __STTD_ENGINE_AGENT_H_
19 #include "sttd_main.h"
27 * Constants & Structures
30 #define ENGINE_PATH_SIZE 256
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);
35 typedef void (*partial_result_callback)(sttp_result_event_e event, const char* data, void *user_data);
37 typedef void (*silence_dectection_callback)(void *user_data);
42 * STT Engine Agent Interfaces
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);
48 /** Release engine agent */
49 int sttd_engine_agent_release();
51 /** Set current engine */
52 int sttd_engine_agent_initialize_current_engine();
54 /** load current engine */
55 int sttd_engine_agent_load_current_engine();
57 /** Unload current engine */
58 int sttd_engine_agent_unload_current_engine();
60 /** test for language list */
61 int sttd_print_enginelist();
63 /** Get state of current engine to need network */
64 bool sttd_engine_agent_need_network();
66 int sttd_engine_get_option_supported(bool* silence, bool* profanity, bool* punctuation);
69 * STT Engine Interfaces for client
72 int sttd_engine_supported_langs(GList** lang_list);
74 int sttd_engine_get_default_lang(char** lang);
76 int sttd_engine_recognize_start(const char* lang, const char* recognition_type,
77 int profanity, int punctuation, int silence, void* user_param);
79 int sttd_engine_recognize_audio(const void* data, unsigned int length);
81 int sttd_engine_is_partial_result_supported(bool* partial_result);
83 int sttd_engine_recognize_stop();
85 int sttd_engine_recognize_cancel();
87 int sttd_engine_get_audio_format(sttp_audio_type_e* types, int* rate, int* channels);
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);
93 * STT Engine Interfaces for setting
96 int sttd_engine_setting_get_engine_list(GList** engine_list);
98 int sttd_engine_setting_get_engine(char** engine_id);
100 int sttd_engine_setting_set_engine(const char* engine_id);
102 int sttd_engine_setting_get_lang_list(char** engine_id, GList** lang_list);
104 int sttd_engine_setting_get_default_lang(char** language);
106 int sttd_engine_setting_set_default_lang(const char* language);
108 int sttd_engine_setting_get_profanity_filter(bool* value);
110 int sttd_engine_setting_set_profanity_filter(bool value);
112 int sttd_engine_setting_get_punctuation_override(bool* value);
114 int sttd_engine_setting_set_punctuation_override(bool value);
116 int sttd_engine_setting_get_silence_detection(bool* value);
118 int sttd_engine_setting_set_silence_detection(bool value);
120 int sttd_engine_setting_get_engine_setting_info(char** engine_id, GList** setting_list);
122 int sttd_engine_setting_set_engine_setting(const char* key, const char* value);
129 #endif /* __STTD_ENGINE_AGENT_H_ */