Mercurial > mplayer.hg
annotate Gui/mplayer/psignal.c @ 1991:dee4b2ea5e5b
add gui support to config scripts, and fixed some warning.
author | pontscho |
---|---|
date | Thu, 27 Sep 2001 17:40:43 +0000 |
parents | 633a7f0d72a4 |
children | 3248aabc6d1d |
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 |
1693 | 20 #include "./mplayer.h" |
21 | |
22 #define gtkShow( w ) gtkShMem->vs.window=w; gtkSendMessage( evShowWindow ); | |
23 | |
24 pid_t mplMPlayerPID = 0; | |
25 pid_t mplParentPID = 0; | |
26 | |
1741 | 27 pid_t gtkPID = 0; |
1693 | 28 |
29 int mplCriticalError = 0; | |
30 int gtkIsOk = 0; | |
31 | |
32 void mplErrorHandler( int critical,const char * format, ... ) | |
33 { | |
34 char * p; | |
35 va_list ap; | |
36 int n; | |
37 | |
38 if ( (p=(char *)malloc( 512 ) ) == NULL ) return; | |
39 va_start( ap,format ); | |
40 n=vsnprintf( p,512,format,ap ); | |
41 va_end( ap ); | |
42 mplCriticalError=critical; | |
1907 | 43 gtkMessageBox( GTK_MB_ERROR,p ); |
1693 | 44 } |
45 | |
46 void gtkSigHandler( int s ) | |
47 { | |
48 if ( s != SIGTYPE ) return; | |
49 #ifdef DEBUG | |
50 dbprintf( 5,"[psignal] gtk sig handler msg: %d\n",gtkShMem->message ); | |
51 #endif | |
52 switch ( gtkShMem->message ) | |
53 { | |
54 case evHideWindow: | |
55 switch ( gtkShMem->vs.window ) | |
56 { | |
57 case evPlayList: gtk_widget_hide( PlayList ); gtkVisiblePlayList=0; break; | |
58 case evSkinBrowser: gtk_widget_hide( SkinBrowser ); gtkVisibleSkinBrowser=0; break; | |
59 case evLoad: gtk_widget_hide( FileSelect ); gtkVisibleFileSelect=0; break; | |
60 } | |
61 break; | |
62 case evSkinBrowser: | |
63 if ( gtkVisibleSkinBrowser ) gtk_widget_hide( SkinBrowser ); | |
64 gtkClearList( SkinList ); | |
1907 | 65 if ( gtkFillSkinList( sbMPlayerPrefixDir )&>kFillSkinList( sbMPlayerDirInHome ) ) |
1693 | 66 { |
1866
32b1bb50a0e8
some bug fix, and add decoration item to skin conffile. faszom(C)
pontscho
parents:
1858
diff
changeset
|
67 gtkSetDefaultToCList( SkinList,skinName ); |
1693 | 68 gtk_widget_show( SkinBrowser ); |
69 gtkVisibleSkinBrowser=1; | |
70 gtkShow( evSkinBrowser ); | |
71 } | |
72 break; | |
73 case evPreferences: | |
74 if ( gtkVisibleOptions ) gtk_widget_hide( Options ); | |
75 gtk_widget_show( Options ); | |
76 gtkVisibleOptions=1; | |
77 break; | |
78 case evPlayList: | |
79 if ( gtkVisiblePlayList ) gtk_widget_hide( PlayList ); | |
80 gtk_widget_show( PlayList ); | |
81 gtkVisiblePlayList=1; | |
82 gtkShow( evPlayList ); | |
83 break; | |
84 case evLoad: | |
85 if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect ); | |
86 gtk_widget_show( FileSelect ); | |
87 gtkVisibleFileSelect=1; | |
88 gtkShow( evPlay ); | |
89 break; | |
1741 | 90 case evFirstLoad: |
91 if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect ); | |
92 gtk_widget_show( FileSelect ); | |
93 gtkVisibleFileSelect=1; | |
94 gtkShow( evFirstLoad ); | |
95 break; | |
1693 | 96 case evMessageBox: |
97 gtk_label_set_text( gtkMessageBoxText,(char *)gtkShMem->mb.str ); | |
1925 | 98 if( gtkVisibleMessageBox ) gtk_widget_hide( MessageBox ); |
99 switch( gtkShMem->mb.type) | |
100 { | |
101 case GTK_MB_FATAL: | |
102 gtk_window_set_title (GTK_WINDOW (MessageBox), "fatal error ..."); | |
103 gtk_widget_hide( WarningPixmap ); | |
104 gtk_widget_show( ErrorPixmap ); | |
105 break; | |
106 case GTK_MB_ERROR: | |
107 gtk_window_set_title (GTK_WINDOW (MessageBox), "error ..."); | |
108 gtk_widget_hide( WarningPixmap ); | |
109 gtk_widget_show( ErrorPixmap ); | |
110 break; | |
111 case GTK_MB_WARNING: | |
112 gtk_window_set_title (GTK_WINDOW (MessageBox), "warning ..."); | |
113 gtk_widget_show( WarningPixmap ); | |
114 gtk_widget_hide( ErrorPixmap ); | |
115 break; | |
116 } | |
1693 | 117 gtk_widget_show( MessageBox ); |
118 gtkVisibleMessageBox=1; | |
119 break; | |
120 case evAbout: | |
121 if ( gtkVisibleAboutBox ) gtk_widget_hide( AboutBox ); | |
122 gtk_widget_show( AboutBox ); | |
123 gtkVisibleAboutBox=1; | |
124 break; | |
125 case evExit: | |
1700 | 126 gtk_main_quit(); |
1693 | 127 break; |
128 } | |
129 gtkShMem->message=0; | |
130 } | |
131 | |
132 void mplMainSigHandler( int s ) | |
133 { | |
1741 | 134 if ( s != SIGTYPE ) return; |
135 | |
1801 | 136 // #ifdef DEBUG |
1802 | 137 // if ( gtkShMem->message ) dbprintf( 5,"[psignal] main sig handler gtk msg: %d\n",gtkShMem->message ); |
1741 | 138 // if ( mplShMem->message ) dbprintf( 5,"[psignal] main sig handler mpl msg: %d\n",mplShMem->message ); |
1801 | 139 // #endif |
1693 | 140 |
141 switch ( gtkShMem->message ) | |
142 { | |
143 case evGtkIsOk: | |
144 #ifdef DEBUG | |
1741 | 145 dbprintf( 5,"[psignal] gtk is ok.\n" ); |
1693 | 146 #endif |
147 gtkIsOk=True; | |
148 break; | |
149 case evShowWindow: | |
150 switch ( gtkShMem->vs.window ) | |
151 { | |
152 case evPlayList: gtkVisiblePlayList=1; break; | |
153 case evLoad: gtkVisibleFileSelect=1; break; | |
154 case evSkinBrowser: gtkVisibleSkinBrowser=1; break; | |
155 } | |
156 break; | |
157 case evHideWindow: | |
158 switch ( gtkShMem->vs.window ) | |
159 { | |
160 case evPlayList: | |
161 btnModify( evPlayList,btnReleased ); gtkVisiblePlayList=0; | |
162 mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow ); | |
163 break; | |
164 case evSkinBrowser: gtkVisibleSkinBrowser=0; break; | |
165 case evLoad: gtkVisibleFileSelect=0; break; | |
166 } | |
167 break; | |
1802 | 168 case evSkinBrowser: mplShMem->SkinChange=1; break; |
1693 | 169 case evFileLoaded: |
1891 | 170 printf("*** gtkShMem->fs.dir == '%s' \n",gtkShMem->fs.dir); |
171 printf("*** gtkShMem->fs.filename == '%s' \n",gtkShMem->fs.filename); | |
1815 | 172 strcpy( mplShMem->Filename,gtkShMem->fs.dir ); |
173 strcat( mplShMem->Filename,"/" ); | |
174 strcat( mplShMem->Filename,gtkShMem->fs.filename ); | |
175 printf( "%%%%%%%% Playing file: %s\n",mplShMem->Filename ); | |
1813 | 176 mplShMem->FilenameChanged=1; |
1693 | 177 if ( mplMainAutoPlay ) mplGeneralTimer=1; |
178 break; | |
179 case evMessageBox: | |
180 if ( mplCriticalError ) | |
181 { gtkSendMessage( evExit ); exit( 1 ); } | |
182 mplCriticalError=0; | |
183 break; | |
184 } | |
185 | |
186 // switch( mplShMem->message ) | |
187 // { | |
188 // } | |
189 gtkShMem->message=0; | |
1741 | 190 // mplShMem->message=0; |
1693 | 191 } |
192 | |
193 void gtkSendMessage( int msg ) | |
194 { | |
195 if ( !gtkIsOk ) return; | |
196 gtkShMem->message=msg; | |
1741 | 197 kill( gtkPID,SIGTYPE ); |
1693 | 198 } |