Adding AecDump functionality to AppRTCDemo for iOS
BUG=webrtc:6229
Review-Url: https://codereview.webrtc.org/2253013006
Cr-Commit-Position: refs/heads/master@{#13927}
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h
index a783ca1..e9f4991 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h
@@ -15,10 +15,11 @@
@protocol ARDMainViewDelegate <NSObject>
- (void)mainView:(ARDMainView *)mainView
- didInputRoom:(NSString *)room
- isLoopback:(BOOL)isLoopback
- isAudioOnly:(BOOL)isAudioOnly
- useManualAudio:(BOOL)useManualAudio;
+ didInputRoom:(NSString *)room
+ isLoopback:(BOOL)isLoopback
+ isAudioOnly:(BOOL)isAudioOnly
+ shouldMakeAecDump:(BOOL)shouldMakeAecDump
+ useManualAudio:(BOOL)useManualAudio;
- (void)mainViewDidToggleAudioLoop:(ARDMainView *)mainView;
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m
index ef55555..59b428a 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m
@@ -119,6 +119,8 @@
UILabel *_callOptionsLabel;
UISwitch *_audioOnlySwitch;
UILabel *_audioOnlyLabel;
+ UISwitch *_aecdumpSwitch;
+ UILabel *_aecdumpLabel;
UISwitch *_loopbackSwitch;
UILabel *_loopbackLabel;
UISwitch *_useManualAudioSwitch;
@@ -174,6 +176,17 @@
[_loopbackLabel sizeToFit];
[self addSubview:_loopbackLabel];
+ _aecdumpSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
+ [_aecdumpSwitch sizeToFit];
+ [self addSubview:_aecdumpSwitch];
+
+ _aecdumpLabel = [[UILabel alloc] initWithFrame:CGRectZero];
+ _aecdumpLabel.text = @"Create AecDump";
+ _aecdumpLabel.font = controlFont;
+ _aecdumpLabel.textColor = controlFontColor;
+ [_aecdumpLabel sizeToFit];
+ [self addSubview:_aecdumpLabel];
+
_useManualAudioSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
[_useManualAudioSwitch sizeToFit];
_useManualAudioSwitch.on = YES;
@@ -274,8 +287,21 @@
_loopbackLabel.center = CGPointMake(loopbackModeLabelCenterX,
CGRectGetMidY(loopbackModeRect));
- CGFloat useManualAudioTop =
+ CGFloat aecdumpModeTop =
CGRectGetMaxY(_loopbackSwitch.frame) + kCallControlMargin;
+ CGRect aecdumpModeRect = CGRectMake(kCallControlMargin * 3,
+ aecdumpModeTop,
+ _aecdumpSwitch.frame.size.width,
+ _aecdumpSwitch.frame.size.height);
+ _aecdumpSwitch.frame = aecdumpModeRect;
+ CGFloat aecdumpModeLabelCenterX = CGRectGetMaxX(aecdumpModeRect) +
+ kCallControlMargin + _aecdumpLabel.frame.size.width / 2;
+ _aecdumpLabel.center = CGPointMake(aecdumpModeLabelCenterX,
+ CGRectGetMidY(aecdumpModeRect));
+
+
+ CGFloat useManualAudioTop =
+ CGRectGetMaxY(_aecdumpSwitch.frame) + kCallControlMargin;
CGRect useManualAudioRect =
CGRectMake(kCallControlMargin * 3,
useManualAudioTop,
@@ -334,6 +360,7 @@
didInputRoom:room
isLoopback:_loopbackSwitch.isOn
isAudioOnly:_audioOnlySwitch.isOn
+ shouldMakeAecDump:_aecdumpSwitch.isOn
useManualAudio:_useManualAudioSwitch.isOn];
}
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m
index a684ba3..21f00cb 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m
@@ -54,9 +54,10 @@
#pragma mark - ARDMainViewDelegate
- (void)mainView:(ARDMainView *)mainView
- didInputRoom:(NSString *)room
- isLoopback:(BOOL)isLoopback
- isAudioOnly:(BOOL)isAudioOnly
+ didInputRoom:(NSString *)room
+ isLoopback:(BOOL)isLoopback
+ isAudioOnly:(BOOL)isAudioOnly
+ shouldMakeAecDump:(BOOL)shouldMakeAecDump
useManualAudio:(BOOL)useManualAudio {
if (!room.length) {
[self showAlertWithMessage:@"Missing room name."];
@@ -96,6 +97,7 @@
[[ARDVideoCallViewController alloc] initForRoom:trimmedRoom
isLoopback:isLoopback
isAudioOnly:isAudioOnly
+ shouldMakeAecDump:shouldMakeAecDump
delegate:self];
videoCallViewController.modalTransitionStyle =
UIModalTransitionStyleCrossDissolve;
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h
index f3a9554..ffffd12 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h
@@ -24,6 +24,7 @@
- (instancetype)initForRoom:(NSString *)room
isLoopback:(BOOL)isLoopback
isAudioOnly:(BOOL)isAudioOnly
+ shouldMakeAecDump:(BOOL)shouldMakeAecDump
delegate:(id<ARDVideoCallViewControllerDelegate>)delegate;
@end
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
index d35e1e6..bb49ca4 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
@@ -39,13 +39,15 @@
- (instancetype)initForRoom:(NSString *)room
isLoopback:(BOOL)isLoopback
isAudioOnly:(BOOL)isAudioOnly
+ shouldMakeAecDump:(BOOL)shouldMakeAecDump
delegate:(id<ARDVideoCallViewControllerDelegate>)delegate {
if (self = [super init]) {
_delegate = delegate;
_client = [[ARDAppClient alloc] initWithDelegate:self];
[_client connectToRoomWithId:room
isLoopback:isLoopback
- isAudioOnly:isAudioOnly];
+ isAudioOnly:isAudioOnly
+ shouldMakeAecDump:shouldMakeAecDump];
}
return self;
}