diff --git a/call/BUILD.gn b/call/BUILD.gn index e447d3765c..4b6da96ddd 100644 --- a/call/BUILD.gn +++ b/call/BUILD.gn @@ -316,6 +316,7 @@ if (rtc_include_tests) { "../logging:rtc_event_log_api", "../modules/audio_coding", "../modules/audio_device", + "../modules/audio_device:audio_device_impl", "../modules/audio_mixer:audio_mixer_impl", "../modules/rtp_rtcp", "../rtc_base:checks", diff --git a/media/BUILD.gn b/media/BUILD.gn index e49274230a..a9f8df8e37 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -348,6 +348,7 @@ rtc_static_library("rtc_audio_video") { "../call:video_stream_api", "../common_video:common_video", "../modules/audio_device:audio_device", + "../modules/audio_device:audio_device_impl", "../modules/audio_mixer:audio_mixer_impl", "../modules/audio_processing:audio_processing", "../modules/video_capture:video_capture_module", diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn index 211117608d..84d70ec7db 100644 --- a/modules/audio_device/BUILD.gn +++ b/modules/audio_device/BUILD.gn @@ -48,16 +48,21 @@ config("audio_device_warnings_config") { rtc_source_set("audio_device") { visibility = [ "*" ] public_deps = [ - ":audio_device_generic", + ":audio_device_api", + + # Deprecated. + # TODO(webrtc:7452): Remove this public dep. audio_device_impl should + # be depended on directly if needed. + ":audio_device_impl", ] - if (rtc_include_internal_audio_device && is_ios) { - public_deps += [ ":audio_device_ios_objc" ] - } } if (rtc_include_internal_audio_device && is_ios) { rtc_source_set("audio_device_ios_objc") { - visibility = [ ":audio_device" ] + visibility = [ + ":audio_device_impl", + ":audio_device_ios_objc_unittests", + ] sources = [ "ios/audio_device_ios.h", "ios/audio_device_ios.mm", @@ -77,6 +82,8 @@ if (rtc_include_internal_audio_device && is_ios) { "UIKit.framework", ] deps = [ + ":audio_device_api", + ":audio_device_buffer", ":audio_device_generic", "../../api:array_view", "../../rtc_base:checks", @@ -94,14 +101,81 @@ if (rtc_include_internal_audio_device && is_ios) { } } -rtc_source_set("audio_device_generic") { +rtc_source_set("audio_device_api") { visibility = [ ":audio_device", + ":audio_device_buffer", + ":audio_device_impl", ":audio_device_ios_objc", + ":audio_device_generic", ] + sources = [ + "include/audio_device.h", + "include/audio_device_defines.h", + ] + deps = [ + "../../:typedefs", + "../../rtc_base:checks", + "../../rtc_base:deprecation", + "../../rtc_base:rtc_base_approved", + ] + if (!build_with_chromium && is_clang) { + # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). + suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] + } +} + +rtc_source_set("audio_device_buffer") { + sources = [ + "audio_device_buffer.cc", + "audio_device_buffer.h", + "audio_device_config.h", + "fine_audio_buffer.cc", + "fine_audio_buffer.h", + ] + deps = [ + ":audio_device_api", + "../../:typedefs", + "../../api:array_view", + "../../common_audio:common_audio_c", + "../../rtc_base:checks", + "../../rtc_base:rtc_base_approved", + "../../rtc_base:rtc_task_queue", + "../../system_wrappers", + "../../system_wrappers:metrics_api", + ] + if (!build_with_chromium && is_clang) { + # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). + suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] + } +} + +rtc_source_set("audio_device_generic") { + sources = [ + "audio_device_generic.cc", + "audio_device_generic.h", + ] + deps = [ + ":audio_device_api", + ":audio_device_buffer", + "../../rtc_base:rtc_base_approved", + ] + if (!build_with_chromium && is_clang) { + # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). + suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] + } +} + +# Contains default implementations of webrtc::AudioDeviceModule for Windows, +# Linux, Mac, iOS and Android. +rtc_source_set("audio_device_impl") { + visibility = [ "*" ] public_configs = [ ":audio_device_config" ] deps = [ + ":audio_device_api", + ":audio_device_buffer", + ":audio_device_generic", "..:module_api", "../..:webrtc_common", "../../:typedefs", @@ -116,22 +190,15 @@ rtc_source_set("audio_device_generic") { "../../system_wrappers:metrics_api", "../utility", ] + if (rtc_include_internal_audio_device && is_ios) { + deps += [ ":audio_device_ios_objc" ] + } sources = [ - "audio_device_buffer.cc", - "audio_device_buffer.h", - "audio_device_config.h", - "audio_device_generic.cc", - "audio_device_generic.h", "dummy/audio_device_dummy.cc", "dummy/audio_device_dummy.h", "dummy/file_audio_device.cc", "dummy/file_audio_device.h", - "fine_audio_buffer.cc", - "fine_audio_buffer.h", - "include/audio_device.h", - "include/audio_device_default.h", - "include/audio_device_defines.h", "include/fake_audio_device.h", "include/test_audio_device.cc", "include/test_audio_device.h", @@ -308,6 +375,8 @@ rtc_source_set("mock_audio_device") { ] deps = [ ":audio_device", + ":audio_device_buffer", + ":audio_device_impl", "../../test:test_support", ] } @@ -324,6 +393,9 @@ if (rtc_include_tests) { ] deps = [ ":audio_device", + ":audio_device_buffer", + ":audio_device_impl", + ":audio_device_ios_objc", ":mock_audio_device", "../../rtc_base:rtc_base_approved", "../../sdk:audio_objc", @@ -347,6 +419,8 @@ if (rtc_include_tests) { ] deps = [ ":audio_device", + ":audio_device_buffer", + ":audio_device_impl", ":mock_audio_device", "../../api:array_view", "../../api:optional", diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn index b4faf0e45a..13abc70049 100644 --- a/rtc_tools/BUILD.gn +++ b/rtc_tools/BUILD.gn @@ -186,6 +186,7 @@ if (!build_with_chromium) { deps = [ "../modules/audio_device", + "../modules/audio_device:audio_device_impl", "../system_wrappers:system_wrappers_default", "//build/win:default_exe_manifest", ] diff --git a/test/BUILD.gn b/test/BUILD.gn index b866c63f82..d47e6bc25c 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -584,6 +584,7 @@ rtc_source_set("test_common") { "../media:rtc_internal_video_codecs", "../media:rtc_media_base", "../modules/audio_device", + "../modules/audio_device:audio_device_impl", "../modules/audio_device:mock_audio_device", "../modules/audio_mixer:audio_mixer_impl", "../modules/audio_processing",