Make RTCAudioSession accessible to Swift.
This is done by:
1. removing the <vector> include from RTCAudioSession+Private,
2. creating a audio_session_objc package that excludes the RTCNativeAudioSessionDelegateAdapter class.
Bug: webrtc:11237
Change-Id: I36c86542a19e3244456fd164d908563b1435de29
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/163900
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Chuck Hays <haysc@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30177}
diff --git a/sdk/objc/components/audio/RTCAudioSession+Private.h b/sdk/objc/components/audio/RTCAudioSession+Private.h
index 8ad0c21..8cf9339 100644
--- a/sdk/objc/components/audio/RTCAudioSession+Private.h
+++ b/sdk/objc/components/audio/RTCAudioSession+Private.h
@@ -10,8 +10,6 @@
#import "RTCAudioSession.h"
-#include <vector>
-
NS_ASSUME_NONNULL_BEGIN
@class RTCAudioSessionConfiguration;
@@ -77,8 +75,6 @@
- (NSError *)configurationErrorWithDescription:(NSString *)description;
// Properties and methods for tests.
-@property(nonatomic, readonly) std::vector<__weak id<RTCAudioSessionDelegate> > delegates;
-
- (void)notifyDidBeginInterruption;
- (void)notifyDidEndInterruptionWithShouldResumeSession:(BOOL)shouldResumeSession;
- (void)notifyDidChangeRouteWithReason:(AVAudioSessionRouteChangeReason)reason
diff --git a/sdk/objc/components/audio/RTCAudioSession.mm b/sdk/objc/components/audio/RTCAudioSession.mm
index 09ffa16..229a6ea 100644
--- a/sdk/objc/components/audio/RTCAudioSession.mm
+++ b/sdk/objc/components/audio/RTCAudioSession.mm
@@ -12,6 +12,8 @@
#import <UIKit/UIKit.h>
+#include <vector>
+
#include "rtc_base/atomic_ops.h"
#include "rtc_base/checks.h"
#include "rtc_base/critical_section.h"
@@ -25,6 +27,10 @@
NSInteger const kRTCAudioSessionErrorConfiguration = -2;
NSString * const kRTCAudioSessionOutputVolumeSelector = @"outputVolume";
+@interface RTCAudioSession ()
+@property(nonatomic, readonly) std::vector<__weak id<RTCAudioSessionDelegate> > delegates;
+@end
+
// 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.
diff --git a/sdk/objc/unittests/RTCAudioSessionTest.mm b/sdk/objc/unittests/RTCAudioSessionTest.mm
index 6bb46ae..c2140c3 100644
--- a/sdk/objc/unittests/RTCAudioSessionTest.mm
+++ b/sdk/objc/unittests/RTCAudioSessionTest.mm
@@ -11,6 +11,8 @@
#import <Foundation/Foundation.h>
#import <OCMock/OCMock.h>
+#include <vector>
+
#include "rtc_base/gunit.h"
#import "components/audio/RTCAudioSession+Private.h"
@@ -20,6 +22,8 @@
@interface RTCAudioSession (UnitTesting)
+@property(nonatomic, readonly) std::vector<__weak id<RTCAudioSessionDelegate> > delegates;
+
- (instancetype)initWithAudioSession:(id)audioSession;
@end