summaryrefslogtreecommitdiffstats
path: root/Gui
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-09-28 18:03:34 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-09-28 18:03:34 +0000
commit253c9833b7bafd334d975ebeb5a91e5b08687f1b (patch)
tree532e894ba97ba60de450455116c49265dec48182 /Gui
parent4eb5fc7dea70dade112091245497deee88d41834 (diff)
downloadmpv-253c9833b7bafd334d975ebeb5a91e5b08687f1b.tar.bz2
mpv-253c9833b7bafd334d975ebeb5a91e5b08687f1b.tar.xz
- fix new afm/vfm support
- fix fullscreen with xv - add cache support git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7527 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui')
-rw-r--r--Gui/cfg.c14
-rw-r--r--Gui/interface.c3
-rw-r--r--Gui/interface.h1
-rw-r--r--Gui/mplayer/gtk/opts.c112
4 files changed, 119 insertions, 11 deletions
diff --git a/Gui/cfg.c b/Gui/cfg.c
index 7eb820e43a..2c0165f44c 100644
--- a/Gui/cfg.c
+++ b/Gui/cfg.c
@@ -59,8 +59,8 @@ static config_t gui_opts[] =
{ "v_flip",&flip,CONF_TYPE_INT,CONF_RANGE,-1,1,NULL },
{ "v_ni",&force_ni,CONF_TYPE_FLAG,0,0,1,NULL },
{ "v_idx",&index_mode,CONF_TYPE_INT,CONF_RANGE,-1,2,NULL },
- { "v_vfm",&video_fm,CONF_TYPE_STRING,0,0,0,NULL },
- { "a_afm",&audio_fm,CONF_TYPE_STRING,0,0,0,NULL },
+ { "v_vfm",&video_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
+ { "a_afm",&audio_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
{ "vf_pp",&gtkVopPP,CONF_TYPE_FLAG,0,0,1,NULL },
{ "vf_autoq",&auto_quality,CONF_TYPE_INT,CONF_RANGE,0,100,NULL },
@@ -87,10 +87,12 @@ static config_t gui_opts[] =
{ "font_encoding",&subtitle_font_encoding,CONF_TYPE_STRING,0,0,0,NULL },
{ "font_text_scale",&text_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
{ "font_osd_scale",&osd_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
- { "font_blur",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
+ { "font_blur",&subtitle_font_radius,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
{ "font_outline",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
{ "font_autoscale",&subtitle_autoscale,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
#endif
+
+ { "cache",&stream_cache_size,CONF_TYPE_INT,CONF_RANGE,4,65535,NULL },
{ "gui_skin",&skinName,CONF_TYPE_STRING,0,0,0,NULL },
@@ -214,6 +216,12 @@ int cfg_write( void )
if ( tmp && tmp[0] ) fprintf( f,"%s = \"%s\"\n",gui_opts[i].name,tmp );
break;
}
+ case CONF_TYPE_STRING_LIST:
+ {
+ char ** tmp = *( (char **)gui_opts[i].p );
+ if ( tmp && tmp[0] && tmp[0][0] ) fprintf( f,"%s = \"%s\"\n",gui_opts[i].name,tmp[0] );
+ break;
+ }
}
}
fclose( f );
diff --git a/Gui/interface.c b/Gui/interface.c
index cd59a9cc9c..91f7aab964 100644
--- a/Gui/interface.c
+++ b/Gui/interface.c
@@ -747,6 +747,9 @@ void * gtkSet( int cmd,float fparam, void * vparam )
if ( (unsigned int)vparam & guiVCD ) guiIntfStruct.VCDTracks=0;
#endif
return NULL;
+ case gtkSetCacheSize:
+ stream_cache_size=(int)fparam;
+ return NULL;
case gtkSetExtraStereo:
gtkAOExtraStereoMul=fparam;
audio_plugin_extrastereo.control( AOCONTROL_PLUGIN_ES_SET,(int)&gtkAOExtraStereoMul );
diff --git a/Gui/interface.h b/Gui/interface.h
index 845c40e3a9..f55b840640 100644
--- a/Gui/interface.h
+++ b/Gui/interface.h
@@ -187,6 +187,7 @@ extern URLItem * URLList;
#define gtkSetFontOSDScale 24
#define gtkSetFontEncoding 25
#define gtkSetFontAutoScale 26
+#define gtkSetCacheSize 27
extern float gtkEquChannels[6][10];
diff --git a/Gui/mplayer/gtk/opts.c b/Gui/mplayer/gtk/opts.c
index a0581cd94c..fc5a4ac5dd 100644
--- a/Gui/mplayer/gtk/opts.c
+++ b/Gui/mplayer/gtk/opts.c
@@ -62,6 +62,10 @@ static GtkWidget * CBSubUnicode;
static GtkWidget * CBDumpMPSub;
static GtkWidget * CBDumpSrt;
static GtkWidget * CBPostprocess;
+static GtkWidget * CBCache;
+
+static GtkWidget * SBCache;
+static GtkAdjustment * SBCacheadj;
static GtkWidget * RBOSDNone;
static GtkWidget * RBOSDTandP;
@@ -235,8 +239,8 @@ void ShowPreferences( void )
#ifndef HAVE_FREETYPE
gtk_adjustment_set_value( HSFontFactoradj,font_factor );
#else
- gtk_adjustment_set_value( HSFontBluradj,subtitle_font_radius );
- gtk_adjustment_set_value( HSFontOutLineadj,subtitle_font_thickness );
+ gtk_adjustment_set_value( HSFontBluradj,( subtitle_font_radius / 8.0f ) * 100.0f );
+ gtk_adjustment_set_value( HSFontOutLineadj,( subtitle_font_thickness / 8.0f ) * 100.0f );
gtk_adjustment_set_value( HSFontTextScaleadj,text_font_scale_factor );
gtk_adjustment_set_value( HSFontOSDScaleadj,osd_font_scale_factor );
if ( subtitle_font_encoding )
@@ -270,12 +274,13 @@ void ShowPreferences( void )
for( i=0;mpcodecs_vd_drivers[i];i++ )
{
Items=g_list_append( Items,(char *)mpcodecs_vd_drivers[i]->info->name );
- if ( !gstrcmp( video_fm,(char *)mpcodecs_vd_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_vd_drivers[i]->info->name;
+ if ( video_fm_list && !gstrcmp( video_fm_list[0],(char *)mpcodecs_vd_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_vd_drivers[i]->info->name;
}
gtk_combo_set_popdown_strings( GTK_COMBO( CBVFM ),Items );
g_list_free( Items );
if ( name ) gtk_entry_set_text( GTK_ENTRY( EVFM ),name );
}
+
{
int i;
GList * Items = NULL;
@@ -285,13 +290,20 @@ void ShowPreferences( void )
for( i=0;mpcodecs_ad_drivers[i];i++ )
{
Items=g_list_append( Items,(char *)mpcodecs_ad_drivers[i]->info->name );
- if ( !gstrcmp( audio_fm,(char *)mpcodecs_ad_drivers[i]->info->short_name ) ) name=(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 );
}
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),0 );
+ if ( stream_cache_size )
+ {
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),1 );
+ gtk_adjustment_set_value( SBCacheadj,stream_cache_size );
+ } else gtk_widget_set_sensitive( SBCache,FALSE );
+
// -- disables
#ifndef USE_SUB
gtk_widget_set_sensitive( AConfig,FALSE );
@@ -327,6 +339,7 @@ void ShowPreferences( void )
gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleHeight ),"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( 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 );
@@ -450,19 +463,44 @@ void prButton( GtkButton * button,gpointer user_data )
index_mode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) );
gtkVopPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) );
gtkSet( gtkSetAutoq,HSPPQualityadj->value,NULL );
+
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) gtkSet( gtkSetCacheSize,SBCacheadj->value,NULL );
+ else gtkSet( gtkSetCacheSize,0,NULL );
+
{
int i;
char * tmp = gtk_entry_get_text( GTK_ENTRY( EVFM ) );
- gfree( (void **)&video_fm );
+ if ( video_fm_list )
+ {
+ for ( i=0;video_fm_list[i];i++ ) gfree( (void **)&video_fm_list[i] );
+ gfree( (void **)&video_fm_list );
+ }
for( i=0;mpcodecs_vd_drivers[i];i++ )
- if ( !gstrcmp( tmp,(char *)mpcodecs_vd_drivers[i]->info->name ) ) { video_fm=gstrdup( (char *)mpcodecs_vd_drivers[i]->info->short_name ); break; }
+ if ( !gstrcmp( tmp,(char *)mpcodecs_vd_drivers[i]->info->name ) )
+ {
+ video_fm_list=malloc( 8 );
+ video_fm_list[0]=gstrdup( (char *)mpcodecs_vd_drivers[i]->info->short_name );
+ video_fm_list[1]=NULL;
+ break;
+ }
}
+
{
int i;
char * tmp = gtk_entry_get_text( GTK_ENTRY( EAFM ) );
- gfree( (void **)&audio_fm );
+ if ( audio_fm_list )
+ {
+ for ( i=0;audio_fm_list[i];i++ ) gfree( (void **)&audio_fm_list[i] );
+ gfree( (void **)&audio_fm_list );
+ }
for( i=0;mpcodecs_ad_drivers[i];i++ )
- if ( !gstrcmp( tmp,(char *)mpcodecs_ad_drivers[i]->info->name ) ) { audio_fm=gstrdup( (char *)mpcodecs_ad_drivers[i]->info->short_name ); break; }
+ if ( !gstrcmp( tmp,(char *)mpcodecs_ad_drivers[i]->info->name ) )
+ {
+ audio_fm_list=malloc( 8 );
+ audio_fm_list[0]=gstrdup( (char *)mpcodecs_ad_drivers[i]->info->short_name );
+ audio_fm_list[1]=NULL;
+ break;
+ }
}
case bCancel:
@@ -554,6 +592,10 @@ static void prToggled( GtkToggleButton * togglebutton,gpointer user_data )
case 7:
gtkSet( gtkSetFontAutoScale,(float)((int)user_data - 4 ),NULL );
break;
+ case 8:
+ if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) gtk_widget_set_sensitive( SBCache,TRUE );
+ else gtk_widget_set_sensitive( SBCache,FALSE );
+ break;
}
}
@@ -1712,6 +1754,60 @@ GtkWidget * create_Preferences( void )
gtk_object_set_data_full( GTK_OBJECT( Preferences ),"EAFM",EAFM,(GtkDestroyNotify)gtk_widget_unref );
gtk_widget_show( EAFM );
+ frame11=gtk_frame_new( MSGTR_PREFERENCES_FRAME_Cache );
+ gtk_widget_set_name( frame11,"frame11" );
+ gtk_widget_ref( frame11 );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"frame11",frame11,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( frame11 );
+ gtk_box_pack_start( GTK_BOX( vbox601 ),frame11,FALSE,FALSE,0 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame11 ),GTK_SHADOW_ETCHED_OUT );
+
+ frame=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame,"frame" );
+ gtk_widget_ref( frame );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"frame",frame,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( frame );
+ gtk_container_add( GTK_CONTAINER( frame11 ),frame );
+ gtk_container_set_border_width( GTK_CONTAINER( frame ),0 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame ),GTK_SHADOW_NONE );
+
+ vbox602=gtk_vbox_new( FALSE,0 );
+ gtk_widget_set_name( vbox602,"vbox602" );
+ gtk_widget_ref( vbox602 );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"vbox602",vbox602,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( vbox602 );
+ gtk_container_add( GTK_CONTAINER( frame ),vbox602 );
+
+ CBCache=gtk_check_button_new_with_label( MSGTR_PREFERENCES_Cache );
+ gtk_widget_set_name( CBCache,"CBCache" );
+ gtk_widget_ref( CBCache );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"CBCache",CBCache,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( CBCache );
+ gtk_box_pack_start( GTK_BOX( vbox602 ),CBCache,FALSE,FALSE,0 );
+
+ hbox5=gtk_hbox_new( FALSE,0 );
+ gtk_widget_set_name( hbox5,"hbox5" );
+ gtk_widget_ref( hbox5 );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"hbox5",hbox5,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( hbox5 );
+ gtk_box_pack_start( GTK_BOX( vbox602 ),hbox5,FALSE,FALSE,0 );
+
+ label4=gtk_label_new( "Cache size: " );
+ gtk_widget_set_name( label4,"label4" );
+ gtk_widget_ref( label4 );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label4",label4,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( label4 );
+ gtk_box_pack_start( GTK_BOX( hbox5 ),label4,FALSE,FALSE,0 );
+ gtk_misc_set_alignment( GTK_MISC( label4 ),7.45058e-09,0.5 );
+ gtk_misc_set_padding( GTK_MISC( label4 ),4,0 );
+
+ SBCacheadj=GTK_ADJUSTMENT( gtk_adjustment_new( 2048,4,65535,1,10,10 ) );
+ SBCache=gtk_spin_button_new( GTK_ADJUSTMENT( SBCacheadj ),1,0 );
+ gtk_widget_ref( SBCache );
+ gtk_object_set_data_full( GTK_OBJECT( Preferences ),"SBCache",SBCache,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( SBCache );
+ gtk_box_pack_start( GTK_BOX( hbox5 ),SBCache,TRUE,TRUE,0 );
+
label4=gtk_label_new( "Misc" );
gtk_widget_set_name( label4,"label4" );
gtk_widget_ref( label4 );