vlc/vlc-1.1 | branch: master | Felix Paul Kühne <[email protected]> | Sun Jun 5 19:11:36 2011 +0200| [0b37b556d9156297f94d1194b15afd021a9d8ef1] | committer: Felix Paul Kühne
macosx: fixed volume normalizer prefs and crash when saving the Growl option in combination with some config sets > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=0b37b556d9156297f94d1194b15afd021a9d8ef1 --- modules/gui/macosx/simple_prefs.m | 61 +++++++++++++++++++----------------- 1 files changed, 32 insertions(+), 29 deletions(-) diff --git a/modules/gui/macosx/simple_prefs.m b/modules/gui/macosx/simple_prefs.m index e5737cd..72f43a8 100644 --- a/modules/gui/macosx/simple_prefs.m +++ b/modules/gui/macosx/simple_prefs.m @@ -492,7 +492,7 @@ static inline char * __config_GetLabel( vlc_object_t *p_this, const char *psz_na psz_tmp = config_GetPsz( p_intf, "audio-filter" ); if( psz_tmp ) { - [o_audio_norm_ckb setState: (NSInteger)strstr( psz_tmp, "volnorm" )]; + [o_audio_norm_ckb setState: (NSInteger)strstr( psz_tmp, "normvol" )]; [o_audio_norm_fld setEnabled: [o_audio_norm_ckb state]]; [o_audio_norm_stepper setEnabled: [o_audio_norm_ckb state]]; free( psz_tmp ); @@ -791,7 +791,8 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch - (void)saveChangedSettings { - char *psz_tmp; + NSString *tmpString; + NSRange tmpRange; int i; #define SaveIntList( object, name ) save_int_list( p_intf, object, name ) @@ -800,6 +801,8 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch #define SaveModuleList( object, name ) save_module_list( p_intf, object, name ) +#define getString( name ) [NSString stringWithFormat:@"%s", config_GetPsz( p_intf, name )] + /********************** * interface settings * **********************/ @@ -814,25 +817,25 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch config_PutInt( p_intf, "macosx-mediakeys", [o_intf_mediakeys_ckb state] ); if( [o_intf_enableGrowl_ckb state] == NSOnState ) { - psz_tmp = config_GetPsz( p_intf, "control" ); - if(! psz_tmp) - config_PutPsz( p_intf, "control", "growl" ); - else if( (NSInteger)strstr( psz_tmp, "control" ) == NO ) + tmpString = getString( "control" ); + tmpRange = [tmpString rangeOfString:@"growl"]; + if( [tmpString length] > 0 && tmpRange.location == NSNotFound ) { - psz_tmp = (char *)[[NSString stringWithFormat: @"%s:growl", psz_tmp] UTF8String]; - config_PutPsz( p_intf, "control", psz_tmp ); - free( psz_tmp ); + tmpString = [tmpString stringByAppendingString: @":growl"]; + config_PutPsz( p_intf, "control", [tmpString UTF8String] ); } + else + config_PutPsz( p_intf, "control", "growl" ); } else { - psz_tmp = config_GetPsz( p_intf, "control" ); - if( psz_tmp ) + tmpString = getString( "control" ); + if(! [tmpString isEqualToString:@""] ) { - psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@":growl"]] UTF8String]; - psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"growl:"]] UTF8String]; - psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"growl"]] UTF8String]; - config_PutPsz( p_intf, "control", psz_tmp ); + tmpString = [tmpString stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@":growl"]]; + tmpString = [tmpString stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"growl:"]]; + tmpString = [tmpString stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"growl"]]; + config_PutPsz( p_intf, "control", [tmpString UTF8String] ); } } @@ -876,25 +879,25 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch if( [o_audio_norm_ckb state] == NSOnState ) { - psz_tmp = config_GetPsz( p_intf, "audio-filter" ); - if(! psz_tmp) - config_PutPsz( p_intf, "audio-filter", "volnorm" ); - else if( (NSInteger)strstr( psz_tmp, "normvol" ) == NO ) + tmpString = getString( "audio-filter" ); + tmpRange = [tmpString rangeOfString:@"normvol"]; + if( [tmpString length] > 0 && tmpRange.location == NSNotFound ) { - psz_tmp = (char *)[[NSString stringWithFormat: @"%s:volnorm", psz_tmp] UTF8String]; - config_PutPsz( p_intf, "audio-filter", psz_tmp ); - free( psz_tmp ); + tmpString = [tmpString stringByAppendingString: @":normvol"]; + config_PutPsz( p_intf, "audio-filter", [tmpString UTF8String] ); } + else + config_PutPsz( p_intf, "audio-filter", "normvol" ); } else { - psz_tmp = config_GetPsz( p_intf, "audio-filter" ); - if( psz_tmp ) + tmpString = getString( "audio-filter" ); + if(! [tmpString isEqualToString:@""] ) { - psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@":volnorm"]] UTF8String]; - psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"volnorm:"]] UTF8String]; - psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"volnorm"]] UTF8String]; - config_PutPsz( p_intf, "audio-filter", psz_tmp ); + tmpString = [tmpString stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@":normvol"]]; + tmpString = [tmpString stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"normvol:"]]; + tmpString = [tmpString stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"normvol"]]; + config_PutPsz( p_intf, "audio-filter", [tmpString UTF8String] ); } } config_PutFloat( p_intf, "norm-max-level", [o_audio_norm_fld floatValue] ); @@ -919,7 +922,7 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch /* okay, let's save our changes to vlcrc */ i = config_SaveConfigFile( p_intf, "main" ); i = i + config_SaveConfigFile( p_intf, "audioscrobbler" ); - i = i + config_SaveConfigFile( p_intf, "volnorm" ); + i = i + config_SaveConfigFile( p_intf, "normvol" ); if( i != 0 ) { _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
