Fix libwebrtc build on iOS simulator
authorachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Feb 2017 22:26:57 +0000 (22:26 +0000)
committerachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Feb 2017 22:26:57 +0000 (22:26 +0000)
https://bugs.webkit.org/show_bug.cgi?id=168017

Reviewed by Tim Horton.

* Configurations/libwebrtc.xcconfig:
* Configurations/libwebrtcpcrtc.xcconfig:
Use $(inherited)
* Source/webrtc/modules/audio_device/ios/audio_device_ios.h:
* Source/webrtc/modules/audio_device/ios/audio_device_ios.mm:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h:
* Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm:
Renamed RTCAudioSession* to WebRTCAudioSession* so that all ObjC classes in WebCore start with Web prefix.
* libwebrtc.xcodeproj/project.pbxproj:
Add necessary files.  Some iOS-specific files need ARC,
and this matches the Build.gn in Source/webrtc/modules/audio_device

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@211902 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 files changed:
Source/ThirdParty/libwebrtc/ChangeLog
Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.h
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.mm
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h
Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm
Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj

index 7ce758e..fa36a26 100644 (file)
@@ -1,5 +1,30 @@
 2017-02-08  Alex Christensen  <achristensen@webkit.org>
 
+        Fix libwebrtc build on iOS simulator
+        https://bugs.webkit.org/show_bug.cgi?id=168017
+
+        Reviewed by Tim Horton.
+
+        * Configurations/libwebrtc.xcconfig:
+        * Configurations/libwebrtcpcrtc.xcconfig:
+        Use $(inherited)
+        * Source/webrtc/modules/audio_device/ios/audio_device_ios.h:
+        * Source/webrtc/modules/audio_device/ios/audio_device_ios.mm:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h:
+        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm:
+        Renamed RTCAudioSession* to WebRTCAudioSession* so that all ObjC classes in WebCore start with Web prefix.
+        * libwebrtc.xcodeproj/project.pbxproj:
+        Add necessary files.  Some iOS-specific files need ARC, 
+        and this matches the Build.gn in Source/webrtc/modules/audio_device
+
+2017-02-08  Alex Christensen  <achristensen@webkit.org>
+
         Fix iOS libwebrtc build
         https://bugs.webkit.org/show_bug.cgi?id=168004
 
index b4449ed..078fa69 100644 (file)
@@ -13,11 +13,11 @@ PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls -Wno-deprecated-declarations;
 
-BASE_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
+GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
 
-GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(BASE_PREPROCESSOR_DEFINITIONS);
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited);
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(inherited) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(inherited) WEBRTC_IOS;
 
 EXCLUDED_SOURCE_FILE_NAMES[sdk=iphoneos*] = *_sse.cc *_sse2.cc macutils.cc macwindowpicker.cc audio_device_mac.cc;
 EXCLUDED_SOURCE_FILE_NAMES[sdk=iphonesimulator*] = macutils.cc macwindowpicker.cc audio_device_mac.cc;
index e14ff39..1c3ba80 100644 (file)
@@ -13,8 +13,8 @@ PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
 USE_HEADERMAP = NO;
 WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls;
 
-BASE_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
+GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
 
-GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(BASE_PREPROCESSOR_DEFINITIONS);
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited);
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(inherited) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(inherited) WEBRTC_IOS;
index 5aa3b70..a6be018 100644 (file)
@@ -20,7 +20,7 @@
 #include "webrtc/modules/audio_device/ios/audio_session_observer.h"
 #include "webrtc/modules/audio_device/ios/voice_processing_audio_unit.h"
 
-RTC_FWD_DECL_OBJC_CLASS(RTCAudioSessionDelegateAdapter);
+RTC_FWD_DECL_OBJC_CLASS(WebRTCAudioSessionDelegateAdapter);
 
 namespace webrtc {
 
@@ -288,7 +288,7 @@ class AudioDeviceIOS : public AudioDeviceGeneric,
   bool is_interrupted_;
 
   // Audio interruption observer instance.
-  RTCAudioSessionDelegateAdapter* audio_session_observer_;
+  WebRTCAudioSessionDelegateAdapter* audio_session_observer_;
 
   // Set to true if we've activated the audio session.
   bool has_configured_session_;
index 0b01cdc..e2b1ca5 100644 (file)
@@ -104,7 +104,7 @@ AudioDeviceIOS::AudioDeviceIOS()
   LOGI() << "ctor" << ios::GetCurrentThreadDescription();
   thread_ = rtc::Thread::Current();
   audio_session_observer_ =
-      [[RTCAudioSessionDelegateAdapter alloc] initWithObserver:this];
+      [[WebRTCAudioSessionDelegateAdapter alloc] initWithObserver:this];
 }
 
 AudioDeviceIOS::~AudioDeviceIOS() {
@@ -134,8 +134,8 @@ AudioDeviceGeneric::InitStatus AudioDeviceIOS::Init() {
   // here. They have not been set and confirmed yet since configureForWebRTC
   // is not called until audio is about to start. However, it makes sense to
   // store the parameters now and then verify at a later stage.
-  RTCAudioSessionConfiguration* config =
-      [RTCAudioSessionConfiguration webRTCConfiguration];
+  WebRTCAudioSessionConfiguration* config =
+      [WebRTCAudioSessionConfiguration webRTCConfiguration];
   playout_parameters_.reset(config.sampleRate,
                             config.outputNumberOfChannels);
   record_parameters_.reset(config.sampleRate,
@@ -267,7 +267,7 @@ int32_t AudioDeviceIOS::StopRecording() {
 int32_t AudioDeviceIOS::SetLoudspeakerStatus(bool enable) {
   LOGI() << "SetLoudspeakerStatus(" << enable << ")";
 
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   [session lockForConfiguration];
   NSString* category = session.category;
   AVAudioSessionCategoryOptions options = session.categoryOptions;
@@ -294,7 +294,7 @@ int32_t AudioDeviceIOS::SetLoudspeakerStatus(bool enable) {
 
 int32_t AudioDeviceIOS::GetLoudspeakerStatus(bool& enabled) const {
   LOGI() << "GetLoudspeakerStatus";
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   AVAudioSessionCategoryOptions options = session.categoryOptions;
   enabled = options & AVAudioSessionCategoryOptionDefaultToSpeaker;
   return 0;
@@ -368,7 +368,7 @@ OSStatus AudioDeviceIOS::OnDeliverRecordedData(
                   static_cast<unsigned int>(frames_per_buffer),
                   static_cast<unsigned int>(num_frames));
 
-    RTCAudioSession *session = [RTCAudioSession sharedInstance];
+    WebRTCAudioSession *session = [WebRTCAudioSession sharedInstance];
     RTCLogWarning(@"Session:\n %@", session);
     return result;
   }
@@ -485,13 +485,13 @@ void AudioDeviceIOS::HandleInterruptionEnd() {
 
   is_interrupted_ = false;
   RTCLog(@"Interruption ended. Updating audio unit state.");
-  UpdateAudioUnit([RTCAudioSession sharedInstance].canPlayOrRecord);
+  UpdateAudioUnit([WebRTCAudioSession sharedInstance].canPlayOrRecord);
 }
 
 void AudioDeviceIOS::HandleValidRouteChange() {
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
 
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   RTCLog(@"%@", session);
   HandleSampleRateChange(session.sampleRate);
 }
@@ -521,7 +521,7 @@ void AudioDeviceIOS::HandleSampleRateChange(float sample_rate) {
 
   // The audio unit is already initialized or started.
   // Check to see if the sample rate or buffer size has changed.
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   const double session_sample_rate = session.sampleRate;
   const NSTimeInterval session_buffer_duration = session.IOBufferDuration;
   const size_t session_frames_per_buffer =
@@ -591,7 +591,7 @@ void AudioDeviceIOS::UpdateAudioDeviceBuffer() {
 void AudioDeviceIOS::SetupAudioBuffersForActiveAudioSession() {
   LOGI() << "SetupAudioBuffersForActiveAudioSession";
   // Verify the current values once the audio session has been activated.
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   double sample_rate = session.sampleRate;
   NSTimeInterval io_buffer_duration = session.IOBufferDuration;
   RTCLog(@"%@", session);
@@ -600,8 +600,8 @@ void AudioDeviceIOS::SetupAudioBuffersForActiveAudioSession() {
   // hardware sample rate but continue and use the non-ideal sample rate after
   // reinitializing the audio parameters. Most BT headsets only support 8kHz or
   // 16kHz.
-  RTCAudioSessionConfiguration* webRTCConfig =
-      [RTCAudioSessionConfiguration webRTCConfiguration];
+  WebRTCAudioSessionConfiguration* webRTCConfig =
+      [WebRTCAudioSessionConfiguration webRTCConfiguration];
   if (sample_rate != webRTCConfig.sampleRate) {
     LOG(LS_WARNING) << "Unable to set the preferred sample rate";
   }
@@ -731,7 +731,7 @@ void AudioDeviceIOS::UpdateAudioUnit(bool can_play_or_record) {
   if (should_start_audio_unit) {
     RTCLog(@"Starting audio unit for UpdateAudioUnit");
     // Log session settings before trying to start audio streaming.
-    RTCAudioSession* session = [RTCAudioSession sharedInstance];
+    WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
     RTCLog(@"%@", session);
     if (!audio_unit_->Start()) {
       RTCLogError(@"Failed to start audio unit.");
@@ -761,7 +761,7 @@ void AudioDeviceIOS::ConfigureAudioSession() {
     RTCLogWarning(@"Audio session already configured.");
     return;
   }
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   [session lockForConfiguration];
   [session configureWebRTCSession:nil];
   [session unlockForConfiguration];
@@ -776,7 +776,7 @@ void AudioDeviceIOS::UnconfigureAudioSession() {
     RTCLogWarning(@"Audio session already unconfigured.");
     return;
   }
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   [session lockForConfiguration];
   [session unconfigureWebRTCSession:nil];
   [session unlockForConfiguration];
@@ -792,7 +792,7 @@ bool AudioDeviceIOS::InitPlayOrRecord() {
     return false;
   }
 
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   // Subscribe to audio session events.
   [session pushDelegate:audio_session_observer_];
 
@@ -829,7 +829,7 @@ void AudioDeviceIOS::ShutdownPlayOrRecord() {
   audio_unit_.reset();
 
   // Remove audio session notification observers.
-  RTCAudioSession* session = [RTCAudioSession sharedInstance];
+  WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
   [session removeDelegate:audio_session_observer_];
 
   // All I/O should be stopped or paused prior to deactivating the audio
index 5a7600a..c3d14ae 100644 (file)
@@ -14,9 +14,9 @@
 #import "webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h"
 #import "webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h"
 
-@implementation RTCAudioSession (Configuration)
+@implementation WebRTCAudioSession (Configuration)
 
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
                    error:(NSError **)outError {
   return [self setConfiguration:configuration
                          active:NO
@@ -24,7 +24,7 @@
                           error:outError];
 }
 
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
                   active:(BOOL)active
                    error:(NSError **)outError {
   return [self setConfiguration:configuration
@@ -35,7 +35,7 @@
 
 #pragma mark - Private
 
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
                   active:(BOOL)active
          shouldSetActive:(BOOL)shouldSetActive
                    error:(NSError **)outError {
index 36be014..cbf078f 100644 (file)
@@ -14,9 +14,9 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-@class RTCAudioSessionConfiguration;
+@class WebRTCAudioSessionConfiguration;
 
-@interface RTCAudioSession ()
+@interface WebRTCAudioSession ()
 
 /** Number of times setActive:YES has succeeded without a balanced call to
  *  setActive:NO.
@@ -42,16 +42,16 @@ NS_ASSUME_NONNULL_BEGIN
  *  the list. This delegate will be notified before other delegates of
  *  audio events.
  */
-- (void)pushDelegate:(id<RTCAudioSessionDelegate>)delegate;
+- (void)pushDelegate:(id<WebRTCAudioSessionDelegate>)delegate;
 
-/** Signals RTCAudioSession that a WebRTC session is about to begin and
+/** Signals WebRTCAudioSession that a WebRTC session is about to begin and
  *  audio configuration is needed. Will configure the audio session for WebRTC
  *  if not already configured and if configuration is not delayed.
  *  Successful calls must be balanced by a call to endWebRTCSession.
  */
 - (BOOL)beginWebRTCSession:(NSError **)outError;
 
-/** Signals RTCAudioSession that a WebRTC session is about to end and audio
+/** Signals WebRTCAudioSession that a WebRTC session is about to end and audio
  *  unconfiguration is needed. Will unconfigure the audio session for WebRTC
  *  if this is the last unmatched call and if configuration is not delayed.
  */
@@ -78,7 +78,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 // Properties and methods for tests.
 @property(nonatomic, readonly)
-    std::vector<__weak id<RTCAudioSessionDelegate> > delegates;
+    std::vector<__weak id<WebRTCAudioSessionDelegate> > delegates;
 
 - (void)notifyDidBeginInterruption;
 - (void)notifyDidEndInterruptionWithShouldResumeSession:
index ef5cec4..94dc925 100644 (file)
@@ -21,58 +21,58 @@ extern NSInteger const kRTCAudioSessionErrorLockRequired;
 /** Unknown configuration error occurred. */
 extern NSInteger const kRTCAudioSessionErrorConfiguration;
 
-@class RTCAudioSession;
-@class RTCAudioSessionConfiguration;
+@class WebRTCAudioSession;
+@class WebRTCAudioSessionConfiguration;
 
 // Surfaces AVAudioSession events. WebRTC will listen directly for notifications
 // from AVAudioSession and handle them before calling these delegate methods,
 // at which point applications can perform additional processing if required.
 RTC_EXPORT
-@protocol RTCAudioSessionDelegate <NSObject>
+@protocol WebRTCAudioSessionDelegate <NSObject>
 
 @optional
 /** Called on a system notification thread when AVAudioSession starts an
  *  interruption event.
  */
-- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session;
+- (void)audioSessionDidBeginInterruption:(WebRTCAudioSession *)session;
 
 /** Called on a system notification thread when AVAudioSession ends an
  *  interruption event.
  */
-- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session
+- (void)audioSessionDidEndInterruption:(WebRTCAudioSession *)session
                    shouldResumeSession:(BOOL)shouldResumeSession;
 
 /** Called on a system notification thread when AVAudioSession changes the
  *  route.
  */
-- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session
+- (void)audioSessionDidChangeRoute:(WebRTCAudioSession *)session
            reason:(AVAudioSessionRouteChangeReason)reason
     previousRoute:(AVAudioSessionRouteDescription *)previousRoute;
 
 /** Called on a system notification thread when AVAudioSession media server
  *  terminates.
  */
-- (void)audioSessionMediaServicesWereLost:(RTCAudioSession *)session;
+- (void)audioSessionMediaServicesWereLost:(WebRTCAudioSession *)session;
 
 /** Called on a system notification thread when AVAudioSession media server
  *  restarts.
  */
-- (void)audioSessionMediaServicesWereReset:(RTCAudioSession *)session;
+- (void)audioSessionMediaServicesWereReset:(WebRTCAudioSession *)session;
 
 // TODO(tkchin): Maybe handle SilenceSecondaryAudioHintNotification.
 
-- (void)audioSession:(RTCAudioSession *)session
+- (void)audioSession:(WebRTCAudioSession *)session
     didChangeCanPlayOrRecord:(BOOL)canPlayOrRecord;
 
 /** Called on a WebRTC thread when the audio device is notified to begin
  *  playback or recording.
  */
-- (void)audioSessionDidStartPlayOrRecord:(RTCAudioSession *)session;
+- (void)audioSessionDidStartPlayOrRecord:(WebRTCAudioSession *)session;
 
 /** Called on a WebRTC thread when the audio device is notified to stop
  *  playback or recording.
  */
-- (void)audioSessionDidStopPlayOrRecord:(RTCAudioSession *)session;
+- (void)audioSessionDidStopPlayOrRecord:(WebRTCAudioSession *)session;
 
 @end
 
@@ -80,11 +80,11 @@ RTC_EXPORT
  *  AVCaptureDevice. This is used to that interleaving configurations between
  *  WebRTC and the application layer are avoided.
  *
- *  RTCAudioSession also coordinates activation so that the audio session is
+ *  WebRTCAudioSession also coordinates activation so that the audio session is
  *  activated only once. See |setActive:error:|.
  */
 RTC_EXPORT
-@interface RTCAudioSession : NSObject
+@interface WebRTCAudioSession : NSObject
 
 /** Convenience property to access the AVAudioSession singleton. Callers should
  *  not call setters on AVAudioSession directly, but other method invocations
@@ -96,7 +96,7 @@ RTC_EXPORT
  *  AVAudioSession.
  */
 @property(nonatomic, readonly) BOOL isActive;
-/** Whether RTCAudioSession is currently locked for configuration. */
+/** Whether WebRTCAudioSession is currently locked for configuration. */
 @property(nonatomic, readonly) BOOL isLocked;
 
 /** If YES, WebRTC will not initialize the audio unit automatically when an
@@ -154,9 +154,9 @@ RTC_EXPORT
 - (instancetype)init NS_UNAVAILABLE;
 
 /** Adds a delegate, which is held weakly. */
-- (void)addDelegate:(id<RTCAudioSessionDelegate>)delegate;
+- (void)addDelegate:(id<WebRTCAudioSessionDelegate>)delegate;
 /** Removes an added delegate. */
-- (void)removeDelegate:(id<RTCAudioSessionDelegate>)delegate;
+- (void)removeDelegate:(id<WebRTCAudioSessionDelegate>)delegate;
 
 /** Request exclusive access to the audio session for configuration. This call
  *  will block if the lock is held by another object.
@@ -202,20 +202,20 @@ RTC_EXPORT
 
 @end
 
-@interface RTCAudioSession (Configuration)
+@interface WebRTCAudioSession (Configuration)
 
 /** Applies the configuration to the current session. Attempts to set all
  *  properties even if previous ones fail. Only the last error will be
  *  returned.
  *  |lockForConfiguration| must be called first.
  */
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
                    error:(NSError **)outError;
 
 /** Convenience method that calls both setConfiguration and setActive.
  *  |lockForConfiguration| must be called first.
  */
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
                   active:(BOOL)active
                    error:(NSError **)outError;
 
index f690184..c4c5f0f 100644 (file)
 #import "webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h"
 #import "webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h"
 
-NSString * const kRTCAudioSessionErrorDomain = @"org.webrtc.RTCAudioSession";
+NSString * const kRTCAudioSessionErrorDomain = @"org.webrtc.WebRTCAudioSession";
 NSInteger const kRTCAudioSessionErrorLockRequired = -1;
 NSInteger const kRTCAudioSessionErrorConfiguration = -2;
 
 // This class needs to be thread-safe because it is accessed from many threads.
 // TODO(tkchin): Consider more granular locking. We're not expecting a lot of
 // lock contention so coarse locks should be fine for now.
-@implementation RTCAudioSession {
+@implementation WebRTCAudioSession {
   rtc::CriticalSection _crit;
   AVAudioSession *_session;
   volatile int _activationCount;
@@ -46,7 +46,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
 
 + (instancetype)sharedInstance {
   static dispatch_once_t onceToken;
-  static RTCAudioSession *sharedInstance = nil;
+  static WebRTCAudioSession *sharedInstance = nil;
   dispatch_once(&onceToken, ^{
     sharedInstance = [[self alloc] init];
   });
@@ -96,7 +96,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
 
 - (NSString *)description {
   NSString *format =
-      @"RTCAudioSession: {\n"
+      @"WebRTCAudioSession: {\n"
        "  category: %@\n"
        "  categoryOptions: %ld\n"
        "  mode: %@\n"
@@ -166,7 +166,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
 }
 
 // TODO(tkchin): Check for duplicates.
-- (void)addDelegate:(id<RTCAudioSessionDelegate>)delegate {
+- (void)addDelegate:(id<WebRTCAudioSessionDelegate>)delegate {
   if (!delegate) {
     return;
   }
@@ -176,7 +176,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
   }
 }
 
-- (void)removeDelegate:(id<RTCAudioSessionDelegate>)delegate {
+- (void)removeDelegate:(id<WebRTCAudioSessionDelegate>)delegate {
   if (!delegate) {
     return;
   }
@@ -563,7 +563,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
   return error;
 }
 
-- (std::vector<__weak id<RTCAudioSessionDelegate> >)delegates {
+- (std::vector<__weak id<WebRTCAudioSessionDelegate> >)delegates {
   @synchronized(self) {
     // Note: this returns a copy.
     return _delegates;
@@ -571,7 +571,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
 }
 
 // TODO(tkchin): check for duplicates.
-- (void)pushDelegate:(id<RTCAudioSessionDelegate>)delegate {
+- (void)pushDelegate:(id<WebRTCAudioSessionDelegate>)delegate {
   @synchronized(self) {
     _delegates.insert(_delegates.begin(), delegate);
   }
@@ -629,7 +629,7 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
   // acquire lock if it hasn't already been called.
   if (!self.isLocked) {
     if (outError) {
-      *outError = [RTCAudioSession lockError];
+      *outError = [WebRTCAudioSession lockError];
     }
     return NO;
   }
@@ -672,8 +672,8 @@ NSInteger const kRTCAudioSessionErrorConfiguration = -2;
   // Configure the AVAudioSession and activate it.
   // Provide an error even if there isn't one so we can log it.
   NSError *error = nil;
-  RTCAudioSessionConfiguration *webRTCConfig =
-      [RTCAudioSessionConfiguration webRTCConfiguration];
+  WebRTCAudioSessionConfiguration *webRTCConfig =
+      [WebRTCAudioSessionConfiguration webRTCConfiguration];
   if (![self setConfiguration:webRTCConfig active:YES error:&error]) {
     RTCLogError(@"Failed to set WebRTC audio configuration: %@",
                 error.localizedDescription);
index 6a02751..1e03993 100644 (file)
@@ -23,7 +23,7 @@ extern const double kRTCAudioSessionLowComplexityIOBufferDuration;
 
 // Struct to hold configuration values.
 RTC_EXPORT
-@interface RTCAudioSessionConfiguration : NSObject
+@interface WebRTCAudioSessionConfiguration : NSObject
 
 @property(nonatomic, strong) NSString *category;
 @property(nonatomic, assign) AVAudioSessionCategoryOptions categoryOptions;
@@ -41,7 +41,7 @@ RTC_EXPORT
 /** Returns the configuration that WebRTC needs. */
 + (instancetype)webRTCConfiguration;
 /** Provide a way to override the default configuration. */
-+ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration;
++ (void)setWebRTCConfiguration:(WebRTCAudioSessionConfiguration *)configuration;
 
 @end
 
index 9bbd4b7..9ef2fca 100644 (file)
@@ -52,9 +52,9 @@ const double kRTCAudioSessionHighPerformanceIOBufferDuration = 0.01;
 // TODO(henrika): monitor this size and determine if it should be modified.
 const double kRTCAudioSessionLowComplexityIOBufferDuration = 0.06;
 
-static RTCAudioSessionConfiguration *gWebRTCConfiguration = nil;
+static WebRTCAudioSessionConfiguration *gWebRTCConfiguration = nil;
 
-@implementation RTCAudioSessionConfiguration
+@implementation WebRTCAudioSessionConfiguration
 
 @synthesize category = _category;
 @synthesize categoryOptions = _categoryOptions;
@@ -106,9 +106,9 @@ static RTCAudioSessionConfiguration *gWebRTCConfiguration = nil;
 }
 
 + (instancetype)currentConfiguration {
-  RTCAudioSession *session = [RTCAudioSession sharedInstance];
-  RTCAudioSessionConfiguration *config =
-      [[RTCAudioSessionConfiguration alloc] init];
+  WebRTCAudioSession *session = [WebRTCAudioSession sharedInstance];
+  WebRTCAudioSessionConfiguration *config =
+      [[WebRTCAudioSessionConfiguration alloc] init];
   config.category = session.category;
   config.categoryOptions = session.categoryOptions;
   config.mode = session.mode;
@@ -121,11 +121,11 @@ static RTCAudioSessionConfiguration *gWebRTCConfiguration = nil;
 
 + (instancetype)webRTCConfiguration {
   @synchronized(self) {
-    return (RTCAudioSessionConfiguration *)gWebRTCConfiguration;
+    return (WebRTCAudioSessionConfiguration *)gWebRTCConfiguration;
   }
 }
 
-+ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration {
++ (void)setWebRTCConfiguration:(WebRTCAudioSessionConfiguration *)configuration {
   @synchronized(self) {
     gWebRTCConfiguration = configuration;
   }
index 0140aa0..c658722 100644 (file)
@@ -17,7 +17,7 @@ class AudioSessionObserver;
 /** Adapter that forwards RTCAudioSessionDelegate calls to the appropriate
  *  methods on the AudioSessionObserver.
  */
-@interface RTCAudioSessionDelegateAdapter : NSObject <RTCAudioSessionDelegate>
+@interface WebRTCAudioSessionDelegateAdapter : NSObject <WebRTCAudioSessionDelegate>
 
 - (instancetype)init NS_UNAVAILABLE;
 
index b554e51..5b73d68 100644 (file)
@@ -14,7 +14,7 @@
 
 #import "WebRTC/RTCLogging.h"
 
-@implementation RTCAudioSessionDelegateAdapter {
+@implementation WebRTCAudioSessionDelegateAdapter {
   webrtc::AudioSessionObserver *_observer;
 }
 
   return self;
 }
 
-#pragma mark - RTCAudioSessionDelegate
+#pragma mark - WebRTCAudioSessionDelegate
 
-- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session {
+- (void)audioSessionDidBeginInterruption:(WebRTCAudioSession *)session {
   _observer->OnInterruptionBegin();
 }
 
-- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session
+- (void)audioSessionDidEndInterruption:(WebRTCAudioSession *)session
                    shouldResumeSession:(BOOL)shouldResumeSession {
   _observer->OnInterruptionEnd();
 }
 
-- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session
+- (void)audioSessionDidChangeRoute:(WebRTCAudioSession *)session
            reason:(AVAudioSessionRouteChangeReason)reason
     previousRoute:(AVAudioSessionRouteDescription *)previousRoute {
   switch (reason) {
   }
 }
 
-- (void)audioSessionMediaServicesWereLost:(RTCAudioSession *)session {
+- (void)audioSessionMediaServicesWereLost:(WebRTCAudioSession *)session {
 }
 
-- (void)audioSessionMediaServicesWereReset:(RTCAudioSession *)session {
+- (void)audioSessionMediaServicesWereReset:(WebRTCAudioSession *)session {
 }
 
-- (void)audioSession:(RTCAudioSession *)session
+- (void)audioSession:(WebRTCAudioSession *)session
     didChangeCanPlayOrRecord:(BOOL)canPlayOrRecord {
   _observer->OnCanPlayOrRecordChange(canPlayOrRecord);
 }
 
-- (void)audioSessionDidStartPlayOrRecord:(RTCAudioSession *)session {
+- (void)audioSessionDidStartPlayOrRecord:(WebRTCAudioSession *)session {
 }
 
-- (void)audioSessionDidStopPlayOrRecord:(RTCAudioSession *)session {
+- (void)audioSessionDidStopPlayOrRecord:(WebRTCAudioSession *)session {
 }
 
 @end
index ece7b40..faa0df2 100644 (file)
                5CDD90831E43D15C00621E92 /* nonlinear_beamformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDD90731E43D15C00621E92 /* nonlinear_beamformer.h */; };
                5CFD53601E4BA34B00482908 /* helpers_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD535F1E4BA34B00482908 /* helpers_ios.mm */; };
                5CFD536C1E4BA4DC00482908 /* RTCAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53631E4BA4DC00482908 /* RTCAudioSession.h */; };
-               5CFD536D1E4BA4DC00482908 /* RTCAudioSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53641E4BA4DC00482908 /* RTCAudioSession.mm */; };
-               5CFD536E1E4BA4DC00482908 /* RTCAudioSession+Configuration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53651E4BA4DC00482908 /* RTCAudioSession+Configuration.mm */; };
+               5CFD536D1E4BA4DC00482908 /* RTCAudioSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53641E4BA4DC00482908 /* RTCAudioSession.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+               5CFD536E1E4BA4DC00482908 /* RTCAudioSession+Configuration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53651E4BA4DC00482908 /* RTCAudioSession+Configuration.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
                5CFD536F1E4BA4DC00482908 /* RTCAudioSession+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53661E4BA4DC00482908 /* RTCAudioSession+Private.h */; };
                5CFD53701E4BA4DC00482908 /* RTCAudioSessionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53671E4BA4DC00482908 /* RTCAudioSessionConfiguration.h */; };
-               5CFD53711E4BA4DC00482908 /* RTCAudioSessionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53681E4BA4DC00482908 /* RTCAudioSessionConfiguration.m */; };
+               5CFD53711E4BA4DC00482908 /* RTCAudioSessionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53681E4BA4DC00482908 /* RTCAudioSessionConfiguration.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
                5CFD53721E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53691E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.h */; };
-               5CFD53731E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD536A1E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm */; };
+               5CFD53731E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD536A1E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
                5CFD537C1E4BA4F500482908 /* audio_device_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53751E4BA4F500482908 /* audio_device_ios.h */; };
                5CFD537D1E4BA4F500482908 /* audio_device_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53761E4BA4F500482908 /* audio_device_ios.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
                5CFD53801E4BA4F500482908 /* audio_session_observer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53791E4BA4F500482908 /* audio_session_observer.h */; };
                5CFD53811E4BA4F500482908 /* voice_processing_audio_unit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */; };
-               5CFD53821E4BA4F500482908 /* voice_processing_audio_unit.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */; };
+               5CFD53821E4BA4F500482908 /* voice_processing_audio_unit.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+               5CFD53841E4BBD8D00482908 /* audio_device_not_implemented_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53831E4BBD8D00482908 /* audio_device_not_implemented_ios.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
                5CFD53791E4BA4F500482908 /* audio_session_observer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_session_observer.h; sourceTree = "<group>"; };
                5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = voice_processing_audio_unit.h; sourceTree = "<group>"; };
                5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = voice_processing_audio_unit.mm; sourceTree = "<group>"; };
+               5CFD53831E4BBD8D00482908 /* audio_device_not_implemented_ios.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = audio_device_not_implemented_ios.mm; sourceTree = "<group>"; };
                5D7C59C51208C68B001C873E /* libwebrtc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = libwebrtc.xcconfig; sourceTree = "<group>"; };
                5D7C59C61208C68B001C873E /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
                5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
                                5CFD53621E4BA4C600482908 /* objc */,
                                5CFD53751E4BA4F500482908 /* audio_device_ios.h */,
                                5CFD53761E4BA4F500482908 /* audio_device_ios.mm */,
+                               5CFD53831E4BBD8D00482908 /* audio_device_not_implemented_ios.mm */,
                                5CFD53791E4BA4F500482908 /* audio_session_observer.h */,
                                5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */,
                                5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */,
                                5C11A0001E457400004F0987 /* audio_device_impl.cc in Sources */,
                                5CFD537D1E4BA4F500482908 /* audio_device_ios.mm in Sources */,
                                5C11A00B1E457448004F0987 /* audio_device_mac.cc in Sources */,
+                               5CFD53841E4BBD8D00482908 /* audio_device_not_implemented_ios.mm in Sources */,
                                5CDD84171E439B2900621E92 /* audio_encoder.cc in Sources */,
                                5CDD8CA71E43C6F700621E92 /* audio_encoder_cng.cc in Sources */,
                                5CDD8FF31E43CDF400621E92 /* audio_encoder_copy_red.cc in Sources */,