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:
parent
e3b354bdfa
commit
5db450d244
@ -304,19 +304,13 @@ 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
|
||||
isLoopback:_loopbackSwitch.isOn
|
||||
isAudioOnly:_audioOnlySwitch.isOn
|
||||
shouldMakeAecDump:_aecdumpSwitch.isOn
|
||||
shouldUseLevelControl:_levelControlSwitch.isOn
|
||||
useManualAudio:_useManualAudioSwitch.isOn];
|
||||
didInputRoom:_roomText.roomText
|
||||
isLoopback:_loopbackSwitch.isOn
|
||||
isAudioOnly:_audioOnlySwitch.isOn
|
||||
shouldMakeAecDump:_aecdumpSwitch.isOn
|
||||
shouldUseLevelControl:_levelControlSwitch.isOn
|
||||
useManualAudio:_useManualAudioSwitch.isOn];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@ -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,8 +98,13 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
|
||||
shouldUseLevelControl:(BOOL)shouldUseLevelControl
|
||||
useManualAudio:(BOOL)useManualAudio {
|
||||
if (!room.length) {
|
||||
[self showAlertWithMessage:@"Missing room name."];
|
||||
return;
|
||||
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];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user