2 * Copyright 2018 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.1 (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
8 * http://floralicense.org/license/
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.
18 #ifndef _MULTI_ASSISTANT_SERVICE_PLUGIN_H_
19 #define _MULTI_ASSISTANT_SERVICE_PLUGIN_H_
21 #include <dlog/dlog.h>
23 #include "multi_wakeup_recognizer.h"
24 #include "multi_assistant_main.h"
31 MA_PLUGIN_EVENT_VOICE_KEY_PRESSED = 0,
32 MA_PLUGIN_EVENT_VOICE_KEY_RELEASED,
33 MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH = MA_PLUGIN_EVENT_VOICE_KEY_RELEASED,
34 MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP,
39 bool ui_panel_enabled;
42 int multi_assistant_service_plugin_initialize(void);
44 int multi_assistant_service_plugin_deinitialize(void);
46 int multi_assistant_service_plugin_get_settings(ma_plugin_settings **settings, size_t *struct_size);
48 int multi_assistant_service_plugin_set_language(const char* language);
50 int multi_assistant_service_plugin_add_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language);
52 int multi_assistant_service_plugin_add_assistant_language(const char* appid, const char* language);
54 int multi_assistant_service_plugin_set_assistant_wakeup_engine(const char* appid, const char* engine);
56 int multi_assistant_service_plugin_activate(void);
58 int multi_assistant_service_plugin_deactivate(void);
60 int multi_assistant_service_plugin_update_voice_feedback_state(const char* appid, int state);
62 int multi_assistant_service_plugin_send_assistant_specific_command(const char *appid, const char* command);
64 int multi_assistant_service_plugin_set_background_volume(const char *appid, double ratio);
66 int multi_assistant_service_plugin_update_recognition_result(const char* appid, int result);
68 int multi_assistant_service_plugin_set_preprocessing_allow_mode(const char* appid, int mode, const char* preprocessing_appid);
70 int multi_assistant_service_plugin_process_event(int event, void* data, int len);
72 int multi_assistant_service_plugin_start_streaming_utterance_data(void);
74 int multi_assistant_service_plugin_stop_streaming_utterance_data(void);
76 int multi_assistant_service_plugin_start_streaming_previous_utterance_data(void);
78 int multi_assistant_service_plugin_stop_streaming_previous_utterance_data(void);
80 int multi_assistant_service_plugin_start_streaming_follow_up_data(void);
82 int multi_assistant_service_plugin_stop_streaming_follow_up_data(void);
84 int multi_assistant_service_plugin_get_recording_audio_format(int* rate, int* channel, int* audio_type);
86 int multi_assistant_service_plugin_get_recording_audio_source_type(char **type);
88 int multi_assistant_service_plugin_set_callbacks(void);
90 int multi_assistant_service_plugin_set_wakeup_event_callback(wakeup_service_wakeup_event_cb callback, void* user_data);
92 int multi_assistant_service_plugin_set_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
94 int multi_assistant_service_plugin_set_previous_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
96 int multi_assistant_service_plugin_set_follow_up_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
98 int multi_assistant_service_plugin_set_speech_status_callback(wakeup_service_speech_status_cb callback, void* user_data);
100 int multi_assistant_service_plugin_set_error_callback(wakeup_service_error_cb callback, void* user_data);
102 #define MA_WAKEUP_MANAGER_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "multiassistant/")
104 #define MA_DEFAULT_WAKEUP_MANAGER_FILENAME "libma-wakeup-manager.so"
107 #define MA_WAKEUP_MANAGER_FUNC_INITIALIZE "wakeup_manager_initialize"
108 typedef int (*wakeup_manager_initialize)(void);
109 #define MA_WAKEUP_MANAGER_FUNC_DEINITIALIZE "wakeup_manager_deinitialize"
110 typedef int (*wakeup_manager_deinitialize)(void);
111 #define MA_WAKEUP_MANAGER_FUNC_GET_SETTINGS "wakeup_manager_get_settings"
112 typedef int (*wakeup_manager_get_settings)(ma_plugin_settings **settings, size_t *struct_size);
113 #define MA_WAKEUP_MANAGER_FUNC_ADD_ASSISTANT_WAKEUP_WORD "wakeup_manager_add_assistant_wakeup_word"
114 typedef int (*wakeup_manager_add_assistant_wakeup_word)(const char* appid, const char* wakeup_word, const char* language);
115 #define MA_WAKEUP_MANAGER_FUNC_ADD_ASSISTANT_LANGUAGE "wakeup_manager_add_assistant_language"
116 typedef int (*wakeup_manager_add_assistant_language)(const char* appid, const char* language);
117 #define MA_WAKEUP_MANAGER_FUNC_SET_ASSISTANT_WAKEUP_ENGINE "wakeup_manager_set_assistant_wakeup_engine"
118 typedef int (*wakeup_manager_set_assistant_wakeup_engine)(const char* appid, const char* engine);
119 #define MA_WAKEUP_MANAGER_FUNC_SET_LANGUAGE "wakeup_manager_set_language"
120 typedef int (*wakeup_manager_set_language)(const char* language);
121 #define MA_WAKEUP_MANAGER_FUNC_ACTIVATE "wakeup_manager_activate"
122 typedef int (*wakeup_manager_activate)(void);
123 #define MA_WAKEUP_MANAGER_FUNC_DEACTIVATE "wakeup_manager_deactivate"
124 typedef int (*wakeup_manager_deactivate)(void);
125 #define MA_WAKEUP_MANAGER_FUNC_UPDATE_VOICE_FEEDBACK_STATE "wakeup_manager_update_voice_feedback_state"
126 typedef int (*wakeup_manager_update_voice_feedback_state)(const char* appid, int state);
127 #define MA_WAKEUP_MANAGER_FUNC_SEND_ASSISTANT_SPECIFIC_COMMAND "wakeup_manager_send_assistant_specific_command"
128 typedef int (*wakeup_manager_send_assistant_specific_command)(const char* appid, const char* command);
129 #define MA_WAKEUP_MANAGER_FUNC_SET_BACKGROUND_VOLUME "wakeup_manager_set_background_volume"
130 typedef int (*wakeup_manager_set_background_volume)(const char* appid, double ratio);
131 #define MA_WAKEUP_MANAGER_FUNC_UPDATE_RECOGNITION_RESULT "wakeup_manager_update_recognition_result"
132 typedef int (*wakeup_manager_update_recognition_result)(const char* appid, int result);
133 #define MA_WAKEUP_MANAGER_FUNC_PROCESS_EVENT "wakeup_manager_process_event"
134 typedef int (*wakeup_manager_process_event)(int event, void* data, int len);
135 #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_UTTERANCE_DATA "wakeup_manager_start_streaming_utterance_data"
136 typedef int (*wakeup_manager_start_streaming_utterance_data)(void);
137 #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_UTTERANCE_DATA "wakeup_manager_stop_streaming_utterance_data"
138 typedef int (*wakeup_manager_stop_streaming_utterance_data)(void);
139 #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_PREVIOUS_UTTERANCE_DATA "wakeup_manager_start_streaming_previous_utterance_data"
140 typedef int (*wakeup_manager_start_streaming_previous_utterance_data)(void);
141 #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_PREVIOUS_UTTERANCE_DATA "wakeup_manager_stop_streaming_previous_utterance_data"
142 typedef int (*wakeup_manager_stop_streaming_previous_utterance_data)(void);
143 #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_FOLLOW_UP_DATA "wakeup_manager_start_streaming_follow_up_data"
144 typedef int (*wakeup_manager_start_streaming_follow_up_data)(void);
145 #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_FOLLOW_UP_DATA "wakeup_manager_stop_streaming_follow_up_data"
146 typedef int (*wakeup_manager_stop_streaming_follow_up_data)(void);
147 #define MA_WAKEUP_MANAGER_FUNC_GET_AUDIO_FORMAT "wakeup_manager_get_audio_format"
148 typedef int (*wakeup_manager_get_audio_format)(int* rate, int* channel, int* audio_type);
149 #define MA_WAKEUP_MANAGER_FUNC_GET_AUDIO_SOURCE_TYPE "wakeup_manager_get_audio_source_type"
150 typedef int (*wakeup_manager_get_audio_source_type)(char** type);
151 #define MA_WAKEUP_MANAGER_FUNC_SET_WAKE_WORD_AUDIO_REQUIRE_FLAG "wakeup_manager_set_wake_word_audio_require_flag"
152 typedef int (*wakeup_manager_set_wake_word_audio_require_flag)(bool require);
153 #define MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_EVENT_CALLBACK "wakeup_manager_set_wakeup_event_callback"
154 typedef int (*wakeup_manager_set_wakeup_event_callback)(wakeup_service_wakeup_event_cb callback, void* user_data);
155 #define MA_WAKEUP_MANAGER_FUNC_SET_UTTERANCE_STREAMING_CALLBACK "wakeup_manager_set_utterance_streaming_callback"
156 typedef int (*wakeup_manager_set_utterance_streaming_callback)(wakeup_service_speech_streaming_cb callback, void* user_data);
157 #define MA_WAKEUP_MANAGER_FUNC_SET_PREVIOUS_UTTERANCE_STREAMING_CALLBACK "wakeup_manager_set_previous_utterance_streaming_callback"
158 typedef int (*wakeup_manager_set_previous_utterance_streaming_callback)(wakeup_service_speech_streaming_cb callback, void* user_data);
159 #define MA_WAKEUP_MANAGER_FUNC_SET_FOLLOW_UP_STREAMING_CALLBACK "wakeup_manager_set_follow_up_streaming_callback"
160 typedef int (*wakeup_manager_set_follow_up_streaming_callback)(wakeup_service_speech_streaming_cb callback, void* user_data);
161 #define MA_WAKEUP_MANAGER_FUNC_SET_SPEECH_STATUS_CALLBACK "wakeup_manager_set_speech_status_callback"
162 typedef int (*wakeup_manager_set_speech_status_callback)(wakeup_service_speech_status_cb callback, void* user_data);
163 #define MA_WAKEUP_MANAGER_FUNC_SET_ERROR_CALLBACK "wakeup_manager_set_error_callback"
164 typedef int (*wakeup_manager_set_error_callback)(wakeup_service_error_cb callback, void* user_data);
165 #define MA_WAKEUP_MANAGER_FUNC_SET_STREAMING_SECTION_CHANGED_CALLBACK "wakeup_manager_set_streaming_section_changed_callback"
166 typedef int (*wakeup_manager_set_streaming_section_changed_callback)(wakeup_service_streaming_section_changed_cb callback, void* user_data);
169 wakeup_manager_initialize initialize;
170 wakeup_manager_deinitialize deinitialize;
171 wakeup_manager_get_settings get_settings;
172 wakeup_manager_add_assistant_wakeup_word add_assistant_wakeup_word;
173 wakeup_manager_add_assistant_language add_assistant_language;
174 wakeup_manager_set_assistant_wakeup_engine set_assistant_wakeup_engine;
175 wakeup_manager_set_language set_language;
176 wakeup_manager_activate activate;
177 wakeup_manager_deactivate deactivate;
178 wakeup_manager_update_voice_feedback_state update_voice_feedback_state;
179 wakeup_manager_send_assistant_specific_command send_assistant_specific_command;
180 wakeup_manager_set_background_volume set_background_volume;
181 wakeup_manager_update_recognition_result update_recognition_result;
182 wakeup_manager_process_event process_event;
183 wakeup_manager_start_streaming_utterance_data start_streaming_utterance_data;
184 wakeup_manager_stop_streaming_utterance_data stop_streaming_utterance_data;
185 wakeup_manager_start_streaming_previous_utterance_data start_streaming_previous_utterance_data;
186 wakeup_manager_stop_streaming_previous_utterance_data stop_streaming_previous_utterance_data;
187 wakeup_manager_start_streaming_follow_up_data start_streaming_follow_up_data;
188 wakeup_manager_stop_streaming_follow_up_data stop_streaming_follow_up_data;
189 wakeup_manager_get_audio_format get_audio_format;
190 wakeup_manager_get_audio_source_type get_audio_source_type;
191 wakeup_manager_set_wake_word_audio_require_flag set_wake_word_audio_require_flag;
192 wakeup_manager_set_wakeup_event_callback set_wakeup_event_callback;
193 wakeup_manager_set_utterance_streaming_callback set_utterance_streaming_callback;
194 wakeup_manager_set_previous_utterance_streaming_callback set_previous_utterance_streaming_callback;
195 wakeup_manager_set_follow_up_streaming_callback set_follow_up_streaming_callback;
196 wakeup_manager_set_speech_status_callback set_speech_status_callback;
197 wakeup_manager_set_error_callback set_error_callback;
198 wakeup_manager_set_streaming_section_changed_callback set_streaming_section_changed_callback;
199 } wakeup_manager_interface;
205 #endif /* _MULTI_ASSISTANT_SERVICE_PLUGIN_H_ */