comparison Gui/interface.c @ 9870:09d630a4f991

support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
author henry
date Mon, 07 Apr 2003 16:04:02 +0000
parents 22092ed814ad
children f0bcaf5ea675
comparison
equal deleted inserted replaced
9869:49f639c73367 9870:09d630a4f991
326 mplSubRender=1; 326 mplSubRender=1;
327 // --- 327 // ---
328 328
329 if ( filename ) mplSetFileName( NULL,filename,STREAMTYPE_FILE ); 329 if ( filename ) mplSetFileName( NULL,filename,STREAMTYPE_FILE );
330 if ( plCurrent && !filename ) mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE ); 330 if ( plCurrent && !filename ) mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE );
331 if ( sub_name ) guiSetFilename( guiIntfStruct.Subtitlename,sub_name ); 331 if ( subdata ) guiSetFilename( guiIntfStruct.Subtitlename, subdata->filename );
332 #if defined( USE_OSD ) || defined( USE_SUB ) 332 #if defined( USE_OSD ) || defined( USE_SUB )
333 guiLoadFont(); 333 guiLoadFont();
334 #endif 334 #endif
335 } 335 }
336 336
414 #endif 414 #endif
415 415
416 #ifdef USE_SUB 416 #ifdef USE_SUB
417 extern mp_osd_obj_t* vo_osd_list; 417 extern mp_osd_obj_t* vo_osd_list;
418 418
419 extern char **sub_name;
420
419 void guiLoadSubtitle( char * name ) 421 void guiLoadSubtitle( char * name )
420 { 422 {
421 if ( guiIntfStruct.Playing == 0 ) 423 if ( guiIntfStruct.Playing == 0 )
422 { 424 {
423 guiIntfStruct.SubtitleChanged=1; 425 guiIntfStruct.SubtitleChanged=1; //what is this for? (mw)
424 return; 426 return;
425 } 427 }
426 if ( subtitles ) 428 if ( subdata )
427 { 429 {
428 mp_msg( MSGT_GPLAYER,MSGL_INFO,"[gui] Delete subtitles.\n" ); 430 mp_msg( MSGT_GPLAYER,MSGL_INFO,"[gui] Delete subtitles.\n" );
429 sub_free( subtitles ); 431 sub_free( subdata );
430 subtitles=NULL; 432 subdata=NULL;
431 gfree( (void **)&sub_name );
432 vo_sub=NULL; 433 vo_sub=NULL;
433 if ( vo_osd_list ) 434 if ( vo_osd_list )
434 { 435 {
435 int len; 436 int len;
436 mp_osd_obj_t * osd = vo_osd_list; 437 mp_osd_obj_t * osd = vo_osd_list;
447 } 448 }
448 } 449 }
449 } 450 }
450 if ( name ) 451 if ( name )
451 { 452 {
452 mp_msg( MSGT_GPLAYER,MSGL_INFO,"[gui] Delete Load subtitle: %s\n",name ); 453 mp_msg( MSGT_GPLAYER,MSGL_INFO,"[gui] Load subtitle: %s\n",name );
453 sub_name=gstrdup( name ); 454 subdata=sub_read_file( gstrdup( name ), guiIntfStruct.FPS );
454 subtitles=sub_read_file( sub_name,guiIntfStruct.FPS ); 455 if ( !subdata ) mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_CantLoadSub,name );
455 if ( !subtitles ) mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_CantLoadSub,name ); 456 sub_name = (malloc(2 * sizeof(char*))); //when mplayer will be restarted
456 } 457 sub_name[0] = strdup(name); //sub_name[0] will be read
458 sub_name[1] = NULL;
459 }
460 update_set_of_subtitles();
461
457 } 462 }
458 #endif 463 #endif
459 464
460 static void add_vop( char * str ) 465 static void add_vop( char * str )
461 { 466 {
795 gaddlist( &audio_driver_list,tmp ); 800 gaddlist( &audio_driver_list,tmp );
796 } 801 }
797 #endif 802 #endif
798 // -- subtitle 803 // -- subtitle
799 #ifdef USE_SUB 804 #ifdef USE_SUB
800 sub_name=gstrdup( guiIntfStruct.Subtitlename ); 805 //subdata->filename=gstrdup( guiIntfStruct.Subtitlename );
801 stream_dump_type=0; 806 stream_dump_type=0;
802 if ( gtkSubDumpMPSub ) stream_dump_type=4; 807 if ( gtkSubDumpMPSub ) stream_dump_type=4;
803 if ( gtkSubDumpSrt ) stream_dump_type=6; 808 if ( gtkSubDumpSrt ) stream_dump_type=6;
804 gtkSubDumpMPSub=gtkSubDumpSrt=0; 809 gtkSubDumpMPSub=gtkSubDumpSrt=0;
805 #endif 810 #endif