69d081c0c9da8a8c9e5b319e2fe00493e0e857cd
[platform/core/uifw/multi-assistant-service.git] / inc / service_plugin.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_H__
19 #define __SERVICE_PLUGIN_H__
20
21 #include <tzplatform_config.h>
22
23 #include "service_common.h"
24 #include "service_ipc_dbus.h"
25 #include "service_plugin_interface.h"
26
27 class CServiceMain;
28
29 class CServicePlugin {
30 public:
31         CServicePlugin() {};
32         virtual ~CServicePlugin() {};
33
34         int initialize(void);
35         int deinitialize(void);
36         int get_settings(ma_plugin_settings **settings, size_t *struct_size);
37         int set_language(const char* language);
38         int add_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language);
39         int remove_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language);
40         int add_assistant_language(const char* appid, const char* language);
41         int add_assistant_wakeup_engine(const char* appid, const char* engine);
42         int set_default_assistant(const char* appid);
43         int get_default_assistant(const char** appid);
44         int activate(void);
45         int deactivate(void);
46         int update_voice_feedback_state(const char* appid, int state);
47         int set_assistant_specific_command(const char *appid, const char* command);
48         int set_background_volume(const char *appid, double ratio);
49         int update_recognition_result(const char* appid, int result);
50         int set_preprocessing_allow_mode(const char* appid, int mode, const char* preprocessing_appid);
51         int process_event(int event, void* data, int len);
52         int start_streaming_utterance_data(void);
53         int stop_streaming_utterance_data(void);
54         int start_streaming_previous_utterance_data(void);
55         int stop_streaming_previous_utterance_data(void);
56         int start_streaming_follow_up_data(void);
57         int stop_streaming_follow_up_data(void);
58         int get_recording_audio_format(int* rate, int* channel, int* audio_type);
59         int get_recording_audio_source_type(char **type);
60         int set_wake_word_audio_require_flag(const char* appid, bool require);
61         int set_assistant_language(const char* appid, const char* language);
62         int set_voice_key_support_mode(int mode);
63         int set_voice_key_tap_duration(float duration);
64         int unset_voice_key_tap_duration(void);
65         int set_callbacks(void);
66         int set_wakeup_event_callback(wakeup_service_wakeup_event_cb callback, void* user_data);
67         int set_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
68         int set_previous_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
69         int set_follow_up_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data);
70         int set_speech_status_callback(wakeup_service_speech_status_cb callback, void* user_data);
71         int set_setting_changed_callback(wakeup_service_setting_changed_cb callback, void* user_data);
72         int set_error_callback(wakeup_service_error_cb callback, void* user_data);
73         int set_streaming_section_changed_callback(wakeup_service_streaming_section_changed_cb callback, void* user_data);
74         int set_wakeup_engine_command_callback(wakeup_service_wakeup_engine_command_cb callback, void* user_data);
75         int set_wakeup_service_state_changed_callback(wakeup_service_wakeup_service_state_changed_cb callback, void* user_data);
76         int set_voice_key_status_changed_callback(wakeup_service_voice_key_status_changed_cb callback, void* user_data);
77         int set_loaded_engine_changed_callback(wakeup_service_loaded_engine_changed_cb callback, void* user_data);
78
79         bool is_ui_panel_enabled();
80
81         void set_service_ipc(CServiceIpcDbus* ipc) { mServiceIpc = ipc; }
82         CServiceIpcDbus* get_service_ipc() { return mServiceIpc; }
83
84     void set_service_main(CServiceMain* main) { mServiceMain = main; }
85     CServiceMain* get_service_main() { return mServiceMain; }
86 private:
87 #ifdef BUF_SAVE_MODE
88         char mDumpFilename[128]{'\0', };
89         FILE* mDumpFile{NULL};
90         int mDumpCount{1};
91 #endif
92
93         void* mPluginHandle{NULL};
94
95         wakeup_manager_interface mWakeupManagerInterface{NULL, };
96         ma_plugin_settings* mPluginSettings{NULL};
97
98         CServiceIpcDbus* mServiceIpc{nullptr};
99     CServiceMain* mServiceMain{nullptr};
100 };
101
102 #endif /* __SERVICE_PLUGIN_H__ */