📄 opts.c
字号:
g_list_free( Items ); if ( name ) gtk_entry_set_text( GTK_ENTRY( EVFM ),name ); } { int i; GList * Items = NULL; char * name = NULL; Items=g_list_append( Items,MSGTR_PREFERENCES_None ); for( i=0;mpcodecs_ad_drivers[i];i++ ) { Items=g_list_append( Items,(char *)mpcodecs_ad_drivers[i]->info->name ); if ( audio_fm_list && !gstrcmp( audio_fm_list[0],(char *)mpcodecs_ad_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_ad_drivers[i]->info->name; } gtk_combo_set_popdown_strings( GTK_COMBO( CBAFM ),Items ); g_list_free( Items ); if ( name ) gtk_entry_set_text( GTK_ENTRY( EAFM ),name ); }// --- 6. page gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPostprocess ),gtkVopPP ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),gtkLoadFullscreen ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSaveWinPos ),gui_save_pos ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ),gtkShowVideoWindow ); if ( !gtkShowVideoWindow ) { gtk_widget_set_sensitive( CBLoadFullscreen,FALSE ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),0 ); } gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBStopXScreenSaver ),stop_xscreensaver ); gtk_adjustment_set_value( HSPPQualityadj,auto_quality ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPlayBar ),gtkEnablePlayBar ); if ( !appMPlayer.barIsPresent ) { gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPlayBar ),0 ); gtk_widget_set_sensitive( CBPlayBar,FALSE ); } gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),0 ); gtk_adjustment_set_value( SBCacheadj,(float)gtkCacheSize ); if ( !gtkCacheOn ) gtk_widget_set_sensitive( SBCache,FALSE ); else gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),TRUE ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAutoSync ),0 ); gtk_adjustment_set_value( SBAutoSyncadj,(float)gtkAutoSync ); if ( !gtkAutoSyncOn ) gtk_widget_set_sensitive( SBAutoSync,FALSE ); else gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAutoSync ),TRUE ); if ( dvd_device ) gtk_entry_set_text( GTK_ENTRY( prEDVDDevice ),dvd_device ); else gtk_entry_set_text( GTK_ENTRY( prEDVDDevice ),DEFAULT_DVD_DEVICE ); if ( cdrom_device ) gtk_entry_set_text( GTK_ENTRY( prECDRomDevice ),cdrom_device ); else gtk_entry_set_text( GTK_ENTRY( prECDRomDevice ),DEFAULT_CDROM_DEVICE );// -- disables#ifndef USE_SUB gtk_widget_set_sensitive( AConfig,FALSE ); gtk_widget_set_sensitive( CBNoAutoSub,FALSE ); gtk_widget_set_sensitive( CBSubOverlap,FALSE ); gtk_widget_set_sensitive( CBSubUnicode,FALSE ); gtk_widget_set_sensitive( CBDumpMPSub,FALSE ); gtk_widget_set_sensitive( CBDumpSrt,FALSE ); gtk_widget_set_sensitive( HSSubDelay,FALSE ); gtk_widget_set_sensitive( HSSubPosition,FALSE ); gtk_widget_set_sensitive( HSSubFPS,FALSE );#endif#ifndef USE_OSD gtk_widget_set_sensitive( RBOSDNone,FALSE ); gtk_widget_set_sensitive( RBOSDTandP,FALSE ); gtk_widget_set_sensitive( RBOSDIndicator,FALSE ); gtk_widget_set_sensitive( RBOSDTPTT,FALSE );#endif#if !defined( USE_OSD ) && !defined( USE_SUB ) gtk_widget_set_sensitive( HSFontFactor,FALSE ); gtk_widget_set_sensitive( prEFontName,FALSE ); gtk_widget_set_sensitive( BLoadFont,FALSE );#endif// -- signals gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 ); gtk_signal_connect( GTK_OBJECT( CBShowVideoWindow ),"toggled",GTK_SIGNAL_FUNC( prToggled ), (void*)3 );#ifdef HAVE_FREETYPE gtk_signal_connect( GTK_OBJECT( RBFontNoAutoScale ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)4 ); gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleHeight ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)5 ); gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleWidth ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)6 ); gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleDiagonal ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)7 );#endif gtk_signal_connect( GTK_OBJECT( CBCache ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)8); gtk_signal_connect( GTK_OBJECT( CBAutoSync ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)9); gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)2 ); gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)3 ); gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)4 );#ifndef HAVE_FREETYPE gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)5 );#else gtk_signal_connect( GTK_OBJECT( HSFontBlur ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)6 ); gtk_signal_connect( GTK_OBJECT( HSFontOutLine ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)7 ); gtk_signal_connect( GTK_OBJECT( HSFontTextScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)8 ); gtk_signal_connect( GTK_OBJECT( HSFontOSDScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)9 ); gtk_signal_connect( GTK_OBJECT( EFontEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),(void *)0 );#endif#ifdef USE_ICONV gtk_signal_connect( GTK_OBJECT( ESubEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),(void *)1 );#endif gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)10 ); gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 ); gtk_widget_show( Preferences ); gtkSetLayer( Preferences ); { static int visible = 1; if ( visible ) { gtkMessageBox( GTK_MB_WARNING,MSGTR_PREFERENCES_Message ); visible=0; } }}void HidePreferences( void ){ if ( !Preferences ) return; gtk_widget_hide( Preferences ); gtk_widget_destroy( Preferences ); Preferences=NULL; HideAudioConfig();#ifdef HAVE_DXR3 HideDXR3Config();#endif}#if defined( HAVE_FREETYPE ) || defined( USE_ICONV )static void prEntry( GtkContainer * container,gpointer user_data ){ char * comment; int i; switch( (int)user_data ) {#ifdef HAVE_FREETYPE case 0: // font encoding comment=gtk_entry_get_text( GTK_ENTRY( EFontEncoding ) ); for ( i=0;lEncoding[i].name;i++ ) if ( !gstrcmp( lEncoding[i].comment,comment ) ) break; if ( lEncoding[i].comment ) gtkSet( gtkSetFontEncoding,0,lEncoding[i].name ); break;#endif#ifdef USE_ICONV case 1: // sub encoding comment=gtk_entry_get_text( GTK_ENTRY( ESubEncoding ) ); for ( i=0;lEncoding[i].name;i++ ) if ( !gstrcmp( lEncoding[i].comment,comment ) ) break; if ( lEncoding[i].comment ) gtkSet( gtkSetSubEncoding,0,lEncoding[i].name ); else gtkSet( gtkSetSubEncoding,0,NULL ); break;#endif }}#endif#define bAConfig 0#define bVconfig 1#define bOk 2#define bCancel 3#define bLSubtitle 4#define bLFont 5void prButton( GtkButton * button,gpointer user_data ){ switch ( (int)user_data ) { case bOk: // -- 1. page gtkEnableAudioEqualizer=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ) ); gtkAOExtraStereo=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ); gtkAONorm=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNormalize ) ); soft_vol=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ) ); gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL ); audio_delay=HSAudioDelayadj->value; gaddlist( &audio_driver_list,ao_driver[0] ); gaddlist( &video_driver_list,vo_driver[0] ); // -- 2. page vo_doublebuffering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ) ); vo_directrendering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDR ) ); frame_dropping=0; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFramedrop ) ) == TRUE ) frame_dropping=1; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBHFramedrop ) ) == TRUE ) frame_dropping=2; flip=-1; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFlip ) ) ) flip=1; force_fps=HSFPSadj->value; // -- 3. page suboverlap_enabled=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubOverlap ) ); sub_auto=!gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ) ); gtkSubDumpMPSub=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ) ); gtkSubDumpSrt=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpSrt ) ); sub_unicode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubUnicode ) ); sub_delay=HSSubDelayadj->value; sub_fps=HSSubFPSadj->value; sub_pos=(int)HSSubPositionadj->value; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDNone ) ) ) osd_level=0; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ) ) ) osd_level=1; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTandP ) ) ) osd_level=2; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTPTT ) ) ) osd_level=3; // --- 4. page guiSetFilename( font_name,gtk_entry_get_text( GTK_ENTRY( prEFontName ) ) );#ifndef HAVE_FREETYPE gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL );#else gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL ); gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL ); gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL ); gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL ); if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ) ) ) gtkSet( gtkSetFontAutoScale,0,NULL ); if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ) ) ) gtkSet( gtkSetFontAutoScale,1,NULL ); if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleWidth ) ) ) gtkSet( gtkSetFontAutoScale,2,NULL ); if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ) ) ) gtkSet( gtkSetFontAutoScale,3,NULL );#endif // -- 5. page force_ni=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ) ); index_mode=-1; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) ) ) index_mode=1; { int i; char * tmp = gtk_entry_get_text( GTK_ENTRY( EVFM ) ); for( i=0;mpcodecs_vd_drivers[i];i++ ) if ( !gstrcmp( tmp,(char *)mpcodecs_vd_drivers[i]->info->name ) ) { gaddlist( &video_fm_list,(char *)mpcodecs_vd_drivers[i]->info->short_name ); break; } } { int i; char * tmp = gtk_entry_get_text( GTK_ENTRY( EAFM ) ); for( i=0;mpcodecs_ad_drivers[i];i++ ) if ( !gstrcmp( tmp,(char *)mpcodecs_ad_drivers[i]->info->name ) ) { gaddlist( &audio_fm_list,(char *)mpcodecs_ad_drivers[i]->info->short_name ); break; } } // --- 6. page gtkVopPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) ); gtkLoadFullscreen=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ) ); gui_save_pos=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSaveWinPos ) ); gtkShowVideoWindow=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ) ); stop_xscreensaver=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBStopXScreenSaver ) ); gtkEnablePlayBar=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPlayBar ) ); gtkSet( gtkSetAutoq,HSPPQualityadj->value,NULL ); if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) { gtkCacheSize=(int)SBCacheadj->value; gtkCacheOn=1; } else gtkCacheOn=0; if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAutoSync ) ) ) { gtkAutoSync=(int)SBAutoSyncadj->value; gtkAutoSyncOn=1; } else gtkAutoSyncOn=0; guiSetFilename( dvd_device,gtk_entry_get_text( GTK_ENTRY( prEDVDDevice ) ) ); guiSetFilename( cdrom_device,gtk_entry_get_text( GTK_ENTRY( prECDRomDevice ) ) ); case bCancel: HidePreferences(); break; case bAConfig: if ( !ao_driver[0] ) break; gtk_widget_set_sensitive( AConfig,FALSE ); if ( !strncmp( ao_driver[0],"oss",3 ) || !strncmp( ao_driver[0],"alsa",4 ) || !strncmp( ao_driver[0],"esd",3 ) || !strncmp( ao_driver[0],"sdl",3 ) ) { ShowAudioConfig(); gtk_widget_set_sensitive( AConfig,TRUE ); } break; case bVconfig: if ( !vo_driver[0] ) break; gtk_widget_set_sensitive( VConfig,FALSE );#ifdef HAVE_DXR3 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) { ShowDXR3Config(); gtk_widget_set_sensitive( VConfig,TRUE ); }#endif break;#if 0 case bLSubtitle: break;#endif case bLFont: ShowFileSelect( fsFontSelector,FALSE ); gtkSetLayer( fsFileSelect ); break; }}static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data ){ switch ( (int)user_data ) { case 0: // extra stereo coefficient if ( !guiIntfStruct.Playing ) break; gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL ); break; case 1: // audio delay audio_delay=HSAudioDelayadj->value; break; case 2: // panscan gtkSet( gtkSetPanscan,HSPanscanadj->value,NULL ); break; case 3: // sub delay sub_delay=HSSubDelayadj->value; break; case 4: // sub position sub_pos=(int)HSSubPositionadj->value; break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -