Commit 62166376 authored by David Fuhrmann's avatar David Fuhrmann

macosx: be more tolerant when checking for physical device (fixes #6253)

parent bfa8edd8
......@@ -886,10 +886,10 @@ static VLCOpen *_o_sharedMainInstance = nil;
if (noErr == err)
actualVolume = catalogInfo.volume;
else
return NULL;
goto out;
}
else
return NULL;
goto out;
GetVolParmsInfoBuffer volumeParms;
err = FSGetVolumeParms(actualVolume, &volumeParms, sizeof(volumeParms));
......@@ -897,22 +897,29 @@ static VLCOpen *_o_sharedMainInstance = nil;
CFMutableDictionaryRef matchingDict;
io_service_t service;
if (!volumeParms.vMDeviceID)
return NULL;
if (!volumeParms.vMDeviceID) {
goto out;
}
matchingDict = IOBSDNameMatching(kIOMasterPortDefault, 0, volumeParms.vMDeviceID);
service = IOServiceGetMatchingService(kIOMasterPortDefault, matchingDict);
NSString *returnValue;
NSString *returnValue = nil;
if (IO_OBJECT_NULL != service) {
if (IOObjectConformsTo(service, kIOCDMediaClass)) {
if (IOObjectConformsTo(service, kIOCDMediaClass))
returnValue = kVLCMediaAudioCD;
}
else if (IOObjectConformsTo(service, kIODVDMediaClass))
returnValue = kVLCMediaDVD;
else if (IOObjectConformsTo(service, kIOBDMediaClass))
returnValue = kVLCMediaBD;
else {
IOObjectRelease(service);
if (returnValue)
return returnValue;
}
out:
if ([mountPath rangeOfString:@"VIDEO_TS" options:NSCaseInsensitiveSearch | NSBackwardsSearch].location != NSNotFound)
returnValue = kVLCMediaVideoTSFolder;
else if ([mountPath rangeOfString:@"BDMV" options:NSCaseInsensitiveSearch | NSBackwardsSearch].location != NSNotFound)
......@@ -953,10 +960,7 @@ static VLCOpen *_o_sharedMainInstance = nil;
if (!returnValue)
returnValue = kVLCMediaVideoTSFolder;
}
}
IOObjectRelease(service);
}
return returnValue;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment