Changeset 404

Show
Ignore:
Timestamp:
04/08/07 20:20:14 (1 year ago)
Author:
gbooker
Message:

Moved AC3 prefs to general tab, and made them more user friendly.

Files:

Legend:

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

    r369 r404  
    5555        IBOutlet NSButton                                       *button_autoUpdateCheck; 
    5656         
    57         //AC3 
     57        //AC3 Settings in General Pane 
     58        IBOutlet NSPopUpButton                          *popup_ac3DynamicRangeType; 
     59        IBOutlet NSPopUpButton                          *popup_2ChannelMode; 
     60         
     61        IBOutlet NSWindow                                       *window_dynRangeSheet; 
    5862    IBOutlet NSTextField                *textField_ac3DynamicRangeValue; 
    5963    IBOutlet NSSlider                   *slider_ac3DynamicRangeSlider; 
    60         IBOutlet NSButton                                       *button_ac3StereoOverDolby; 
    6164         
    6265        //About 
     
    7881        CFStringRef                                                     a52AppID; 
    7982         
     83        float                                                           nextDynValue; 
    8084} 
    8185//General Pane 
     
    8488- (IBAction)setAutoUpdateCheck:(id)sender; 
    8589 
    86 //AC3 
    87 - (IBAction)setAC3StereoOverDolby:(id)sender; 
     90//AC3 Settings 
     91- (IBAction)setAC3DynamicRangePopup:(id)sender; 
     92- (IBAction)set2ChannelModePopup:(id)sender; 
     93 
    8894- (IBAction)setAC3DynamicRangeValue:(id)sender; 
    8995- (IBAction)setAC3DynamicRangeSlider:(id)sender; 
     96- (IBAction)cancelDynRangeSheet:(id)sender; 
     97- (IBAction)saveDynRangeSheet:(id)sender; 
    9098 
    9199//About 
  • trunk/CPFPerianPrefPaneController.m

    r403 r404  
    44#define AC3DynamicRangeKey CFSTR("dynamicRange") 
    55#define AC3StereoOverDolbyKey CFSTR("useStereoOverDolby") 
     6#define AC3ProLogicIIKey CFSTR("useDolbyProLogicII") 
    67#define LastInstalledVersionKey CFSTR("LastInstalledVersion") 
    78 
    89@interface CPFPerianPrefPaneController(_private) 
    910- (void)setAC3DynamicRange:(float)newVal; 
     11- (void)saveAC3DynamicRange:(float)newVal; 
    1012@end 
    1113 
     
    1416#pragma mark Preferences Functions 
    1517 
    16 - (void)setButton:(NSButton *)button fromKey:(CFStringRef)key forAppID:(CFStringRef)appID withDefault:(BOOL)defaultValue 
     18- (BOOL)getBoolFromKey:(CFStringRef)key forAppID:(CFStringRef)appID withDefault:(BOOL)defaultValue 
    1719{ 
    1820        CFPropertyListRef value; 
     21        BOOL ret = defaultValue; 
     22         
    1923        value = CFPreferencesCopyAppValue(key, appID); 
    2024        if(value && CFGetTypeID(value) == CFBooleanGetTypeID()) 
    21                 [button setState:CFBooleanGetValue(value)]; 
    22         else 
    23                 [button setState:defaultValue]; 
     25                ret = CFBooleanGetValue(value); 
    2426         
    2527        if(value) 
    2628                CFRelease(value); 
    27 
    28  
    29 - (void)setKey:(CFStringRef)key forAppID:(CFStringRef)appID fromButton:(NSButton *)button 
    30 
    31         if([button state]) 
    32                 CFPreferencesSetAppValue(key, kCFBooleanTrue, appID); 
    33         else 
    34                 CFPreferencesSetAppValue(key, kCFBooleanFalse, appID); 
     29         
     30        return ret; 
     31
     32 
     33- (void)setKey:(CFStringRef)key forAppID:(CFStringRef)appID fromBool:(BOOL)value 
     34
     35        CFPreferencesSetAppValue(key, value ? kCFBooleanTrue : kCFBooleanFalse, appID); 
    3536} 
    3637 
     
    256257         
    257258        /* A52 Prefs */ 
    258         [self setButton:button_ac3StereoOverDolby fromKey:AC3StereoOverDolbyKey forAppID:a52AppID withDefault:NO]; 
     259        if([self getBoolFromKey:AC3StereoOverDolbyKey forAppID:a52AppID withDefault:NO]) 
     260        { 
     261                [popup_2ChannelMode selectItemAtIndex:0]; 
     262        } 
     263        else if([self getBoolFromKey:AC3ProLogicIIKey forAppID:a52AppID withDefault:NO]) 
     264        { 
     265                [popup_2ChannelMode selectItemAtIndex:2]; 
     266        } 
     267        else 
     268        { 
     269                [popup_2ChannelMode selectItemAtIndex:1];                
     270        }        
    259271    [self setAC3DynamicRange:[self getFloatFromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:1.0]]; 
    260272} 
     
    577589 
    578590#pragma mark AC3  
    579 - (IBAction)setAC3StereoOverDolby:(id)sender  
    580 
    581         [self setKey:AC3StereoOverDolbyKey forAppID:a52AppID fromButton:button_ac3StereoOverDolby]; 
     591- (IBAction)setAC3DynamicRangePopup:(id)sender 
     592
     593        int selected = [popup_ac3DynamicRangeType indexOfSelectedItem]; 
     594        switch(selected) 
     595        { 
     596                case 0: 
     597                        [self saveAC3DynamicRange:1.0]; 
     598                        break; 
     599                case 1: 
     600                        [self saveAC3DynamicRange:2.0]; 
     601                        break; 
     602                case 3: 
     603                        [NSApp beginSheet:window_dynRangeSheet modalForWindow:[[self mainView] window] modalDelegate:nil didEndSelector:nil contextInfo:NULL]; 
     604                        break; 
     605                default: 
     606                        break; 
     607        } 
     608
     609 
     610- (IBAction)set2ChannelModePopup:(id)sender; 
     611
     612        int selected = [popup_2ChannelMode indexOfSelectedItem]; 
     613        switch(selected) 
     614        { 
     615                case 0: 
     616                        [self setKey:AC3StereoOverDolbyKey forAppID:a52AppID fromBool:YES]; 
     617                        [self setKey:AC3ProLogicIIKey forAppID:a52AppID fromBool:NO]; 
     618                        break; 
     619                case 1: 
     620                        [self setKey:AC3StereoOverDolbyKey forAppID:a52AppID fromBool:NO]; 
     621                        [self setKey:AC3ProLogicIIKey forAppID:a52AppID fromBool:NO]; 
     622                        break; 
     623                case 2: 
     624                        [self setKey:AC3StereoOverDolbyKey forAppID:a52AppID fromBool:NO]; 
     625                        [self setKey:AC3ProLogicIIKey forAppID:a52AppID fromBool:YES]; 
     626                        break; 
     627                default: 
     628                        break; 
     629        }        
    582630} 
    583631 
     
    589637        newVal = 0.0; 
    590638     
    591     [self setKey:AC3DynamicRangeKey forAppID:a52AppID fromFloat:newVal]
     639       nextDynValue = newVal
    592640    [textField_ac3DynamicRangeValue setFloatValue:newVal]; 
    593641    [slider_ac3DynamicRangeSlider setFloatValue:newVal]; 
     642        if(newVal == 1.0) 
     643                [popup_ac3DynamicRangeType selectItemAtIndex:0]; 
     644        else if(newVal == 2.0) 
     645                [popup_ac3DynamicRangeType selectItemAtIndex:1]; 
     646        else 
     647                [popup_ac3DynamicRangeType selectItemAtIndex:3]; 
     648} 
     649 
     650- (void)saveAC3DynamicRange:(float)newVal 
     651{ 
     652        [self setKey:AC3DynamicRangeKey forAppID:a52AppID fromFloat:newVal]; 
     653        [self setAC3DynamicRange:newVal]; 
    594654} 
    595655 
     
    600660    [self setAC3DynamicRange:newVal]; 
    601661} 
     662 
    602663- (IBAction)setAC3DynamicRangeSlider:(id)sender 
    603664{ 
     
    605666     
    606667    [self setAC3DynamicRange:newVal]; 
     668} 
     669 
     670- (IBAction)cancelDynRangeSheet:(id)sender 
     671{ 
     672        [self setAC3DynamicRange:[self getFloatFromKey:AC3DynamicRangeKey forAppID:a52AppID withDefault:1.0]]; 
     673        [NSApp endSheet:window_dynRangeSheet]; 
     674        [window_dynRangeSheet orderOut:self]; 
     675} 
     676 
     677- (IBAction)saveDynRangeSheet:(id)sender; 
     678{ 
     679        [NSApp endSheet:window_dynRangeSheet]; 
     680        [self saveAC3DynamicRange:nextDynValue]; 
     681        [window_dynRangeSheet orderOut:self]; 
    607682} 
    608683 
  • trunk/PerianPrefPane.nib/classes.nib

    r369 r404  
    33        { 
    44            ACTIONS = { 
     5                cancelDynRangeSheet = id;  
    56                installUninstall = id;  
    67                launchDonate = id;  
    78                launchForum = id;  
    89                launchWebsite = id;  
     10                saveDynRangeSheet = id;  
     11                set2ChannelModePopup = id;  
     12                setAC3DynamicRangePopup = id;  
    913                setAC3DynamicRangeSlider = id;  
    1014                setAC3DynamicRangeValue = id;  
    11                 setAC3StereoOverDolby = id;  
    1215                setAutoUpdateCheck = id;  
    1316                updateCheck = id;  
     
    1619            LANGUAGE = ObjC;  
    1720            OUTLETS = { 
    18                 "button_ac3StereoOverDolby" = NSButton;  
    1921                "button_autoUpdateCheck" = NSButton;  
    2022                "button_donate" = NSButton;  
     
    2325                "button_updateCheck" = NSButton;  
    2426                "button_website" = NSButton;  
     27                "popup_2ChannelMode" = NSPopUpButton;  
     28                "popup_ac3DynamicRangeType" = NSPopUpButton;  
    2529                "progress_install" = NSProgressIndicator;  
    2630                "progress_updateCheck" = NSProgressIndicator;  
     
    3034                "textField_installStatus" = NSTextField;  
    3135                "textView_about" = NSTextView;  
     36                "window_dynRangeSheet" = NSWindow;  
    3237            };  
    3338            SUPERCLASS = NSPreferencePane;  
  • trunk/PerianPrefPane.nib/info.nib

    r403 r404  
    44<dict> 
    55        <key>IBDocumentLocation</key> 
    6         <string>137 76 356 240 0 0 1680 1028 </string> 
     6        <string>112 62 356 240 0 0 1440 878 </string> 
    77        <key>IBFramework Version</key> 
    88        <string>446.1</string> 
    99        <key>IBOpenObjects</key> 
    1010        <array> 
     11                <integer>104</integer> 
    1112                <integer>5</integer> 
    1213        </array> 
    1314        <key>IBSystem Version</key> 
    14         <string>8P135</string> 
     15        <string>8P2137</string> 
    1516</dict> 
    1617</plist>