9bb703ceb511da658d8f4cdaf11aa964a5298bc6
[platform/core/uifw/multi-assistant-service.git] / inc / multi_assistant_service_plugin.h
1 /*
2  * Copyright 2018  Samsung Electronics Co., Ltd
3  *
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
7  *
8  * http://floralicense.org/license/
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 _MULTI_ASSISTANT_SERVICE_PLUGIN_H_
19 #define _MULTI_ASSISTANT_SERVICE_PLUGIN_H_
20
21 #include <dlog/dlog.h>
22
23 #include "multi_wakeup_recognizer.h"
24 #include "multi_assistant_main.h"
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 typedef enum {
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,
35 } ma_plugin_event_e;
36
37 typedef struct {
38         int plugin_version;
39         bool ui_panel_enabled;
40 } ma_plugin_settings;
41
42 int multi_assistant_service_plugin_initialize(void);
43
44 int multi_assistant_service_plugin_deinitialize(void);
45
46 int multi_assistant_service_plugin_get_settings(ma_plugin_settings **settings, size_t *struct_size);
47
48 int multi_assistant_service_plugin_set_language(const char* language);
49
50 int multi_assistant_service_plugin_add_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language);
51
52 int multi_assistant_service_plugin_add_assistant_language(const char* appid, const char* language);
53
54 int multi_assistant_service_plugin_set_assistant_wakeup_engine(const char* appid, const char* engine);
55
56 int multi_assistant_service_plugin_activate(void);
57
58 int multi_assistant_service_plugin_deactivate(void);
59
60 int multi_assistant_service_plugin_update_voice_feedback_state(const char* appid, int state);
61
62 int multi_assistant_service_plugin_send_assistant_specific_command(const char *appid, const char* command);
63
64 int multi_assistant_service_plugin_set_background_volume(const char *appid, double ratio);
65
66 int multi_assistant_service_plugin_update_recognition_result(const char* appid, int result);
67
68 int multi_assistant_service_plugin_set_preprocessing_allow_mode(const char* appid, int mode, const char* preprocessing_appid);
69
70 int multi_assistant_service_plugin_process_event(int event, void* data, int len);
71
72 int multi_assistant_service_plugin_start_streaming_utterance_data(void);
73
74 int multi_assistant_service_plugin_stop_streaming_utterance_data(void);
75
76 int multi_assistant_service_plugin_start_streaming_previous_utterance_data(void);
77
78 int multi_assistant_service_plugin_stop_streaming_previous_utterance_data(void);
79
80 int multi_assistant_service_plugin_start_streaming_follow_up_data(void);
81
82 int multi_assistant_service_plugin_stop_streaming_follow_up_data(void);
83
84 int multi_assistant_service_plugin_get_recording_audio_format(int* rate, int* channel, int* audio_type);
85
86 int multi_assistant_service_plugin_get_recording_audio_source_type(char **type);
87
88 int multi_assistant_service_plugin_set_callbacks(void);
89
90 int multi_assistant_service_plugin_set_wakeup_event_callback(wakeup_service_wakeup_event_cb callback, void* user_data);
91
92 int multi_assistant_service_plugin_set_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
93
94 int multi_assistant_service_plugin_set_previous_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
95
96 int multi_assistant_service_plugin_set_follow_up_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
97
98 int multi_assistant_service_plugin_set_speech_status_callback(wakeup_service_speech_status_cb callback, void* user_data);
99
100 int multi_assistant_service_plugin_set_error_callback(wakeup_service_error_cb callback, void* user_data);
101
102 #define MA_WAKEUP_MANAGER_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "multiassistant/")
103
104 #define MA_DEFAULT_WAKEUP_MANAGER_FILENAME "libma-wakeup-manager.so"
105
106
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);
167
168 typedef struct {
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;
200
201 #ifdef __cplusplus
202 }
203 #endif
204
205 #endif /* _MULTI_ASSISTANT_SERVICE_PLUGIN_H_ */