Mercurial > mplayer.hg
diff Gui/interface.c @ 6903:c2d4100c964e
- fix mixer handling
- some change in menu
- fix evLoadPlay bug
- etc
author | pontscho |
---|---|
date | Sun, 04 Aug 2002 19:23:58 +0000 |
parents | 138a7ff52a26 |
children | 5ddd609550d5 |
line wrap: on
line diff
--- a/Gui/interface.c Sun Aug 04 19:15:45 2002 +0000 +++ b/Gui/interface.c Sun Aug 04 19:23:58 2002 +0000 @@ -286,6 +286,18 @@ mplEventHandling( evRedraw,0 ); break; case guiSetVolume: + if ( audio_out ) + { + float l,r; + mixer_getvolume( &l,&r ); + guiIntfStruct.Volume=(r>l?r:l); + if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f; + else guiIntfStruct.Balance=50.0f; + btnModify( evSetVolume,guiIntfStruct.Volume ); + btnModify( evSetBalance,guiIntfStruct.Balance ); + } + break; + case guiSetValues: // -- audio if ( audio_out ) { @@ -329,21 +341,31 @@ } guiIntfStruct.DiskChanged=0; -// guiIntfStruct.FilenameChanged=0; // --- video opts if ( !gtkVODriver ) { int i = 0; - while ( video_out_drivers[i++] ) - if ( video_out_drivers[i - 1]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE ) - { - const vo_info_t *info = video_out_drivers[i - 1]->get_info(); - { gtkVODriver=gstrdup( (char *)info->short_name ); break; } - } + if ( video_driver && !gtkVODriver ) + { + while ( video_out_drivers[i] ) + if ( video_out_drivers[i++]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE ) + { + const vo_info_t *info = video_out_drivers[i - 1]->get_info(); + if ( !gstrcmp( video_driver,(char *)info->short_name ) ) gtkVODriver=gstrdup( video_driver ); + } + } + else + while ( video_out_drivers[i++] ) + if ( video_out_drivers[i - 1]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE ) + { + const vo_info_t *info = video_out_drivers[i - 1]->get_info(); + gtkVODriver=gstrdup( (char *)info->short_name ); + break; + } } - if ( gtkVODriver ) { if ( video_driver ) free( video_driver ); video_driver=strdup( gtkVODriver ); } + if ( gtkVODriver ) { gfree( (void **)&video_driver ); video_driver=gstrdup( gtkVODriver ); } else { gtkMessageBox( GTK_MB_FATAL,MSGTR_IDFGCVD ); exit_player( "gui init" ); } if ( gtkVPP ) @@ -393,7 +415,8 @@ ao_plugin_cfg.pl_extrastereo_mul=gtkAOExtraStereoMul; } mixer_device=gtkAOOSSMixer; - if ( audio_driver ) free( audio_driver ); + if ( audio_driver && !gtkAODriver ) gtkAODriver=gstrdup( audio_driver ); + gfree( (void **)&audio_driver ); if ( !gstrcmp( gtkAODriver,"oss" ) && gtkAOOSSDevice ) { char * tmp = calloc( 1,strlen( gtkAODriver ) + strlen( gtkAOOSSDevice ) + 2 );