3ee305f6c830dbf3d100cba231c108e8d6e39a4c
[platform/core/uifw/multi-assistant-service.git] / plugins / wakeup-manager / inc / wakeup_manager_wrapper.h
1 /*
2  * Copyright 2018-2019 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 _WAKEUP_MANAGER_WRAPPER_H_
19 #define _WAKEUP_MANAGER_WRAPPER_H_
20
21 #include <dlog.h>
22 #include <stdbool.h>
23 #include <tizen.h>
24 #include <tzplatform_config.h>
25
26 #include <multi_assistant_service.h>
27 #include <multi_assistant_internal.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 typedef enum {
34         WAKEUP_MANAGER_STATE_INACTIVE = 0,
35         WAKEUP_MANAGER_STATE_LISTENING = 1,
36         WAKEUP_MANAGER_STATE_UTTERANCE = 2,
37         WAKEUP_MANAGER_STATE_PROCESSING = 3,
38         WAKEUP_MANAGER_STATE_VOICE_FEEDBACK = 4
39 } wakeup_manager_state_e;
40
41 typedef void (*ma_audio_streaming_data_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data);
42
43 typedef void (*wakeup_service_wakeup_event_cb)(mas_wakeup_event_info wakeup_info, void* user_data);
44
45 typedef void (*wakeup_service_speech_streaming_cb)(mas_speech_streaming_event_e event, void* buffer, int len, void *user_data);
46
47 typedef void (*wakeup_service_speech_status_cb)(mas_speech_status_e status, void *user_data);
48
49 typedef void (*wakeup_service_setting_changed_cb)( void *user_data);
50
51 typedef void (*wakeup_service_error_cb)(int error, const char* err_msg, void* user_data);
52
53 typedef void (*wakeup_service_audio_data_require_status_cb)(bool require, void* user_data);
54
55 typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data);
56
57 typedef void (*wakeup_service_engine_command_cb)(mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data);
58
59 typedef void (*wakeup_service_state_changed_cb)(ma_service_state_e state, void* user_data);
60
61 typedef void (*wakeup_service_voice_key_status_changed_cb)(ma_voice_key_status_e state, void* user_data);
62
63 typedef struct {
64         int plugin_version;
65         bool ui_panel_enabled;
66 } ma_plugin_settings;
67
68 EXPORT_API int wakeup_manager_initialize(void);
69
70 EXPORT_API int wakeup_manager_deinitialize(void);
71
72 EXPORT_API int wakeup_manager_get_settings(ma_plugin_settings **settings, size_t *struct_size);
73
74 EXPORT_API int wakeup_manager_add_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language);
75
76 EXPORT_API int wakeup_manager_remove_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language);
77
78 EXPORT_API int wakeup_manager_add_assistant_language(const char* appid, const char* language);
79
80 EXPORT_API int wakeup_manager_add_assistant_wakeup_engine(const char* appid, const char *engine);
81
82 EXPORT_API int wakeup_manager_set_default_assistant(const char* appid);
83
84 EXPORT_API int wakeup_manager_get_default_assistant(const char** appid);
85
86 EXPORT_API int wakeup_manager_set_language(const char* language);
87
88 EXPORT_API int wakeup_manager_activate(void);
89
90 EXPORT_API int wakeup_manager_deactivate(void);
91
92 EXPORT_API int wakeup_manager_update_voice_feedback_state(const char *appid, int state);
93
94 EXPORT_API int wakeup_manager_set_assistant_specific_command(const char* appid, const char* command);
95
96 EXPORT_API int wakeup_manager_set_background_volume(const char *appid, double ratio);
97
98 EXPORT_API int wakeup_manager_update_recognition_result(const char *appid, int result);
99
100 EXPORT_API int wakeup_manager_process_plugin_event(mas_plugin_event_e event, void* data, int len);
101
102 EXPORT_API int wakeup_manager_start_streaming_utterance_data(void);
103
104 EXPORT_API int wakeup_manager_stop_streaming_utterance_data(void);
105
106 EXPORT_API int wakeup_manager_start_streaming_previous_utterance_data(void);
107
108 EXPORT_API int wakeup_manager_stop_streaming_previous_utterance_data(void);
109
110 EXPORT_API int wakeup_manager_start_streaming_follow_up_data(void);
111
112 EXPORT_API int wakeup_manager_stop_streaming_follow_up_data(void);
113
114 EXPORT_API int wakeup_manager_get_audio_format(int *rate, int *channel, int *audio_type);
115
116 EXPORT_API int wakeup_manager_get_audio_source_type(char** type);
117
118 EXPORT_API int wakeup_manager_set_voice_key_tap_duration(float duration);
119
120 EXPORT_API int wakeup_manager_unset_voice_key_tap_duration();
121
122 EXPORT_API int wakeup_manager_set_voice_key_support_mode(int mode);
123
124 EXPORT_API int wakeup_manager_set_wake_word_audio_require_flag(bool require);
125
126 EXPORT_API int wakeup_manager_set_assistant_language(const char* appid, const char *language);
127
128 EXPORT_API int wakeup_manager_set_wakeup_event_callback(wakeup_service_wakeup_event_cb callback, void* user_data);
129
130 EXPORT_API int wakeup_manager_set_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
131
132 EXPORT_API int wakeup_manager_set_previous_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
133
134 EXPORT_API int wakeup_manager_set_follow_up_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
135
136 EXPORT_API int wakeup_manager_set_speech_status_callback(wakeup_service_speech_status_cb callback, void* user_data);
137
138 EXPORT_API int wakeup_manager_set_setting_changed_callback(wakeup_service_setting_changed_cb callback, void* user_data);
139
140 EXPORT_API int wakeup_manager_set_error_callback(wakeup_service_error_cb callback, void* user_data);
141
142 EXPORT_API int wakeup_manager_set_streaming_section_changed_callback(wakeup_service_streaming_section_changed_cb callback, void* user_data);
143
144 EXPORT_API int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_engine_command_cb callback, void* user_data);
145
146 EXPORT_API int wakeup_manager_set_wakeup_service_state_changed_callback(wakeup_service_state_changed_cb callback, void* user_data);
147
148 EXPORT_API int wakeup_manager_set_voice_key_status_changed_callback(wakeup_service_voice_key_status_changed_cb callback, void* user_data);
149
150 /* Internal API declarations for dependency modules */
151
152 int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len);
153
154 int wakeup_manager_set_dependency_module_command(const char* engine_name, const char* command);
155
156 int wakeup_manager_wakeup_assistant(const mas_wakeup_event_info* wakeup_info);
157
158 #ifdef __cplusplus
159 }
160 #endif
161
162 #endif /* _WAKEUP_MANAGER_WRAPPER_H_ */