2 * Copyright 2020 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 __SERVICE_PLUGIN_H__
19 #define __SERVICE_PLUGIN_H__
21 #include <tzplatform_config.h>
23 #include "service_common.h"
24 #include "service_ipc_dbus.h"
25 #include "service_plugin_interface.h"
29 class CServicePlugin {
32 virtual ~CServicePlugin() {};
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);
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);
79 bool is_ui_panel_enabled();
81 void set_service_ipc(CServiceIpcDbus* ipc) { mServiceIpc = ipc; }
82 CServiceIpcDbus* get_service_ipc() { return mServiceIpc; }
84 void set_service_main(CServiceMain* main) { mServiceMain = main; }
85 CServiceMain* get_service_main() { return mServiceMain; }
88 char mDumpFilename[128]{'\0', };
89 FILE* mDumpFile{NULL};
93 void* mPluginHandle{NULL};
95 wakeup_manager_interface mWakeupManagerInterface{NULL, };
96 ma_plugin_settings* mPluginSettings{NULL};
98 CServiceIpcDbus* mServiceIpc{nullptr};
99 CServiceMain* mServiceMain{nullptr};
102 #endif /* __SERVICE_PLUGIN_H__ */