From 5633329d6ca1c5440d6af21f6ddc61c545c7080a Mon Sep 17 00:00:00 2001 From: pontscho Date: Mon, 22 Apr 2002 15:39:45 +0000 Subject: add multiple filter types git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5787 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Gui/mplayer/gtk/fs.c | 67 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 23 deletions(-) (limited to 'Gui') diff --git a/Gui/mplayer/gtk/fs.c b/Gui/mplayer/gtk/fs.c index 4186eba132..a193ea455c 100644 --- a/Gui/mplayer/gtk/fs.c +++ b/Gui/mplayer/gtk/fs.c @@ -32,32 +32,36 @@ gchar * fsSelectedFile = NULL; gchar * fsSelectedDirectory = NULL; unsigned char * fsThatDir = "."; -gchar fsFilter[8] = "*"; +gchar fsFilter[64] = "*"; int fsPressed = 0; int fsMessage = -1; int fsType = 0; -#define fsNumberOfVideoFilterNames 6 +#define fsNumberOfVideoFilterNames 9 char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] = - { { "MPEG files ( *.mpg )", "*.mpg" }, - { "VOB files ( *.vob )", "*.vob" }, - { "AVI files ( *.avi )", "*.avi" }, - { "QT files ( *.mov )", "*.mov" }, - { "ASF files ( *.asf )", "*.asf" }, - { "VIVO files ( *.viv )", "*.viv" }, - { "All files ( * )", "*" } }; - -#define fsNumberOfSubtitleFilterNames 8 + { { "MPEG files (*.mpg)", "*.mpg" }, + { "VOB files (*.vob)", "*.vob" }, + { "AVI files (*.avi)", "*.avi" }, + { "QT files (*.mov)", "*.mov" }, + { "ASF files (*.asf)", "*.asf" }, + { "VIVO files (*.viv)", "*.viv" }, + { "Windows Media Video (*.wmv)", "*.wmv" }, + { "Audio files (*.mp2,*.mp3,*.wma)", "*.mp2,*.mp3,*.wma" }, + { "Video files (*.mpg,*.vob,*.avi,*.mov,*.asf,*.viv,*.wmv)", "*.mpg,*.vob,*.avi,*.mov,*.asf,*.viv,*.wmv" }, + { "All files (*)", "*" } }; + +#define fsNumberOfSubtitleFilterNames 9 char * fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames+1][2] = - { { "UTF ( *.utf )", "*.utf" }, - { "SUB ( *.sub )", "*.sub" }, - { "SRT ( *.srt )", "*.str" }, - { "SMI ( *.smi )", "*.smi" }, - { "RT ( *.rt )", "*.rt" }, - { "TXT ( *.txt )", "*.txt" }, - { "SSA ( *.ssa )", "*.ssa" }, - { "AQT ( *.aqt )", "*.aqt" }, + { { "UTF (*.utf)", "*.utf" }, + { "SUB (*.sub)", "*.sub" }, + { "SRT (*.srt)", "*.str" }, + { "SMI (*.smi)", "*.smi" }, + { "RT (*.rt) ", "*.rt" }, + { "TXT (*.txt)", "*.txt" }, + { "SSA (*.ssa)", "*.ssa" }, + { "AQT (*.aqt)", "*.aqt" }, + { "Subtitles (*.utf,*.sub,*.srt,*.smi,*.rt,*.txt,*.ssa,*.aqt)", "*.utf,*.sub,*.srt,*.smi,*.rt,*.txt,*.ssa,*.aqt" }, { "All files ( * )", "*" } }; #define fsNumberOfOtherFilterNames 0 @@ -122,7 +126,24 @@ void CheckDir( GtkWidget * list,char * directory ) } globfree( &gg ); - glob( fsFilter,0,NULL,&gg ); +//printf( "fsFiler: '%s'\n",fsFilter ); + if ( strchr( fsFilter,',' ) ) + { + char tmp[8]; + int i,c,glob_param = 0; +//printf( "sub item detected.\n" ); + for ( i=0,c=0;i<(int)strlen( fsFilter ) + 1;i++,c++ ) + { + tmp[c]=fsFilter[i]; + if ( ( tmp[c] == ',' )||( tmp[c] == '\0' ) ) + { + tmp[c]=0; c=-1; +// printf( "substr: %s\n",tmp ); + glob( tmp,glob_param,NULL,&gg ); + glob_param=GLOB_APPEND; + } + } + } else glob( fsFilter,0,NULL,&gg ); #if 0 if ( !strcmp( fsFilter,"*" ) ) @@ -175,7 +196,7 @@ void ShowFileSelect( int type ) fsList_items=g_list_append( fsList_items,fsVideoFilterNames[i][0] ); gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items ); g_list_free( fsList_items ); - gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] ); + gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames - 1][0] ); break; case fsSubtitleSelector: gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_SubtitleSelect ); @@ -184,7 +205,7 @@ void ShowFileSelect( int type ) fsList_items=g_list_append( fsList_items,fsSubtitleFilterNames[i][0] ); gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items ); g_list_free( fsList_items ); - gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames][0] ); + gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames - 1][0] ); break; case fsOtherSelector: gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_OtherSelect ); @@ -596,7 +617,7 @@ GtkWidget * create_FileSelect( void ) ( GtkDestroyNotify ) gtk_widget_unref ); gtk_widget_show( fsFilterCombo ); gtk_entry_set_editable (GTK_ENTRY( fsFilterCombo ),FALSE ); - gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] ); + gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames - 1][0] ); hseparator3=gtk_hseparator_new(); gtk_widget_set_name( hseparator3,"hseparator3" ); -- cgit v1.2.3