annotate gui/ui/main.c @ 37053:84c93a60ead3

Add new item 'rpotmeter'. This is the missing counterpart to hpotmeter and vpotmeter allowing rotary control elements in a GUI skin now. Based on an idea and a realization by Hans-Dieter Kosch, hdkosch kabelbw de. Additionally, update (and revise) documentation.
author ib
date Sat, 12 Apr 2014 23:29:29 +0000
parents 2ef6693131f7
children ae4f30c4ef02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26458
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
1 /*
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
2 * This file is part of MPlayer.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
3 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
5 * it under the terms of the GNU General Public License as published by
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
7 * (at your option) any later version.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
8 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
12 * GNU General Public License for more details.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
13 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
14 * You should have received a copy of the GNU General Public License along
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
17 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
18
34699
ed0e00db4306 Cosmetic: Move, change and add some comments on GUI windows.
ib
parents: 34697
diff changeset
19 /* main window */
ed0e00db4306 Cosmetic: Move, change and add some comments on GUI windows.
ib
parents: 34697
diff changeset
20
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
21 #include <math.h>
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
22 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
24 #include <sys/stat.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25 #include <unistd.h>
23305
22d3d12c6dfb Include string.h for memcpy, fastmemcpy.h alone is not enough.
reimar
parents: 23154
diff changeset
26 #include <string.h>
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
27
35528
ab07b17fddfb Rebuild GUI directory structure.
ib
parents: 35525
diff changeset
28 #include "ui.h"
35525
e27855a45128 Rebuild GUI directory structure.
ib
parents: 35521
diff changeset
29 #include "gui/app/app.h"
e27855a45128 Rebuild GUI directory structure.
ib
parents: 35521
diff changeset
30 #include "gui/app/gui.h"
33738
998f94e62a61 Remove unnecessary #include "gui/interface.h".
ib
parents: 33737
diff changeset
31 #include "gui/interface.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
32 #include "gui/skin/font.h"
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
33 #include "gui/skin/skin.h"
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33739
diff changeset
34 #include "gui/util/list.h"
33739
9f6d46d325de Remove gfree() from interface.c.
ib
parents: 33738
diff changeset
35 #include "gui/util/mem.h"
37026
b6ff1451035d Constrain an item's value to be in the range of 0 to 100.
ib
parents: 37023
diff changeset
36 #include "gui/util/misc.h"
33737
71c29e8ec68f Move string functions from interface.c to string.c.
ib
parents: 33657
diff changeset
37 #include "gui/util/string.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
38 #include "gui/wm/ws.h"
35789
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
39 #include "gui/wm/wsxdnd.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
40
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
41 #include "help_mp.h"
34174
a93891202051 Add missing mp_msg.h #includes, remove some unnecessary ones.
diego
parents: 34077
diff changeset
42 #include "mp_msg.h"
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
43 #include "libvo/x11_common.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
44 #include "libvo/fastmemcpy.h"
33531
84ce059fae34 Get non-multimedia X11 key definitions from libvo/wskeys.h.
ib
parents: 33525
diff changeset
45 #include "libvo/wskeys.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
46
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
47 #include "stream/stream.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
48 #include "stream/url.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
49
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
50 #include "libmpdemux/demuxer.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
51 #include "libmpdemux/stheader.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
52 #include "codec-cfg.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
53 #include "m_option.h"
30516
f4e017b6921a Fix exit_player() usage throughout the codebase.
diego
parents: 29263
diff changeset
54 #include "mp_core.h"
35545
d83d2bd5f365 Use FFMIN in evSetVolume.
ib
parents: 35544
diff changeset
55 #include "libavutil/common.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
56
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
57 #include "actions.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58
35795
5eac7c0879b7 Make mainDrawBuffer static.
ib
parents: 35789
diff changeset
59 static unsigned char * mainDrawBuffer;
35771
07057fd75c51 Relocate uiMainEvent().
ib
parents: 35770
diff changeset
60 int uiMainRender = True;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35490
diff changeset
62 int mainVisible = True;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
63
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35490
diff changeset
64 int boxMoved = False;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65 int sx = 0,sy = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
66 int i,pot = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
67
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
68 #include "render.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
69
35780
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
70 static void uiMainDraw( void )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
71 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
72
33768
cee9987bc81d Remove guiExit().
ib
parents: 33763
diff changeset
73 if ( guiApp.mainWindow.State == wsWindowClosed ) mplayer( MPLAYER_EXIT_GUI, EXIT_QUIT, 0 );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
74
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
75 if ( guiApp.mainWindow.Visible == wsWindowNotVisible ||
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76 !mainVisible ) return;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
77 // !guiApp.mainWindow.Mapped ) return;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
79 if ( uiMainRender && guiApp.mainWindow.State == wsWindowExpose )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
81 btnModify( evSetMoviePosition,guiInfo.Position );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
82 btnModify( evSetVolume,guiInfo.Volume );
36930
dcd4562389bd Add missing btnModify() call for balance.
ib
parents: 36920
diff changeset
83 btnModify( evSetBalance,guiInfo.Balance );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
85 fast_memcpy( mainDrawBuffer,guiApp.main.Bitmap.Image,guiApp.main.Bitmap.ImageSize );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
86 RenderAll( &guiApp.mainWindow,guiApp.mainItems,guiApp.IndexOfMainItems,mainDrawBuffer );
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35490
diff changeset
87 uiMainRender=False;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
88 }
35746
e745b22750f6 Add some notes for later checking and fixing.
ib
parents: 35727
diff changeset
89 // NOTE TO MYSELF: probably not, if uiMainRender is False
35681
80c5c89f77d6 Cosmetic: Rename ws functions for the sake of consistency.
ib
parents: 35675
diff changeset
90 wsImageDraw( &guiApp.mainWindow );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
91 // XFlush( wsDisplay );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
92 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
93
35780
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
94 static void uiMainMouse( int Button,int X,int Y,int RX,int RY )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
95 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
96 static int itemtype = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97 int i;
35688
6fd886ce32b9 Cosmetic: Rename wItem guiItem.
ib
parents: 35681
diff changeset
98 guiItem * item = NULL;
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
99 static double prev_point;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
100 double point;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
101 float value = 0.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
102
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
103 static int SelectedItem = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 int currentselected = -1;
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
105 static int endstop;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
106
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
107 for ( i=0;i <= guiApp.IndexOfMainItems;i++ )
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
108 if ( ( guiApp.mainItems[i].pressed != btnDisabled )&&
35675
9e2183017f1f Move wgIsRect from ws.h to gui.h.
ib
parents: 35671
diff changeset
109 ( isInside( X,Y,guiApp.mainItems[i].x,guiApp.mainItems[i].y,guiApp.mainItems[i].x+guiApp.mainItems[i].width,guiApp.mainItems[i].y+guiApp.mainItems[i].height ) ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
110 { currentselected=i; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
111
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
112 switch ( Button )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
113 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
114 case wsPMMouseButton:
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
115 gtkShow( ivHidePopUpMenu,NULL );
35766
16ed8155439b Rename uiShowMenu() uiMenuShow() and uiHideMenu() uiMenuHide().
ib
parents: 35763
diff changeset
116 uiMenuShow( RX,RY );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
117 itemtype=itPRMButton;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
118 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
119 case wsRMMouseButton:
35766
16ed8155439b Rename uiShowMenu() uiMenuShow() and uiHideMenu() uiMenuHide().
ib
parents: 35763
diff changeset
120 uiMenuHide( RX,RY,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
121 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
122
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
123 case wsPLMouseButton:
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
124 gtkShow( ivHidePopUpMenu,NULL );
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35490
diff changeset
125 sx=X; sy=Y; boxMoved=True; itemtype=itPLMButton;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
126 SelectedItem=currentselected;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
127 if ( SelectedItem == -1 ) break;
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35490
diff changeset
128 boxMoved=False;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
129 item=&guiApp.mainItems[SelectedItem];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130 itemtype=item->type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
131 item->pressed=btnPressed;
35807
b5f83ea354e7 Comment code with no effect.
ib
parents: 35797
diff changeset
132 // NOTE TO MYSELF: commented, because the expression can never be true
b5f83ea354e7 Comment code with no effect.
ib
parents: 35797
diff changeset
133 /*switch( item->type )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
134 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135 case itButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
136 if ( ( SelectedItem > -1 ) &&
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
137 ( ( ( item->message == evPlaySwitchToPause && item->message == evPauseSwitchToPlay ) ) ||
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
138 ( ( item->message == evPauseSwitchToPlay && item->message == evPlaySwitchToPause ) ) ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
139 { item->pressed=btnDisabled; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
140 break;
35807
b5f83ea354e7 Comment code with no effect.
ib
parents: 35797
diff changeset
141 }*/
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
142 if ( itemtype == itRPotmeter )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
143 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
144 prev_point=appRadian( item, X - item->x, Y - item->y ) - item->zeropoint;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
145 if ( prev_point < 0.0 ) prev_point+=2*M_PI;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
146 if ( prev_point <= item->arclength ) endstop=False;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
147 else endstop=STOPPED_AT_0 + STOPPED_AT_100; // block movement
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
148 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
149 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
150 case wsRLMouseButton:
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35490
diff changeset
151 boxMoved=False;
37052
2ef6693131f7 Cosmetic: Shorten comment (and phrase more precisely).
ib
parents: 37026
diff changeset
152 if ( SelectedItem != -1 ) // NOTE TO MYSELF: only if hasButton
33107
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
153 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
154 item=&guiApp.mainItems[SelectedItem];
33108
5450a92ac4bd Cosmetic: Adjust indent.
ib
parents: 33107
diff changeset
155 item->pressed=btnReleased;
33107
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
156 }
35351
92f6fc87ddc8 Fix segmentation fault with mouse button release.
ib
parents: 35349
diff changeset
157 if ( currentselected == - 1 || SelectedItem == -1 ) { itemtype=0; break; }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
158 SelectedItem=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
159 value=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 switch( itemtype )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
161 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
162 case itHPotmeter:
36941
865e0513b5f4 Remove redundant code.
ib
parents: 36930
diff changeset
163 value=100.0 * ( X - item->x ) / item->width;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
164 break;
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
165 case itVPotmeter:
36941
865e0513b5f4 Remove redundant code.
ib
parents: 36930
diff changeset
166 value=100.0 - 100.0 * ( Y - item->y ) / item->height;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
167 break;
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
168 case itRPotmeter:
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
169 if ( endstop ) { itemtype=0; return; }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
170 point=appRadian( item, X - item->x, Y - item->y ) - item->zeropoint;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
171 if ( point < 0.0 ) point+=2*M_PI;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
172 value=100.0 * point / item->arclength;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
173 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
174 }
35773
c688b0dcbe66 Cosmetic: Rename uiMainEvent() uiEvent().
ib
parents: 35771
diff changeset
175 uiEvent( item->message,value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
176 itemtype=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
178
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
179 case wsRRMouseButton:
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
180 gtkShow( ivShowPopUpMenu,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
181 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
183 /* rolled mouse ... de szar :))) */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
184 case wsP5MouseButton: value=-2.5f; goto rollerhandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
185 case wsP4MouseButton: value= 2.5f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
186 rollerhandled:
35365
fb054f36c3a9 Prevent negative array index read.
ib
parents: 35357
diff changeset
187 if (currentselected != - 1)
fb054f36c3a9 Prevent negative array index read.
ib
parents: 35357
diff changeset
188 {
35366
92cafcf6f6b2 Cosmetic: Adjust indent.
ib
parents: 35365
diff changeset
189 item=&guiApp.mainItems[currentselected];
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
190 if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter )||( item->type == itRPotmeter ) )
35366
92cafcf6f6b2 Cosmetic: Adjust indent.
ib
parents: 35365
diff changeset
191 {
37026
b6ff1451035d Constrain an item's value to be in the range of 0 to 100.
ib
parents: 37023
diff changeset
192 item->value=constrain(item->value + value);
35773
c688b0dcbe66 Cosmetic: Rename uiMainEvent() uiEvent().
ib
parents: 35771
diff changeset
193 uiEvent( item->message,item->value );
35366
92cafcf6f6b2 Cosmetic: Adjust indent.
ib
parents: 35365
diff changeset
194 }
35365
fb054f36c3a9 Prevent negative array index read.
ib
parents: 35357
diff changeset
195 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
197
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
198 /* moving */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
199 case wsMoveMouse:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
200 item=&guiApp.mainItems[SelectedItem];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
201 switch ( itemtype )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
202 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
203 case itPLMButton:
35681
80c5c89f77d6 Cosmetic: Rename ws functions for the sake of consistency.
ib
parents: 35675
diff changeset
204 wsWindowMove( &guiApp.mainWindow,True,RX - abs( sx ),RY - abs( sy ) );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
206 case itPRMButton:
35779
8ad72f9cf697 Fix segmentation fault with menu window.
ib
parents: 35778
diff changeset
207 if (guiApp.menuIsPresent) guiApp.menuWindow.MouseHandler( 0,RX,RY,0,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
208 break;
37053
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
209 case itRPotmeter:
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
210 point=appRadian( item, X - item->x, Y - item->y ) - item->zeropoint;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
211 if ( point < 0.0 ) point+=2*M_PI;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
212 if ( item->arclength < 2 * M_PI )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
213 /* a potmeter with separated 0% and 100% positions */
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
214 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
215 value=item->value;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
216 if ( point - prev_point > M_PI )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
217 /* turned beyond the 0% position */
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
218 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
219 if ( !endstop )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
220 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
221 endstop=STOPPED_AT_0;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
222 value=0.0f;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
223 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
224 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
225 else if ( prev_point - point > M_PI )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
226 /* turned back from beyond the 0% position */
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
227 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
228 if ( endstop == STOPPED_AT_0 ) endstop=False;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
229 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
230 else if ( prev_point <= item->arclength && point > item->arclength )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
231 /* turned beyond the 100% position */
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
232 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
233 if ( !endstop )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
234 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
235 endstop=STOPPED_AT_100;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
236 value=100.0f;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
237 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
238 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
239 else if ( prev_point > item->arclength && point <= item->arclength )
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
240 /* turned back from beyond the 100% position */
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
241 {
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
242 if ( endstop == STOPPED_AT_100 ) endstop=False;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
243 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
244 }
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
245 if ( !endstop ) value=100.0 * point / item->arclength;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
246 prev_point=point;
84c93a60ead3 Add new item 'rpotmeter'.
ib
parents: 37052
diff changeset
247 goto potihandled;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248 case itVPotmeter:
37026
b6ff1451035d Constrain an item's value to be in the range of 0 to 100.
ib
parents: 37023
diff changeset
249 value=100.0 - 100.0 * ( Y - item->y ) / item->height;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
250 goto potihandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
251 case itHPotmeter:
37026
b6ff1451035d Constrain an item's value to be in the range of 0 to 100.
ib
parents: 37023
diff changeset
252 value=100.0 * ( X - item->x ) / item->width;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
253 potihandled:
37026
b6ff1451035d Constrain an item's value to be in the range of 0 to 100.
ib
parents: 37023
diff changeset
254 item->value=constrain(value);
35773
c688b0dcbe66 Cosmetic: Rename uiMainEvent() uiEvent().
ib
parents: 35771
diff changeset
255 uiEvent( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
256 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
257 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
258 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
259 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
260 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
261
35780
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
262 static void uiMainKey( int KeyCode,int Type,int Key )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
263 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
264 int msg = evNone;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
265
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
266 if ( Type != wsKeyPressed ) return;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
267
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
268 if ( !Key )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
269 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270 switch ( KeyCode )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 {
33524
7d5fd12b86e7 Add note on wsXFMM key definitions.
ib
parents: 33263
diff changeset
272 // NOTE TO MYSELF: This is only for the Acer AirKey V keyboard.
33536
fc1402410163 Remove support for Acer AirKey V keyboard multimedia keys.
ib
parents: 33535
diff changeset
273 /*case wsXFMMPrev: msg=evPrev; break;
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
274 case wsXFMMStop: msg=evStop; break;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
275 case wsXFMMPlay: msg=evPlaySwitchToPause; break;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
276 case wsXFMMNext: msg=evNext; break;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
277 case wsXFMMVolUp: msg=evIncVolume; break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
278 case wsXFMMVolDown: msg=evDecVolume; break;
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
279 case wsXFMMMute: msg=evMute; break;*/
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
280 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
284 switch ( Key )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
285 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286 case wsEnter: msg=evPlay; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
287 case wsXF86LowerVolume: msg=evDecVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
288 case wsXF86RaiseVolume: msg=evIncVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
289 case wsXF86Mute: msg=evMute; break;
33525
b32fcc18c9b4 Add support for multimedia pause key.
ib
parents: 33524
diff changeset
290 case wsXF86Pause:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 case wsXF86Play: msg=evPlaySwitchToPause; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292 case wsXF86Stop: msg=evStop; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
293 case wsXF86Prev: msg=evPrev; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
294 case wsXF86Next: msg=evNext; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
295 case wsXF86Media: msg=evLoad; break;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
296 case wsEscape:
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
297 if ( guiInfo.VideoWindow && guiInfo.Playing && guiApp.videoWindow.isFullScreen )
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
298 {
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
299 uiEvent( evNormalSize,0 );
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
300 return;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
301 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 default: vo_x11_putkey( Key ); return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
304 }
35773
c688b0dcbe66 Cosmetic: Rename uiMainEvent() uiEvent().
ib
parents: 35771
diff changeset
305 if ( msg != evNone ) uiEvent( msg,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
306 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
307
35759
afb55738b1b7 Cosmetic: Replace DandD by DND.
ib
parents: 35758
diff changeset
308 /* this will be used to handle drag & drop files */
35780
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
309 static void uiMainDND(int num,char** files)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 struct stat buf;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
312 int f = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
313
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 char* subtitles = NULL;
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35496
diff changeset
315 char* file = NULL;
35384
9c7bba653bfb Avoid a duplicate strrchr() call.
ib
parents: 35377
diff changeset
316 char* s;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
317
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 if (num <= 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
321
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 /* now fill it with new items */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
323 for(f=0; f < num; f++){
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
324 char* str = strdup( files[f] );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
325 plItem* item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326
24086
f5b32d12b691 remove gconvert_uri_to_filename() and use url_unescape_string() instead.
iive
parents: 23457
diff changeset
327 url_unescape_string(str, files[f]);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
328
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
329 if(stat(str,&buf) == 0 && S_ISDIR(buf.st_mode) == 0) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
330 /* this is not a directory so try to play it */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
331 mp_msg( MSGT_GPLAYER,MSGL_V,"Received D&D %s\n",str );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
332
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
333 /* check if it is a subtitle file */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
334 {
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
335 char* ext = strrchr(str,'.');
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
336 if (ext) {
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
337 static char supported[] = "utf/sub/srt/smi/rt//txt/ssa/aqt/";
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
338 char* type;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
339 int len;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
340 if((len=strlen(++ext)) && (type=strstr(supported,ext)) &&\
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
341 (type-supported)%4 == 0 && *(type+len) == '/'){
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
342 /* handle subtitle file */
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
343 nfree(subtitles);
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
344 subtitles = str;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
345 continue;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
346 }
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
347 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
348 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
349
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
350 /* clear playlist */
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35496
diff changeset
351 if (file == NULL) {
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
352 file = files[f];
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
353 listMgr(PLAYLIST_DELETE,0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
354 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
355
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
356 item = calloc(1,sizeof(plItem));
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
357
35384
9c7bba653bfb Avoid a duplicate strrchr() call.
ib
parents: 35377
diff changeset
358 s = strrchr( str,'/' );
9c7bba653bfb Avoid a duplicate strrchr() call.
ib
parents: 35377
diff changeset
359
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
360 /* FIXME: decompose file name ? */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
361 /* yes -- Pontscho */
35384
9c7bba653bfb Avoid a duplicate strrchr() call.
ib
parents: 35377
diff changeset
362 if ( s ) {
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
363 *s=0; s++;
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
364 item->name = gstrdup( s );
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
365 item->path = gstrdup( str );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
366 } else {
37023
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
367 // NOTE TO MYSELF: this shouldn't happen, make sure we have a full path
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
368 item->name = strdup(str);
1236a692d0c6 Cosmetic: Remove tabs.
ib
parents: 36942
diff changeset
369 item->path = strdup(".");
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
370 }
34681
42fa91951bd2 Rename PLAYLIST_ITEM_ADD PLAYLIST_ITEM_APPEND.
ib
parents: 34669
diff changeset
371 listMgr(PLAYLIST_ITEM_APPEND,item);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
372 } else {
36694
eed2fb870f43 Rename symbolic constants of GUI help message texts.
ib
parents: 36670
diff changeset
373 mp_msg( MSGT_GPLAYER,MSGL_WARN,MSGTR_GUI_MSG_NotAFile1,str );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
374 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
375 free( str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
376 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
377
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35496
diff changeset
378 if (file) {
baf53d200292 Avoid using local variables named filename.
ib
parents: 35496
diff changeset
379 uiSetFile( NULL,file,STREAMTYPE_FILE );
35773
c688b0dcbe66 Cosmetic: Rename uiMainEvent() uiEvent().
ib
parents: 35771
diff changeset
380 if ( guiInfo.Playing == GUI_PLAY ) uiEvent( evStop,0 );
c688b0dcbe66 Cosmetic: Rename uiMainEvent() uiEvent().
ib
parents: 35771
diff changeset
381 uiEvent( evPlay,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
382 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
383 if (subtitles) {
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
384 nfree(guiInfo.SubtitleFilename);
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
385 guiInfo.SubtitleFilename = subtitles;
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
386 mplayerLoadSubtitle(guiInfo.SubtitleFilename);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
387 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
388 }
35780
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
389
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
390 void uiMainInit (void)
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
391 {
35789
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
392 mainDrawBuffer = malloc(guiApp.main.Bitmap.ImageSize);
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
393
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
394 if (!mainDrawBuffer)
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
395 {
36694
eed2fb870f43 Rename symbolic constants of GUI help message texts.
ib
parents: 36670
diff changeset
396 gmp_msg(MSGT_GPLAYER, MSGL_FATAL, "[main] " MSGTR_GUI_MSG_MemoryErrorWindow);
35789
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
397 mplayer(MPLAYER_EXIT_GUI, EXIT_ERROR, 0);
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
398 }
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
399
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35807
diff changeset
400 wsWindowCreate(&guiApp.mainWindow, guiApp.main.x, guiApp.main.y, guiApp.main.width, guiApp.main.height, (guiApp.mainDecoration ? wsShowFrame : 0 ) | wsMinSize | wsMaxSize | wsHideWindow, wsShowMouseCursor | wsHandleMouseButton | wsHandleMouseMove, MPlayer);
35789
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
401 mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[main] mainWindow ID: 0x%x\n", (int) guiApp.mainWindow.WindowID);
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
402 wsWindowShape(&guiApp.mainWindow, guiApp.main.Mask.Image);
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
403 wsWindowIcon(wsDisplay, guiApp.mainWindow.WindowID, &guiIcon);
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
404 wsXDNDMakeAwareness(&guiApp.mainWindow);
9fdc3e22063f Move main window initialization code to uiMainInit().
ib
parents: 35780
diff changeset
405
35780
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
406 guiApp.mainWindow.DrawHandler = uiMainDraw;
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
407 guiApp.mainWindow.MouseHandler = uiMainMouse;
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
408 guiApp.mainWindow.KeyHandler = uiMainKey;
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
409 guiApp.mainWindow.DNDHandler = uiMainDND;
4073fff5efc7 Add new functions uiMainInit() and uiVideoInit().
ib
parents: 35779
diff changeset
410 }
35796
497a1c45a597 Add uiMainDone(), uiVideoDone(), uiPlaybarDone() and uiMenuDone().
ib
parents: 35795
diff changeset
411
497a1c45a597 Add uiMainDone(), uiVideoDone(), uiPlaybarDone() and uiMenuDone().
ib
parents: 35795
diff changeset
412 void uiMainDone (void)
497a1c45a597 Add uiMainDone(), uiVideoDone(), uiPlaybarDone() and uiMenuDone().
ib
parents: 35795
diff changeset
413 {
497a1c45a597 Add uiMainDone(), uiVideoDone(), uiPlaybarDone() and uiMenuDone().
ib
parents: 35795
diff changeset
414 nfree(mainDrawBuffer);
497a1c45a597 Add uiMainDone(), uiVideoDone(), uiPlaybarDone() and uiMenuDone().
ib
parents: 35795
diff changeset
415 wsWindowDestroy(&guiApp.mainWindow);
36291
b2edfe1a11a6 Process events after destroying a window.
ib
parents: 36283
diff changeset
416 wsEvents();
35796
497a1c45a597 Add uiMainDone(), uiVideoDone(), uiPlaybarDone() and uiMenuDone().
ib
parents: 35795
diff changeset
417 }