summaryrefslogtreecommitdiffstats
path: root/Gui/interface.c
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-04 19:23:58 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-04 19:23:58 +0000
commit0cfdf68bfbace49b8e1cd0954542da86bc0aa0f6 (patch)
tree0800301bcfcb1bc07bdc38c791aced32a6052772 /Gui/interface.c
parentb049fdd4f759b5713a266bd380e96e8a80a571b2 (diff)
downloadmpv-0cfdf68bfbace49b8e1cd0954542da86bc0aa0f6.tar.bz2
mpv-0cfdf68bfbace49b8e1cd0954542da86bc0aa0f6.tar.xz
- fix mixer handling
- some change in menu - fix evLoadPlay bug - etc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6904 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui/interface.c')
-rw-r--r--Gui/interface.c41
1 files changed, 32 insertions, 9 deletions
diff --git a/Gui/interface.c b/Gui/interface.c
index 9d727e47c1..662db96b90 100644
--- a/Gui/interface.c
+++ b/Gui/interface.c
@@ -286,6 +286,18 @@ void guiGetEvent( int type,char * arg )
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 @@ void guiGetEvent( int type,char * arg )
}
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 @@ void guiGetEvent( int type,char * arg )
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 );