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,19 +304,13 @@ static CGFloat const kCallControlMargin = 8;
} }
- (void)onStartCall:(id)sender { - (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 [_delegate mainView:self
didInputRoom:room didInputRoom:_roomText.roomText
isLoopback:_loopbackSwitch.isOn isLoopback:_loopbackSwitch.isOn
isAudioOnly:_audioOnlySwitch.isOn isAudioOnly:_audioOnlySwitch.isOn
shouldMakeAecDump:_aecdumpSwitch.isOn shouldMakeAecDump:_aecdumpSwitch.isOn
shouldUseLevelControl:_levelControlSwitch.isOn shouldUseLevelControl:_levelControlSwitch.isOn
useManualAudio:_useManualAudioSwitch.isOn]; useManualAudio:_useManualAudioSwitch.isOn];
} }
@end @end

View File

@ -25,6 +25,9 @@
static NSString *const barButtonImageString = @"ic_settings_black_24dp.png"; 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 () < @interface ARDMainViewController () <
ARDMainViewDelegate, ARDMainViewDelegate,
ARDVideoCallViewControllerDelegate, ARDVideoCallViewControllerDelegate,
@ -37,6 +40,19 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
BOOL _useManualAudio; 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 { - (void)loadView {
self.title = @"AppRTC Mobile"; self.title = @"AppRTC Mobile";
_mainView = [[ARDMainView alloc] initWithFrame:CGRectZero]; _mainView = [[ARDMainView alloc] initWithFrame:CGRectZero];
@ -66,6 +82,12 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
self.navigationItem.rightBarButtonItem = settingsButton; self.navigationItem.rightBarButtonItem = settingsButton;
} }
+ (NSString *)loopbackRoomString {
NSString *loopbackRoomString =
[[NSUUID UUID].UUIDString stringByReplacingOccurrencesOfString:@"-" withString:@""];
return loopbackRoomString;
}
#pragma mark - ARDMainViewDelegate #pragma mark - ARDMainViewDelegate
- (void)mainView:(ARDMainView *)mainView - (void)mainView:(ARDMainView *)mainView
@ -76,8 +98,13 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
shouldUseLevelControl:(BOOL)shouldUseLevelControl shouldUseLevelControl:(BOOL)shouldUseLevelControl
useManualAudio:(BOOL)useManualAudio { useManualAudio:(BOOL)useManualAudio {
if (!room.length) { if (!room.length) {
[self showAlertWithMessage:@"Missing room name."]; if (isLoopback) {
return; // If this is a loopback call, allow a generated room name.
room = [[self class] loopbackRoomString];
} else {
[self showAlertWithMessage:@"Missing room name."];
return;
}
} }
// Trim whitespaces. // Trim whitespaces.
NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet]; NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];