1 # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 # Use of this source code is governed by a BSD-style license
4 # that can be found in the LICENSE file in the root of the source
5 # tree. An additional intellectual property rights grant can be found
6 # in the file PATENTS. All contributing project authors may
7 # be found in the AUTHORS file in the root of the source tree.
12 'target_name': 'audio_device',
13 'type': 'static_library',
16 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
17 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
23 'dummy', # Contains dummy audio device implementations.
25 'direct_dependent_settings': {
31 # TODO(xians): Rename files to e.g. *_linux.{ext}, remove sources in conditions section
33 'include/audio_device.h',
34 'include/audio_device_defines.h',
35 'audio_device_buffer.cc',
36 'audio_device_buffer.h',
37 'audio_device_generic.cc',
38 'audio_device_generic.h',
39 'audio_device_utility.cc',
40 'audio_device_utility.h',
41 'audio_device_impl.cc',
42 'audio_device_impl.h',
43 'audio_device_config.h',
44 'dummy/audio_device_dummy.cc',
45 'dummy/audio_device_dummy.h',
46 'dummy/audio_device_utility_dummy.cc',
47 'dummy/audio_device_utility_dummy.h',
48 'dummy/file_audio_device.cc',
49 'dummy/file_audio_device.h',
77 ['include_internal_audio_device==0', {
79 'WEBRTC_DUMMY_AUDIO_BUILD',
82 ['build_with_chromium==0', {
84 # Don't link these into Chrome since they contain static data.
85 'dummy/file_audio_device_factory.cc',
86 'dummy/file_audio_device_factory.h',
89 ['include_internal_audio_device==1', {
91 'linux/alsasymboltable_linux.cc',
92 'linux/alsasymboltable_linux.h',
93 'linux/audio_device_alsa_linux.cc',
94 'linux/audio_device_alsa_linux.h',
95 'linux/audio_device_utility_linux.cc',
96 'linux/audio_device_utility_linux.h',
97 'linux/audio_mixer_manager_alsa_linux.cc',
98 'linux/audio_mixer_manager_alsa_linux.h',
99 'linux/latebindingsymboltable_linux.cc',
100 'linux/latebindingsymboltable_linux.h',
101 'ios/audio_device_ios.mm',
102 'ios/audio_device_ios.h',
103 'ios/audio_device_utility_ios.cc',
104 'ios/audio_device_utility_ios.h',
105 'mac/audio_device_mac.cc',
106 'mac/audio_device_mac.h',
107 'mac/audio_device_utility_mac.cc',
108 'mac/audio_device_utility_mac.h',
109 'mac/audio_mixer_manager_mac.cc',
110 'mac/audio_mixer_manager_mac.h',
111 'mac/portaudio/pa_memorybarrier.h',
112 'mac/portaudio/pa_ringbuffer.c',
113 'mac/portaudio/pa_ringbuffer.h',
114 'win/audio_device_core_win.cc',
115 'win/audio_device_core_win.h',
116 'win/audio_device_wave_win.cc',
117 'win/audio_device_wave_win.h',
118 'win/audio_device_utility_win.cc',
119 'win/audio_device_utility_win.h',
120 'win/audio_mixer_manager_win.cc',
121 'win/audio_mixer_manager_win.h',
122 'android/audio_device_template.h',
123 'android/audio_device_utility_android.cc',
124 'android/audio_device_utility_android.h',
125 'android/audio_manager_jni.cc',
126 'android/audio_manager_jni.h',
127 'android/audio_record_jni.cc',
128 'android/audio_record_jni.h',
129 'android/audio_track_jni.cc',
130 'android/audio_track_jni.h',
131 'android/fine_audio_buffer.cc',
132 'android/fine_audio_buffer.h',
133 'android/low_latency_event_posix.cc',
134 'android/low_latency_event.h',
135 'android/opensles_common.cc',
136 'android/opensles_common.h',
137 'android/opensles_input.cc',
138 'android/opensles_input.h',
139 'android/opensles_output.cc',
140 'android/opensles_output.h',
141 'android/single_rw_fifo.cc',
142 'android/single_rw_fifo.h',
163 ['include_pulse_audio==1', {
168 'linux/audio_device_pulse_linux.cc',
169 'linux/audio_device_pulse_linux.h',
170 'linux/audio_mixer_manager_pulse_linux.cc',
171 'linux/audio_mixer_manager_pulse_linux.h',
172 'linux/pulseaudiosymboltable_linux.cc',
173 'linux/pulseaudiosymboltable_linux.h',
181 '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework',
182 '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
188 'CLANG_ENABLE_OBJC_ARC': 'YES',
193 '-framework AudioToolbox',
194 '-framework AVFoundation',
202 # Required for the built-in WASAPI AEC.
204 '-lwmcodecdspuuid.lib',
211 }], # include_internal_audio_device==1
216 ['include_tests==1', {
219 'target_name': 'audio_device_tests',
220 'type': 'executable',
224 '<(webrtc_root)/test/test.gyp:test_support_main',
225 '<(DEPTH)/testing/gtest.gyp:gtest',
226 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
229 'test/audio_device_test_api.cc',
230 'test/audio_device_test_defines.h',
234 'target_name': 'audio_device_test_func',
235 'type': 'executable',
239 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
240 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
241 '<(webrtc_root)/test/test.gyp:test_support',
242 '<(DEPTH)/testing/gtest.gyp:gtest',
245 'test/audio_device_test_func.cc',
246 'test/audio_device_test_defines.h',
247 'test/func_test_manager.cc',
248 'test/func_test_manager.h',
253 ['test_isolation_mode != "noop"', {
256 'target_name': 'audio_device_tests_run',
259 'audio_device_tests',
262 '../../build/isolate.gypi',
265 'audio_device_tests.isolate',
270 ['OS=="android" and enable_android_opensl==1', {
273 'target_name': 'audio_device_unittest',
274 'type': 'executable',
278 '<(DEPTH)/testing/gmock.gyp:gmock',
279 '<(DEPTH)/testing/gtest.gyp:gtest',
280 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
281 '<(webrtc_root)/test/test.gyp:test_support_main',
284 'android/fine_audio_buffer_unittest.cc',
285 'android/low_latency_event_unittest.cc',
286 'android/single_rw_fifo_unittest.cc',
287 'mock/mock_audio_device_buffer.h',