Mercurial > mplayer.hg
annotate Gui/mplayer/psignal.c @ 1884:d21f8afc7680
add to multi lang support
author | pontscho |
---|---|
date | Wed, 12 Sep 2001 15:08:53 +0000 |
parents | 32b1bb50a0e8 |
children | ec11652458ea |
rev | line source |
---|---|
1693 | 1 |
2 #include <stdlib.h> | |
3 #include <stdio.h> | |
4 #include <string.h> | |
5 #include <signal.h> | |
6 #include <unistd.h> | |
7 | |
8 #include "widgets.h" | |
9 #include "play.h" | |
10 | |
11 #include "../app.h" | |
12 | |
13 #include "../skin/skin.h" | |
14 #include "../wm/ws.h" | |
15 #include "../error.h" | |
16 | |
17 #include "../../config.h" | |
1723
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1700
diff
changeset
|
18 #include "../../libvo/x11_common.h" |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1700
diff
changeset
|
19 //#include "../../libvo/sub.h" |
5e4214a7540e
GUI stuff. now seeking works, and xmga renders to video window
arpi
parents:
1700
diff
changeset
|
20 |
1693 | 21 #include "./mplayer.h" |
22 | |
23 #define gtkShow( w ) gtkShMem->vs.window=w; gtkSendMessage( evShowWindow ); | |
24 | |
25 pid_t mplMPlayerPID = 0; | |
26 pid_t mplParentPID = 0; | |
27 | |
1741 | 28 pid_t gtkPID = 0; |
1693 | 29 |
30 int mplCriticalError = 0; | |
31 int gtkIsOk = 0; | |
32 | |
33 void mplErrorHandler( int critical,const char * format, ... ) | |
34 { | |
35 char * p; | |
36 va_list ap; | |
37 int n; | |
38 | |
39 if ( (p=(char *)malloc( 512 ) ) == NULL ) return; | |
40 va_start( ap,format ); | |
41 n=vsnprintf( p,512,format,ap ); | |
42 va_end( ap ); | |
43 mplCriticalError=critical; | |
44 gtkMessageBox( p ); | |
45 } | |
46 | |
47 void gtkSigHandler( int s ) | |
48 { | |
49 if ( s != SIGTYPE ) return; | |
50 #ifdef DEBUG | |
51 dbprintf( 5,"[psignal] gtk sig handler msg: %d\n",gtkShMem->message ); | |
52 #endif | |
53 switch ( gtkShMem->message ) | |
54 { | |
55 case evHideWindow: | |
56 switch ( gtkShMem->vs.window ) | |
57 { | |
58 case evPlayList: gtk_widget_hide( PlayList ); gtkVisiblePlayList=0; break; | |
59 case evSkinBrowser: gtk_widget_hide( SkinBrowser ); gtkVisibleSkinBrowser=0; break; | |
60 case evLoad: gtk_widget_hide( FileSelect ); gtkVisibleFileSelect=0; break; | |
61 } | |
62 break; | |
63 case evSkinBrowser: | |
64 if ( gtkVisibleSkinBrowser ) gtk_widget_hide( SkinBrowser ); | |
65 gtkClearList( SkinList ); | |
66 if ( !gtkFillSkinList( sbMPlayerPrefixDir ) ) break; | |
67 if ( gtkFillSkinList( sbMPlayerDirInHome ) ) | |
68 { | |
1866
32b1bb50a0e8
some bug fix, and add decoration item to skin conffile. faszom(C)
pontscho
parents:
1858
diff
changeset
|
69 gtkSetDefaultToCList( SkinList,skinName ); |
1693 | 70 gtk_widget_show( SkinBrowser ); |
71 gtkVisibleSkinBrowser=1; | |
72 gtkShow( evSkinBrowser ); | |
73 } | |
74 break; | |
75 case evPreferences: | |
76 if ( gtkVisibleOptions ) gtk_widget_hide( Options ); | |
77 gtk_widget_show( Options ); | |
78 gtkVisibleOptions=1; | |
79 break; | |
80 case evPlayList: | |
81 if ( gtkVisiblePlayList ) gtk_widget_hide( PlayList ); | |
82 gtk_widget_show( PlayList ); | |
83 gtkVisiblePlayList=1; | |
84 gtkShow( evPlayList ); | |
85 break; | |
86 case evLoad: | |
87 if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect ); | |
88 gtk_widget_show( FileSelect ); | |
89 gtkVisibleFileSelect=1; | |
90 gtkShow( evPlay ); | |
91 break; | |
1741 | 92 case evFirstLoad: |
93 if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect ); | |
94 gtk_widget_show( FileSelect ); | |
95 gtkVisibleFileSelect=1; | |
96 gtkShow( evFirstLoad ); | |
97 break; | |
1693 | 98 case evMessageBox: |
99 gtk_label_set_text( gtkMessageBoxText,(char *)gtkShMem->mb.str ); | |
100 gtk_widget_set_usize( MessageBox,gtkShMem->mb.sx,gtkShMem->mb.sy ); | |
101 gtk_widget_set_usize( gtkMessageBoxText,gtkShMem->mb.tsx,gtkShMem->mb.tsy ); | |
102 if ( gtkVisibleMessageBox ) gtk_widget_hide( MessageBox ); | |
103 gtk_widget_show( MessageBox ); | |
104 gtkVisibleMessageBox=1; | |
105 break; | |
106 case evAbout: | |
107 if ( gtkVisibleAboutBox ) gtk_widget_hide( AboutBox ); | |
108 gtk_widget_show( AboutBox ); | |
109 gtkVisibleAboutBox=1; | |
110 break; | |
111 case evExit: | |
1700 | 112 gtk_main_quit(); |
1693 | 113 break; |
114 } | |
115 gtkShMem->message=0; | |
116 } | |
117 | |
118 void mplMainSigHandler( int s ) | |
119 { | |
1741 | 120 if ( s != SIGTYPE ) return; |
121 | |
1801 | 122 // #ifdef DEBUG |
1802 | 123 // if ( gtkShMem->message ) dbprintf( 5,"[psignal] main sig handler gtk msg: %d\n",gtkShMem->message ); |
1741 | 124 // if ( mplShMem->message ) dbprintf( 5,"[psignal] main sig handler mpl msg: %d\n",mplShMem->message ); |
1801 | 125 // #endif |
1693 | 126 |
127 switch ( gtkShMem->message ) | |
128 { | |
129 case evGtkIsOk: | |
130 #ifdef DEBUG | |
1741 | 131 dbprintf( 5,"[psignal] gtk is ok.\n" ); |
1693 | 132 #endif |
133 gtkIsOk=True; | |
134 break; | |
135 case evShowWindow: | |
136 switch ( gtkShMem->vs.window ) | |
137 { | |
138 case evPlayList: gtkVisiblePlayList=1; break; | |
139 case evLoad: gtkVisibleFileSelect=1; break; | |
140 case evSkinBrowser: gtkVisibleSkinBrowser=1; break; | |
141 } | |
142 break; | |
143 case evHideWindow: | |
144 switch ( gtkShMem->vs.window ) | |
145 { | |
146 case evPlayList: | |
147 btnModify( evPlayList,btnReleased ); gtkVisiblePlayList=0; | |
148 mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow ); | |
149 break; | |
150 case evSkinBrowser: gtkVisibleSkinBrowser=0; break; | |
151 case evLoad: gtkVisibleFileSelect=0; break; | |
152 } | |
153 break; | |
1802 | 154 case evSkinBrowser: mplShMem->SkinChange=1; break; |
1693 | 155 case evFileLoaded: |
1815 | 156 strcpy( mplShMem->Filename,gtkShMem->fs.dir ); |
157 strcat( mplShMem->Filename,"/" ); | |
158 strcat( mplShMem->Filename,gtkShMem->fs.filename ); | |
159 printf( "%%%%%%%% Playing file: %s\n",mplShMem->Filename ); | |
1813 | 160 mplShMem->FilenameChanged=1; |
1693 | 161 if ( mplMainAutoPlay ) mplGeneralTimer=1; |
162 break; | |
163 case evMessageBox: | |
164 if ( mplCriticalError ) | |
165 { gtkSendMessage( evExit ); exit( 1 ); } | |
166 mplCriticalError=0; | |
167 break; | |
168 } | |
169 | |
170 // switch( mplShMem->message ) | |
171 // { | |
172 // } | |
173 gtkShMem->message=0; | |
1741 | 174 // mplShMem->message=0; |
1693 | 175 } |
176 | |
177 void gtkSendMessage( int msg ) | |
178 { | |
179 if ( !gtkIsOk ) return; | |
180 gtkShMem->message=msg; | |
1741 | 181 kill( gtkPID,SIGTYPE ); |
1693 | 182 } |