2 * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (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://www.apache.org/licenses/LICENSE-2.0
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 __DEPENDENCY_AUDIO_MANAGER_H__
19 #define __DEPENDENCY_AUDIO_MANAGER_H__
21 #include <tzplatform_config.h>
22 #include <sound_manager.h>
24 #include <voice_control_manager.h>
30 /**************************************************************************************
31 *** Definitions for dependencies
32 *************************************************************************************/
33 #define VCD_DEPENDENCY_MODULE_DIRECTORY_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "voice/vc/1.0/dependency-audio-manager")
35 #define VCD_DEPENDENCY_DEFAULT_FILENAME "libaudio-manager-vd.so"
37 #define VCD_DEPENDENCY_DEFAULT_FILENAME "libvc-audio-manager.so"
39 #define VCD_DEPENDENCY_MODULE_NAME "db/voice/vc/dependency_module_name"
42 typedef int (*dependency_audio_manager_feed_audio_data)(const void* data, const unsigned int length);
45 #define VCD_DEPENDENCY_FUNC_INITIALIZE "vcd_dependency_initialize"
46 typedef int (*vcd_dependency_initialize)(sound_stream_info_h stream_info_h, dependency_audio_manager_feed_audio_data callback);
47 #define VCD_DEPENDENCY_FUNC_DEINITIALIZE "vcd_dependency_deinitialize"
48 typedef int (*vcd_dependency_deinitialize)(void);
49 #define VCD_DEPENDENCY_FUNC_SET_AUDIO_INFO "vcd_dependency_set_audio_info"
50 typedef int (*vcd_dependency_set_audio_info)(sound_stream_info_h stream_info_h, const char* audio_source_type, vce_audio_type_e type, int rate, int channel);
51 #define VCD_DEPENDENCY_FUNC_GET_AUDIO_SOURCE_TYPE "vcd_dependency_get_audio_source_type"
52 typedef int (*vcd_dependency_get_audio_source_type)(char** audio_source_type);
53 #define VCD_DEPENDENCY_FUNC_SET_STREAMING_MODE "vcd_dependency_set_streaming_mode"
54 typedef int (*vcd_dependency_set_streaming_mode)(vc_audio_streaming_mode_e mode);
55 #define VCD_DEPENDENCY_FUNC_START_RECORDING "vcd_dependency_start_recording"
56 typedef int (*vcd_dependency_start_recording)(void);
57 #define VCD_DEPENDENCY_FUNC_STOP_RECORDING "vcd_dependency_stop_recording"
58 typedef int (*vcd_dependency_stop_recording)(void);
62 vcd_dependency_initialize initialize;
63 vcd_dependency_deinitialize deinitialize;
64 vcd_dependency_set_audio_info set_audio_info;
65 vcd_dependency_get_audio_source_type get_audio_source_type;
66 vcd_dependency_set_streaming_mode set_streaming_mode;
67 vcd_dependency_start_recording start_recording;
68 vcd_dependency_stop_recording stop_recording;
69 } vcd_dependency_module_interface;
72 int dependency_audio_manager_initialize(sound_stream_info_h stream_info_h, dependency_audio_manager_feed_audio_data callback);
73 int dependency_audio_manager_deinitialize(void);
74 int dependency_audio_manager_set_audio_info(sound_stream_info_h stream_info_h, const char* audio_source_type, vce_audio_type_e type, int rate, int channel);
75 int dependency_audio_manager_get_audio_source_type(char** audio_source_type);
76 int dependency_audio_manager_set_streaming_mode(vc_audio_streaming_mode_e mode);
77 int dependency_audio_manager_start_recording(void);
78 int dependency_audio_manager_stop_recording(void);
85 #endif /* __DEPENDENCY_AUDIO_MANAGER_H__ */