]> git.sesse.net Git - vlc/commitdiff
macosx/CAS: implement basic error checking for the stream-out settings
authorFelix Paul Kühne <fkuehne@videolan.org>
Fri, 28 Dec 2012 10:13:33 +0000 (11:13 +0100)
committerFelix Paul Kühne <fkuehne@videolan.org>
Fri, 28 Dec 2012 10:15:43 +0000 (11:15 +0100)
modules/gui/macosx/ConvertAndSave.m

index cdd045bbf5cca6b8fa04ee348dfd03aa8808814a..f2e9fba58dfd45dc64172d2ed4fb9df009ed800d 100644 (file)
@@ -439,6 +439,7 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
 
 - (IBAction)closeStreamPanel:(id)sender
 {
+    /* provide a summary of the user selections */
     NSMutableString * labelContent = [[NSMutableString alloc] initWithFormat:_NS("%@ stream to %@:%@"), [_stream_type_pop titleOfSelectedItem], [_stream_address_fld stringValue], [_stream_port_fld stringValue]];
 
     if ([_stream_type_pop indexOfSelectedItem] > 1)
@@ -447,6 +448,33 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
     [_destination_stream_lbl setStringValue:labelContent];
     [labelContent release];
 
+    /* catch obvious errors */
+    if (([_stream_http_ckb state] || [_stream_rtsp_ckb state] || [_stream_sap_ckb state]) && ![[_stream_channel_fld stringValue] length] > 0) {
+        NSBeginInformationalAlertSheet(_NS("No Channel Name given"),
+                                       _NS("OK"), @"", @"", _stream_panel, nil, nil, nil, nil,
+                                       @"%@", _NS("A stream announcement option is enabled. However, no channel name is provided."));
+        return;
+    }
+
+    if ([_stream_sdp_ckb state] && ![[_stream_sdp_fld stringValue] length] > 0) {
+        NSBeginInformationalAlertSheet(_NS("No SDP URL given"),
+                                       _NS("OK"), @"", @"", _stream_panel, nil, nil, nil, nil,
+                                       @"%@", _NS("A SDP export is requested, but no URL is provided."));
+        return;
+    }
+
+    NSString *tmpString = [_stream_address_fld stringValue];
+    if ([[tmpString componentsSeparatedByString:@":"] count] != 5 || [[tmpString componentsSeparatedByString:@"."] count] != 3 || ![tmpString isEqualToString:@"localhost"]) {
+        NSBeginInformationalAlertSheet(_NS("Invalid Output Destination"),
+                                       _NS("OK"), @"", @"", _stream_panel, nil, nil, nil, nil,
+                                       @"%@", _NS("The entered output destination IP does not appear to be legit."));
+        return;
+    }
+
+    /* store destination for further reference and update UI */
+    [self setOutputDestination: [_stream_address_fld stringValue]];
+    [self updateOKButton];
+
     [_stream_panel orderOut:sender];
     [NSApp endSheet: _stream_panel];
 }