180922886Sopenharmony_ci# Copyright (c) 2022-2023 Huawei Device Co., Ltd.
280922886Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
380922886Sopenharmony_ci# you may not use this file except in compliance with the License.
480922886Sopenharmony_ci# You may obtain a copy of the License at
580922886Sopenharmony_ci#
680922886Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
780922886Sopenharmony_ci#
880922886Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
980922886Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1080922886Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1180922886Sopenharmony_ci# See the License for the specific language governing permissions and
1280922886Sopenharmony_ci# limitations under the License.
1380922886Sopenharmony_ci
1480922886Sopenharmony_ciimport("//build/ohos.gni")
1580922886Sopenharmony_ciimport("../../../castplus_cast_engine_part.gni")
1680922886Sopenharmony_ciimport("../../../config.gni")
1780922886Sopenharmony_ci
1880922886Sopenharmony_ciconfig("avsession_client_config") {
1980922886Sopenharmony_ci  include_dirs = [
2080922886Sopenharmony_ci    "include",
2180922886Sopenharmony_ci    "../../../interfaces/inner_api/native/session/include",
2280922886Sopenharmony_ci    "../../../services/session/ipc/base",
2380922886Sopenharmony_ci    "../../../services/session/ipc/proxy",
2480922886Sopenharmony_ci    "../../../services/session/ipc/stub",
2580922886Sopenharmony_ci  ]
2680922886Sopenharmony_ci}
2780922886Sopenharmony_ci
2880922886Sopenharmony_ciohos_shared_library("avsession_client") {
2980922886Sopenharmony_ci  install_enable = true
3080922886Sopenharmony_ci  ipc_sources = [
3180922886Sopenharmony_ci    "../../../services/session/ipc/proxy/avsession_controller_proxy.cpp",
3280922886Sopenharmony_ci    "../../../services/session/ipc/proxy/avsession_proxy.cpp",
3380922886Sopenharmony_ci    "../../../services/session/ipc/proxy/avsession_service_proxy.cpp",
3480922886Sopenharmony_ci    "../../../services/session/ipc/stub/avcontroller_callback_stub.cpp",
3580922886Sopenharmony_ci    "../../../services/session/ipc/stub/avsession_callback_stub.cpp",
3680922886Sopenharmony_ci    "../../../services/session/ipc/stub/session_listener_stub.cpp",
3780922886Sopenharmony_ci  ]
3880922886Sopenharmony_ci
3980922886Sopenharmony_ci  client_sources = [
4080922886Sopenharmony_ci    "src/avcontroller_callback_client.cpp",
4180922886Sopenharmony_ci    "src/avsession_callback_client.cpp",
4280922886Sopenharmony_ci    "src/avsession_manager.cpp",
4380922886Sopenharmony_ci    "src/avsession_manager_impl.cpp",
4480922886Sopenharmony_ci    "src/avsession_pixel_map_adapter.cpp",
4580922886Sopenharmony_ci    "src/session_listener_client.cpp",
4680922886Sopenharmony_ci  ]
4780922886Sopenharmony_ci
4880922886Sopenharmony_ci  sanitize = {
4980922886Sopenharmony_ci    cfi = true
5080922886Sopenharmony_ci    cfi_cross_dso = true
5180922886Sopenharmony_ci    debug = false
5280922886Sopenharmony_ci  }
5380922886Sopenharmony_ci
5480922886Sopenharmony_ci  sources = ipc_sources + client_sources
5580922886Sopenharmony_ci
5680922886Sopenharmony_ci  public_configs = [ ":avsession_client_config" ]
5780922886Sopenharmony_ci
5880922886Sopenharmony_ci  public_deps = [
5980922886Sopenharmony_ci    "../../../utils:avsession_utils",
6080922886Sopenharmony_ci    "../../common:avsession_common",
6180922886Sopenharmony_ci  ]
6280922886Sopenharmony_ci
6380922886Sopenharmony_ci  external_deps = [
6480922886Sopenharmony_ci    "ability_base:want",
6580922886Sopenharmony_ci    "ability_runtime:wantagent_innerkits",
6680922886Sopenharmony_ci    "audio_framework:audio_client",
6780922886Sopenharmony_ci    "c_utils:utils",
6880922886Sopenharmony_ci    "hilog:libhilog",
6980922886Sopenharmony_ci    "image_framework:image_native",
7080922886Sopenharmony_ci    "input:libmmi-client",
7180922886Sopenharmony_ci    "ipc:ipc_single",
7280922886Sopenharmony_ci    "samgr:samgr_proxy",
7380922886Sopenharmony_ci  ]
7480922886Sopenharmony_ci
7580922886Sopenharmony_ci  cflags = []
7680922886Sopenharmony_ci
7780922886Sopenharmony_ci  if (castplus_cast_engine_enable) {
7880922886Sopenharmony_ci    cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ]
7980922886Sopenharmony_ci    public_deps += [ "./../session:avsession_cast_client" ]
8080922886Sopenharmony_ci  }
8180922886Sopenharmony_ci
8280922886Sopenharmony_ci  if (multimedia_av_session_enable_trace_control) {
8380922886Sopenharmony_ci    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
8480922886Sopenharmony_ci    external_deps += [ "hitrace:hitrace_meter" ]
8580922886Sopenharmony_ci  }
8680922886Sopenharmony_ci  if (multimedia_av_session_enable_sysevent_control) {
8780922886Sopenharmony_ci    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
8880922886Sopenharmony_ci    external_deps += [ "hisysevent:libhisysevent" ]
8980922886Sopenharmony_ci  }
9080922886Sopenharmony_ci
9180922886Sopenharmony_ci  innerapi_tags = [ "platformsdk" ]
9280922886Sopenharmony_ci  subsystem_name = "multimedia"
9380922886Sopenharmony_ci  part_name = "av_session"
9480922886Sopenharmony_ci}
9580922886Sopenharmony_ci
9680922886Sopenharmony_ciohos_shared_library("avsession_cast_client") {
9780922886Sopenharmony_ci  install_enable = true
9880922886Sopenharmony_ci  sanitize = {
9980922886Sopenharmony_ci    cfi = true
10080922886Sopenharmony_ci    cfi_cross_dso = true
10180922886Sopenharmony_ci    debug = false
10280922886Sopenharmony_ci  }
10380922886Sopenharmony_ci  ipc_sources = [
10480922886Sopenharmony_ci    "../../../services/session/ipc/proxy/avcast_controller_proxy.cpp",
10580922886Sopenharmony_ci    "../../../services/session/ipc/stub/avcast_controller_callback_stub.cpp",
10680922886Sopenharmony_ci  ]
10780922886Sopenharmony_ci
10880922886Sopenharmony_ci  client_sources = [ "src/avcast_controller_callback_client.cpp" ]
10980922886Sopenharmony_ci
11080922886Sopenharmony_ci  sources = ipc_sources + client_sources
11180922886Sopenharmony_ci
11280922886Sopenharmony_ci  public_configs = [ ":avsession_client_config" ]
11380922886Sopenharmony_ci
11480922886Sopenharmony_ci  public_deps = [
11580922886Sopenharmony_ci    "../../../utils:avsession_utils",
11680922886Sopenharmony_ci    "../../common:avsession_common",
11780922886Sopenharmony_ci  ]
11880922886Sopenharmony_ci
11980922886Sopenharmony_ci  external_deps = [
12080922886Sopenharmony_ci    "ability_base:want",
12180922886Sopenharmony_ci    "ability_runtime:wantagent_innerkits",
12280922886Sopenharmony_ci    "audio_framework:audio_client",
12380922886Sopenharmony_ci    "c_utils:utils",
12480922886Sopenharmony_ci    "graphic_surface:surface",
12580922886Sopenharmony_ci    "hilog:libhilog",
12680922886Sopenharmony_ci    "image_framework:image_native",
12780922886Sopenharmony_ci    "input:libmmi-client",
12880922886Sopenharmony_ci    "ipc:ipc_single",
12980922886Sopenharmony_ci    "samgr:samgr_proxy",
13080922886Sopenharmony_ci  ]
13180922886Sopenharmony_ci
13280922886Sopenharmony_ci  cflags = []
13380922886Sopenharmony_ci
13480922886Sopenharmony_ci  if (multimedia_av_session_enable_trace_control) {
13580922886Sopenharmony_ci    cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ]
13680922886Sopenharmony_ci    external_deps += [ "hitrace:hitrace_meter" ]
13780922886Sopenharmony_ci  }
13880922886Sopenharmony_ci
13980922886Sopenharmony_ci  if (multimedia_av_session_enable_sysevent_control) {
14080922886Sopenharmony_ci    cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ]
14180922886Sopenharmony_ci    external_deps += [ "hisysevent:libhisysevent" ]
14280922886Sopenharmony_ci  }
14380922886Sopenharmony_ci
14480922886Sopenharmony_ci  innerapi_tags = [ "platformsdk" ]
14580922886Sopenharmony_ci  subsystem_name = "multimedia"
14680922886Sopenharmony_ci  part_name = "av_session"
14780922886Sopenharmony_ci}
148