📄 simple_prefs.m
字号:
[self resetControls]; }}static inline void save_int_list( intf_thread_t * p_intf, id object, const char * name ){ NSNumber *p_valueobject; module_config_t *p_item; p_item = config_FindConfig( VLC_OBJECT(p_intf), name ); p_valueobject = (NSNumber *)[[object selectedItem] representedObject]; assert([p_valueobject isKindOfClass:[NSNumber class]]); if( p_valueobject) config_PutInt( p_intf, name, [p_valueobject intValue] );}static inline void save_string_list( intf_thread_t * p_intf, id object, const char * name ){ NSString *p_stringobject; module_config_t *p_item; p_item = config_FindConfig( VLC_OBJECT(p_intf), name ); p_stringobject = (NSString *)[[object selectedItem] representedObject]; assert([p_stringobject isKindOfClass:[NSString class]]); if( p_stringobject ) config_PutPsz( p_intf, name, [p_stringobject UTF8String] );}static inline void save_module_list( intf_thread_t * p_intf, id object, const char * name ){ module_config_t *p_item; module_t *p_parser; vlc_list_t *p_list; p_item = config_FindConfig( VLC_OBJECT(p_intf), name ); p_list = vlc_list_find( VLCIntf, VLC_OBJECT_MODULE, FIND_ANYWHERE ); for( int i_module_index = 0; i_module_index < p_list->i_count; i_module_index++ ) { p_parser = (module_t *)p_list->p_values[i_module_index].p_object; if( p_item->i_type == CONFIG_ITEM_MODULE && module_IsCapable( p_parser, p_item->psz_type ) ) { if( [[[object selectedItem] title] isEqualToString: _NS( module_GetLongName( p_parser ) )] ) { config_PutPsz( p_intf, name, strdup( module_GetObjName( p_parser ))); break; } } } vlc_list_release( p_list ); if( [[[object selectedItem] title] isEqualToString: _NS( "Default" )] ) config_PutPsz( p_intf, name, "" );}- (void)saveChangedSettings{ char *psz_tmp; int i; NSString *p_stringobject; #define SaveIntList( object, name ) save_int_list( p_intf, object, name ) #define SaveStringList( object, name ) save_string_list( p_intf, object, name )#define SaveModuleList( object, name ) save_module_list( p_intf, object, name ) /********************** * interface settings * **********************/ if( b_intfSettingChanged ) { SaveStringList( o_intf_lang_pop, "language" ); SaveIntList( o_intf_art_pop, "album-art" ); config_PutInt( p_intf, "macosx-fspanel", [o_intf_fspanel_ckb state] ); config_PutInt( p_intf, "embedded-video", [o_intf_embedded_ckb state] ); /* okay, let's save our changes to vlcrc */ i = config_SaveConfigFile( p_intf, "main" ); i = i + config_SaveConfigFile( p_intf, "macosx" ); if( i != 0 ) { msg_Err( p_intf, "An error occurred while saving the Interface settings using SimplePrefs (%i)", i ); intf_UserFatal( p_intf, false, _("Interface Settings not saved"), _("An error occured while saving your settings via SimplePrefs (%i)."), i ); i = 0; } b_intfSettingChanged = NO; } /****************** * audio settings * ******************/ if( b_audioSettingChanged ) { config_PutInt( p_intf, "audio", [o_audio_enable_ckb state] ); config_PutInt( p_intf, "volume", [o_audio_vol_sld intValue] ); config_PutInt( p_intf, "spdif", [o_audio_spdif_ckb state] ); SaveIntList( o_audio_dolby_pop, "force-dolby-surround" ); config_PutPsz( p_intf, "audio-language", [[o_audio_lang_fld stringValue] UTF8String] ); config_PutInt( p_intf, "headphone-dolby", [o_audio_headphone_ckb state] ); psz_tmp = config_GetPsz( p_intf, "audio-filter" ); if(! psz_tmp) config_PutPsz( p_intf, "audio-filter", "volnorm" ); else if( (int)strstr( psz_tmp, "normvol" ) == NO ) { /* work-around a GCC 4.0.1 bug */ psz_tmp = (char *)[[NSString stringWithFormat: @"%s:volnorm", psz_tmp] UTF8String]; config_PutPsz( p_intf, "audio-filter", psz_tmp ); } else { 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 ); } config_PutFloat( p_intf, "norm-max-level", [o_audio_norm_fld floatValue] ); SaveModuleList( o_audio_visual_pop, "audio-visual" ); /* Last.FM is optional */ if( module_Exists( p_intf, "audioscrobbler" ) ) { [o_audio_last_ckb setEnabled: YES]; if( [o_audio_last_ckb state] == NSOnState ) config_AddIntf( p_intf, "audioscrobbler" ); else config_RemoveIntf( p_intf, "audioscrobbler" ); config_PutPsz( p_intf, "lastfm-username", [[o_audio_lastuser_fld stringValue] UTF8String] ); config_PutPsz( p_intf, "lastfm-password", [[o_audio_lastpwd_sfld stringValue] UTF8String] ); } else [o_audio_last_ckb setEnabled: NO]; /* 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" ); if( i != 0 ) { msg_Err( p_intf, "An error occurred while saving the Audio settings using SimplePrefs (%i)", i ); intf_UserFatal( p_intf, false, _("Audio Settings not saved"), _("An error occured while saving your settings via SimplePrefs (%i)."), i ); i = 0; } b_audioSettingChanged = NO; } /****************** * video settings * ******************/ if( b_videoSettingChanged ) { config_PutInt( p_intf, "video", [o_video_enable_ckb state] ); config_PutInt( p_intf, "fullscreen", [o_video_fullscreen_ckb state] ); config_PutInt( p_intf, "video-on-top", [o_video_onTop_ckb state] ); config_PutInt( p_intf, "skip-frames", [o_video_skipFrames_ckb state] ); config_PutInt( p_intf, "macosx-black", [o_video_black_ckb state] ); SaveModuleList( o_video_output_pop, "vout" ); config_PutInt( p_intf, "macosx-vdev", [[o_video_device_pop selectedItem] tag] ); config_PutPsz( p_intf, "snapshot-path", [[o_video_snap_folder_fld stringValue] UTF8String] ); config_PutPsz( p_intf, "snapshot-prefix", [[o_video_snap_prefix_fld stringValue] UTF8String] ); config_PutInt( p_intf, "snapshot-sequential", [o_video_snap_seqnum_ckb state] ); SaveStringList( o_video_snap_format_pop, "snapshot-format" ); i = config_SaveConfigFile( p_intf, "main" ); i = i + config_SaveConfigFile( p_intf, "macosx" ); if( i != 0 ) { msg_Err( p_intf, "An error occurred while saving the Video settings using SimplePrefs (%i)", i ); intf_UserFatal( p_intf, false, _("Video Settings not saved"), _("An error occured while saving your settings via SimplePrefs (%i)."), i ); i = 0; } b_videoSettingChanged = NO; } /*************************** * input & codecs settings * ***************************/ if( b_inputSettingChanged ) { config_PutInt( p_intf, "server-port", [o_input_serverport_fld intValue] ); config_PutPsz( p_intf, "http-proxy", [[o_input_httpproxy_fld stringValue] UTF8String] ); config_PutPsz( p_intf, "http-proxy-pwd", [[o_input_httpproxypwd_sfld stringValue] UTF8String] ); config_PutInt( p_intf, "ffmpeg-pp-q", [o_input_postproc_fld intValue] ); SaveIntList( o_input_avi_pop, "avi-index" ); config_PutInt( p_intf, "rtsp-tcp", [o_input_rtsp_ckb state] ); #define CaCi( name, int ) config_PutInt( p_intf, name, int * [[o_input_cachelevel_pop selectedItem] tag] ) #define CaC( name ) CaCi( name, 1 ) msg_Dbg( p_intf, "Adjusting all cache values to: %i", [[o_input_cachelevel_pop selectedItem] tag] ); CaC( "udp-caching" ); if( module_Exists (p_intf, "dvdread" ) ) { CaC( "dvdread-caching" ); i = i + config_SaveConfigFile( p_intf, "dvdread" ); } if( module_Exists (p_intf, "dvdnav" ) ) { CaC( "dvdnav-caching" ); i = i + config_SaveConfigFile( p_intf, "dvdnav" ); } CaC( "tcp-caching" ); CaC( "vcd-caching" ); CaC( "fake-caching" ); CaC( "cdda-caching" ); CaC( "file-caching" ); CaC( "screen-caching" ); CaCi( "rtsp-caching", 4 ); CaCi( "ftp-caching", 2 ); CaCi( "http-caching", 4 ); if( module_Exists (p_intf, "access_realrtsp" ) ) { CaCi( "realrtsp-caching", 10 ); i = i + config_SaveConfigFile( p_intf, "access_realrtsp" ); } CaCi( "mms-caching", 19 ); #define SaveAccessFilter( object, name ) \ if( [object state] == NSOnState ) \ { \ if( b_first ) \ { \ [o_temp appendString: name]; \ b_first = NO; \ } \ else \ [o_temp appendFormat: @":%@", name]; \ } BOOL b_first = YES; NSMutableString *o_temp = [[NSMutableString alloc] init]; SaveAccessFilter( o_input_record_ckb, @"record" ); SaveAccessFilter( o_input_dump_ckb, @"dump" ); SaveAccessFilter( o_input_bandwidth_ckb, @"bandwidth" ); SaveAccessFilter( o_input_timeshift_ckb, @"timeshift" ); config_PutPsz( p_intf, "access-filter", [o_temp UTF8String] ); [o_temp release]; i = config_SaveConfigFile( p_intf, "main" ); i = i + config_SaveConfigFile( p_intf, "ffmpeg" ); i = i + config_SaveConfigFile( p_intf, "access_http" ); i = i + config_SaveConfigFile( p_intf, "access_file" ); i = i + config_SaveConfigFile( p_intf, "access_tcp" ); i = i + config_SaveConfigFile( p_intf, "access_fake" ); i = i + config_SaveConfigFile( p_intf, "cdda" ); i = i + config_SaveConfigFile( p_intf, "screen" ); i = i + config_SaveConfigFile( p_intf, "vcd" ); i = i + config_SaveConfigFile( p_intf, "access_ftp" ); i = i + config_SaveConfigFile( p_intf, "access_mms" ); i = i + config_SaveConfigFile( p_intf, "live555" ); i = i + config_SaveConfigFile( p_intf, "avi" ); if( i != 0 ) { msg_Err( p_intf, "An error occurred while saving the Input settings using SimplePrefs (%i)", i ); intf_UserFatal( p_intf, false, _("Input Settings not saved"), _("An error occured while saving your settings via SimplePrefs (%i)."), i ); i = 0; } b_inputSettingChanged = NO; } /********************** * subtitles settings * **********************/ if( b_osdSettingChanged ) { config_PutInt( p_intf, "osd", [o_osd_osd_ckb state] ); if( [o_osd_encoding_pop indexOfSelectedItem] >= 0 ) config_PutPsz( p_intf, "subsdec-encoding", [[[o_osd_encoding_pop selectedItem] title] UTF8String] ); config_PutPsz( p_intf, "sub-language", [[o_osd_lang_fld stringValue] UTF8String] ); config_PutPsz( p_intf, "quartztext-font", [[o_osd_font_fld stringValue] UTF8String] ); SaveIntList( o_osd_font_color_pop, "quartztext-color" ); SaveIntList( o_osd_font_size_pop, "quartztext-rel-fontsize" ); i = config_SaveConfigFile( p_intf, NULL ); if( i != 0 ) { msg_Err( p_intf, "An error occurred while saving the OSD/Subtitle settings using SimplePrefs (%i)", i ); intf_UserFatal( p_intf, false, _("On Screen Display/Subtitle Settings not saved"), _("An error occured while saving your settings via SimplePrefs (%i)."), i ); i = 0; } b_osdSettingChanged = NO; } /******************** * hotkeys settings * ********************/ if( b_hotkeyChanged ) { struct hotkey *p_hotkeys = p_intf->p_libvlc->p_hotkeys; i = 1; while( i < [o_hotkeySettings count] ) { config_PutInt( p_intf, p_hotkeys[i].psz_action, [[o_hotkeySettings objectAtIndex: i-1] intValue] ); i++; } i = config_SaveConfigFile( p_intf, "main" ); if( i != 0 ) { msg_Err( p_intf, "An error occurred while saving the Hotkey settings using SimplePrefs (%i)", i ); intf_UserFatal( p_intf, false, _("Hotkeys not saved"), _("An error occured while saving your settings via SimplePrefs (%i)."), i ); i = 0; } b_hotkeyChanged = NO; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -