1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2*d9f75844SAndroid Build Coastguard Worker# 3*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license 4*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source 5*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found 6*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS. All contributing project authors may 7*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree. 8*d9f75844SAndroid Build Coastguard Worker 9*d9f75844SAndroid Build Coastguard Workerimport("../../webrtc.gni") 10*d9f75844SAndroid Build Coastguard Worker 11*d9f75844SAndroid Build Coastguard Workerif (is_android) { 12*d9f75844SAndroid Build Coastguard Worker import("//build/config/android/config.gni") 13*d9f75844SAndroid Build Coastguard Worker import("//build/config/android/rules.gni") 14*d9f75844SAndroid Build Coastguard Worker} 15*d9f75844SAndroid Build Coastguard Worker 16*d9f75844SAndroid Build Coastguard Workerconfig("audio_device_warnings_config") { 17*d9f75844SAndroid Build Coastguard Worker if (is_win && is_clang) { 18*d9f75844SAndroid Build Coastguard Worker cflags = [ 19*d9f75844SAndroid Build Coastguard Worker # Disable warnings failing when compiling with Clang on Windows. 20*d9f75844SAndroid Build Coastguard Worker # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366 21*d9f75844SAndroid Build Coastguard Worker "-Wno-microsoft-goto", 22*d9f75844SAndroid Build Coastguard Worker ] 23*d9f75844SAndroid Build Coastguard Worker } 24*d9f75844SAndroid Build Coastguard Worker} 25*d9f75844SAndroid Build Coastguard Worker 26*d9f75844SAndroid Build Coastguard Workerrtc_source_set("audio_device_default") { 27*d9f75844SAndroid Build Coastguard Worker visibility = [ "*" ] 28*d9f75844SAndroid Build Coastguard Worker sources = [ "include/audio_device_default.h" ] 29*d9f75844SAndroid Build Coastguard Worker deps = [ ":audio_device_api" ] 30*d9f75844SAndroid Build Coastguard Worker} 31*d9f75844SAndroid Build Coastguard Worker 32*d9f75844SAndroid Build Coastguard Workerrtc_source_set("audio_device") { 33*d9f75844SAndroid Build Coastguard Worker visibility = [ "*" ] 34*d9f75844SAndroid Build Coastguard Worker public_deps = [ 35*d9f75844SAndroid Build Coastguard Worker ":audio_device_api", 36*d9f75844SAndroid Build Coastguard Worker 37*d9f75844SAndroid Build Coastguard Worker # Deprecated. 38*d9f75844SAndroid Build Coastguard Worker # TODO(webrtc:7452): Remove this public dep. audio_device_impl should 39*d9f75844SAndroid Build Coastguard Worker # be depended on directly if needed. 40*d9f75844SAndroid Build Coastguard Worker ":audio_device_impl", 41*d9f75844SAndroid Build Coastguard Worker ] 42*d9f75844SAndroid Build Coastguard Worker} 43*d9f75844SAndroid Build Coastguard Worker 44*d9f75844SAndroid Build Coastguard Workerrtc_source_set("audio_device_api") { 45*d9f75844SAndroid Build Coastguard Worker visibility = [ "*" ] 46*d9f75844SAndroid Build Coastguard Worker sources = [ 47*d9f75844SAndroid Build Coastguard Worker "include/audio_device.h", 48*d9f75844SAndroid Build Coastguard Worker "include/audio_device_defines.h", 49*d9f75844SAndroid Build Coastguard Worker ] 50*d9f75844SAndroid Build Coastguard Worker deps = [ 51*d9f75844SAndroid Build Coastguard Worker "../../api:scoped_refptr", 52*d9f75844SAndroid Build Coastguard Worker "../../api/task_queue", 53*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:checks", 54*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:refcount", 55*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:stringutils", 56*d9f75844SAndroid Build Coastguard Worker ] 57*d9f75844SAndroid Build Coastguard Worker} 58*d9f75844SAndroid Build Coastguard Worker 59*d9f75844SAndroid Build Coastguard Workerrtc_library("audio_device_buffer") { 60*d9f75844SAndroid Build Coastguard Worker sources = [ 61*d9f75844SAndroid Build Coastguard Worker "audio_device_buffer.cc", 62*d9f75844SAndroid Build Coastguard Worker "audio_device_buffer.h", 63*d9f75844SAndroid Build Coastguard Worker "audio_device_config.h", 64*d9f75844SAndroid Build Coastguard Worker "fine_audio_buffer.cc", 65*d9f75844SAndroid Build Coastguard Worker "fine_audio_buffer.h", 66*d9f75844SAndroid Build Coastguard Worker ] 67*d9f75844SAndroid Build Coastguard Worker deps = [ 68*d9f75844SAndroid Build Coastguard Worker ":audio_device_api", 69*d9f75844SAndroid Build Coastguard Worker "../../api:array_view", 70*d9f75844SAndroid Build Coastguard Worker "../../api:sequence_checker", 71*d9f75844SAndroid Build Coastguard Worker "../../api/task_queue", 72*d9f75844SAndroid Build Coastguard Worker "../../common_audio:common_audio_c", 73*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:buffer", 74*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:checks", 75*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:event_tracer", 76*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:logging", 77*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:macromagic", 78*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:rtc_task_queue", 79*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:safe_conversions", 80*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:timestamp_aligner", 81*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:timeutils", 82*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/synchronization:mutex", 83*d9f75844SAndroid Build Coastguard Worker "../../system_wrappers", 84*d9f75844SAndroid Build Coastguard Worker "../../system_wrappers:metrics", 85*d9f75844SAndroid Build Coastguard Worker ] 86*d9f75844SAndroid Build Coastguard Worker} 87*d9f75844SAndroid Build Coastguard Worker 88*d9f75844SAndroid Build Coastguard Workerrtc_library("audio_device_generic") { 89*d9f75844SAndroid Build Coastguard Worker sources = [ 90*d9f75844SAndroid Build Coastguard Worker "audio_device_generic.cc", 91*d9f75844SAndroid Build Coastguard Worker "audio_device_generic.h", 92*d9f75844SAndroid Build Coastguard Worker ] 93*d9f75844SAndroid Build Coastguard Worker deps = [ 94*d9f75844SAndroid Build Coastguard Worker ":audio_device_api", 95*d9f75844SAndroid Build Coastguard Worker ":audio_device_buffer", 96*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:logging", 97*d9f75844SAndroid Build Coastguard Worker ] 98*d9f75844SAndroid Build Coastguard Worker} 99*d9f75844SAndroid Build Coastguard Worker 100*d9f75844SAndroid Build Coastguard Workerrtc_library("audio_device_name") { 101*d9f75844SAndroid Build Coastguard Worker sources = [ 102*d9f75844SAndroid Build Coastguard Worker "audio_device_name.cc", 103*d9f75844SAndroid Build Coastguard Worker "audio_device_name.h", 104*d9f75844SAndroid Build Coastguard Worker ] 105*d9f75844SAndroid Build Coastguard Worker absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] 106*d9f75844SAndroid Build Coastguard Worker} 107*d9f75844SAndroid Build Coastguard Worker 108*d9f75844SAndroid Build Coastguard Workerrtc_source_set("windows_core_audio_utility") { 109*d9f75844SAndroid Build Coastguard Worker if (is_win && !build_with_chromium) { 110*d9f75844SAndroid Build Coastguard Worker sources = [ 111*d9f75844SAndroid Build Coastguard Worker "win/core_audio_utility_win.cc", 112*d9f75844SAndroid Build Coastguard Worker "win/core_audio_utility_win.h", 113*d9f75844SAndroid Build Coastguard Worker ] 114*d9f75844SAndroid Build Coastguard Worker 115*d9f75844SAndroid Build Coastguard Worker deps = [ 116*d9f75844SAndroid Build Coastguard Worker ":audio_device_api", 117*d9f75844SAndroid Build Coastguard Worker ":audio_device_name", 118*d9f75844SAndroid Build Coastguard Worker "../../api/units:time_delta", 119*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:checks", 120*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:logging", 121*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:macromagic", 122*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:platform_thread_types", 123*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:stringutils", 124*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/win:windows_version", 125*d9f75844SAndroid Build Coastguard Worker ] 126*d9f75844SAndroid Build Coastguard Worker absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ] 127*d9f75844SAndroid Build Coastguard Worker 128*d9f75844SAndroid Build Coastguard Worker libs = [ "oleaut32.lib" ] 129*d9f75844SAndroid Build Coastguard Worker } 130*d9f75844SAndroid Build Coastguard Worker} 131*d9f75844SAndroid Build Coastguard Worker 132*d9f75844SAndroid Build Coastguard Worker# An ADM with a dedicated factory method which does not depend on the 133*d9f75844SAndroid Build Coastguard Worker# audio_device_impl target. The goal is to use this new structure and 134*d9f75844SAndroid Build Coastguard Worker# gradually phase out the old design. 135*d9f75844SAndroid Build Coastguard Worker# TODO(henrika): currently only supported on Windows. 136*d9f75844SAndroid Build Coastguard Workerrtc_source_set("audio_device_module_from_input_and_output") { 137*d9f75844SAndroid Build Coastguard Worker visibility = [ "*" ] 138*d9f75844SAndroid Build Coastguard Worker if (is_win && !build_with_chromium) { 139*d9f75844SAndroid Build Coastguard Worker sources = [ 140*d9f75844SAndroid Build Coastguard Worker "include/audio_device_factory.cc", 141*d9f75844SAndroid Build Coastguard Worker "include/audio_device_factory.h", 142*d9f75844SAndroid Build Coastguard Worker ] 143*d9f75844SAndroid Build Coastguard Worker sources += [ 144*d9f75844SAndroid Build Coastguard Worker "win/audio_device_module_win.cc", 145*d9f75844SAndroid Build Coastguard Worker "win/audio_device_module_win.h", 146*d9f75844SAndroid Build Coastguard Worker "win/core_audio_base_win.cc", 147*d9f75844SAndroid Build Coastguard Worker "win/core_audio_base_win.h", 148*d9f75844SAndroid Build Coastguard Worker "win/core_audio_input_win.cc", 149*d9f75844SAndroid Build Coastguard Worker "win/core_audio_input_win.h", 150*d9f75844SAndroid Build Coastguard Worker "win/core_audio_output_win.cc", 151*d9f75844SAndroid Build Coastguard Worker "win/core_audio_output_win.h", 152*d9f75844SAndroid Build Coastguard Worker ] 153*d9f75844SAndroid Build Coastguard Worker 154*d9f75844SAndroid Build Coastguard Worker deps = [ 155*d9f75844SAndroid Build Coastguard Worker ":audio_device_api", 156*d9f75844SAndroid Build Coastguard Worker ":audio_device_buffer", 157*d9f75844SAndroid Build Coastguard Worker ":windows_core_audio_utility", 158*d9f75844SAndroid Build Coastguard Worker "../../api:make_ref_counted", 159*d9f75844SAndroid Build Coastguard Worker "../../api:scoped_refptr", 160*d9f75844SAndroid Build Coastguard Worker "../../api:sequence_checker", 161*d9f75844SAndroid Build Coastguard Worker "../../api/task_queue", 162*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:checks", 163*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:logging", 164*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:macromagic", 165*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:platform_thread", 166*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:safe_conversions", 167*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:stringutils", 168*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:timeutils", 169*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/win:scoped_com_initializer", 170*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/win:windows_version", 171*d9f75844SAndroid Build Coastguard Worker ] 172*d9f75844SAndroid Build Coastguard Worker absl_deps = [ 173*d9f75844SAndroid Build Coastguard Worker "//third_party/abseil-cpp/absl/strings:strings", 174*d9f75844SAndroid Build Coastguard Worker "//third_party/abseil-cpp/absl/types:optional", 175*d9f75844SAndroid Build Coastguard Worker ] 176*d9f75844SAndroid Build Coastguard Worker } 177*d9f75844SAndroid Build Coastguard Worker} 178*d9f75844SAndroid Build Coastguard Worker 179*d9f75844SAndroid Build Coastguard Worker# Contains default implementations of webrtc::AudioDeviceModule for Windows, 180*d9f75844SAndroid Build Coastguard Worker# Linux, Mac, iOS and Android. 181*d9f75844SAndroid Build Coastguard Workerrtc_library("audio_device_impl") { 182*d9f75844SAndroid Build Coastguard Worker visibility = [ "*" ] 183*d9f75844SAndroid Build Coastguard Worker deps = [ 184*d9f75844SAndroid Build Coastguard Worker ":audio_device_api", 185*d9f75844SAndroid Build Coastguard Worker ":audio_device_buffer", 186*d9f75844SAndroid Build Coastguard Worker ":audio_device_default", 187*d9f75844SAndroid Build Coastguard Worker ":audio_device_generic", 188*d9f75844SAndroid Build Coastguard Worker "../../api:array_view", 189*d9f75844SAndroid Build Coastguard Worker "../../api:make_ref_counted", 190*d9f75844SAndroid Build Coastguard Worker "../../api:refcountedbase", 191*d9f75844SAndroid Build Coastguard Worker "../../api:scoped_refptr", 192*d9f75844SAndroid Build Coastguard Worker "../../api:sequence_checker", 193*d9f75844SAndroid Build Coastguard Worker "../../api/task_queue", 194*d9f75844SAndroid Build Coastguard Worker "../../common_audio", 195*d9f75844SAndroid Build Coastguard Worker "../../common_audio:common_audio_c", 196*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:buffer", 197*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:checks", 198*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:logging", 199*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:macromagic", 200*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:platform_thread", 201*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:random", 202*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:rtc_event", 203*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:rtc_task_queue", 204*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:safe_conversions", 205*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:stringutils", 206*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:timeutils", 207*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/synchronization:mutex", 208*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/system:arch", 209*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/system:file_wrapper", 210*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/task_utils:repeating_task", 211*d9f75844SAndroid Build Coastguard Worker "../../system_wrappers", 212*d9f75844SAndroid Build Coastguard Worker "../../system_wrappers:field_trial", 213*d9f75844SAndroid Build Coastguard Worker "../../system_wrappers:metrics", 214*d9f75844SAndroid Build Coastguard Worker "../utility", 215*d9f75844SAndroid Build Coastguard Worker ] 216*d9f75844SAndroid Build Coastguard Worker absl_deps = [ 217*d9f75844SAndroid Build Coastguard Worker "//third_party/abseil-cpp/absl/base:core_headers", 218*d9f75844SAndroid Build Coastguard Worker "//third_party/abseil-cpp/absl/strings:strings", 219*d9f75844SAndroid Build Coastguard Worker ] 220*d9f75844SAndroid Build Coastguard Worker if (rtc_include_internal_audio_device && is_ios) { 221*d9f75844SAndroid Build Coastguard Worker deps += [ "../../sdk:audio_device" ] 222*d9f75844SAndroid Build Coastguard Worker } 223*d9f75844SAndroid Build Coastguard Worker 224*d9f75844SAndroid Build Coastguard Worker sources = [ 225*d9f75844SAndroid Build Coastguard Worker "dummy/audio_device_dummy.cc", 226*d9f75844SAndroid Build Coastguard Worker "dummy/audio_device_dummy.h", 227*d9f75844SAndroid Build Coastguard Worker "dummy/file_audio_device.cc", 228*d9f75844SAndroid Build Coastguard Worker "dummy/file_audio_device.h", 229*d9f75844SAndroid Build Coastguard Worker "include/fake_audio_device.h", 230*d9f75844SAndroid Build Coastguard Worker "include/test_audio_device.cc", 231*d9f75844SAndroid Build Coastguard Worker "include/test_audio_device.h", 232*d9f75844SAndroid Build Coastguard Worker ] 233*d9f75844SAndroid Build Coastguard Worker 234*d9f75844SAndroid Build Coastguard Worker if (build_with_mozilla) { 235*d9f75844SAndroid Build Coastguard Worker sources += [ 236*d9f75844SAndroid Build Coastguard Worker "opensl/single_rw_fifo.cc", 237*d9f75844SAndroid Build Coastguard Worker "opensl/single_rw_fifo.h", 238*d9f75844SAndroid Build Coastguard Worker ] 239*d9f75844SAndroid Build Coastguard Worker } 240*d9f75844SAndroid Build Coastguard Worker 241*d9f75844SAndroid Build Coastguard Worker defines = [] 242*d9f75844SAndroid Build Coastguard Worker cflags = [] 243*d9f75844SAndroid Build Coastguard Worker if (rtc_audio_device_plays_sinus_tone) { 244*d9f75844SAndroid Build Coastguard Worker defines += [ "AUDIO_DEVICE_PLAYS_SINUS_TONE" ] 245*d9f75844SAndroid Build Coastguard Worker } 246*d9f75844SAndroid Build Coastguard Worker if (rtc_enable_android_aaudio) { 247*d9f75844SAndroid Build Coastguard Worker defines += [ "WEBRTC_AUDIO_DEVICE_INCLUDE_ANDROID_AAUDIO" ] 248*d9f75844SAndroid Build Coastguard Worker } 249*d9f75844SAndroid Build Coastguard Worker if (rtc_include_internal_audio_device) { 250*d9f75844SAndroid Build Coastguard Worker sources += [ 251*d9f75844SAndroid Build Coastguard Worker "audio_device_data_observer.cc", 252*d9f75844SAndroid Build Coastguard Worker "audio_device_impl.cc", 253*d9f75844SAndroid Build Coastguard Worker "audio_device_impl.h", 254*d9f75844SAndroid Build Coastguard Worker "include/audio_device_data_observer.h", 255*d9f75844SAndroid Build Coastguard Worker ] 256*d9f75844SAndroid Build Coastguard Worker if (is_android) { 257*d9f75844SAndroid Build Coastguard Worker sources += [ 258*d9f75844SAndroid Build Coastguard Worker "android/audio_common.h", 259*d9f75844SAndroid Build Coastguard Worker "android/audio_device_template.h", 260*d9f75844SAndroid Build Coastguard Worker "android/audio_manager.cc", 261*d9f75844SAndroid Build Coastguard Worker "android/audio_manager.h", 262*d9f75844SAndroid Build Coastguard Worker "android/audio_record_jni.cc", 263*d9f75844SAndroid Build Coastguard Worker "android/audio_record_jni.h", 264*d9f75844SAndroid Build Coastguard Worker "android/audio_track_jni.cc", 265*d9f75844SAndroid Build Coastguard Worker "android/audio_track_jni.h", 266*d9f75844SAndroid Build Coastguard Worker "android/build_info.cc", 267*d9f75844SAndroid Build Coastguard Worker "android/build_info.h", 268*d9f75844SAndroid Build Coastguard Worker "android/opensles_common.cc", 269*d9f75844SAndroid Build Coastguard Worker "android/opensles_common.h", 270*d9f75844SAndroid Build Coastguard Worker "android/opensles_player.cc", 271*d9f75844SAndroid Build Coastguard Worker "android/opensles_player.h", 272*d9f75844SAndroid Build Coastguard Worker "android/opensles_recorder.cc", 273*d9f75844SAndroid Build Coastguard Worker "android/opensles_recorder.h", 274*d9f75844SAndroid Build Coastguard Worker ] 275*d9f75844SAndroid Build Coastguard Worker libs = [ 276*d9f75844SAndroid Build Coastguard Worker "log", 277*d9f75844SAndroid Build Coastguard Worker "OpenSLES", 278*d9f75844SAndroid Build Coastguard Worker ] 279*d9f75844SAndroid Build Coastguard Worker if (rtc_enable_android_aaudio) { 280*d9f75844SAndroid Build Coastguard Worker sources += [ 281*d9f75844SAndroid Build Coastguard Worker "android/aaudio_player.cc", 282*d9f75844SAndroid Build Coastguard Worker "android/aaudio_player.h", 283*d9f75844SAndroid Build Coastguard Worker "android/aaudio_recorder.cc", 284*d9f75844SAndroid Build Coastguard Worker "android/aaudio_recorder.h", 285*d9f75844SAndroid Build Coastguard Worker "android/aaudio_wrapper.cc", 286*d9f75844SAndroid Build Coastguard Worker "android/aaudio_wrapper.h", 287*d9f75844SAndroid Build Coastguard Worker ] 288*d9f75844SAndroid Build Coastguard Worker libs += [ "aaudio" ] 289*d9f75844SAndroid Build Coastguard Worker } 290*d9f75844SAndroid Build Coastguard Worker 291*d9f75844SAndroid Build Coastguard Worker if (build_with_mozilla) { 292*d9f75844SAndroid Build Coastguard Worker include_dirs += [ 293*d9f75844SAndroid Build Coastguard Worker "/config/external/nspr", 294*d9f75844SAndroid Build Coastguard Worker "/nsprpub/lib/ds", 295*d9f75844SAndroid Build Coastguard Worker "/nsprpub/pr/include", 296*d9f75844SAndroid Build Coastguard Worker ] 297*d9f75844SAndroid Build Coastguard Worker } 298*d9f75844SAndroid Build Coastguard Worker } 299*d9f75844SAndroid Build Coastguard Worker if (rtc_use_dummy_audio_file_devices) { 300*d9f75844SAndroid Build Coastguard Worker defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ] 301*d9f75844SAndroid Build Coastguard Worker } else { 302*d9f75844SAndroid Build Coastguard Worker if (is_linux || is_chromeos) { 303*d9f75844SAndroid Build Coastguard Worker sources += [ 304*d9f75844SAndroid Build Coastguard Worker "linux/alsasymboltable_linux.cc", 305*d9f75844SAndroid Build Coastguard Worker "linux/alsasymboltable_linux.h", 306*d9f75844SAndroid Build Coastguard Worker "linux/audio_device_alsa_linux.cc", 307*d9f75844SAndroid Build Coastguard Worker "linux/audio_device_alsa_linux.h", 308*d9f75844SAndroid Build Coastguard Worker "linux/audio_mixer_manager_alsa_linux.cc", 309*d9f75844SAndroid Build Coastguard Worker "linux/audio_mixer_manager_alsa_linux.h", 310*d9f75844SAndroid Build Coastguard Worker "linux/latebindingsymboltable_linux.cc", 311*d9f75844SAndroid Build Coastguard Worker "linux/latebindingsymboltable_linux.h", 312*d9f75844SAndroid Build Coastguard Worker ] 313*d9f75844SAndroid Build Coastguard Worker defines += [ "WEBRTC_ENABLE_LINUX_ALSA" ] 314*d9f75844SAndroid Build Coastguard Worker libs = [ "dl" ] 315*d9f75844SAndroid Build Coastguard Worker if (rtc_use_x11) { 316*d9f75844SAndroid Build Coastguard Worker libs += [ "X11" ] 317*d9f75844SAndroid Build Coastguard Worker defines += [ "WEBRTC_USE_X11" ] 318*d9f75844SAndroid Build Coastguard Worker } 319*d9f75844SAndroid Build Coastguard Worker if (rtc_include_pulse_audio) { 320*d9f75844SAndroid Build Coastguard Worker defines += [ "WEBRTC_ENABLE_LINUX_PULSE" ] 321*d9f75844SAndroid Build Coastguard Worker } 322*d9f75844SAndroid Build Coastguard Worker sources += [ 323*d9f75844SAndroid Build Coastguard Worker "linux/audio_device_pulse_linux.cc", 324*d9f75844SAndroid Build Coastguard Worker "linux/audio_device_pulse_linux.h", 325*d9f75844SAndroid Build Coastguard Worker "linux/audio_mixer_manager_pulse_linux.cc", 326*d9f75844SAndroid Build Coastguard Worker "linux/audio_mixer_manager_pulse_linux.h", 327*d9f75844SAndroid Build Coastguard Worker "linux/pulseaudiosymboltable_linux.cc", 328*d9f75844SAndroid Build Coastguard Worker "linux/pulseaudiosymboltable_linux.h", 329*d9f75844SAndroid Build Coastguard Worker ] 330*d9f75844SAndroid Build Coastguard Worker } 331*d9f75844SAndroid Build Coastguard Worker if (is_mac) { 332*d9f75844SAndroid Build Coastguard Worker sources += [ 333*d9f75844SAndroid Build Coastguard Worker "mac/audio_device_mac.cc", 334*d9f75844SAndroid Build Coastguard Worker "mac/audio_device_mac.h", 335*d9f75844SAndroid Build Coastguard Worker "mac/audio_mixer_manager_mac.cc", 336*d9f75844SAndroid Build Coastguard Worker "mac/audio_mixer_manager_mac.h", 337*d9f75844SAndroid Build Coastguard Worker ] 338*d9f75844SAndroid Build Coastguard Worker deps += [ 339*d9f75844SAndroid Build Coastguard Worker ":audio_device_impl_frameworks", 340*d9f75844SAndroid Build Coastguard Worker "../third_party/portaudio:mac_portaudio", 341*d9f75844SAndroid Build Coastguard Worker ] 342*d9f75844SAndroid Build Coastguard Worker } 343*d9f75844SAndroid Build Coastguard Worker if (is_win) { 344*d9f75844SAndroid Build Coastguard Worker sources += [ 345*d9f75844SAndroid Build Coastguard Worker "win/audio_device_core_win.cc", 346*d9f75844SAndroid Build Coastguard Worker "win/audio_device_core_win.h", 347*d9f75844SAndroid Build Coastguard Worker ] 348*d9f75844SAndroid Build Coastguard Worker libs = [ 349*d9f75844SAndroid Build Coastguard Worker # Required for the built-in WASAPI AEC. 350*d9f75844SAndroid Build Coastguard Worker "dmoguids.lib", 351*d9f75844SAndroid Build Coastguard Worker "wmcodecdspuuid.lib", 352*d9f75844SAndroid Build Coastguard Worker "amstrmid.lib", 353*d9f75844SAndroid Build Coastguard Worker "msdmo.lib", 354*d9f75844SAndroid Build Coastguard Worker "oleaut32.lib", 355*d9f75844SAndroid Build Coastguard Worker ] 356*d9f75844SAndroid Build Coastguard Worker deps += [ 357*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:win32", 358*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/win:scoped_com_initializer", 359*d9f75844SAndroid Build Coastguard Worker ] 360*d9f75844SAndroid Build Coastguard Worker } 361*d9f75844SAndroid Build Coastguard Worker configs += [ ":audio_device_warnings_config" ] 362*d9f75844SAndroid Build Coastguard Worker } 363*d9f75844SAndroid Build Coastguard Worker } else { 364*d9f75844SAndroid Build Coastguard Worker defines = [ "WEBRTC_DUMMY_AUDIO_BUILD" ] 365*d9f75844SAndroid Build Coastguard Worker } 366*d9f75844SAndroid Build Coastguard Worker 367*d9f75844SAndroid Build Coastguard Worker if (!build_with_chromium) { 368*d9f75844SAndroid Build Coastguard Worker sources += [ 369*d9f75844SAndroid Build Coastguard Worker # Do not link these into Chrome since they contain static data. 370*d9f75844SAndroid Build Coastguard Worker "dummy/file_audio_device_factory.cc", 371*d9f75844SAndroid Build Coastguard Worker "dummy/file_audio_device_factory.h", 372*d9f75844SAndroid Build Coastguard Worker ] 373*d9f75844SAndroid Build Coastguard Worker } 374*d9f75844SAndroid Build Coastguard Worker} 375*d9f75844SAndroid Build Coastguard Worker 376*d9f75844SAndroid Build Coastguard Workerif (is_mac) { 377*d9f75844SAndroid Build Coastguard Worker rtc_source_set("audio_device_impl_frameworks") { 378*d9f75844SAndroid Build Coastguard Worker visibility = [ ":*" ] 379*d9f75844SAndroid Build Coastguard Worker frameworks = [ 380*d9f75844SAndroid Build Coastguard Worker # Needed for CoreGraphics: 381*d9f75844SAndroid Build Coastguard Worker "ApplicationServices.framework", 382*d9f75844SAndroid Build Coastguard Worker 383*d9f75844SAndroid Build Coastguard Worker "AudioToolbox.framework", 384*d9f75844SAndroid Build Coastguard Worker "CoreAudio.framework", 385*d9f75844SAndroid Build Coastguard Worker 386*d9f75844SAndroid Build Coastguard Worker # Needed for CGEventSourceKeyState in audio_device_mac.cc: 387*d9f75844SAndroid Build Coastguard Worker "CoreGraphics.framework", 388*d9f75844SAndroid Build Coastguard Worker ] 389*d9f75844SAndroid Build Coastguard Worker } 390*d9f75844SAndroid Build Coastguard Worker} 391*d9f75844SAndroid Build Coastguard Worker 392*d9f75844SAndroid Build Coastguard Workerrtc_source_set("mock_audio_device") { 393*d9f75844SAndroid Build Coastguard Worker visibility = [ "*" ] 394*d9f75844SAndroid Build Coastguard Worker testonly = true 395*d9f75844SAndroid Build Coastguard Worker sources = [ 396*d9f75844SAndroid Build Coastguard Worker "include/mock_audio_device.h", 397*d9f75844SAndroid Build Coastguard Worker "include/mock_audio_transport.h", 398*d9f75844SAndroid Build Coastguard Worker "mock_audio_device_buffer.h", 399*d9f75844SAndroid Build Coastguard Worker ] 400*d9f75844SAndroid Build Coastguard Worker deps = [ 401*d9f75844SAndroid Build Coastguard Worker ":audio_device", 402*d9f75844SAndroid Build Coastguard Worker ":audio_device_buffer", 403*d9f75844SAndroid Build Coastguard Worker ":audio_device_impl", 404*d9f75844SAndroid Build Coastguard Worker "../../api:make_ref_counted", 405*d9f75844SAndroid Build Coastguard Worker "../../test:test_support", 406*d9f75844SAndroid Build Coastguard Worker ] 407*d9f75844SAndroid Build Coastguard Worker} 408*d9f75844SAndroid Build Coastguard Worker 409*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests && !build_with_chromium) { 410*d9f75844SAndroid Build Coastguard Worker rtc_library("audio_device_unittests") { 411*d9f75844SAndroid Build Coastguard Worker testonly = true 412*d9f75844SAndroid Build Coastguard Worker 413*d9f75844SAndroid Build Coastguard Worker sources = [ 414*d9f75844SAndroid Build Coastguard Worker "fine_audio_buffer_unittest.cc", 415*d9f75844SAndroid Build Coastguard Worker "include/test_audio_device_unittest.cc", 416*d9f75844SAndroid Build Coastguard Worker ] 417*d9f75844SAndroid Build Coastguard Worker deps = [ 418*d9f75844SAndroid Build Coastguard Worker ":audio_device", 419*d9f75844SAndroid Build Coastguard Worker ":audio_device_buffer", 420*d9f75844SAndroid Build Coastguard Worker ":audio_device_impl", 421*d9f75844SAndroid Build Coastguard Worker ":mock_audio_device", 422*d9f75844SAndroid Build Coastguard Worker "../../api:array_view", 423*d9f75844SAndroid Build Coastguard Worker "../../api:scoped_refptr", 424*d9f75844SAndroid Build Coastguard Worker "../../api:sequence_checker", 425*d9f75844SAndroid Build Coastguard Worker "../../api/task_queue", 426*d9f75844SAndroid Build Coastguard Worker "../../api/task_queue:default_task_queue_factory", 427*d9f75844SAndroid Build Coastguard Worker "../../common_audio", 428*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:buffer", 429*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:checks", 430*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:ignore_wundef", 431*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:logging", 432*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:macromagic", 433*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:race_checker", 434*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:rtc_event", 435*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:safe_conversions", 436*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:timeutils", 437*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/synchronization:mutex", 438*d9f75844SAndroid Build Coastguard Worker "../../system_wrappers", 439*d9f75844SAndroid Build Coastguard Worker "../../test:fileutils", 440*d9f75844SAndroid Build Coastguard Worker "../../test:test_support", 441*d9f75844SAndroid Build Coastguard Worker ] 442*d9f75844SAndroid Build Coastguard Worker absl_deps = [ 443*d9f75844SAndroid Build Coastguard Worker "//third_party/abseil-cpp/absl/strings", 444*d9f75844SAndroid Build Coastguard Worker "//third_party/abseil-cpp/absl/types:optional", 445*d9f75844SAndroid Build Coastguard Worker ] 446*d9f75844SAndroid Build Coastguard Worker if (is_linux || is_chromeos || is_mac || is_win) { 447*d9f75844SAndroid Build Coastguard Worker sources += [ "audio_device_unittest.cc" ] 448*d9f75844SAndroid Build Coastguard Worker } 449*d9f75844SAndroid Build Coastguard Worker if (is_win) { 450*d9f75844SAndroid Build Coastguard Worker sources += [ "win/core_audio_utility_win_unittest.cc" ] 451*d9f75844SAndroid Build Coastguard Worker deps += [ 452*d9f75844SAndroid Build Coastguard Worker ":audio_device_module_from_input_and_output", 453*d9f75844SAndroid Build Coastguard Worker ":windows_core_audio_utility", 454*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/win:scoped_com_initializer", 455*d9f75844SAndroid Build Coastguard Worker "../../rtc_base/win:windows_version", 456*d9f75844SAndroid Build Coastguard Worker ] 457*d9f75844SAndroid Build Coastguard Worker } 458*d9f75844SAndroid Build Coastguard Worker if (is_android) { 459*d9f75844SAndroid Build Coastguard Worker sources += [ 460*d9f75844SAndroid Build Coastguard Worker "android/audio_device_unittest.cc", 461*d9f75844SAndroid Build Coastguard Worker "android/audio_manager_unittest.cc", 462*d9f75844SAndroid Build Coastguard Worker "android/ensure_initialized.cc", 463*d9f75844SAndroid Build Coastguard Worker "android/ensure_initialized.h", 464*d9f75844SAndroid Build Coastguard Worker ] 465*d9f75844SAndroid Build Coastguard Worker deps += [ 466*d9f75844SAndroid Build Coastguard Worker "../../sdk/android:internal_jni", 467*d9f75844SAndroid Build Coastguard Worker "../../sdk/android:libjingle_peerconnection_java", 468*d9f75844SAndroid Build Coastguard Worker "../../sdk/android:native_api_jni", 469*d9f75844SAndroid Build Coastguard Worker "../../sdk/android:native_test_jni_onload", 470*d9f75844SAndroid Build Coastguard Worker "../utility", 471*d9f75844SAndroid Build Coastguard Worker ] 472*d9f75844SAndroid Build Coastguard Worker } 473*d9f75844SAndroid Build Coastguard Worker if (!rtc_include_internal_audio_device) { 474*d9f75844SAndroid Build Coastguard Worker defines = [ "WEBRTC_DUMMY_AUDIO_BUILD" ] 475*d9f75844SAndroid Build Coastguard Worker } 476*d9f75844SAndroid Build Coastguard Worker } 477*d9f75844SAndroid Build Coastguard Worker} 478*d9f75844SAndroid Build Coastguard Worker 479*d9f75844SAndroid Build Coastguard Workerif (!build_with_chromium && is_android) { 480*d9f75844SAndroid Build Coastguard Worker rtc_android_library("audio_device_java") { 481*d9f75844SAndroid Build Coastguard Worker sources = [ 482*d9f75844SAndroid Build Coastguard Worker "android/java/src/org/webrtc/voiceengine/BuildInfo.java", 483*d9f75844SAndroid Build Coastguard Worker "android/java/src/org/webrtc/voiceengine/WebRtcAudioEffects.java", 484*d9f75844SAndroid Build Coastguard Worker "android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java", 485*d9f75844SAndroid Build Coastguard Worker "android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java", 486*d9f75844SAndroid Build Coastguard Worker "android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java", 487*d9f75844SAndroid Build Coastguard Worker "android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java", 488*d9f75844SAndroid Build Coastguard Worker ] 489*d9f75844SAndroid Build Coastguard Worker deps = [ 490*d9f75844SAndroid Build Coastguard Worker "../../rtc_base:base_java", 491*d9f75844SAndroid Build Coastguard Worker "//third_party/androidx:androidx_annotation_annotation_java", 492*d9f75844SAndroid Build Coastguard Worker ] 493*d9f75844SAndroid Build Coastguard Worker } 494*d9f75844SAndroid Build Coastguard Worker} 495