Mercurial > mplayer.hg
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 |