Changeset 233

Show
Ignore:
Timestamp:
01/05/07 09:10:27 (2 years ago)
Author:
gbooker
Message:

Added support for changing a52codec's preferences.

Files:

Legend:

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

    r229 r233  
    3030        NSURL                                                           *perianWebSiteURL; 
    3131         
     32        CFStringRef                                                     perianAppID; 
     33        CFStringRef                                                     a52AppID; 
     34         
    3235} 
    3336//General Pane 
  • trunk/CPFPerianPrefPaneController.m

    r229 r233  
    11#import "CPFPerianPrefPaneController.h" 
     2 
     3#define AC3DynamicRangeKey CFSTR("dynamicRange") 
     4#define AC3StereoOverDolbyKey CFSTR("useStereoOverDolby") 
    25 
    36@implementation CPFPerianPrefPaneController 
     
    912                perianDonateURL = [[NSURL alloc] initWithString:@"http://perian.org/donate.php"]; 
    1013                perianWebSiteURL = [[NSURL alloc] initWithString:@"http://perian.org"]; 
     14                 
     15                perianAppID = CFSTR("org.perian.perian"); 
     16                a52AppID = CFSTR("com.cod3r.a52codec"); 
    1117    } 
    1218     
     
    1420} 
    1521 
     22- (void)setButton:(NSButton *)button fromKey:(CFStringRef)key forAppID:(CFStringRef)appID withDefault:(BOOL)defaultValue 
     23{ 
     24        CFPropertyListRef value;         
     25        value = CFPreferencesCopyAppValue(key, appID); 
     26        if(value && CFGetTypeID(value) == CFBooleanGetTypeID()) 
     27                [button setState:CFBooleanGetValue(value)]; 
     28        else 
     29                [button setState:defaultValue]; 
     30         
     31        if(value) 
     32                CFRelease(value); 
     33} 
     34 
     35- (void)setKey:(CFStringRef)key forAppID:(CFStringRef)appID fromButton:(NSButton *)button 
     36{ 
     37        if([button state]) 
     38                CFPreferencesSetAppValue(key, kCFBooleanTrue, appID); 
     39        else 
     40                CFPreferencesSetAppValue(key, kCFBooleanFalse, appID); 
     41} 
     42 
    1643- (void)mainViewDidLoad 
    1744{ 
    18         /* Read prefs here and display */ 
     45        /* A52 Prefs */ 
     46        [self setButton:button_ac3DynamicRange fromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:NO]; 
     47        [self setButton:button_ac3StereoOverDolby fromKey:AC3StereoOverDolbyKey forAppID:a52AppID withDefault:NO]; 
    1948} 
    2049 
    2150- (void)didUnselect 
    2251{ 
    23         /* Write prefs here */ 
     52        CFPreferencesAppSynchronize(perianAppID); 
     53        CFPreferencesAppSynchronize(a52AppID); 
    2454} 
    2555 
     
    3868#pragma mark Check Updates 
    3969- (IBAction)updateCheck:(id)sender  
    40 {  
     70{ 
    4171}  
    4272 
    4373- (IBAction)setAutoUpdateCheck:(id)sender  
    44 {  
     74{ 
    4575}  
    4676 
     
    4878#pragma mark AC3  
    4979- (IBAction)setAC3DynamicRange:(id)sender  
    50 {  
     80
     81        [self setKey:AC3DynamicRangeKey forAppID:a52AppID fromButton:button_ac3DynamicRange]; 
    5182}  
    5283 
    5384- (IBAction)setAC3StereoOverDolby:(id)sender  
    54 {  
     85
     86        [self setKey:AC3StereoOverDolbyKey forAppID:a52AppID fromButton:button_ac3StereoOverDolby]; 
    5587}  
    5688 
     
    6294 
    6395- (IBAction)launchDonate:(id)sender  
    64 {  
     96{ 
    6597         
    6698        [[NSWorkspace sharedWorkspace] openURL:perianDonateURL]; 
     
    68100 
    69101- (IBAction)launchForum:(id)sender  
    70 {  
     102{ 
    71103         
    72104        [[NSWorkspace sharedWorkspace] openURL:perianForumURL];