Index: webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m |
diff --git a/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m b/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m |
index 593c6a27f81893df92fc1338eb193d6b2ab67630..75d454a44c3a1372dc4761ade72cbb9f4ca78b7c 100644 |
--- a/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m |
+++ b/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m |
@@ -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]; |