# HG changeset patch # User pontscho # Date 1030400458 0 # Node ID 8e9607c5897ea45d44d100fd6ed9714ded29b45b # Parent 2459fcc7baafd2d17fa8765ffab5957f101eb356 - warning fixes from Dominik Mierzejewski - wsXDNDProcessSelection return Truae fix - add url list saving support from Morten Volden - fix bug's in this patches - fix some memleak and bug diff -r 2459fcc7baaf -r 8e9607c5897e Gui/app.c --- a/Gui/app.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/app.c Mon Aug 26 22:20:58 2002 +0000 @@ -13,6 +13,8 @@ #include "mplayer/mplayer.h" #include "interface.h" +extern char *get_path(char *); + listItems appMPlayer; char * skinDirInHome=NULL; diff -r 2459fcc7baaf -r 8e9607c5897e Gui/cfg.c --- a/Gui/cfg.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/cfg.c Mon Aug 26 22:20:58 2002 +0000 @@ -106,9 +106,22 @@ { NULL, NULL, 0, 0, 0, 0, NULL } }; +char * gfgets( char * str, int size, FILE * f ) +{ + char * s = fgets( str,size,f ); + char c; + if ( s ) + { + c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0; + c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0; + } + return s; +} + int cfg_read( void ) { char * cfg = get_path( "gui.conf" ); + FILE * f; // -- read configuration mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[cfg] read config file: %s\n",cfg ); @@ -122,26 +135,39 @@ free( cfg ); // -- read pl - { - FILE * f; - cfg=get_path( "gui.pl" ); - if ( (f=fopen( cfg,"rt" )) == NULL ) return 1; - while ( !feof( f ) ) - { - char tmp[512]; plItem * item = calloc( 1,sizeof( plItem ) ); char c; - if ( fgets( tmp,512,f ) == NULL ) continue; - c=tmp[ strlen( tmp ) - 1 ]; if ( c == '\n' || c == '\r' ) tmp[ strlen( tmp ) - 1 ]=0; - c=tmp[ strlen( tmp ) - 1 ]; if ( c == '\n' || c == '\r' ) tmp[ strlen( tmp ) - 1 ]=0; - item->path=strdup( tmp ); - fgets( tmp,512,f ); - c=tmp[ strlen( tmp ) - 1 ]; if ( c == '\n' || c == '\r' ) tmp[ strlen( tmp ) - 1 ]=0; - c=tmp[ strlen( tmp ) - 1 ]; if ( c == '\n' || c == '\r' ) tmp[ strlen( tmp ) - 1 ]=0; - item->name=strdup( tmp ); - gtkSet( gtkAddPlItem,0,(void*)item ); - } - fclose( f ); - free( cfg ); - } + cfg=get_path( "gui.pl" ); + if ( (f=fopen( cfg,"rt" )) ) + { + while ( !feof( f ) ) + { + char tmp[512]; plItem * item; + if ( gfgets( tmp,512,f ) == NULL ) continue; + item=calloc( 1,sizeof( plItem ) ); + item->path=strdup( tmp ); + gfgets( tmp,512,f ); + item->name=strdup( tmp ); + gtkSet( gtkAddPlItem,0,(void*)item ); + } + fclose( f ); + } + free( cfg ); + + //-- read previously visited urls + cfg=get_path( "gui.url" ); + if ( (f=fopen( cfg,"rt" )) ) + { + while ( !feof( f ) ) + { + char tmp[512]; URLItem * item; + if ( gfgets( tmp,512,f ) == NULL ) continue; + item=calloc( 1,sizeof( URLItem ) ); + item->url=strdup( tmp ); + gtkSet( gtkAddURLItem,0,(void*)item ); + } + fclose( f ); + } + free( cfg ); + return 0; } @@ -195,6 +221,19 @@ } free( cfg ); +// -- save URL's + cfg=get_path( "gui.url" ); + if ( (f=fopen( cfg,"wt+" )) ) + { + while ( URLList ) + { + if ( URLList->url ) fprintf( f,"%s\n",URLList->url ); + URLList=URLList->next; + } + fclose( f ); + } + free( cfg ); + return 0; } diff -r 2459fcc7baaf -r 8e9607c5897e Gui/interface.c --- a/Gui/interface.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/interface.c Mon Aug 26 22:20:58 2002 +0000 @@ -555,6 +555,8 @@ plItem * plList = NULL; plItem * plLastPlayed = NULL; +URLItem *URLList = NULL; + #if defined( MP_DEBUG ) && 0 void list( void ) { @@ -577,6 +579,9 @@ equalizer_t * eq = (equalizer_t *)vparam; plItem * item = (plItem *)vparam; + URLItem * url_item = (URLItem *)vparam; + int is_added = True; + switch ( cmd ) { // --- handle playlist @@ -586,8 +591,7 @@ plItem * next = plList; while ( next->next ) { /*printf( "%s\n",next->name );*/ next=next->next; } next->next=item; item->prev=next; - } - else { item->prev=item->next=NULL; plCurrent=plList=item; } + } else { item->prev=item->next=NULL; plCurrent=plList=item; } list(); return NULL; case gtkGetNextPlItem: // get current item from playlist @@ -638,6 +642,24 @@ plList=NULL; plCurrent=NULL; } return NULL; + // ----- Handle url + case gtkAddURLItem: + if ( URLList ) + { + URLItem * next_url = URLList; + is_added = False; + while ( next_url->next ) + { + if ( !gstrcmp( next_url->url,url_item->url ) ) + { + is_added=True; + break; + } + next_url=next_url->next; + } + if ( ( !is_added )&&( gstrcmp( next_url->url,url_item->url ) ) ) next_url->next=url_item; + } else { url_item->next=NULL; URLList=url_item; } + return NULL; // --- subtitle case gtkSetSubAuto: sub_auto=(int)fparam; diff -r 2459fcc7baaf -r 8e9607c5897e Gui/interface.h --- a/Gui/interface.h Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/interface.h Mon Aug 26 22:20:58 2002 +0000 @@ -144,10 +144,18 @@ char * name; } plItem; +typedef struct _urlItem +{ + struct _urlItem *next; + char * url; +} URLItem; + extern plItem * plList; extern plItem * plCurrent; extern plItem * plLastPlayed; +extern URLItem * URLList; + #define gtkSetContrast 0 #define gtkSetBrightness 1 #define gtkSetHue 2 @@ -168,6 +176,7 @@ #define gtkSetFontFactor 17 #define gtkSetAutoq 18 #define gtkClearStruct 19 +#define gtkAddURLItem 20 extern float gtkEquChannels[6][10]; diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/eq.c --- a/Gui/mplayer/gtk/eq.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/eq.c Mon Aug 26 22:20:58 2002 +0000 @@ -233,7 +233,6 @@ static void eqSelectChannelsListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ) { - char * tmp; Channel=row - 1; eqSetBands( Channel ); if ( Channel == -1 ) diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/eq.h --- a/Gui/mplayer/gtk/eq.h Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/eq.h Mon Aug 26 22:20:58 2002 +0000 @@ -9,4 +9,4 @@ extern GtkWidget * create_Equalizer( void ); extern void ShowEqualizer( void ); -#endif \ No newline at end of file +#endif diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/menu.h --- a/Gui/mplayer/gtk/menu.h Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/menu.h Mon Aug 26 22:20:58 2002 +0000 @@ -10,4 +10,4 @@ extern GtkWidget * AddSeparator( GtkWidget * Menu ); extern GtkWidget * create_PopUpMenu( void ); -#endif \ No newline at end of file +#endif diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/opts.h --- a/Gui/mplayer/gtk/opts.h Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/opts.h Mon Aug 26 22:20:58 2002 +0000 @@ -14,4 +14,4 @@ extern void ShowPreferences( void ); -#endif \ No newline at end of file +#endif diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/pl.c --- a/Gui/mplayer/gtk/pl.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/pl.c Mon Aug 26 22:20:58 2002 +0000 @@ -266,7 +266,7 @@ { if ( CLFileSelected[i] ) { - gtk_clist_get_text( GTK_CLIST( CLFiles ),i,0,&itext ); + gtk_clist_get_text( GTK_CLIST( CLFiles ),i,0,(char **)&itext ); text[0][0]=itext[0][0]; text[0][1]=current_path; gtk_clist_append( GTK_CLIST( CLSelected ),text[0] ); NrOfSelected++; diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/pl.h --- a/Gui/mplayer/gtk/pl.h Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/pl.h Mon Aug 26 22:20:58 2002 +0000 @@ -11,4 +11,4 @@ extern GtkWidget * create_PlayList (void); -#endif \ No newline at end of file +#endif diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/gtk/url.c --- a/Gui/mplayer/gtk/url.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/gtk/url.c Mon Aug 26 22:20:58 2002 +0000 @@ -27,6 +27,18 @@ if ( gtkVURLDialogBox ) gtkActive( URL ); else URL=create_URL(); + if ( URLList ) + { + URLItem * item = URLList; + g_list_free( URLComboEntrys ); + URLComboEntrys=NULL; + while( item ) + { + URLComboEntrys=g_list_append( URLComboEntrys,(gchar *)item->url ); + item=item->next; + } + } + if ( URLComboEntrys ) { gtk_entry_set_text( GTK_ENTRY( URLEntry ),URLComboEntrys->data ); @@ -53,6 +65,8 @@ static void on_Button_pressed( GtkButton * button,gpointer user_data ) { + URLItem * item; + if ( (int)user_data ) { gchar * str= strdup( gtk_entry_get_text( GTK_ENTRY( URLEntry ) ) ); @@ -67,6 +81,10 @@ free( str ); str=tmp; } URLComboEntrys=g_list_prepend( URLComboEntrys,(gchar *)str ); + + item=calloc( 1,sizeof( URLItem ) ); + item->url=gstrdup( str ); + gtkSet( gtkAddURLItem,0,(void *)item ); guiSetFilename( guiIntfStruct.Filename,str ); guiIntfStruct.FilenameChanged=1; mplEventHandling( evPlayNetwork,0 ); diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/mw.h --- a/Gui/mplayer/mw.h Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/mw.h Mon Aug 26 22:20:58 2002 +0000 @@ -646,7 +646,7 @@ } /* this will be used to handle Drag&Drop files */ -void mplDandDHandler(int num,const char** files) +void mplDandDHandler(int num,char** files) { struct stat buf; int f = 0; diff -r 2459fcc7baaf -r 8e9607c5897e Gui/mplayer/play.c --- a/Gui/mplayer/play.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/mplayer/play.c Mon Aug 26 22:20:58 2002 +0000 @@ -1,6 +1,8 @@ + #include #include #include +#include #include #include @@ -33,9 +35,8 @@ void mplFullScreen( void ) { +#if 0 static int sx,sy; - -#if 0 // if ( !guiIntfStruct.Playing ) { wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow ); diff -r 2459fcc7baaf -r 8e9607c5897e Gui/wm/wsxdnd.c --- a/Gui/wm/wsxdnd.c Mon Aug 26 17:20:17 2002 +0000 +++ b/Gui/wm/wsxdnd.c Mon Aug 26 22:20:58 2002 +0000 @@ -126,6 +126,7 @@ } free(delme); + return True; } Bool @@ -153,10 +154,11 @@ } } else { /* need to check the whole list here */ - int ret_left = 1; + unsigned long ret_left = 1; int offset = 0; Atom* ret_buff; - int ret_type,ret_format,ret_items; + Atom ret_type; + unsigned long ret_format,ret_items; /* while there is data left...*/ while(ret_left){ XGetWindowProperty(wsDisplay,event->data.l[0],_XA_XdndTypeList,