vlc/vlc-3.0 | branch: master | David Fuhrmann <dfuhrm...@videolan.org> | Wed 
Mar 31 22:51:17 2021 +0200| [f2e872c78dfdadf8dbbbc4db0a2aa6a3cfb353db] | 
committer: David Fuhrmann

macosx: open panel: fix MRL generation for multiple input devices

Fix issue in MRL generation for  multiple audio / video input devices.
Now updates the correct MRL in case the device selection changed.

(manual bp of c21bf10646a6c432a0d1fb695256778a84c83a13)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=f2e872c78dfdadf8dbbbc4db0a2aa6a3cfb353db
---

 modules/gui/macosx/VLCOpenWindowController.m | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/modules/gui/macosx/VLCOpenWindowController.m 
b/modules/gui/macosx/VLCOpenWindowController.m
index 57920bc09d..b93faeb5c4 100644
--- a/modules/gui/macosx/VLCOpenWindowController.m
+++ b/modules/gui/macosx/VLCOpenWindowController.m
@@ -1156,15 +1156,8 @@ static NSString *kCaptureTabViewId  = @"capture";
     else if ([[[_captureModePopup selectedItem] title] isEqualToString: 
_NS("Input Devices")]) {
         [_captureTabView selectTabViewItemAtIndex:0];
 
-        [self qtkChanged:nil];
-        [self qtkAudioChanged:nil];
-
         [self setMRL: @""];
-
-        if ([_qtkVideoCheckbox state] && _avCurrentDeviceUID)
-            [self setMRL:[NSString stringWithFormat:@"avcapture://%@", 
_avCurrentDeviceUID]];
-        else if ([_qtkAudioCheckbox state] && _avCurrentAudioDeviceUID)
-            [self setMRL:[NSString stringWithFormat:@"avaudiocapture://%@", 
_avCurrentAudioDeviceUID]];
+        [self qtkToggleUIElements: nil];
     }
 }
 
@@ -1199,6 +1192,17 @@ static NSString *kCaptureTabViewId  = @"capture";
 }
 
 // QTKit Recording actions
+
+- (void)updateInputDevicesUrl
+{
+    if ([_qtkVideoCheckbox state] && _avCurrentDeviceUID)
+        [self setMRL:[NSString stringWithFormat:@"avcapture://%@", 
_avCurrentDeviceUID]];
+    else if ([_qtkAudioCheckbox state] && _avCurrentAudioDeviceUID)
+        [self setMRL:[NSString stringWithFormat:@"avaudiocapture://%@", 
_avCurrentAudioDeviceUID]];
+    else
+        [self setMRL:@""];
+}
+
 - (IBAction)qtkChanged:(id)sender
 {
     NSInteger selectedDevice = [_qtkVideoDevicePopup indexOfSelectedItem];
@@ -1206,6 +1210,7 @@ static NSString *kCaptureTabViewId  = @"capture";
         return;
 
     _avCurrentDeviceUID = [[(AVCaptureDevice *)[_avvideoDevices 
objectAtIndex:selectedDevice] uniqueID] 
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
+    [self updateInputDevicesUrl];
 }
 
 - (IBAction)qtkAudioChanged:(id)sender
@@ -1215,16 +1220,16 @@ static NSString *kCaptureTabViewId  = @"capture";
         return;
 
     _avCurrentAudioDeviceUID = [[(AVCaptureDevice *)[_avaudioDevices 
objectAtIndex:selectedDevice] uniqueID] 
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
+    [self updateInputDevicesUrl];
 }
 
 - (IBAction)qtkToggleUIElements:(id)sender
 {
     [_qtkAudioDevicePopup setEnabled:[_qtkAudioCheckbox state]];
-    BOOL b_state = [_qtkVideoCheckbox state];
-    [_qtkVideoDevicePopup setEnabled:b_state];
+    [_qtkVideoDevicePopup setEnabled:[_qtkVideoCheckbox state]];
+
     [self qtkAudioChanged:sender];
     [self qtkChanged:sender];
-    [self openCaptureModeChanged:sender];
 }
 
 #pragma mark -

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to