vlc | branch: master | David Fuhrmann <[email protected]> | Sun Jun 24 14:09:36 2012 +0200| [d86de10ce6a52c523dc33848b4f36fe22b5a7bb6] | committer: David Fuhrmann
macosx: disk open: do a shallow instead of a deep search for media directories > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d86de10ce6a52c523dc33848b4f36fe22b5a7bb6 --- modules/gui/macosx/open.m | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/modules/gui/macosx/open.m b/modules/gui/macosx/open.m index d3f37b8..ea97f78 100644 --- a/modules/gui/macosx/open.m +++ b/modules/gui/macosx/open.m @@ -837,21 +837,41 @@ static VLCOpen *_o_sharedMainInstance = nil; { // NSFileManager is not thread-safe, don't use defaultManager outside of the main thread NSFileManager * fm = [[NSFileManager alloc] init]; - NSArray * topLevelItems; - topLevelItems = [fm subpathsOfDirectoryAtPath: mountPath error: NULL]; - [fm release]; - NSUInteger itemCount = [topLevelItems count]; - for (int i = 0; i < itemCount; i++) { - if([[topLevelItems objectAtIndex:i] rangeOfString:@"SVCD"].location != NSNotFound) { - returnValue = kVLCMediaSVCD; - break; - } - if([[topLevelItems objectAtIndex:i] rangeOfString:@"VCD"].location != NSNotFound) { - returnValue = kVLCMediaVCD; - break; + NSArray *dirContents = [fm contentsOfDirectoryAtPath:mountPath error:nil]; + for (int i = 0; i < [dirContents count]; i++) + { + NSString *currentFile = [dirContents objectAtIndex:i]; + NSString *fullPath = [mountPath stringByAppendingPathComponent:currentFile]; + + BOOL isDir; + if ([fm fileExistsAtPath:fullPath isDirectory:&isDir] && isDir) + { + if ([currentFile caseInsensitiveCompare:@"SVCD"] == NSOrderedSame) + { + returnValue = kVLCMediaSVCD; + break; + } + if ([currentFile caseInsensitiveCompare:@"VCD"] == NSOrderedSame) + { + returnValue = kVLCMediaVCD; + break; + } + if ([currentFile caseInsensitiveCompare:@"BDMV"] == NSOrderedSame) + { + returnValue = kVLCMediaBDMVFolder; + break; + } + if ([currentFile caseInsensitiveCompare:@"VIDEO_TS"] == NSOrderedSame) + { + returnValue = kVLCMediaVideoTSFolder; + break; + } } } + + [fm release]; + if(!returnValue) returnValue = kVLCMediaVideoTSFolder; } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
