Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2218)

Unified Diff: webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm

Issue 1778793005: Refactor AVAudioSession intialization code. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Make isConfigured private Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm
diff --git a/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm b/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm
index 83189b900c8104fbc2bf9d69e79645ea1e291248..b80a7fd255e3ac48d11fa3ac68c67e9b706ecbad 100644
--- a/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm
+++ b/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm
@@ -18,6 +18,7 @@
NSString * const kRTCAudioSessionErrorDomain = @"org.webrtc.RTCAudioSession";
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
@@ -29,6 +30,7 @@ NSInteger const kRTCAudioSessionErrorLockRequired = -1;
NSInteger _activationCount;
NSInteger _lockRecursionCount;
BOOL _isActive;
+ BOOL _shouldDelayAudioConfiguration;
}
@synthesize session = _session;
@@ -91,6 +93,21 @@ NSInteger const kRTCAudioSessionErrorLockRequired = -1;
}
}
+- (void)setShouldDelayAudioConfiguration:(BOOL)shouldDelayAudioConfiguration {
+ @synchronized(self) {
+ if (_shouldDelayAudioConfiguration == shouldDelayAudioConfiguration) {
+ return;
+ }
+ _shouldDelayAudioConfiguration = shouldDelayAudioConfiguration;
+ }
+}
+
+- (BOOL)shouldDelayAudioConfiguration {
+ @synchronized(self) {
+ return _shouldDelayAudioConfiguration;
+ }
+}
+
- (void)addDelegate:(id<RTCAudioSessionDelegate>)delegate {
@synchronized(self) {
[_delegates addObject:delegate];
@@ -250,7 +267,8 @@ NSInteger const kRTCAudioSessionErrorLockRequired = -1;
[self incrementActivationCount];
}
} else {
- RTCLogError(@"Failed to setActive:%d. Error: %@", active, error);
+ RTCLogError(@"Failed to setActive:%d. Error: %@",
+ active, error.localizedDescription);
}
// Decrement activation count on deactivation whether or not it succeeded.
if (!active) {
@@ -441,18 +459,6 @@ NSInteger const kRTCAudioSessionErrorLockRequired = -1;
return error;
}
-- (BOOL)checkLock:(NSError **)outError {
- // Check ivar instead of trying to acquire lock so that we won't accidentally
- // acquire lock if it hasn't already been called.
- if (!self.isLocked) {
- if (outError) {
- *outError = [RTCAudioSession lockError];
- }
- return NO;
- }
- return YES;
-}
-
- (NSSet *)delegates {
@synchronized(self) {
return _delegates.setRepresentation;
@@ -479,6 +485,18 @@ NSInteger const kRTCAudioSessionErrorLockRequired = -1;
}
}
+- (BOOL)checkLock:(NSError **)outError {
+ // Check ivar instead of trying to acquire lock so that we won't accidentally
+ // acquire lock if it hasn't already been called.
+ if (!self.isLocked) {
+ if (outError) {
+ *outError = [RTCAudioSession lockError];
+ }
+ return NO;
+ }
+ return YES;
+}
+
- (void)updateAudioSessionAfterEvent {
BOOL shouldActivate = self.activationCount > 0;
AVAudioSessionSetActiveOptions options = shouldActivate ?

Powered by Google App Engine
This is Rietveld 408576698