iOS:Add loopback launch argument functionality in AppRTCMobile.

It will enable us to start immediate loopback just by passing
the "loopback" string, as argument when launching.
Usefull for testing and command line profiling.

BUG=NONE

Review-Url: https://codereview.webrtc.org/2777983004
Cr-Commit-Position: refs/heads/master@{#17426}
This commit is contained in:
denicija 2017-03-28 08:27:41 -07:00 committed by Commit bot
parent e3b354bdfa
commit 5db450d244
2 changed files with 35 additions and 14 deletions

View File

@ -304,14 +304,8 @@ static CGFloat const kCallControlMargin = 8;
}
- (void)onStartCall:(id)sender {
NSString *room = _roomText.roomText;
// If this is a loopback call, allow a generated room name.
if (!room.length && _loopbackSwitch.isOn) {
room = [[NSUUID UUID] UUIDString];
}
room = [room stringByReplacingOccurrencesOfString:@"-" withString:@""];
[_delegate mainView:self
didInputRoom:room
didInputRoom:_roomText.roomText
isLoopback:_loopbackSwitch.isOn
isAudioOnly:_audioOnlySwitch.isOn
shouldMakeAecDump:_aecdumpSwitch.isOn

View File

@ -25,6 +25,9 @@
static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
// Launch argument to be passed to indicate that the app should start loopback immediatly
static NSString *const loopbackLaunchProcessArgument = @"loopback";
@interface ARDMainViewController () <
ARDMainViewDelegate,
ARDVideoCallViewControllerDelegate,
@ -37,6 +40,19 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
BOOL _useManualAudio;
}
- (void)viewDidLoad {
[super viewDidLoad];
if ([[[NSProcessInfo processInfo] arguments] containsObject:loopbackLaunchProcessArgument]) {
[self mainView:nil
didInputRoom:@""
isLoopback:YES
isAudioOnly:NO
shouldMakeAecDump:NO
shouldUseLevelControl:NO
useManualAudio:NO];
}
}
- (void)loadView {
self.title = @"AppRTC Mobile";
_mainView = [[ARDMainView alloc] initWithFrame:CGRectZero];
@ -66,6 +82,12 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
self.navigationItem.rightBarButtonItem = settingsButton;
}
+ (NSString *)loopbackRoomString {
NSString *loopbackRoomString =
[[NSUUID UUID].UUIDString stringByReplacingOccurrencesOfString:@"-" withString:@""];
return loopbackRoomString;
}
#pragma mark - ARDMainViewDelegate
- (void)mainView:(ARDMainView *)mainView
@ -76,9 +98,14 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
shouldUseLevelControl:(BOOL)shouldUseLevelControl
useManualAudio:(BOOL)useManualAudio {
if (!room.length) {
if (isLoopback) {
// If this is a loopback call, allow a generated room name.
room = [[self class] loopbackRoomString];
} else {
[self showAlertWithMessage:@"Missing room name."];
return;
}
}
// Trim whitespaces.
NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];
NSString *trimmedRoom = [room stringByTrimmingCharactersInSet:whitespaceSet];