1# Copyright (c) 2025 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/config/components/idl_tool/idl.gni") 15import("//foundation/multimedia/audio_framework/config.gni") 16 17audio_framework_root = "../../.." 18audio_policy_idl_location = "${audio_framework_root}/services/audio_policy/idl" 19 20idl_gen_interface("audio_service_idl_interface") { 21 sources = [ 22 "IAudioProcess.idl", 23 "ICoreServiceProviderIpc.idl", 24 "IIpcStream.idl", 25 "IIpcStreamListener.idl", 26 "IPolicyProviderIpc.idl", 27 "IProcessCb.idl", 28 "IStandardAudioServerManagerListener.idl", 29 "IStandardAudioService.idl", 30 ] 31 if (audio_framework_feature_offline_effect) { 32 sources += [ "IIpcOfflineStream.idl" ] 33 } 34 sources_callback = [] 35 sources_common = [ "AudioServiceTypes.idl" ] 36 37 # client_enable = true 38 log_tag = "AudioServiceIdl" 39 hitrace = "HITRACE_TAG_ZAUDIO" 40 41 log_domainid = "0xD002B8B" 42 43 subsystem_name = "multimedia" 44 part_name = "audio_framework" 45} 46 47idl_gen_interface("audio_policy_idl_interface") { 48 sources = [ 49 "${audio_policy_idl_location}/IAudioPolicy.idl", 50 "${audio_policy_idl_location}/IAudioPolicyClient.idl", 51 "${audio_policy_idl_location}/IAudioWorkgroupCallback.idl", 52 "${audio_policy_idl_location}/IStandardAudioAnahsManagerListener.idl", 53 "${audio_policy_idl_location}/IStandardAudioPolicyManagerListener.idl", 54 "${audio_policy_idl_location}/IStandardAudioRoutingManagerListener.idl", 55 "${audio_policy_idl_location}/IStandardAudioZoneClient.idl", 56 "${audio_policy_idl_location}/IStandardClientTracker.idl", 57 "${audio_policy_idl_location}/IStandardSleAudioOperationCallback.idl", 58 "${audio_policy_idl_location}/IStandardSpatializationStateChangeListener.idl", 59 ] 60 sources_callback = [] 61 sources_common = [] 62 63 log_tag = "AudioPolicyIdl" 64 hitrace = "HITRACE_TAG_ZAUDIO" 65 66 log_domainid = "0xD002B87" 67 68 subsystem_name = "multimedia" 69 part_name = "audio_framework" 70} 71 72config("audio_service_sa_idl_config") { 73 include_dirs = [ 74 "${target_gen_dir}", 75 "${audio_framework_root}/interfaces/inner_api/native/audiocommon/include/", 76 "${audio_framework_root}/services/audio_service/common/include/", 77 "${audio_framework_root}/frameworks/native/hdiadapter_new/include/common/", 78 ] 79} 80 81config("audio_policy_sa_idl_config") { 82 include_dirs = [ 83 "${target_gen_dir}", 84 "${audio_framework_root}/interfaces/inner_api/native/audiocommon/include/", 85 "${audio_framework_root}/interfaces/inner_api/native/audiomanager/include/", 86 "${audio_framework_root}/frameworks/native/audiodefinitions/include/", 87 "${audio_framework_root}/frameworks/native/audiopolicy/include/", 88 "${audio_framework_root}/interfaces/inner_api/native/audiomanager/include/", 89 ] 90} 91 92ohos_shared_library("audio_framework_interface") { 93 branch_protector_ret = "pac_ret" 94 95 public_configs = [ 96 ":audio_service_sa_idl_config", 97 ":audio_policy_sa_idl_config", 98 ] 99 100 cflags_cc = [ 101 "-fomit-frame-pointer", 102 "-fdata-sections", 103 "-ffunction-sections", 104 "-fno-unroll-loops", 105 "-fno-exceptions", 106 "-fno-unwind-tables", 107 "-fno-asynchronous-unwind-tables", 108 "-Os", 109 ] 110 111 output_values = get_target_outputs(":audio_service_idl_interface") 112 output_values += get_target_outputs(":audio_policy_idl_interface") 113 114 sources = [ 115 "${audio_framework_root}/frameworks/native/audiodefinitions/src/audio_stream_descriptor.cpp", 116 "${audio_framework_root}/services/audio_policy/server/domain/device/src/audio_device_descriptor.cpp", 117 "${audio_framework_root}/services/audio_policy/server/domain/volume/src/audio_volume_group_info.cpp", 118 "${audio_framework_root}/services/audio_service/client/src/audio_filter.cpp", 119 "${audio_framework_root}/services/audio_service/client/src/microphone_descriptor.cpp", 120 "${audio_framework_root}/services/audio_service/common/src/futex_tool.cpp", 121 "${audio_framework_root}/services/audio_service/common/src/oh_audio_buffer.cpp", 122 "${audio_framework_root}/services/audio_service/common/src/oh_audio_buffer_base.cpp", 123 ] 124 sources += filter_include(output_values, [ "*_proxy.cpp" ]) 125 sources += filter_include(output_values, [ "*stub.cpp" ]) 126 sources += filter_include(output_values, [ "*_types.cpp" ]) 127 128 deps = [ 129 ":audio_policy_idl_interface", 130 ":audio_service_idl_interface", 131 "${audio_framework_root}/frameworks/native/audioutils:audio_utils", 132 ] 133 134 external_deps = [ 135 "c_utils:utils", 136 "hilog:libhilog", 137 "hitrace:hitrace_meter", 138 "ipc:ipc_core", 139 "ipc:ipc_single", 140 "samgr:samgr_proxy", 141 ] 142 143 part_name = "audio_framework" 144 subsystem_name = "multimedia" 145 146 sanitize = { 147 cfi = true 148 cfi_cross_dso = true 149 debug = false 150 } 151} 152