Modified to load only required wakeup engines
[platform/core/uifw/multi-assistant-service.git] / inc / service_plugin_interface.h
1 /*
2  * Copyright 2020 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 __SERVICE_PLUGIN_INTERFACE_H__
19 #define __SERVICE_PLUGIN_INTERFACE_H__
20
21 #include <tzplatform_config.h>
22
23 typedef struct {
24         int plugin_version;
25         bool ui_panel_enabled;
26 } ma_plugin_settings;
27
28 #define MA_WAKEUP_MANAGER_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "multiassistant/")
29
30 #define MA_DEFAULT_WAKEUP_MANAGER_FILENAME "libma-wakeup-manager.so"
31
32 #define MA_WAKEUP_MANAGER_FUNC_INITIALIZE "wakeup_manager_initialize"
33 typedef int (*wakeup_manager_initialize)(void);
34 #define MA_WAKEUP_MANAGER_FUNC_DEINITIALIZE "wakeup_manager_deinitialize"
35 typedef int (*wakeup_manager_deinitialize)(void);
36 #define MA_WAKEUP_MANAGER_FUNC_GET_SETTINGS "wakeup_manager_get_settings"
37 typedef int (*wakeup_manager_get_settings)(ma_plugin_settings **settings, size_t *struct_size);
38 #define MA_WAKEUP_MANAGER_FUNC_ADD_ASSISTANT_WAKEUP_WORD "wakeup_manager_add_assistant_wakeup_word"
39 typedef int (*wakeup_manager_add_assistant_wakeup_word)(const char* appid, const char* wakeup_word, const char* language);
40 #define MA_WAKEUP_MANAGER_FUNC_REMOVE_ASSISTANT_WAKEUP_WORD "wakeup_manager_remove_assistant_wakeup_word"
41 typedef int (*wakeup_manager_remove_assistant_wakeup_word)(const char* appid, const char* wakeup_word, const char* language);
42 #define MA_WAKEUP_MANAGER_FUNC_ADD_ASSISTANT_LANGUAGE "wakeup_manager_add_assistant_language"
43 typedef int (*wakeup_manager_add_assistant_language)(const char* appid, const char* language);
44 #define MA_WAKEUP_MANAGER_FUNC_ADD_ASSISTANT_WAKEUP_ENGINE "wakeup_manager_add_assistant_wakeup_engine"
45 typedef int (*wakeup_manager_add_assistant_wakeup_engine)(const char* appid, const char* engine);
46 #define MA_WAKEUP_MANAGER_FUNC_SET_DEFAULT_ASSISTANT "wakeup_manager_set_default_assistant"
47 typedef int (*wakeup_manager_set_default_assistant)(const char* appid);
48 #define MA_WAKEUP_MANAGER_FUNC_GET_DEFAULT_ASSISTANT "wakeup_manager_get_default_assistant"
49 typedef int (*wakeup_manager_get_default_assistant)(const char** appid);
50 #define MA_WAKEUP_MANAGER_FUNC_SET_LANGUAGE "wakeup_manager_set_language"
51 typedef int (*wakeup_manager_set_language)(const char* language);
52 #define MA_WAKEUP_MANAGER_FUNC_ACTIVATE "wakeup_manager_activate"
53 typedef int (*wakeup_manager_activate)(void);
54 #define MA_WAKEUP_MANAGER_FUNC_DEACTIVATE "wakeup_manager_deactivate"
55 typedef int (*wakeup_manager_deactivate)(void);
56 #define MA_WAKEUP_MANAGER_FUNC_UPDATE_VOICE_FEEDBACK_STATE "wakeup_manager_update_voice_feedback_state"
57 typedef int (*wakeup_manager_update_voice_feedback_state)(const char* appid, int state);
58 #define MA_WAKEUP_MANAGER_FUNC_SET_ASSISTANT_SPECIFIC_COMMAND "wakeup_manager_set_assistant_specific_command"
59 typedef int (*wakeup_manager_set_assistant_specific_command)(const char* appid, const char* command);
60 #define MA_WAKEUP_MANAGER_FUNC_SET_BACKGROUND_VOLUME "wakeup_manager_set_background_volume"
61 typedef int (*wakeup_manager_set_background_volume)(const char* appid, double ratio);
62 #define MA_WAKEUP_MANAGER_FUNC_UPDATE_RECOGNITION_RESULT "wakeup_manager_update_recognition_result"
63 typedef int (*wakeup_manager_update_recognition_result)(const char* appid, int result);
64 #define MA_WAKEUP_MANAGER_FUNC_PROCESS_PLUGIN_EVENT "wakeup_manager_process_plugin_event"
65 typedef int (*wakeup_manager_process_plugin_event)(int event, void* data, int len);
66 #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_UTTERANCE_DATA "wakeup_manager_start_streaming_utterance_data"
67 typedef int (*wakeup_manager_start_streaming_utterance_data)(void);
68 #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_UTTERANCE_DATA "wakeup_manager_stop_streaming_utterance_data"
69 typedef int (*wakeup_manager_stop_streaming_utterance_data)(void);
70 #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_PREVIOUS_UTTERANCE_DATA "wakeup_manager_start_streaming_previous_utterance_data"
71 typedef int (*wakeup_manager_start_streaming_previous_utterance_data)(void);
72 #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_PREVIOUS_UTTERANCE_DATA "wakeup_manager_stop_streaming_previous_utterance_data"
73 typedef int (*wakeup_manager_stop_streaming_previous_utterance_data)(void);
74 #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_FOLLOW_UP_DATA "wakeup_manager_start_streaming_follow_up_data"
75 typedef int (*wakeup_manager_start_streaming_follow_up_data)(void);
76 #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_FOLLOW_UP_DATA "wakeup_manager_stop_streaming_follow_up_data"
77 typedef int (*wakeup_manager_stop_streaming_follow_up_data)(void);
78 #define MA_WAKEUP_MANAGER_FUNC_GET_AUDIO_FORMAT "wakeup_manager_get_audio_format"
79 typedef int (*wakeup_manager_get_audio_format)(int* rate, int* channel, int* audio_type);
80 #define MA_WAKEUP_MANAGER_FUNC_GET_AUDIO_SOURCE_TYPE "wakeup_manager_get_audio_source_type"
81 typedef int (*wakeup_manager_get_audio_source_type)(char** type);
82 #define MA_WAKEUP_MANAGER_FUNC_SET_VOICE_KEY_TAP_DURATION "wakeup_manager_set_voice_key_tap_duration"
83 typedef int (*wakeup_manager_set_voice_key_tap_duration)(float duration);
84 #define MA_WAKEUP_MANAGER_FUNC_UNSET_VOICE_KEY_TAP_DURATION "wakeup_manager_unset_voice_key_tap_duration"
85 typedef int (*wakeup_manager_unset_voice_key_tap_duration)();
86 #define MA_WAKEUP_MANAGER_FUNC_SET_VOICE_KEY_SUPPORT_MODE "wakeup_manager_set_voice_key_support_mode"
87 typedef int (*wakeup_manager_set_voice_key_support_mode)(int mode);
88 #define MA_WAKEUP_MANAGER_FUNC_SET_WAKE_WORD_AUDIO_REQUIRE_FLAG "wakeup_manager_set_wake_word_audio_require_flag"
89 typedef int (*wakeup_manager_set_wake_word_audio_require_flag)(bool require);
90 #define MA_WAKEUP_MANAGER_FUNC_SET_ASSISTANT_LANGUAGE "wakeup_manager_set_assistant_language"
91 typedef int (*wakeup_manager_set_assistant_language)(const char* appid, const char* language);
92 #define MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_EVENT_CALLBACK "wakeup_manager_set_wakeup_event_callback"
93 typedef int (*wakeup_manager_set_wakeup_event_callback)(wakeup_service_wakeup_event_cb callback, void* user_data);
94 #define MA_WAKEUP_MANAGER_FUNC_SET_UTTERANCE_STREAMING_CALLBACK "wakeup_manager_set_utterance_streaming_callback"
95 typedef int (*wakeup_manager_set_utterance_streaming_callback)(wakeup_service_speech_streaming_cb callback, void* user_data);
96 #define MA_WAKEUP_MANAGER_FUNC_SET_PREVIOUS_UTTERANCE_STREAMING_CALLBACK "wakeup_manager_set_previous_utterance_streaming_callback"
97 typedef int (*wakeup_manager_set_previous_utterance_streaming_callback)(wakeup_service_speech_streaming_cb callback, void* user_data);
98 #define MA_WAKEUP_MANAGER_FUNC_SET_FOLLOW_UP_STREAMING_CALLBACK "wakeup_manager_set_follow_up_streaming_callback"
99 typedef int (*wakeup_manager_set_follow_up_streaming_callback)(wakeup_service_speech_streaming_cb callback, void* user_data);
100 #define MA_WAKEUP_MANAGER_FUNC_SET_SPEECH_STATUS_CALLBACK "wakeup_manager_set_speech_status_callback"
101 typedef int (*wakeup_manager_set_speech_status_callback)(wakeup_service_speech_status_cb callback, void* user_data);
102 #define MA_WAKEUP_MANAGER_FUNC_SET_SETTING_CHANGED_CALLBACK "wakeup_manager_set_setting_changed_callback"
103 typedef int (*wakeup_manager_set_setting_changed_callback)(wakeup_service_setting_changed_cb callback, void* user_data);
104 #define MA_WAKEUP_MANAGER_FUNC_SET_ERROR_CALLBACK "wakeup_manager_set_error_callback"
105 typedef int (*wakeup_manager_set_error_callback)(wakeup_service_error_cb callback, void* user_data);
106 #define MA_WAKEUP_MANAGER_FUNC_SET_STREAMING_SECTION_CHANGED_CALLBACK "wakeup_manager_set_streaming_section_changed_callback"
107 typedef int (*wakeup_manager_set_streaming_section_changed_callback)(wakeup_service_streaming_section_changed_cb callback, void* user_data);
108 #define MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_ENGINE_COMMAND_CALLBACK "wakeup_manager_set_wakeup_engine_command_callback"
109 typedef int (*wakeup_manager_set_wakeup_engine_command_callback)(wakeup_service_wakeup_engine_command_cb callback, void* user_data);
110 #define MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_SERVICE_STATE_CHANGED_CALLBACK "wakeup_manager_set_wakeup_service_state_changed_callback"
111 typedef int (*wakeup_manager_set_wakeup_service_state_changed_callback)(wakeup_service_wakeup_service_state_changed_cb callback, void* user_data);
112 #define MA_WAKEUP_MANAGER_FUNC_SET_VOICE_KEY_STATUS_CHANGED_CALLBACK "wakeup_manager_set_voice_key_status_changed_callback"
113 typedef int (*wakeup_manager_set_voice_key_status_changed_callback)(wakeup_service_voice_key_status_changed_cb callback, void* user_data);
114 #define MA_WAKEUP_MANAGER_FUNC_SET_LOADED_ENGINE_CHANGED_CALLBACK "wakeup_manager_set_loaded_engine_changed_callback"
115 typedef int (*wakeup_manager_set_loaded_engine_changed_callback)(wakeup_service_loaded_engine_changed_cb callback, void* user_data);
116
117 typedef struct {
118         wakeup_manager_initialize                                                                       initialize;
119         wakeup_manager_deinitialize                                                                     deinitialize;
120         wakeup_manager_get_settings                                                                     get_settings;
121         wakeup_manager_add_assistant_wakeup_word                                        add_assistant_wakeup_word;
122         wakeup_manager_remove_assistant_wakeup_word                                     remove_assistant_wakeup_word;
123         wakeup_manager_add_assistant_language                                           add_assistant_language;
124         wakeup_manager_add_assistant_wakeup_engine                                      add_assistant_wakeup_engine;
125         wakeup_manager_set_default_assistant                                            set_default_assistant;
126         wakeup_manager_get_default_assistant                                            get_default_assistant;
127         wakeup_manager_set_language                                                                     set_language;
128         wakeup_manager_activate                                                                         activate;
129         wakeup_manager_deactivate                                                                       deactivate;
130         wakeup_manager_update_voice_feedback_state                                      update_voice_feedback_state;
131         wakeup_manager_set_assistant_specific_command                           set_assistant_specific_command;
132         wakeup_manager_set_background_volume                                            set_background_volume;
133         wakeup_manager_update_recognition_result                                        update_recognition_result;
134         wakeup_manager_process_plugin_event                                                     process_plugin_event;
135         wakeup_manager_start_streaming_utterance_data                           start_streaming_utterance_data;
136         wakeup_manager_stop_streaming_utterance_data                            stop_streaming_utterance_data;
137         wakeup_manager_start_streaming_previous_utterance_data          start_streaming_previous_utterance_data;
138         wakeup_manager_stop_streaming_previous_utterance_data           stop_streaming_previous_utterance_data;
139         wakeup_manager_start_streaming_follow_up_data                           start_streaming_follow_up_data;
140         wakeup_manager_stop_streaming_follow_up_data                            stop_streaming_follow_up_data;
141         wakeup_manager_get_audio_format                                                         get_audio_format;
142         wakeup_manager_get_audio_source_type                                            get_audio_source_type;
143         wakeup_manager_set_voice_key_tap_duration                                       set_voice_key_tap_duration;
144         wakeup_manager_unset_voice_key_tap_duration                                     unset_voice_key_tap_duration;
145         wakeup_manager_set_voice_key_support_mode                                       set_voice_key_support_mode;
146         wakeup_manager_set_wake_word_audio_require_flag                         set_wake_word_audio_require_flag;
147         wakeup_manager_set_assistant_language                                           set_assistant_language;
148         wakeup_manager_set_wakeup_event_callback                                        set_wakeup_event_callback;
149         wakeup_manager_set_utterance_streaming_callback                         set_utterance_streaming_callback;
150         wakeup_manager_set_previous_utterance_streaming_callback        set_previous_utterance_streaming_callback;
151         wakeup_manager_set_follow_up_streaming_callback                         set_follow_up_streaming_callback;
152         wakeup_manager_set_speech_status_callback                                       set_speech_status_callback;
153         wakeup_manager_set_setting_changed_callback                                     set_setting_changed_callback;
154         wakeup_manager_set_error_callback                                                       set_error_callback;
155         wakeup_manager_set_streaming_section_changed_callback           set_streaming_section_changed_callback;
156         wakeup_manager_set_wakeup_engine_command_callback                       set_wakeup_engine_command_callback;
157         wakeup_manager_set_wakeup_service_state_changed_callback        set_wakeup_service_state_changed_callback;
158         wakeup_manager_set_voice_key_status_changed_callback            set_voice_key_status_changed_callback;
159         wakeup_manager_set_loaded_engine_changed_callback                       set_loaded_engine_changed_callback;
160 } wakeup_manager_interface;
161
162 #endif /* __SERVICE_PLUGIN_INTERFACE_H__ */