- 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
This commit is contained in:
pontscho 2002-08-04 19:23:58 +00:00
parent b049fdd4f7
commit 0cfdf68bfb
16 changed files with 75 additions and 53 deletions

View File

@ -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 );

View File

@ -115,6 +115,7 @@ extern guiInterface_t guiIntfStruct;
#define guiReDraw 10
#define guiSetVolume 11
#define guiSetDefaults 12
#define guiSetValues 13
#define guiSetStop 0
#define guiSetPlay 1

View File

@ -15,7 +15,6 @@ void ShowAboutBox( void )
if ( gtkVAboutBox ) gtkActive( AboutBox );
else AboutBox=create_About();
gtk_widget_show( AboutBox );
gtkIncVisible();
}
void ab_AboutBox_show( GtkButton * button,gpointer user_data )
@ -25,7 +24,6 @@ void ab_Ok_released( GtkButton * button,gpointer user_data )
{
gtkVAboutBox=(int)user_data;
gtk_widget_destroy( AboutBox );
gtkDecVisible();
}
GtkWidget * create_About( void )

View File

@ -142,13 +142,12 @@ void ShowEqualizer( void )
if ( gtk_notebook_get_current_page( GTK_NOTEBOOK( Notebook ) ) == 0 ) gtk_widget_show( Config );
gtk_widget_show( Equalizer );
gtkIncVisible();
}
void HideEqualizer( void )
{
if ( !gtkVEqualizer ) return;
gtkVEqualizer=0; gtkDecVisible();
gtkVEqualizer=0;
gtk_widget_hide( Equalizer );
gtk_widget_destroy( Equalizer );
if ( gtkVEquConfig ) HideEquConfig();

View File

@ -286,7 +286,7 @@ void ShowFileSelect( int type,int modal )
gtk_window_set_modal( GTK_WINDOW( fsFileSelect ),modal );
gtk_widget_show( fsFileSelect ); gtkIncVisible();
gtk_widget_show( fsFileSelect );
}
void HideFileSelect( void )
@ -294,7 +294,7 @@ void HideFileSelect( void )
if ( !gtkVFileSelect ) return;
gtk_widget_hide( fsFileSelect );
gtk_widget_destroy( fsFileSelect );
gtkVFileSelect=0; gtkDecVisible();
gtkVFileSelect=0;
}
void fs_fsFileSelect_destroy( GtkObject * object,gpointer user_data )

View File

@ -19,11 +19,10 @@ void ShowMessageBox( char * msg )
if ( gtkVMessageBox ) { gtk_widget_hide( MessageBox ); gtk_widget_destroy( MessageBox ); }
MessageBox=create_MessageBox( 0 );
if ( strlen( msg ) < 20 ) gtk_widget_set_usize( MessageBox,196,-1 );
gtkIncVisible();
}
static void on_Ok_released( GtkButton * button,gpointer user_data )
{ gtkVMessageBox=0; gtk_widget_hide( MessageBox ); gtk_widget_destroy( MessageBox ); gtkDecVisible(); }
{ gtkVMessageBox=0; gtk_widget_hide( MessageBox ); gtk_widget_destroy( MessageBox ); }
static void on_MessageBox_show( GtkButton * button,gpointer user_data )
{ gtkVMessageBox=(int)user_data; }

View File

@ -294,10 +294,10 @@ GtkWidget * create_PopUpMenu( void )
// AddMenuItem( SubMenu,"Fwd 10 sec", evForward10sec );
// AddMenuItem( SubMenu,"Back 1 min", evBackward1min );
// AddMenuItem( SubMenu,"Fwd 1 min", evForward1min );
SubMenu=AddSubMenu( Menu,MSGTR_MENU_Size );
AddMenuItem( SubMenu,MSGTR_MENU_NormalSize" ", evNormalSize );
AddMenuItem( SubMenu,MSGTR_MENU_DoubleSize, evDoubleSize );
AddMenuItem( SubMenu,MSGTR_MENU_FullScreen, evFullScreen );
// SubMenu=AddSubMenu( Menu,MSGTR_MENU_Size );
// AddMenuItem( SubMenu,MSGTR_MENU_NormalSize" ", evNormalSize );
// AddMenuItem( SubMenu,MSGTR_MENU_DoubleSize, evDoubleSize );
// AddMenuItem( SubMenu,MSGTR_MENU_FullScreen, evFullScreen );
#ifdef HAVE_VCD
VCDSubMenu=AddSubMenu( Menu,MSGTR_MENU_VCD );
AddMenuItem( VCDSubMenu,MSGTR_MENU_PlayDisc,evPlayVCD );
@ -394,6 +394,10 @@ GtkWidget * create_PopUpMenu( void )
AddMenuItem( Menu,MSGTR_MENU_Preferences, evPreferences );
AddMenuItem( Menu,MSGTR_Equalizer, evEqualizer );
AddSeparator( Menu );
AddMenuItem( Menu,MSGTR_MENU_NormalSize" ", evNormalSize );
AddMenuItem( Menu,MSGTR_MENU_DoubleSize, evDoubleSize );
AddMenuItem( Menu,MSGTR_MENU_FullScreen, evFullScreen );
AddSeparator( Menu );
AddMenuItem( Menu,MSGTR_MENU_Exit, evExit );
return Menu;

View File

@ -117,12 +117,12 @@ void ShowPreferences( void )
int i = 0;
char * tmp[3]; tmp[2]="";
old_audio_driver=0;
if ( audio_driver && !gtkAODriver ) gtkAODriver=gstrdup( audio_driver );
while ( audio_out_drivers[i] )
{
const ao_info_t *info = audio_out_drivers[i++]->info;
if ( !strcmp( info->short_name,"plugin" ) ) continue;
if ( gtkAODriver )
if ( !strcmp( gtkAODriver,info->short_name ) ) old_audio_driver=i - 1;
if ( !strcmp( gtkAODriver,info->short_name ) ) old_audio_driver=i - 1;
tmp[0]=(char *)info->short_name; tmp[1]=(char *)info->name; gtk_clist_append( GTK_CLIST( CLADrivers ),tmp );
}
gtk_clist_select_row( GTK_CLIST( CLADrivers ),old_audio_driver,0 );
@ -143,12 +143,21 @@ void ShowPreferences( void )
int i = 0, c = 0;
char * tmp[3]; tmp[2]="";
old_video_driver=0;
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,info->short_name ) ) gtkVODriver=gstrdup( video_driver );
}
}
i=0;
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 ( gtkVODriver )
if ( !strcmp( gtkVODriver,info->short_name ) ) old_video_driver=c; c++;
if ( !gstrcmp( gtkVODriver,info->short_name ) ) old_video_driver=c; c++;
tmp[0]=(char *)info->short_name; tmp[1]=(char *)info->name; gtk_clist_append( GTK_CLIST( CLVDrivers ),tmp );
}
gtk_clist_select_row( GTK_CLIST( CLVDrivers ),old_video_driver,0 );
@ -228,7 +237,7 @@ void ShowPreferences( void )
gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 );
gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 );
gtkVPreferences=1; gtkIncVisible();
gtkVPreferences=1;
gtk_widget_show( Preferences );
gtkSetLayer( Preferences );
gtkMessageBox( GTK_MB_WARNING,MSGTR_PREFERENCES_Message );
@ -237,7 +246,7 @@ void ShowPreferences( void )
void HidePreferences( void )
{
if ( !gtkVPreferences ) return;
gtkVPreferences=0; gtkDecVisible();
gtkVPreferences=0;
gtk_widget_hide( Preferences ); gtk_widget_destroy( Preferences );
HideOSSConfig();
}
@ -1465,7 +1474,7 @@ void ShowOSSConfig( void )
gtk_widget_show( OSSConfig );
gtkSetLayer( OSSConfig );
gtkVOSSConfig=1; gtkIncVisible();
gtkVOSSConfig=1;
}
void HideOSSConfig( void )
@ -1473,7 +1482,7 @@ void HideOSSConfig( void )
if ( !gtkVOSSConfig ) return;
gtk_widget_hide( OSSConfig );
gtk_widget_destroy( OSSConfig );
gtkVOSSConfig=0; gtkDecVisible();
gtkVOSSConfig=0;
}
static void ossDestroy( GtkObject * object,gpointer user_data )

View File

@ -169,7 +169,7 @@ void ShowPlayList( void )
}
gtk_clist_thaw( GTK_CLIST( CLSelected ) );
gtk_widget_show( PlayList ); gtkIncVisible();
gtk_widget_show( PlayList );
}
void HidePlayList( void )
@ -180,7 +180,7 @@ void HidePlayList( void )
if ( CLFileSelected ) free( CLFileSelected ); CLFileSelected=NULL;
if ( old_path ) free( old_path ); old_path=strdup( current_path );
gtk_widget_hide( PlayList );
gtk_widget_destroy( PlayList ); gtkDecVisible();
gtk_widget_destroy( PlayList );
}
static void plDestroy( GtkObject * object,gpointer user_data )

View File

@ -29,13 +29,12 @@ void ShowSkinBrowser( void )
{
if ( gtkVSkinBrowser ) gtkActive( SkinBrowser );
else SkinBrowser=create_SkinBrowser();
gtkIncVisible();
}
void HideSkinBrowser( void )
{
if ( !gtkVSkinBrowser ) return;
gtkVSkinBrowser=0; gtkDecVisible();
gtkVSkinBrowser=0;
gtk_widget_destroy( SkinBrowser );
}

View File

@ -34,7 +34,7 @@ void ShowURLDialogBox( void )
}
gtk_widget_show( URL );
gtkVURLDialogBox=1; gtkIncVisible();
gtkVURLDialogBox=1;
}
void HideURLDialogBox( void )
@ -42,7 +42,7 @@ void HideURLDialogBox( void )
if ( !gtkVURLDialogBox ) return;
gtk_widget_hide( URL );
gtk_widget_destroy( URL );
gtkVURLDialogBox=0; gtkDecVisible();
gtkVURLDialogBox=0;
}
static gboolean on_URL_destroy_event( GtkWidget * widget,GdkEvent * event,gpointer user_data )

View File

@ -263,7 +263,6 @@ play_dvd_2:
case evPlaySwitchToPause:
play:
mplMainAutoPlay=0;
if ( ( msg == evPlaySwitchToPause )&&( guiIntfStruct.Playing == 2 ) ) goto NoPause;
vcd_track=0;

View File

@ -102,6 +102,8 @@ void mplEnd( void )
}
else
{
if ( mplMainAutoPlay ) { mplMainAutoPlay=0; return; }
guiIntfStruct.TimeSec=0;
guiIntfStruct.Position=0;
guiIntfStruct.AudioType=0;

View File

@ -38,7 +38,6 @@ GtkWidget * ErrorPixmap;
int gtkPopupMenu = 0;
int gtkPopupMenuParam = 0;
int gtkInited = 0;
int gtkVisible = 0;
#include "gtk/sb.h"
#include "gtk/pl.h"
@ -117,8 +116,7 @@ void gtkSetDefaultToCList( GtkWidget * list,char * item )
void gtkEventHandling( void )
{
int i;
if ( gtkVisible > 0 )
for( i=0;i < 25;i++ ) gtk_main_iteration_do( 0 );
for( i=0;i < 25;i++ ) gtk_main_iteration_do( 0 );
}
// --- funcs
@ -185,7 +183,7 @@ void gtkShow( int type,char * param )
}
else
{
gtk_widget_destroy( SkinBrowser ); gtkDecVisible();
gtk_widget_destroy( SkinBrowser );
gtkMessageBox( GTK_MB_ERROR,"Skin dirs not found ... Please install skins." );
}
break;
@ -219,13 +217,12 @@ void gtkShow( int type,char * param )
case evShowPopUpMenu:
gtkPopupMenu=evNone;
gtkPopupMenuParam=0;
if ( PopUpMenu ) { gtk_widget_hide_on_delete( PopUpMenu ); gtkDecVisible(); }
if ( PopUpMenu ) { gtk_widget_hide_on_delete( PopUpMenu ); }
PopUpMenu=create_PopUpMenu();
gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 );
gtkIncVisible();
break;
case evHidePopUpMenu:
if ( PopUpMenu ) { gtk_widget_hide_on_delete( PopUpMenu ); /*gtkVisible--;*/ PopUpMenu=NULL; }
if ( PopUpMenu ) { gtk_widget_hide_on_delete( PopUpMenu ); PopUpMenu=NULL; }
break;
case evPlayNetwork:
ShowURLDialogBox();
@ -233,7 +230,3 @@ void gtkShow( int type,char * param )
break;
}
}
void gtkIncVisible( void ) { gtkVisible++; }
void gtkDecVisible( void ) { if ( gtkVisible > 0 ) gtkVisible--; }

View File

@ -41,8 +41,6 @@ extern GdkBitmap * gtkIconMask;
extern Pixmap guiIcon;
extern Pixmap guiIconMask;
extern int gtkVisible;
extern void widgetsCreate( void );
extern void gtkInit( void );
@ -61,7 +59,4 @@ extern void gtkMessageBox( int type,gchar * str );
extern void gtkSetLayer( GtkWidget * wdg );
extern void gtkActive( GtkWidget * wdg );
extern void gtkIncVisible( void );
extern void gtkDecVisible( void );
#endif

View File

@ -1358,7 +1358,7 @@ fflush(stdout);
guiGetEvent( guiSetFileName,filename );
if ( sh_audio ) guiIntfStruct.AudioType=sh_audio->channels; else guiIntfStruct.AudioType=0;
if ( !sh_video && sh_audio ) guiGetEvent( guiSetAudioOnly,(char *)1 ); else guiGetEvent( guiSetAudioOnly,(char *)0 );
guiGetEvent( guiSetVolume,NULL );
guiGetEvent( guiSetValues,NULL );
}
#endif
@ -2930,6 +2930,7 @@ if(rel_seek_secs || abs_seek_pos){
if ( sh_video ) guiIntfStruct.TimeSec=d_video->pts;
else if ( sh_audio ) guiIntfStruct.TimeSec=sh_audio->timer;
guiGetEvent( guiReDraw,NULL );
guiGetEvent( guiSetVolume,NULL );
if(guiIntfStruct.Playing==0) break; // STOP
if(guiIntfStruct.Playing==2) osd_function=OSD_PAUSE;
if ( guiIntfStruct.DiskChanged || guiIntfStruct.FilenameChanged ) goto goto_next_file;