From 6ca3f6516b05cb8c6a3de3a72ad4fae1297656bf Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Thu, 10 Apr 2008 16:03:12 +0000 Subject: [PATCH] experiment with supporting custom user sounds on Leopard --- macosx/PrefsController.m | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 336fed7f7..cb1ddcb99 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -310,25 +310,24 @@ { NSMutableArray * sounds = [NSMutableArray array]; - //until Apple can fix soundNamed to not crash on invalid sound files, don't use custom sounds - NSArray * directories = [NSArray arrayWithObjects: @"/System/Library/Sounds", @"/Library/Sounds", - /*[NSHomeDirectory() stringByAppendingPathComponent: @"Library/Sounds"],*/ nil]; - BOOL isDirectory; - NSEnumerator * soundEnumerator; - NSString * sound; + NSMutableArray * directories = [NSMutableArray arrayWithObjects: @"/System/Library/Sounds", @"/Library/Sounds", nil]; + if ([NSApp isOnLeopardOrBetter]) + [directories addObject: [NSHomeDirectory() stringByAppendingPathComponent: @"Library/Sounds"]]; + BOOL isDirectory; NSString * directory; NSEnumerator * enumerator = [directories objectEnumerator]; while ((directory = [enumerator nextObject])) if ([[NSFileManager defaultManager] fileExistsAtPath: directory isDirectory: &isDirectory] && isDirectory) { - soundEnumerator = [[[NSFileManager defaultManager] directoryContentsAtPath: directory] objectEnumerator]; - while ((sound = [soundEnumerator nextObject])) - { - sound = [sound stringByDeletingPathExtension]; - if ([NSSound soundNamed: sound]) - [sounds addObject: sound]; - } + NSString * sound; + NSEnumerator * soundEnumerator = [[[NSFileManager defaultManager] directoryContentsAtPath: directory] objectEnumerator]; + while ((sound = [soundEnumerator nextObject])) + { + sound = [sound stringByDeletingPathExtension]; + if ([NSSound soundNamed: sound]) + [sounds addObject: sound]; + } } return sounds;