1# Copyright (c) 2022-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/ohos.gni") 15import("../../../av_session_ohos_sources.gni") 16import("../../../castplus_cast_engine_part.gni") 17import("../../../config.gni") 18 19config("avsession_client_config") { 20 include_dirs = [ 21 "include", 22 "../../../interfaces/inner_api/native/session/include", 23 "../../../services/session/ipc/base", 24 "../../../services/session/ipc/proxy", 25 "../../../services/session/ipc/stub", 26 ] 27} 28 29ohos_shared_library("avsession_client") { 30 install_enable = true 31 ipc_sources = [ 32 "../../../services/session/ipc/proxy/avsession_controller_proxy.cpp", 33 "../../../services/session/ipc/proxy/avsession_proxy.cpp", 34 "../../../services/session/ipc/proxy/avsession_service_proxy.cpp", 35 ] 36 37 client_sources = [ 38 "src/avcontroller_callback_client.cpp", 39 "src/avsession_callback_client.cpp", 40 "src/avsession_manager.cpp", 41 "src/avsession_manager_impl.cpp", 42 "src/session_listener_client.cpp", 43 ] 44 45 common_sources = [ 46 "../../../frameworks/common/src/av_cast_info.cpp", 47 "../../../frameworks/common/src/av_data_src_descriptor.cpp", 48 "../../../frameworks/common/src/av_file_descriptor.cpp", 49 "../../../frameworks/common/src/av_shared_memory_base.cpp", 50 "../../../frameworks/common/src/avcall_meta_data.cpp", 51 "../../../frameworks/common/src/avcall_state.cpp", 52 "../../../frameworks/common/src/avcast_control_command.cpp", 53 "../../../frameworks/common/src/avcast_player_state.cpp", 54 "../../../frameworks/common/src/avcontrol_command.cpp", 55 "../../../frameworks/common/src/avmedia_description.cpp", 56 "../../../frameworks/common/src/avmeta_data.cpp", 57 "../../../frameworks/common/src/avplayback_state.cpp", 58 "../../../frameworks/common/src/avqueue_info.cpp", 59 "../../../frameworks/common/src/avqueue_item.cpp", 60 "../../../frameworks/common/src/avsession_descriptor.cpp", 61 "../../../frameworks/common/src/avsession_pixel_map.cpp", 62 "../../../frameworks/common/src/media_info.cpp", 63 "../../../frameworks/common/src/media_info_holder.cpp", 64 ] 65 66 sanitize = { 67 cfi = true 68 cfi_cross_dso = true 69 debug = false 70 } 71 72 sources = ipc_sources + client_sources + common_sources 73 74 public_configs = [ 75 ":avsession_client_config", 76 "../../../services/session:avsession_ipc_config", 77 ] 78 79 deps = [ 80 "../../common:avsession_common", 81 "../../../services/session:libidl_avsession_service_interface_stub", 82 "../../../services/session:libidl_avsession_service_interface_proxy", 83 "../../../utils:avsession_utils", 84 "../session:avsession_cast_client", 85 ] 86 87 external_deps = [ 88 "ability_base:want", 89 "ability_runtime:wantagent_innerkits", 90 "audio_framework:audio_foundation", 91 "c_utils:utils", 92 "hilog:libhilog", 93 "input:libmmi-client", 94 "ipc:ipc_single", 95 "samgr:samgr_proxy", 96 ] 97 98 cflags = [] 99 100 if (castplus_cast_engine_enable) { 101 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 102 } 103 104 if (multimedia_av_session_enable_trace_control) { 105 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 106 external_deps += [ "hitrace:hitrace_meter" ] 107 } 108 if (multimedia_av_session_enable_sysevent_control) { 109 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 110 external_deps += [ "hisysevent:libhisysevent" ] 111 } 112 113 if (av_session_enable_start_stop_on_demand) { 114 cflags += [ "-DSTART_STOP_ON_DEMAND_ENABLE" ] 115 } 116 117 innerapi_tags = [ "platformsdk" ] 118 subsystem_name = "multimedia" 119 part_name = "av_session" 120} 121 122ohos_static_library("avsession_client_static") { 123 #install_enable = true 124 ipc_sources = [ 125 "../../../services/session/ipc/proxy/avsession_controller_proxy.cpp", 126 "../../../services/session/ipc/proxy/avsession_proxy.cpp", 127 "../../../services/session/ipc/proxy/avsession_service_proxy.cpp", 128 ] 129 130 client_sources = [ 131 "src/avcontroller_callback_client.cpp", 132 "src/avsession_callback_client.cpp", 133 "src/avsession_manager.cpp", 134 "src/avsession_manager_impl.cpp", 135 "src/session_listener_client.cpp", 136 ] 137 138 sanitize = { 139 cfi = true 140 cfi_cross_dso = true 141 debug = false 142 } 143 144 sources = ipc_sources + client_sources 145 146 public_configs = [ 147 ":avsession_client_config", 148 "../../../services/session:avsession_ipc_config", 149 ] 150 151 deps = [ 152 "../../../services/session:libidl_avsession_service_interface_stub", 153 "../../../services/session:libidl_avsession_service_interface_proxy", 154 ] 155 156 deps += [ 157 "../../common:avsession_common", 158 "../../../utils:avsession_utils", 159 ] 160 161 external_deps = [ 162 "ability_base:want", 163 "ability_runtime:wantagent_innerkits", 164 "audio_framework:audio_foundation", 165 "c_utils:utils", 166 "hilog:libhilog", 167 "input:libmmi-client", 168 "ipc:ipc_single", 169 "samgr:samgr_proxy", 170 ] 171 172 cflags = [] 173 174 if (castplus_cast_engine_enable) { 175 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 176 deps += [ "./../session:avsession_cast_client" ] 177 } 178 179 if (multimedia_av_session_enable_trace_control) { 180 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 181 external_deps += [ "hitrace:hitrace_meter" ] 182 } 183 if (multimedia_av_session_enable_sysevent_control) { 184 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 185 external_deps += [ "hisysevent:libhisysevent" ] 186 } 187 188 if (av_session_enable_start_stop_on_demand) { 189 cflags += [ "-DSTART_STOP_ON_DEMAND_ENABLE" ] 190 } 191 192 subsystem_name = "multimedia" 193 part_name = "av_session" 194} 195 196ohos_shared_library("avsession_cast_client") { 197 install_enable = true 198 sanitize = { 199 cfi = true 200 cfi_cross_dso = true 201 debug = false 202 } 203 ipc_sources = [ 204 "../../../services/session/ipc/proxy/avcast_controller_proxy.cpp", 205 ] 206 207 client_sources = [ "src/avcast_controller_callback_client.cpp" ] 208 209 sources = ipc_sources + client_sources 210 211 public_configs = [ 212 ":avsession_client_config", 213 "../../../services/session:avsession_ipc_config", 214 ] 215 216 public_deps = [ 217 "../../../utils:avsession_utils", 218 "../../common:avsession_common", 219 ] 220 221 deps = [ 222 "../../../services/session:libidl_avsession_service_interface_stub", 223 "../../../services/session:libidl_avsession_service_interface_proxy", 224 ] 225 226 external_deps = [ 227 "ability_base:want", 228 "ability_runtime:wantagent_innerkits", 229 "audio_framework:audio_client", 230 "c_utils:utils", 231 "graphic_surface:surface", 232 "hilog:libhilog", 233 "image_framework:image_native", 234 "input:libmmi-client", 235 "ipc:ipc_single", 236 "samgr:samgr_proxy", 237 ] 238 239 cflags = [] 240 241 if (multimedia_av_session_enable_trace_control) { 242 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 243 external_deps += [ "hitrace:hitrace_meter" ] 244 } 245 246 if (multimedia_av_session_enable_sysevent_control) { 247 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 248 external_deps += [ "hisysevent:libhisysevent" ] 249 } 250 251 innerapi_tags = [ "platformsdk" ] 252 subsystem_name = "multimedia" 253 part_name = "av_session" 254} 255