Mercurial > mplayer.hg
comparison Gui/mplayer/mw.h @ 3054:9507f90d8254
add half dvd support for gui
author | pontscho |
---|---|
date | Wed, 21 Nov 2001 17:43:57 +0000 |
parents | f294650ae03b |
children | 11b02bd1de45 |
comparison
equal
deleted
inserted
replaced
3053:153fc4f5464f | 3054:9507f90d8254 |
---|---|
12 int mainVisible = 1; | 12 int mainVisible = 1; |
13 | 13 |
14 int boxMoved = 0; | 14 int boxMoved = 0; |
15 int sx = 0,sy = 0; | 15 int sx = 0,sy = 0; |
16 int i,pot = 0; | 16 int i,pot = 0; |
17 | |
18 inline void TranslateFilename( int c,char * tmp ) | |
19 { | |
20 int i; | |
21 switch ( mplShMem->StreamType ) | |
22 { | |
23 case STREAMTYPE_FILE: | |
24 if ( gtkShMem->fs.filename[0] ) | |
25 { | |
26 strcpy( tmp,gtkShMem->fs.filename ); | |
27 if ( tmp[strlen( tmp ) - 4] == '.' ) tmp[strlen( tmp ) - 4]=0; | |
28 if ( tmp[strlen( tmp ) - 5] == '.' ) tmp[strlen( tmp ) - 5]=0; | |
29 } else strcpy( tmp,"no file loaded" ); | |
30 break; | |
31 #ifdef USE_DVDREAD | |
32 case STREAMTYPE_DVD: | |
33 if ( mplShMem->DVD.current_chapter ) sprintf( tmp,"chapter %d",mplShMem->DVD.current_chapter ); | |
34 else strcat( tmp,"no chapter" ); | |
35 break; | |
36 #endif | |
37 default: strcpy( tmp,"no media opened" ); | |
38 } | |
39 if ( c ) | |
40 { | |
41 for ( i=0;i < strlen( tmp );i++ ) | |
42 { | |
43 int t=0; | |
44 if ( c == 1 ) { if ( ( tmp[i] >= 'A' )&&( tmp[i] <= 'Z' ) ) t=32; } | |
45 if ( c == 2 ) { if ( ( tmp[i] >= 'a' )&&( tmp[i] <= 'z' ) ) t=-32; } | |
46 tmp[i]=(char)( tmp[i] + t ); | |
47 } | |
48 } | |
49 } | |
17 | 50 |
18 char * Translate( char * str ) | 51 char * Translate( char * str ) |
19 { | 52 { |
20 static char trbuf[512]; | 53 static char trbuf[512]; |
21 char tmp[128]; | 54 char tmp[128]; |
28 if ( str[i] != '$' ) { trbuf[c++]=str[i]; trbuf[c]=0; } | 61 if ( str[i] != '$' ) { trbuf[c++]=str[i]; trbuf[c]=0; } |
29 else | 62 else |
30 { | 63 { |
31 switch ( str[++i] ) | 64 switch ( str[++i] ) |
32 { | 65 { |
33 case 't': | 66 case 't': sprintf( tmp,"%02d",mplShMem->Track ); strcat( trbuf,tmp ); break; |
34 sprintf( tmp,"%02d",mplShMem->Track ); strcat( trbuf,tmp ); | 67 case 'o': TranslateFilename( 0,tmp ); strcat( trbuf,tmp ); break; |
35 break; | 68 case 'f': TranslateFilename( 1,tmp ); strcat( trbuf,tmp ); break; |
36 case 'f': | 69 case 'F': TranslateFilename( 2,tmp ); strcat( trbuf,tmp ); break; |
37 if ( strlen( gtkShMem->fs.filename ) ) | |
38 { | |
39 int i; | |
40 strcpy( tmp,gtkShMem->fs.filename ); | |
41 for ( i=0;i < strlen( tmp );i++ ) | |
42 { | |
43 t=0; | |
44 if ( ( tmp[i] >= 'A' )&&( tmp[i] <= 'Z' ) ) t=32; | |
45 tmp[i]=(char)( tmp[i] + t ); | |
46 } | |
47 if ( tmp[strlen( tmp ) - 4] == '.' ) tmp[strlen( tmp ) - 4]=0; | |
48 if ( tmp[strlen( tmp ) - 5] == '.' ) tmp[strlen( tmp ) - 5]=0; | |
49 } else strcpy( tmp,"no file loaded" ); | |
50 strcat( trbuf,tmp ); | |
51 break; | |
52 case 'F': | |
53 if ( strlen( gtkShMem->fs.filename ) ) | |
54 { | |
55 int i; | |
56 strcpy( tmp,gtkShMem->fs.filename ); | |
57 for ( i=0;i < strlen( tmp );i++ ) | |
58 { | |
59 char t = 0; | |
60 if ( ( tmp[i] >= 'a' )&&( tmp[i] <= 'z' ) ) t=32; | |
61 tmp[i]=tmp[i] - t; | |
62 } | |
63 if ( tmp[strlen( tmp ) - 4] == '.' ) tmp[strlen( tmp ) - 4]=0; | |
64 if ( tmp[strlen( tmp ) - 5] == '.' ) tmp[strlen( tmp ) - 5]=0; | |
65 } else strcpy( tmp,"NO FILE LOADED" ); | |
66 strcat( trbuf,tmp ); | |
67 break; | |
68 case 'o': | |
69 if ( strlen( gtkShMem->fs.filename ) ) | |
70 { | |
71 strcat( trbuf,gtkShMem->fs.filename ); | |
72 if ( trbuf[strlen( trbuf ) - 4] == '.' ) trbuf[strlen( trbuf ) - 4]=0; | |
73 if ( trbuf[strlen( trbuf ) - 5] == '.' ) trbuf[strlen( trbuf ) - 5]=0; | |
74 } else strcat( trbuf,"no file loaded" ); | |
75 break; | |
76 case '6': t=mplShMem->LengthInSec; goto calclengthhhmmss; | 70 case '6': t=mplShMem->LengthInSec; goto calclengthhhmmss; |
77 case '1': t=mplShMem->TimeSec; | 71 case '1': t=mplShMem->TimeSec; |
78 calclengthhhmmss: | 72 calclengthhhmmss: |
79 sprintf( tmp,"%02d:%02d:%02d",t/3600,t/60%60,t%60 ); strcat( trbuf,tmp ); | 73 sprintf( tmp,"%02d:%02d:%02d",t/3600,t/60%60,t%60 ); strcat( trbuf,tmp ); |
80 break; | 74 break; |
107 switch ( mplShMem->StreamType ) | 101 switch ( mplShMem->StreamType ) |
108 { | 102 { |
109 case STREAMTYPE_FILE: strcat( trbuf,"f" ); break; | 103 case STREAMTYPE_FILE: strcat( trbuf,"f" ); break; |
110 case STREAMTYPE_VCD: strcat( trbuf,"v" ); break; | 104 case STREAMTYPE_VCD: strcat( trbuf,"v" ); break; |
111 case STREAMTYPE_STREAM: strcat( trbuf,"u" ); break; | 105 case STREAMTYPE_STREAM: strcat( trbuf,"u" ); break; |
106 #ifdef USE_DVDREAD | |
112 case STREAMTYPE_DVD: strcat( trbuf,"d" ); break; | 107 case STREAMTYPE_DVD: strcat( trbuf,"d" ); break; |
108 #endif | |
113 default: strcat( trbuf," " ); break; | 109 default: strcat( trbuf," " ); break; |
114 } | 110 } |
115 break; | 111 break; |
116 case '$': strcat( trbuf,"$" ); break; | 112 case '$': strcat( trbuf,"$" ); break; |
117 default: continue; | 113 default: continue; |
120 } | 116 } |
121 } | 117 } |
122 return trbuf; | 118 return trbuf; |
123 } | 119 } |
124 | 120 |
125 void PutImage( txSample * bf,int x,int y,int max,int ofs ) | 121 inline void PutImage( txSample * bf,int x,int y,int max,int ofs ) |
126 { | 122 { |
127 int i=0,ix,iy; | 123 int i=0,ix,iy; |
128 unsigned long * buf = NULL; | 124 unsigned long * buf = NULL; |
129 unsigned long * drw = NULL; | 125 unsigned long * drw = NULL; |
130 unsigned long tmp; | 126 unsigned long tmp; |
154 !mainVisible ) return; | 150 !mainVisible ) return; |
155 // !appMPlayer.mainWindow.Mapped ) return; | 151 // !appMPlayer.mainWindow.Mapped ) return; |
156 | 152 |
157 btnModify( evSetMoviePosition,mplShMem->Position ); | 153 btnModify( evSetMoviePosition,mplShMem->Position ); |
158 btnModify( evSetVolume,mplShMem->Volume ); | 154 btnModify( evSetVolume,mplShMem->Volume ); |
159 | |
160 switch ( mplShMem->Playing ) | |
161 { | |
162 case 2: | |
163 case 0: | |
164 btnModify( evPlaySwitchToPause,btnReleased ); | |
165 btnModify( evPauseSwitchToPlay,btnDisabled ); | |
166 break; | |
167 case 1: | |
168 if ( mplShMem->Filename[0] != 0 ) | |
169 { | |
170 btnModify( evPlaySwitchToPause,btnDisabled ); | |
171 btnModify( evPauseSwitchToPlay,btnReleased ); | |
172 } | |
173 } | |
174 | 155 |
175 if ( mplMainRender ) | 156 if ( mplMainRender ) |
176 { | 157 { |
177 memcpy( mplDrawBuffer,appMPlayer.main.Bitmap.Image,appMPlayer.main.Bitmap.ImageSize ); | 158 memcpy( mplDrawBuffer,appMPlayer.main.Bitmap.Image,appMPlayer.main.Bitmap.ImageSize ); |
178 for( i=0;i < appMPlayer.NumberOfItems + 1;i++ ) | 159 for( i=0;i < appMPlayer.NumberOfItems + 1;i++ ) |
227 case evExit: | 208 case evExit: |
228 wsDoExit(); // sets wsTrue=False; | 209 wsDoExit(); // sets wsTrue=False; |
229 exit_player( "Exit" ); | 210 exit_player( "Exit" ); |
230 break; | 211 break; |
231 | 212 |
213 #ifdef USE_DVDREAD | |
232 case evPlayDVD: | 214 case evPlayDVD: |
233 mplShMem->StreamType=STREAMTYPE_DVD; | 215 mplShMem->StreamType=STREAMTYPE_DVD; |
216 #endif | |
234 | 217 |
235 case evPlay: | 218 case evPlay: |
236 case evPlaySwitchToPause: | 219 case evPlaySwitchToPause: |
237 btnModify( evPlaySwitchToPause,btnDisabled ); | 220 btnModify( evPlaySwitchToPause,btnDisabled ); |
238 btnModify( evPauseSwitchToPlay,btnReleased ); | 221 btnModify( evPauseSwitchToPlay,btnReleased ); |
244 case STREAMTYPE_STREAM: | 227 case STREAMTYPE_STREAM: |
245 case STREAMTYPE_VCD: | 228 case STREAMTYPE_VCD: |
246 case STREAMTYPE_FILE: | 229 case STREAMTYPE_FILE: |
247 dvd_title=0; | 230 dvd_title=0; |
248 break; | 231 break; |
232 #ifdef USE_DVDREAD | |
249 case STREAMTYPE_DVD: | 233 case STREAMTYPE_DVD: |
250 dvd_title=1; | 234 dvd_title=1; |
251 dvd_chapter=1; | 235 dvd_chapter=1; |
252 dvd_angle=1; | 236 dvd_angle=1; |
253 strcpy( mplShMem->Filename,"/dev/dvd" ); | 237 strcpy( mplShMem->Filename,"/dev/dvd" ); |
254 break; | 238 break; |
239 #endif | |
255 } | 240 } |
256 mplPlay(); | 241 mplPlay(); |
257 break; | 242 break; |
258 | |
259 // break; | |
260 | 243 |
261 case evPause: | 244 case evPause: |
262 case evPauseSwitchToPlay: | 245 case evPauseSwitchToPlay: |
263 Pause: | |
264 btnModify( evPlaySwitchToPause,btnReleased ); | 246 btnModify( evPlaySwitchToPause,btnReleased ); |
265 btnModify( evPauseSwitchToPlay,btnDisabled ); | 247 btnModify( evPauseSwitchToPlay,btnDisabled ); |
266 NoPause: | 248 NoPause: |
267 mplMainRender=1; | 249 mplMainRender=1; |
268 mplPause(); | 250 mplPause(); |
395 mplPlay(); | 377 mplPlay(); |
396 } | 378 } |
397 if ( mplMiddleMenu ) | 379 if ( mplMiddleMenu ) |
398 { | 380 { |
399 mplMiddleMenu=0; | 381 mplMiddleMenu=0; |
400 mplMsgHandle( gtkShMem->popupmenu,0 ); | 382 mplMsgHandle( gtkShMem->popupmenu,gtkShMem->popupmenuparam ); |
401 } | 383 } |
402 break; | 384 break; |
403 // --- system events | 385 // --- system events |
404 case evNone: | 386 case evNone: |
405 dbprintf( 1,"[mw] event none received.\n" ); | 387 dbprintf( 1,"[mw] event none received.\n" ); |
486 mplMainRender=1; | 468 mplMainRender=1; |
487 itemtype=0; | 469 itemtype=0; |
488 break; | 470 break; |
489 | 471 |
490 case wsPMMouseButton: | 472 case wsPMMouseButton: |
473 memcpy( >kShMem->DVD,&mplShMem->DVD,sizeof( mplDVDStruct ) ); | |
491 gtkSendMessage( evShowPopUpMenu ); | 474 gtkSendMessage( evShowPopUpMenu ); |
492 break; | 475 break; |
493 | 476 |
494 // --- rolled mouse ... de szar :))) | 477 // --- rolled mouse ... de szar :))) |
495 case wsP5MouseButton: value=-2.5f; goto rollerhandled; | 478 case wsP5MouseButton: value=-2.5f; goto rollerhandled; |