Changeset 369

Show
Ignore:
Timestamp:
03/13/07 16:49:05 (1 year ago)
Author:
gbooker
Message:

Changed the dynamic compression to a slider (since it accepts all values between 0 and 1)
More updater modifications.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/CPFPerianPrefPaneController.h

    r273 r369  
    5656         
    5757        //AC3 
    58         IBOutlet NSButton                                       *button_ac3DynamicRange; 
     58    IBOutlet NSTextField                *textField_ac3DynamicRangeValue; 
     59    IBOutlet NSSlider                   *slider_ac3DynamicRangeSlider; 
    5960        IBOutlet NSButton                                       *button_ac3StereoOverDolby; 
    6061         
     
    8485 
    8586//AC3 
    86 - (IBAction)setAC3DynamicRange:(id)sender; 
    8787- (IBAction)setAC3StereoOverDolby:(id)sender; 
     88- (IBAction)setAC3DynamicRangeValue:(id)sender; 
     89- (IBAction)setAC3DynamicRangeSlider:(id)sender; 
    8890 
    8991//About 
  • trunk/CPFPerianPrefPaneController.m

    r273 r369  
    44#define AC3DynamicRangeKey CFSTR("dynamicRange") 
    55#define AC3StereoOverDolbyKey CFSTR("useStereoOverDolby") 
     6#define LastInstalledVersionKey CFSTR("LastInstalledVersion") 
     7 
     8@interface CPFPerianPrefPaneController(_private) 
     9- (void)setAC3DynamicRange:(float)newVal; 
     10@end 
    611 
    712@implementation CPFPerianPrefPaneController 
    813 
    9 #pragma mark Private Functions 
     14#pragma mark Preferences Functions 
    1015 
    1116- (void)setButton:(NSButton *)button fromKey:(CFStringRef)key forAppID:(CFStringRef)appID withDefault:(BOOL)defaultValue 
    1217{ 
    13         CFPropertyListRef value;        
     18        CFPropertyListRef value; 
    1419        value = CFPreferencesCopyAppValue(key, appID); 
    1520        if(value && CFGetTypeID(value) == CFBooleanGetTypeID()) 
     
    2934                CFPreferencesSetAppValue(key, kCFBooleanFalse, appID); 
    3035} 
     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 
    3180 
    3281- (NSString *)installationBasePath:(BOOL)userInstallation 
     
    108157                perianWebSiteURL = [[NSURL alloc] initWithString:@"http://perian.org"]; 
    109158                 
    110                 perianAppID = CFSTR("org.perian.perian"); 
     159                perianAppID = CFSTR("org.perian.Perian"); 
    111160                a52AppID = CFSTR("com.cod3r.a52codec"); 
    112161                 
     
    190239        /* General */ 
    191240        [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    } 
    192248         
    193249        /* A52 Prefs */ 
    194         [self setButton:button_ac3DynamicRange fromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:NO]; 
    195250        [self setButton:button_ac3StereoOverDolby fromKey:AC3StereoOverDolbyKey forAppID:a52AppID withDefault:NO]; 
     251    [self setAC3DynamicRange:[self getFloatFromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:1.0]]; 
    196252} 
    197253 
     
    498554- (IBAction)updateCheck:(id)sender  
    499555{ 
     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); 
    500563}  
    501564 
     
    506569 
    507570#pragma mark AC3  
    508 - (IBAction)setAC3DynamicRange:(id)sender  
    509 { 
    510         [self setKey:AC3DynamicRangeKey forAppID:a52AppID fromButton:button_ac3DynamicRange]; 
    511 }  
    512  
    513571- (IBAction)setAC3StereoOverDolby:(id)sender  
    514572{ 
    515573        [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
    517600 
    518601#pragma mark About  
  • trunk/PerianPrefPane.nib/classes.nib

    r227 r369  
    77                launchForum = id;  
    88                launchWebsite = id;  
    9                 setAC3DynamicRange = id;  
     9                setAC3DynamicRangeSlider = id;  
     10                setAC3DynamicRangeValue = id;  
    1011                setAC3StereoOverDolby = id;  
    1112                setAutoUpdateCheck = id;  
     
    1516            LANGUAGE = ObjC;  
    1617            OUTLETS = { 
    17                 "button_ac3DynamicRange" = NSButton;  
    1818                "button_ac3StereoOverDolby" = NSButton;  
    1919                "button_autoUpdateCheck" = NSButton;  
     
    2525                "progress_install" = NSProgressIndicator;  
    2626                "progress_updateCheck" = NSProgressIndicator;  
     27                "slider_ac3DynamicRangeSlider" = NSSlider;  
     28                "textField_ac3DynamicRangeValue" = NSTextField;  
    2729                "textField_currentVersion" = NSTextField;  
    2830                "textField_installStatus" = NSTextField;