Index: webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m |
diff --git a/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m b/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m |
index 086725172bd7909c26d32ea52f6085bf8856d20c..d2d04835499fe9ee990f546ddda01cc787d5cf39 100644 |
--- a/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m |
+++ b/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m |
@@ -10,6 +10,8 @@ |
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h" |
+#import "WebRTC/RTCDispatcher.h" |
+ |
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h" |
// Try to use mono to save resources. Also avoids channel format conversion |
@@ -49,6 +51,8 @@ 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; |
+ |
@implementation RTCAudioSessionConfiguration |
@synthesize category = _category; |
@@ -96,6 +100,10 @@ const double kRTCAudioSessionLowComplexityIOBufferDuration = 0.06; |
return self; |
} |
++ (void)initialize { |
+ gWebRTCConfiguration = [[self alloc] init]; |
+} |
+ |
+ (instancetype)currentConfiguration { |
RTCAudioSession *session = [RTCAudioSession sharedInstance]; |
RTCAudioSessionConfiguration *config = |
@@ -111,7 +119,15 @@ const double kRTCAudioSessionLowComplexityIOBufferDuration = 0.06; |
} |
+ (instancetype)webRTCConfiguration { |
- return [[self alloc] init]; |
+ @synchronized(self) { |
+ return (RTCAudioSessionConfiguration *)gWebRTCConfiguration; |
+ } |
+} |
+ |
++ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration { |
+ @synchronized(self) { |
+ gWebRTCConfiguration = configuration; |
+ } |
} |
@end |