annotate Gui/mplayer/play.c @ 1829:a4156c8cdd57

add font free func.
author pontscho
date Sat, 01 Sep 2001 19:57:44 +0000
parents 1791c7930776
children 62b8e85865a2
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
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
5 #include <unistd.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
6 #include <signal.h>
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
7
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
8 int mplParent = 1;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
9
1765
29913c011d50 normal size
pontscho
parents: 1757
diff changeset
10 int moviex,moviey,moviewidth,movieheight;
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
11
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
12 #include "../app.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
13
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 "../wm/wskeys.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
16 #include "../wm/widget.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
17
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
18 #include "../../config.h"
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
19 #include "../../libvo/x11_common.h"
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
20
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
21 #include "widgets.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
22 #include "./mplayer.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
23 #include "psignal.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
24 #include "play.h"
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
25
1800
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
26 #include "../skin/skin.h"
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
27 #include "../config.h"
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
28 #include "../error.h"
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
29 #include "../language.h"
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
30
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
31 mplCommStruct * mplShMem;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
32 char * Filename = NULL;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
33
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
34 extern float rel_seek_secs;
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
35 extern int abs_seek_pos;
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
36
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
37 void mplFullScreen( void )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
38 {
1765
29913c011d50 normal size
pontscho
parents: 1757
diff changeset
39 // if ( appMPlayer.subWindow.isFullScreen )
29913c011d50 normal size
pontscho
parents: 1757
diff changeset
40 // {
29913c011d50 normal size
pontscho
parents: 1757
diff changeset
41 // }
29913c011d50 normal size
pontscho
parents: 1757
diff changeset
42 wsFullScreen( &appMPlayer.subWindow );
1756
9621e4d14c6d fullscreen fixed
pontscho
parents: 1747
diff changeset
43 mplResize( 0,0,appMPlayer.subWindow.Width,appMPlayer.subWindow.Height );
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
44 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
45
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
46 extern int mplSubRender;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
47
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
48 void mplStop()
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
49 {
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
50 if ( !mplShMem->Playing ) return;
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
51 mplShMem->Playing=0;
1812
d2d6a26ddb02 majd fix play&stop&pause&redraw
pontscho
parents: 1804
diff changeset
52 mplShMem->TimeSec=0;
1825
1791c7930776 fix sizeof :))))
pontscho
parents: 1815
diff changeset
53 mplShMem->Position=0;
1796
13ea5f992185 fix stop subimage
pontscho
parents: 1791
diff changeset
54 if ( !appMPlayer.subWindow.isFullScreen )
13ea5f992185 fix stop subimage
pontscho
parents: 1791
diff changeset
55 {
13ea5f992185 fix stop subimage
pontscho
parents: 1791
diff changeset
56 wsMoveWindow( &appMPlayer.subWindow,appMPlayer.sub.x,appMPlayer.sub.y );
13ea5f992185 fix stop subimage
pontscho
parents: 1791
diff changeset
57 wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height );
13ea5f992185 fix stop subimage
pontscho
parents: 1791
diff changeset
58 }
1797
d1aabeb7274f fix after stop redraw. vagy nem.
pontscho
parents: 1796
diff changeset
59 mplSubRender=1;
d1aabeb7274f fix after stop redraw. vagy nem.
pontscho
parents: 1796
diff changeset
60 wsPostRedisplay( &appMPlayer.subWindow );
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
61 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
62
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
63 void mplPlay( void )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
64 {
1812
d2d6a26ddb02 majd fix play&stop&pause&redraw
pontscho
parents: 1804
diff changeset
65 if ( ( mplShMem->Filename[0] == 0 )||
1804
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
66 ( mplShMem->Playing == 1 ) ) return;
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
67 if ( mplShMem->Playing == 2 ) { mplPause(); return; }
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
68 mplShMem->Playing=1;
1815
eff8f3c200fa fix resize
pontscho
parents: 1812
diff changeset
69 wsClearWindow( appMPlayer.subWindow );
1791
2e86c5c8071e fix subvindov
pontscho
parents: 1784
diff changeset
70 mplSubRender=0;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
71 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
72
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
73 void mplPause( void )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
74 {
1804
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
75 switch( mplShMem->Playing )
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
76 {
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
77 case 1: // playing
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
78 mplShMem->Playing=2;
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
79 btnModify( evPlaySwitchToPause,btnReleased );
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
80 btnModify( evPauseSwitchToPlay,btnDisabled );
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
81 break;
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
82 case 2: // paused
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
83 mplShMem->Playing=1;
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
84 btnModify( evPlaySwitchToPause,btnDisabled );
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
85 btnModify( evPauseSwitchToPlay,btnReleased );
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
86 break;
76b4f7bcd087 play->pause fix ?
pontscho
parents: 1802
diff changeset
87 }
1815
eff8f3c200fa fix resize
pontscho
parents: 1812
diff changeset
88 mplSubRender=0;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
89 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
90
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
91 void mplResize( unsigned int X,unsigned int Y,unsigned int width,unsigned int height )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
92 {
1812
d2d6a26ddb02 majd fix play&stop&pause&redraw
pontscho
parents: 1804
diff changeset
93 printf( "----resize---> %dx%d --- \n",width,height );
1770
7e3136adcfb1 fix play->pause bug
pontscho
parents: 1765
diff changeset
94 vo_setwindowsize( width,height );
7e3136adcfb1 fix play->pause bug
pontscho
parents: 1765
diff changeset
95 vo_resize=1;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
96 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
97
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
98 void mplMPlayerInit( int argc,char* argv[], char *envp[] )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
99 {
1825
1791c7930776 fix sizeof :))))
pontscho
parents: 1815
diff changeset
100 mplShMem=calloc( 1,sizeof( mplCommStruct ) );
1791c7930776 fix sizeof :))))
pontscho
parents: 1815
diff changeset
101 mplShMem->Balance=50.0f;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
102 signal( SIGTYPE,mplMainSigHandler );
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
103 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
104
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
105 float mplGetPosition( void )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
106 { // return 0.0 ... 100.0
1729
d6c99f70449e fix hprogressbar
pontscho
parents: 1723
diff changeset
107 return mplShMem->Position;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
108 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
109
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
110 void mplRelSeek( float s )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
111 { // -+s
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
112 rel_seek_secs=s; abs_seek_pos=0;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
113 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
114
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
115 void mplAbsSeek( float s )
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
116 { // 0.0 ... 100.0
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1693
diff changeset
117 rel_seek_secs=0.01*s; abs_seek_pos=3;
1693
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
118 }
d237c5d4b216 GUI version n-1
arpi
parents:
diff changeset
119
1800
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
120 listItems tmpList;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
121
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
122 void ChangeSkin( void )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
123 {
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
124 if ( strcmp( cfgSkin,gtkShMem->sb.name ) )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
125 {
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
126 int ret;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
127 #ifdef DEBUG
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
128 dbprintf( 1,"[psignal] skin: %s\n",gtkShMem->sb.name );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
129 #endif
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
130
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
131 mainVisible=0;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
132
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
133 appInitStruct( &tmpList );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
134 skinAppMPlayer=&tmpList;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
135 ret=skinRead( gtkShMem->sb.name );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
136
1829
a4156c8cdd57 add font free func.
pontscho
parents: 1825
diff changeset
137 fntFreeFont();
a4156c8cdd57 add font free func.
pontscho
parents: 1825
diff changeset
138
1800
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
139 appInitStruct( &tmpList );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
140 skinAppMPlayer=&appMPlayer;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
141 appInitStruct( &appMPlayer );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
142 if ( !ret ) strcpy( cfgSkin,gtkShMem->sb.name );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
143 skinRead( cfgSkin );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
144
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
145 if ( ret )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
146 {
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
147 mainVisible=1;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
148 return;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
149 }
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
150
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
151 // appCopy( &appMPlayer,&tmpList );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
152 // appInitStruct( &tmpList );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
153 // skinAppMPlayer=&appMPlayer;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
154 // strcpy( cfgSkin,gtkShMem->sb.name );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
155
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
156 if ( mplDrawBuffer ) free( mplDrawBuffer );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
157 if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
158 { message( False,langNEMDB ); return; }
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
159 wsResizeWindow( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
160 wsMoveWindow( &appMPlayer.mainWindow,appMPlayer.main.x,appMPlayer.main.y );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
161 wsResizeImage( &appMPlayer.mainWindow );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
162 wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
163 mainVisible=1; mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
164 btnModify( evSetVolume,mplShMem->Volume );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
165 btnModify( evSetBalance,mplShMem->Balance );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
166 btnModify( evSetMoviePosition,mplShMem->Position );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
167
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
168 if ( appMPlayer.menuBase.Bitmap.Image )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
169 {
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
170 if ( mplMenuDrawBuffer ) free( mplMenuDrawBuffer );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
171 if ( ( mplMenuDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.menuBase.Bitmap.ImageSize ) ) == NULL )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
172 { message( False,langNEMDB ); return; }
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
173 wsResizeWindow( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
174 wsResizeImage( &appMPlayer.menuWindow );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
175 }
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
176
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
177 mplSkinChanged=1;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
178 if ( !mplShMem->Playing )
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
179 {
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
180 mplSkinChanged=0;
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
181 if ( appMPlayer.subWindow.isFullScreen ) wsFullScreen( &appMPlayer.subWindow );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
182 wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
183 wsMoveWindow( &appMPlayer.subWindow,appMPlayer.sub.x,appMPlayer.sub.y );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
184 if ( appMPlayer.sub.Bitmap.Image ) wsResizeImage( &appMPlayer.subWindow );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
185 mplSubRender=1; wsPostRedisplay( &appMPlayer.subWindow );
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
186 }
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
187 }
1802
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
188 mplShMem->SkinChange=0;
1800
f5ffb03ebdb5 move skin changing here.
pontscho
parents: 1797
diff changeset
189 }
1802
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
190
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
191 void EventHandling( void )
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
192 {
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
193 wsHandleEvents();mplTimerHandler(0); // handle GUI timer events
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
194 if ( mplShMem->SkinChange ) ChangeSkin();
82e77faa7341 async reply fix ?
pontscho
parents: 1800
diff changeset
195 }