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