Changeset 369
- Timestamp:
- 03/13/07 16:49:05 (1 year ago)
- Files:
-
- trunk/CPFPerianPrefPaneController.h (modified) (2 diffs)
- trunk/CPFPerianPrefPaneController.m (modified) (6 diffs)
- trunk/PerianPrefPane.nib/classes.nib (modified) (3 diffs)
- trunk/PerianPrefPane.nib/keyedobjects.nib (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/CPFPerianPrefPaneController.h
r273 r369 56 56 57 57 //AC3 58 IBOutlet NSButton *button_ac3DynamicRange; 58 IBOutlet NSTextField *textField_ac3DynamicRangeValue; 59 IBOutlet NSSlider *slider_ac3DynamicRangeSlider; 59 60 IBOutlet NSButton *button_ac3StereoOverDolby; 60 61 … … 84 85 85 86 //AC3 86 - (IBAction)setAC3DynamicRange:(id)sender;87 87 - (IBAction)setAC3StereoOverDolby:(id)sender; 88 - (IBAction)setAC3DynamicRangeValue:(id)sender; 89 - (IBAction)setAC3DynamicRangeSlider:(id)sender; 88 90 89 91 //About trunk/CPFPerianPrefPaneController.m
r273 r369 4 4 #define AC3DynamicRangeKey CFSTR("dynamicRange") 5 5 #define AC3StereoOverDolbyKey CFSTR("useStereoOverDolby") 6 #define LastInstalledVersionKey CFSTR("LastInstalledVersion") 7 8 @interface CPFPerianPrefPaneController(_private) 9 - (void)setAC3DynamicRange:(float)newVal; 10 @end 6 11 7 12 @implementation CPFPerianPrefPaneController 8 13 9 #pragma mark Pr ivateFunctions14 #pragma mark Preferences Functions 10 15 11 16 - (void)setButton:(NSButton *)button fromKey:(CFStringRef)key forAppID:(CFStringRef)appID withDefault:(BOOL)defaultValue 12 17 { 13 CFPropertyListRef value; 18 CFPropertyListRef value; 14 19 value = CFPreferencesCopyAppValue(key, appID); 15 20 if(value && CFGetTypeID(value) == CFBooleanGetTypeID()) … … 29 34 CFPreferencesSetAppValue(key, kCFBooleanFalse, appID); 30 35 } 36 37 - (float)getFloatFromKey:(CFStringRef)key forAppID:(CFStringRef)appID withDefault:(float)defaultValue 38 { 39 CFPropertyListRef value; 40 float ret = defaultValue; 41 42 value = CFPreferencesCopyAppValue(key, appID); 43 if(value && CFGetTypeID(value) == CFNumberGetTypeID()) 44 CFNumberGetValue(value, kCFNumberFloatType, &ret); 45 46 if(value) 47 CFRelease(value); 48 49 return ret; 50 } 51 52 - (void)setKey:(CFStringRef)key forAppID:(CFStringRef)appID fromString:(NSString *)value 53 { 54 CFPreferencesSetAppValue(key, value, appID); 55 } 56 57 - (NSString *)getStringFromKey:(CFStringRef)key forAppID:(CFStringRef)appID 58 { 59 CFPropertyListRef value; 60 NSString *ret = nil; 61 62 value = CFPreferencesCopyAppValue(key, appID); 63 if(value && CFGetTypeID(value) == CFStringGetTypeID()) 64 ret = [NSString stringWithString:(NSString *)value]; 65 66 if(value) 67 CFRelease(value); 68 69 return ret; 70 } 71 72 - (void)setKey:(CFStringRef)key forAppID:(CFStringRef)appID fromFloat:(float)value 73 { 74 CFNumberRef numRef = CFNumberCreate(NULL, kCFNumberFloatType, &value); 75 CFPreferencesSetAppValue(key, numRef, appID); 76 CFRelease(numRef); 77 } 78 79 #pragma mark Private Functions 31 80 32 81 - (NSString *)installationBasePath:(BOOL)userInstallation … … 108 157 perianWebSiteURL = [[NSURL alloc] initWithString:@"http://perian.org"]; 109 158 110 perianAppID = CFSTR("org.perian. perian");159 perianAppID = CFSTR("org.perian.Perian"); 111 160 a52AppID = CFSTR("com.cod3r.a52codec"); 112 161 … … 190 239 /* General */ 191 240 [self checkForInstallation]; 241 NSString *lastInstVersion = [self getStringFromKey:LastInstalledVersionKey forAppID:perianAppID]; 242 NSString *myVersion = [[[self bundle] infoDictionary] objectForKey:BundleVersionKey]; 243 if((lastInstVersion == nil || [lastInstVersion compare:myVersion] == NSOrderedAscending) && installStatus != InstallStatusInstalled) 244 { 245 [self installUninstall:nil]; 246 [self setKey:LastInstalledVersionKey forAppID:perianAppID fromString:myVersion]; 247 } 192 248 193 249 /* A52 Prefs */ 194 [self setButton:button_ac3DynamicRange fromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:NO];195 250 [self setButton:button_ac3StereoOverDolby fromKey:AC3StereoOverDolbyKey forAppID:a52AppID withDefault:NO]; 251 [self setAC3DynamicRange:[self getFloatFromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:1.0]]; 196 252 } 197 253 … … 498 554 - (IBAction)updateCheck:(id)sender 499 555 { 556 FSRef updateCheckRef; 557 558 OSStatus status = FSPathMakeRef((UInt8 *)[[[[self bundle] bundlePath] stringByAppendingPathComponent:@"Contents/Resources/PerianUpdateChecker.app"] fileSystemRepresentation], &updateCheckRef, NULL); 559 if(status != noErr) 560 return; 561 562 LSOpenFSRef(&updateCheckRef, NULL); 500 563 } 501 564 … … 506 569 507 570 #pragma mark AC3 508 - (IBAction)setAC3DynamicRange:(id)sender509 {510 [self setKey:AC3DynamicRangeKey forAppID:a52AppID fromButton:button_ac3DynamicRange];511 }512 513 571 - (IBAction)setAC3StereoOverDolby:(id)sender 514 572 { 515 573 [self setKey:AC3StereoOverDolbyKey forAppID:a52AppID fromButton:button_ac3StereoOverDolby]; 516 } 574 } 575 576 - (void)setAC3DynamicRange:(float)newVal 577 { 578 if(newVal > 1.0) 579 newVal = 1.0; 580 if(newVal < 0.0) 581 newVal = 0.0; 582 583 [self setKey:AC3DynamicRangeKey forAppID:a52AppID fromFloat:newVal]; 584 [textField_ac3DynamicRangeValue setFloatValue:newVal]; 585 [slider_ac3DynamicRangeSlider setFloatValue:newVal]; 586 } 587 588 - (IBAction)setAC3DynamicRangeValue:(id)sender 589 { 590 float newVal = [textField_ac3DynamicRangeValue floatValue]; 591 592 [self setAC3DynamicRange:newVal]; 593 } 594 - (IBAction)setAC3DynamicRangeSlider:(id)sender 595 { 596 float newVal = [slider_ac3DynamicRangeSlider floatValue]; 597 598 [self setAC3DynamicRange:newVal]; 599 } 517 600 518 601 #pragma mark About trunk/PerianPrefPane.nib/classes.nib
r227 r369 7 7 launchForum = id; 8 8 launchWebsite = id; 9 setAC3DynamicRange = id; 9 setAC3DynamicRangeSlider = id; 10 setAC3DynamicRangeValue = id; 10 11 setAC3StereoOverDolby = id; 11 12 setAutoUpdateCheck = id; … … 15 16 LANGUAGE = ObjC; 16 17 OUTLETS = { 17 "button_ac3DynamicRange" = NSButton;18 18 "button_ac3StereoOverDolby" = NSButton; 19 19 "button_autoUpdateCheck" = NSButton; … … 25 25 "progress_install" = NSProgressIndicator; 26 26 "progress_updateCheck" = NSProgressIndicator; 27 "slider_ac3DynamicRangeSlider" = NSSlider; 28 "textField_ac3DynamicRangeValue" = NSTextField; 27 29 "textField_currentVersion" = NSTextField; 28 30 "textField_installStatus" = NSTextField;
