# Copyright (C) 2022-2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

declare_args() {
  player_framework_support_player = true
  player_framework_support_recorder = true
  player_framework_support_transcoder = true
  player_framework_support_player_js_api9 = true
  player_framework_support_recorder_js_api9 = true
  player_framework_support_metadata = true
  player_framework_support_histreamer = true
  player_framework_support_video = true
  player_framework_support_jsapi = true
  player_framework_support_capi = true
  player_framework_support_test = true
  player_framework_support_xcollie = true
  player_framework_support_jsstack = true
  player_framework_support_seccomp = false
  player_framework_support_screen_capture = true
  player_framework_support_screen_capture_stopbycall = false
  player_framework_support_screen_capture_controller = false
  player_framework_feature_pc_select_window = false
  player_framework_feature_phone_pad_select_window = false
  player_framework_support_jssoundpool = true
  player_framework_support_mediasource = true
  player_framework_support_auto_create_file = false
  player_framework_check_video_is_hdr_vivid = false
  player_framework_enable_start_stop_on_demand = false
  player_framework_support_lowpower_av_sink = false
  player_framework_support_media_madvise = false
  player_framework_support_avdownloader = true
  player_framework_support_audio_convert = false
  drivers_interface_lpplayer_flag = false
  if (defined(build_seccomp) && build_seccomp) {
    player_framework_support_seccomp = true
  }
  if (defined(global_parts_info) &&
      defined(global_parts_info.telephony_core_service)) {
    player_framework_support_screen_capture_stopbycall = true
  }
  if (defined(global_parts_info) &&
      defined(global_parts_info.multimedia_camera_framework) &&
      defined(global_parts_info.multimedia_media_library)) {
    player_framework_support_auto_create_file = true
  }
  player_framework_support_monitor = true
  use_memmgr_plugin = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.resourceschedule_memmgr_override)) {
    use_memmgr_plugin = true
  }
  use_memmgr = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.resourceschedule_memmgr)) {
    use_memmgr = true
  }
  player_framework_support_avsession_background = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.multimedia_av_session)) {
    player_framework_support_avsession_background = true
  }
  player_framework_support_drm = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.multimedia_drm_framework)) {
    player_framework_support_drm = true
  }
  player_framework_support_vibrator = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.sensors_miscdevice)) {
    player_framework_support_vibrator = true
  }
  player_framework_support_power_manager = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.powermgr_power_manager)) {
    player_framework_support_power_manager = true
  }
  player_framework_support_json = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.third_party_json)) {
    player_framework_support_json = true
  }
  player_framework_support_efficiency_manager = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.resourceschedule_efficiency_manager)) {
    player_framework_support_efficiency_manager = true
  }
  player_framework_support_hiappevent = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.hiviewdfx_hiappevent)) {
    player_framework_support_hiappevent = true
  }
  player_framework_support_drivers_interface_camera = false
  if (defined(global_parts_info) &&
      defined(global_parts_info.drivers_interface_camera)) {
    player_framework_support_drivers_interface_camera = true
  }
}

player_framework_support_libcurl = true
if (defined(global_parts_info) &&
    defined(global_parts_info.multimedia_histreamer_ext)) {
  player_framework_support_libcurl = false
}

player_framework_support_lowpower_av_defines = []

if (player_framework_support_lowpower_av_sink &&
    drivers_interface_lpplayer_flag) {
  player_framework_support_lowpower_av_defines +=
      [ "SUPPORT_DRIVERS_INTERFACE_LPPLAYER" ]
}

player_framework_defines = []

if (player_framework_support_player) {
  player_framework_defines += [ "SUPPORT_PLAYER" ]
} else {
  player_framework_defines += [ "UNSUPPORT_PLAYER" ]
}

if (player_framework_support_lowpower_av_sink) {
  player_framework_defines += [ "SUPPORT_LPP" ]
  player_framework_defines += [ "SUPPORT_LPP_AUDIO_STRAMER" ]
  player_framework_defines += [ "SUPPORT_LPP_VIDEO_STRAMER" ]
  if (drivers_interface_lpplayer_flag) {
    player_framework_defines += [ "SUPPORT_DRIVERS_INTERFACE_LPPLAYER" ]
  }
} else {
  player_framework_defines += [ "UNSUPPORT_LPP_AUDIO_STRAMER" ]
  player_framework_defines += [ "UNSUPPORT_LPP_VIDEO_STRAMER" ]
  player_framework_defines += [ "UNSUPPORT_LPP" ]
}

if (player_framework_support_player_js_api9) {
  player_framework_defines += [ "SUPPORT_PLAYER_API9" ]
}

if (player_framework_support_avsession_background) {
  player_framework_defines += [ "SUPPORT_AVSESSION" ]
}

if (player_framework_support_recorder_js_api9) {
  player_framework_defines += [ "SUPPORT_RECORDER_API9" ]
}

if (player_framework_support_recorder) {
  player_framework_defines += [ "SUPPORT_RECORDER" ]
} else {
  player_framework_defines += [ "UNSUPPORT_RECORDER" ]
}

if (player_framework_support_transcoder) {
  player_framework_defines += [ "SUPPORT_TRANSCODER" ]
} else {
  player_framework_defines += [ "UNSUPPORT_TRANSCODER" ]
}

if (player_framework_support_metadata) {
  player_framework_defines += [ "SUPPORT_METADATA" ]
} else {
  player_framework_defines += [ "UNSUPPORT_METADATA" ]
}

if (player_framework_support_video) {
  player_framework_defines += [ "SUPPORT_VIDEO" ]
} else {
  player_framework_defines += [ "SUPPORT_AUDIO_ONLY" ]
}

if (player_framework_support_xcollie) {
  player_framework_defines += [ "HICOLLIE_ENABLE" ]
}

if (player_framework_support_jsstack) {
  player_framework_defines += [ "SUPPORT_JSSTACK" ]
}

if (use_memmgr_plugin || use_memmgr) {
  player_framework_defines += [ "PLAYER_USE_MEMORY_MANAGE" ]
}

if (player_framework_support_monitor) {
  player_framework_defines += [ "USE_MONITOR" ]
}

if (player_framework_support_screen_capture) {
  player_framework_defines += [ "SUPPORT_SCREEN_CAPTURE" ]
} else {
  player_framework_defines += [ "UNSUPPORT_SCREEN_CAPTURE" ]
}

if (player_framework_support_screen_capture_controller) {
  player_framework_defines += [ "SUPPORT_SCREEN_CAPTURE_WINDOW_NOTIFICATION" ]
}

if (player_framework_support_jssoundpool) {
  player_framework_defines += [ "SUPPORT_SOUND_POOL" ]
} else {
  player_framework_defines += [ "UNSUPPORT_SOUND_POOL" ]
}

if (player_framework_support_drm) {
  player_framework_defines += [ "SUPPORT_AVPLAYER_DRM" ]
} else {
  player_framework_defines += [ "UNSUPPORT_AVPLAYER_DRM" ]
}

if (player_framework_support_vibrator) {
  player_framework_defines += [ "SUPPORT_VIBRATOR" ]
} else {
  player_framework_defines += [ "UNSUPPORT_VIBRATOR" ]
}

if (player_framework_support_power_manager) {
  player_framework_defines += [ "SUPPORT_POWER_MANAGER" ]
}

if (player_framework_support_efficiency_manager) {
  player_framework_defines += [ "USE_EFFICIENCY_MANAGER" ]
}

if (player_framework_support_mediasource) {
  player_framework_defines += [ "SUPPORT_MEDIA_SOURCE" ]
}

if (player_framework_support_auto_create_file) {
  player_framework_defines += [ "SUPPORT_RECORDER_CREATE_FILE" ]
}

if (player_framework_support_json) {
  player_framework_defines += [ "SUPPORT_JSON" ]
}

if (player_framework_enable_start_stop_on_demand) {
  player_framework_defines += [ "SUPPORT_START_STOP_ON_DEMAND" ]
}

if (player_framework_support_screen_capture_stopbycall) {
  player_framework_defines += [ "SUPPORT_CALL" ]
}

if (player_framework_support_hiappevent) {
  player_framework_defines += [ "SUPPORT_HIAPPEVENT" ]
}

if (player_framework_support_drivers_interface_camera) {
  player_framework_defines += [ "SUPPORT_DRIVER_INTERFACE_CAMERA" ]
}

if (player_framework_feature_pc_select_window ||
    player_framework_feature_phone_pad_select_window) {
  player_framework_defines += [ "SUPPORT_SCREEN_CAPTURE_PICKER" ]
}

if (player_framework_support_media_madvise) {
  player_framework_defines += [ "SUPPORT_MEDIA_MADVISE" ]
}

if (player_framework_support_avdownloader) {
  player_framework_defines += [ "SUPPORT_AVDOWNLOADER" ]
}

# Config path
MEDIA_PLAYER_ROOT_DIR = "//foundation/multimedia/player_framework"
MEDIA_PLAYER_AVCODEC = "//foundation/multimedia/av_codec"
MEDIA_PLAYER_HISTREAMER = "//foundation/multimedia/media_foundation"

MEDIA_PLAYER_C_UTILS = "//commonlibrary/c_utils"
MEDIA_PLAYER_GRAPHIC = "//foundation/graphic/graphic_2d"
MEDIA_PLAYER_GRAPHIC_SURFACE = "//foundation/graphic/graphic_surface"
MEDIA_DRM_ROOT_DIR = "//foundation/multimedia/drm_framework"

# Fuzz test output path.
MODULE_OUTPUT_PATH = "player_framework/player_framework"
MODULE_SCREENCAPTURE_OUTPUT_PATH = "player_framework/ScreenCapture"