annotate Gui/mplayer/psignal.c @ 2525:125af7039fcb

Enable stream cache by default.
author atmos4
date Sun, 28 Oct 2001 22:56:44 +0000
parents 3248aabc6d1d
children f77f8379f28f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
1
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
2 #include <stdlib.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
3 #include <stdio.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
4 #include <string.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
5 #include <signal.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
6 #include <unistd.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
7
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
8 #include "widgets.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
9 #include "play.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
10
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
11 #include "../app.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
12
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
13 #include "../skin/skin.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
14 #include "../wm/ws.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
15 #include "../error.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
16
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
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"
2447
3248aabc6d1d add vcd,dvd,etcsymbol handling
pontscho
parents: 1925
diff changeset
19 #include "../../libmpdemux/stream.h"
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1700
diff changeset
20
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
21 #include "./mplayer.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
22
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
23 #define gtkShow( w ) gtkShMem->vs.window=w; gtkSendMessage( evShowWindow );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
24
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
25 pid_t mplMPlayerPID = 0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
26 pid_t mplParentPID = 0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
27
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
28 pid_t gtkPID = 0;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
29
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
30 int mplCriticalError = 0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
31 int gtkIsOk = 0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
32
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
33 void mplErrorHandler( int critical,const char * format, ... )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
34 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
35 char * p;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
36 va_list ap;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
37 int n;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
38
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
39 if ( (p=(char *)malloc( 512 ) ) == NULL ) return;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
40 va_start( ap,format );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
41 n=vsnprintf( p,512,format,ap );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
42 va_end( ap );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
43 mplCriticalError=critical;
1907
83291fafe66c add new features. and fix skin error loop.
pontscho
parents: 1891
diff changeset
44 gtkMessageBox( GTK_MB_ERROR,p );
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
45 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
46
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
47 void gtkSigHandler( int s )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
48 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
49 if ( s != SIGTYPE ) return;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
50 #ifdef DEBUG
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
51 dbprintf( 5,"[psignal] gtk sig handler msg: %d\n",gtkShMem->message );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
52 #endif
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
53 switch ( gtkShMem->message )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
54 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
55 case evHideWindow:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
56 switch ( gtkShMem->vs.window )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
57 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
58 case evPlayList: gtk_widget_hide( PlayList ); gtkVisiblePlayList=0; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
59 case evSkinBrowser: gtk_widget_hide( SkinBrowser ); gtkVisibleSkinBrowser=0; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
60 case evLoad: gtk_widget_hide( FileSelect ); gtkVisibleFileSelect=0; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
61 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
62 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
63 case evSkinBrowser:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
64 if ( gtkVisibleSkinBrowser ) gtk_widget_hide( SkinBrowser );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
65 gtkClearList( SkinList );
1907
83291fafe66c add new features. and fix skin error loop.
pontscho
parents: 1891
diff changeset
66 if ( gtkFillSkinList( sbMPlayerPrefixDir )&&gtkFillSkinList( sbMPlayerDirInHome ) )
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
67 {
1866
32b1bb50a0e8 some bug fix, and add decoration item to skin conffile. faszom(C)
pontscho
parents: 1858
diff changeset
68 gtkSetDefaultToCList( SkinList,skinName );
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
69 gtk_widget_show( SkinBrowser );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
70 gtkVisibleSkinBrowser=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
71 gtkShow( evSkinBrowser );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
72 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
73 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
74 case evPreferences:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
75 if ( gtkVisibleOptions ) gtk_widget_hide( Options );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
76 gtk_widget_show( Options );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
77 gtkVisibleOptions=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
78 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
79 case evPlayList:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
80 if ( gtkVisiblePlayList ) gtk_widget_hide( PlayList );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
81 gtk_widget_show( PlayList );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
82 gtkVisiblePlayList=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
83 gtkShow( evPlayList );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
84 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
85 case evLoad:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
86 if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
87 gtk_widget_show( FileSelect );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
88 gtkVisibleFileSelect=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
89 gtkShow( evPlay );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
90 break;
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
91 case evFirstLoad:
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
92 if ( gtkVisibleFileSelect ) gtk_widget_hide( FileSelect );
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
93 gtk_widget_show( FileSelect );
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
94 gtkVisibleFileSelect=1;
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
95 gtkShow( evFirstLoad );
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
96 break;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
97 case evMessageBox:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
98 gtk_label_set_text( gtkMessageBoxText,(char *)gtkShMem->mb.str );
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
99 if( gtkVisibleMessageBox ) gtk_widget_hide( MessageBox );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
100 switch( gtkShMem->mb.type)
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
101 {
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
102 case GTK_MB_FATAL:
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
103 gtk_window_set_title (GTK_WINDOW (MessageBox), "fatal error ...");
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
104 gtk_widget_hide( WarningPixmap );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
105 gtk_widget_show( ErrorPixmap );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
106 break;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
107 case GTK_MB_ERROR:
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
108 gtk_window_set_title (GTK_WINDOW (MessageBox), "error ...");
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
109 gtk_widget_hide( WarningPixmap );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
110 gtk_widget_show( ErrorPixmap );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
111 break;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
112 case GTK_MB_WARNING:
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
113 gtk_window_set_title (GTK_WINDOW (MessageBox), "warning ...");
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
114 gtk_widget_show( WarningPixmap );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
115 gtk_widget_hide( ErrorPixmap );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
116 break;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1907
diff changeset
117 }
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
118 gtk_widget_show( MessageBox );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
119 gtkVisibleMessageBox=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
120 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
121 case evAbout:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
122 if ( gtkVisibleAboutBox ) gtk_widget_hide( AboutBox );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
123 gtk_widget_show( AboutBox );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
124 gtkVisibleAboutBox=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
125 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
126 case evExit:
1700
a0f28ba7c34a gtk exit cleanup
arpi
parents: 1693
diff changeset
127 gtk_main_quit();
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
128 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
129 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
130 gtkShMem->message=0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
131 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
132
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
133 void mplMainSigHandler( int s )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
134 {
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
135 if ( s != SIGTYPE ) return;
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
136
1801
e16646a140fd fix skin change
pontscho
parents: 1789
diff changeset
137 // #ifdef DEBUG
1802
82e77faa7341 async reply fix ?
pontscho
parents: 1801
diff changeset
138 // if ( gtkShMem->message ) dbprintf( 5,"[psignal] main sig handler gtk msg: %d\n",gtkShMem->message );
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
139 // if ( mplShMem->message ) dbprintf( 5,"[psignal] main sig handler mpl msg: %d\n",mplShMem->message );
1801
e16646a140fd fix skin change
pontscho
parents: 1789
diff changeset
140 // #endif
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
141
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
142 switch ( gtkShMem->message )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
143 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
144 case evGtkIsOk:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
145 #ifdef DEBUG
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
146 dbprintf( 5,"[psignal] gtk is ok.\n" );
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
147 #endif
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
148 gtkIsOk=True;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
149 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
150 case evShowWindow:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
151 switch ( gtkShMem->vs.window )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
152 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
153 case evPlayList: gtkVisiblePlayList=1; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
154 case evLoad: gtkVisibleFileSelect=1; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
155 case evSkinBrowser: gtkVisibleSkinBrowser=1; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
156 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
157 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
158 case evHideWindow:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
159 switch ( gtkShMem->vs.window )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
160 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
161 case evPlayList:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
162 btnModify( evPlayList,btnReleased ); gtkVisiblePlayList=0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
163 mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
164 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
165 case evSkinBrowser: gtkVisibleSkinBrowser=0; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
166 case evLoad: gtkVisibleFileSelect=0; break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
167 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
168 break;
1802
82e77faa7341 async reply fix ?
pontscho
parents: 1801
diff changeset
169 case evSkinBrowser: mplShMem->SkinChange=1; break;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
170 case evFileLoaded:
1891
ec11652458ea some temporary debug printfs
arpi
parents: 1884
diff changeset
171 printf("*** gtkShMem->fs.dir == '%s' \n",gtkShMem->fs.dir);
ec11652458ea some temporary debug printfs
arpi
parents: 1884
diff changeset
172 printf("*** gtkShMem->fs.filename == '%s' \n",gtkShMem->fs.filename);
1815
eff8f3c200fa fix resize
pontscho
parents: 1813
diff changeset
173 strcpy( mplShMem->Filename,gtkShMem->fs.dir );
eff8f3c200fa fix resize
pontscho
parents: 1813
diff changeset
174 strcat( mplShMem->Filename,"/" );
eff8f3c200fa fix resize
pontscho
parents: 1813
diff changeset
175 strcat( mplShMem->Filename,gtkShMem->fs.filename );
eff8f3c200fa fix resize
pontscho
parents: 1813
diff changeset
176 printf( "%%%%%%%% Playing file: %s\n",mplShMem->Filename );
1813
c68e82514f56 add filenamechanged
pontscho
parents: 1802
diff changeset
177 mplShMem->FilenameChanged=1;
2447
3248aabc6d1d add vcd,dvd,etcsymbol handling
pontscho
parents: 1925
diff changeset
178 mplShMem->StreamType=STREAMTYPE_FILE;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
179 if ( mplMainAutoPlay ) mplGeneralTimer=1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
180 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
181 case evMessageBox:
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
182 if ( mplCriticalError )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
183 { gtkSendMessage( evExit ); exit( 1 ); }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
184 mplCriticalError=0;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
185 break;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
186 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
187
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
188 // switch( mplShMem->message )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
189 // {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
190 // }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
191 gtkShMem->message=0;
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
192 // mplShMem->message=0;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
193 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
194
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
195 void gtkSendMessage( int msg )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
196 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
197 if ( !gtkIsOk ) return;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
198 gtkShMem->message=msg;
1741
b60319205152 fix sinal handling
pontscho
parents: 1723
diff changeset
199 kill( gtkPID,SIGTYPE );
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
200 }