• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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