annotate gui/ui/main.c @ 35349:60930e7347c6

Add an URL loaded by the GUI to its playlist. Additionally, allow URLs to be in the playlist. The GUI operates on its playlist, so the URL may not be missing there. For further information see r35442.
author ib
date Thu, 22 Nov 2012 13:13:29 +0000
parents 203d0d5cac1f
children 92f6fc87ddc8
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
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
22 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23 #include <sys/stat.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
24 #include <unistd.h>
23305
22d3d12c6dfb Include string.h for memcpy, fastmemcpy.h alone is not enough.
reimar
parents: 23154
diff changeset
25 #include <string.h>
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
26
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
27 #include "config.h"
23154
e564b9cd7290 Fix several implicit declarations of functions warnings.
diego
parents: 23077
diff changeset
28 #include "gmplayer.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
29 #include "gui/app.h"
33738
998f94e62a61 Remove unnecessary #include "gui/interface.h".
ib
parents: 33737
diff changeset
30 #include "gui/interface.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
31 #include "gui/skin/font.h"
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
32 #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
33 #include "gui/util/list.h"
33739
9f6d46d325de Remove gfree() from interface.c.
ib
parents: 33738
diff changeset
34 #include "gui/util/mem.h"
33737
71c29e8ec68f Move string functions from interface.c to string.c.
ib
parents: 33657
diff changeset
35 #include "gui/util/string.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
36 #include "gui/wm/ws.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
37
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
38 #include "help_mp.h"
34174
a93891202051 Add missing mp_msg.h #includes, remove some unnecessary ones.
diego
parents: 34077
diff changeset
39 #include "mp_msg.h"
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
40 #include "libvo/x11_common.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
41 #include "libvo/fastmemcpy.h"
33531
84ce059fae34 Get non-multimedia X11 key definitions from libvo/wskeys.h.
ib
parents: 33525
diff changeset
42 #include "libvo/wskeys.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
43
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
44 #include "stream/stream.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
45 #include "stream/url.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
46 #include "mixer.h"
32467
fbe5c829c69b Move libvo/sub.[ch] from libvo to sub.
cigaes
parents: 32043
diff changeset
47 #include "sub/sub.h"
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
48 #include "access_mpcontext.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
49
30537
7bebe34b6ad2 Move movie_aspect extern declaration to libmpcodecs/vd.h.
diego
parents: 30516
diff changeset
50 #include "libmpcodecs/vd.h"
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
51 #include "libmpdemux/demuxer.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
52 #include "libmpdemux/stheader.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
53 #include "codec-cfg.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
54 #include "m_option.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
55 #include "m_property.h"
30516
f4e017b6921a Fix exit_player() usage throughout the codebase.
diego
parents: 29263
diff changeset
56 #include "mp_core.h"
32043
f6249bc89c38 Move extern declarations used by both mplayer.c and mencoder.c to mpcommon.h.
diego
parents: 32041
diff changeset
57 #include "mpcommon.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
59 #define CLEAR_FILE 1
34077
deff81b57903 Cosmetic: Order STREAMTYPE related code.
ib
parents: 34067
diff changeset
60 #define CLEAR_VCD 2
deff81b57903 Cosmetic: Order STREAMTYPE related code.
ib
parents: 34067
diff changeset
61 #define CLEAR_DVD 4
deff81b57903 Cosmetic: Order STREAMTYPE related code.
ib
parents: 34067
diff changeset
62 #define CLEAR_ALL (CLEAR_FILE + CLEAR_VCD + CLEAR_DVD)
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
63
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
64 #define GUI_REDRAW_WAIT 375
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
66 #include "actions.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
67 #include "widgets.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
68
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27370
diff changeset
69 unsigned int GetTimerMS( void );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
70
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
71 unsigned char * mainDrawBuffer = NULL;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
72 int uiMainRender = 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
73
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
74 int uiMainAutoPlay = 0;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
75 int uiMiddleMenu = 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
77 int mainVisible = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79 int boxMoved = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 int sx = 0,sy = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
81 int i,pot = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
82
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
83 #include "render.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
85 void uiMainDraw( void )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
86 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
87
33768
cee9987bc81d Remove guiExit().
ib
parents: 33763
diff changeset
88 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
89
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
90 if ( guiApp.mainWindow.Visible == wsWindowNotVisible ||
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
91 !mainVisible ) return;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
92 // !guiApp.mainWindow.Mapped ) return;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
93
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
94 if ( uiMainRender && guiApp.mainWindow.State == wsWindowExpose )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
95 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
96 btnModify( evSetMoviePosition,guiInfo.Position );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
97 btnModify( evSetVolume,guiInfo.Volume );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
98
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
99 fast_memcpy( mainDrawBuffer,guiApp.main.Bitmap.Image,guiApp.main.Bitmap.ImageSize );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
100 RenderAll( &guiApp.mainWindow,guiApp.mainItems,guiApp.IndexOfMainItems,mainDrawBuffer );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
101 uiMainRender=0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
102 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
103 wsPutImage( &guiApp.mainWindow );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 // XFlush( wsDisplay );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
105 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
106
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
107 static void guiInfoMediumClear (int what)
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
108 {
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
109 if (what & CLEAR_FILE)
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
110 {
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
111 nfree(guiInfo.Filename);
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
112 nfree(guiInfo.SubtitleFilename);
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
113 nfree(guiInfo.AudioFilename);
34663
73a5ecb53ee2 Replace symbolic constants by enums.
ib
parents: 34610
diff changeset
114 listMgr(PLAYLIST_DELETE, 0);
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
115 }
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
116
34077
deff81b57903 Cosmetic: Order STREAMTYPE related code.
ib
parents: 34067
diff changeset
117 if (what & CLEAR_VCD) guiInfo.Tracks = 0;
deff81b57903 Cosmetic: Order STREAMTYPE related code.
ib
parents: 34067
diff changeset
118
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
119 if (what & CLEAR_DVD)
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
120 {
33902
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
121 guiInfo.AudioStreams = 0;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
122 guiInfo.Subtitles = 0;
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
123 guiInfo.Tracks = 0;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
124 guiInfo.Chapters = 0;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
125 guiInfo.Angles = 0;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
126 }
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
127 }
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
128
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
129 static unsigned last_redraw_time = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
131 void uiEventHandling( int msg,float param )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
132 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 int iparam = (int)param;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
134 mixer_t *mixer = mpctx_get_mixer(guiInfo.mpcontext);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
136 switch( msg )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
137 {
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
138 /* user events */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
139 case evExit:
33768
cee9987bc81d Remove guiExit().
ib
parents: 33763
diff changeset
140 mplayer( MPLAYER_EXIT_GUI, EXIT_QUIT, 0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
141 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
142
34324
58aaa0d8cc82 Replace evSetURL by evLoadURL for consistency.
ib
parents: 34321
diff changeset
143 case evLoadURL:
35349
60930e7347c6 Add an URL loaded by the GUI to its playlist.
ib
parents: 34859
diff changeset
144 listMgr( PLAYLIST_DELETE,0 );
34329
d7c8a3cee15e Replace evPlayNetwork by evLoadURL.
ib
parents: 34324
diff changeset
145 gtkShow( evLoadURL,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
146 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
147
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
148 case ivSetAudio:
33657
c92f23eac7a4 Remove guiGetEvent type guiSetDemuxer.
ib
parents: 33655
diff changeset
149 if ( !mpctx_get_demuxer(guiInfo.mpcontext) || audio_id == iparam ) break;
34469
c3f95506f756 Fix bug with switching audio and video tracks.
ib
parents: 34458
diff changeset
150 mp_property_do("switch_audio",M_PROPERTY_SET,&iparam,guiInfo.mpcontext);
c3f95506f756 Fix bug with switching audio and video tracks.
ib
parents: 34458
diff changeset
151 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
152
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
153 case ivSetVideo:
33657
c92f23eac7a4 Remove guiGetEvent type guiSetDemuxer.
ib
parents: 33655
diff changeset
154 if ( !mpctx_get_demuxer(guiInfo.mpcontext) || video_id == iparam ) break;
34469
c3f95506f756 Fix bug with switching audio and video tracks.
ib
parents: 34458
diff changeset
155 mp_property_do("switch_video",M_PROPERTY_SET,&iparam,guiInfo.mpcontext);
c3f95506f756 Fix bug with switching audio and video tracks.
ib
parents: 34458
diff changeset
156 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
157
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
158 case ivSetSubtitle:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
159 mp_property_do("sub",M_PROPERTY_SET,&iparam,guiInfo.mpcontext);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
161
34387
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
162 #ifdef CONFIG_CDDA
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
163 case ivSetCDTrack:
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
164 guiInfo.Track=iparam;
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
165 case evPlayCD:
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
166 guiInfoMediumClear ( CLEAR_ALL );
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
167 guiInfo.StreamType=STREAMTYPE_CDDA;
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
168 goto play;
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
169 #endif
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27341
diff changeset
170 #ifdef CONFIG_VCD
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
171 case ivSetVCDTrack:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
172 guiInfo.Track=iparam;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
173 case evPlayVCD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
174 guiInfoMediumClear ( CLEAR_ALL );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
175 guiInfo.StreamType=STREAMTYPE_VCD;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
176 goto play;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
178 #ifdef CONFIG_DVDREAD
34417
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
179 case ivSetDVDSubtitle:
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
180 dvdsub_id=iparam;
34455
00cf27b14c15 Replace goto label by an internal event case expression.
ib
parents: 34454
diff changeset
181 uiEventHandling( ivPlayDVD, 0 );
34417
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
182 break;
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
183 case ivSetDVDAudio:
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
184 audio_id=iparam;
34455
00cf27b14c15 Replace goto label by an internal event case expression.
ib
parents: 34454
diff changeset
185 uiEventHandling( ivPlayDVD, 0 );
34417
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
186 break;
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
187 case ivSetDVDChapter:
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
188 guiInfo.Chapter=iparam;
34455
00cf27b14c15 Replace goto label by an internal event case expression.
ib
parents: 34454
diff changeset
189 uiEventHandling( ivPlayDVD, 0 );
34417
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
190 break;
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
191 case ivSetDVDTitle:
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
192 guiInfo.Track=iparam;
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
193 guiInfo.Chapter=1;
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
194 guiInfo.Angle=1;
34455
00cf27b14c15 Replace goto label by an internal event case expression.
ib
parents: 34454
diff changeset
195 uiEventHandling( ivPlayDVD, 0 );
34417
1745c2a7a628 Move some DVD related events.
ib
parents: 34416
diff changeset
196 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
197 case evPlayDVD:
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
198 guiInfo.Track=1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
199 guiInfo.Chapter=1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
200 guiInfo.Angle=1;
34455
00cf27b14c15 Replace goto label by an internal event case expression.
ib
parents: 34454
diff changeset
201 case ivPlayDVD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
202 guiInfoMediumClear( CLEAR_ALL - CLEAR_DVD );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
203 guiInfo.StreamType=STREAMTYPE_DVD;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
204 goto play;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
206 case evPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
207 case evPlaySwitchToPause:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
208 play:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
209
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
210 if ( ( msg == evPlaySwitchToPause )&&( guiInfo.Playing == GUI_PAUSE ) ) goto NoPause;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
211
35349
60930e7347c6 Add an URL loaded by the GUI to its playlist.
ib
parents: 34859
diff changeset
212 if ( listMgr( PLAYLIST_ITEM_GET_CURR,0 ) &&( guiInfo.StreamType == STREAMTYPE_FILE || guiInfo.StreamType == STREAMTYPE_STREAM ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
213 {
34663
73a5ecb53ee2 Replace symbolic constants by enums.
ib
parents: 34610
diff changeset
214 plItem * next = listMgr( PLAYLIST_ITEM_GET_CURR,0 );
34399
f2c03009068d Don't explicitly set stream type if the type doesn't change.
ib
parents: 34387
diff changeset
215 uiSetFileName( next->path,next->name,SAME_STREAMTYPE );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
216 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
217
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
218 switch ( guiInfo.StreamType )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
219 {
34077
deff81b57903 Cosmetic: Order STREAMTYPE related code.
ib
parents: 34067
diff changeset
220 case STREAMTYPE_FILE:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
221 case STREAMTYPE_STREAM:
34859
203d0d5cac1f Add playlist support to the GUI.
ib
parents: 34699
diff changeset
222 case STREAMTYPE_PLAYLIST:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
223 guiInfoMediumClear( CLEAR_ALL - CLEAR_FILE );
33898
67790ce1185e Provide track information for playlists.
ib
parents: 33897
diff changeset
224 if ( !guiInfo.Track )
67790ce1185e Provide track information for playlists.
ib
parents: 33897
diff changeset
225 guiInfo.Track=1;
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
226 guiInfo.NewPlay=GUI_FILE_NEW;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 break;
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34417
diff changeset
228
34387
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
229 case STREAMTYPE_CDDA:
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
230 guiInfoMediumClear( CLEAR_ALL - CLEAR_VCD - CLEAR_FILE );
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
231 if ( guiInfo.Playing != GUI_PAUSE )
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
232 {
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
233 if ( !guiInfo.Track )
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
234 guiInfo.Track=1;
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
235 guiInfo.NewPlay=GUI_FILE_SAME;
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
236 }
0ba85cad4c7e Add audio CD playback support to the X11/GTK GUI.
ib
parents: 34333
diff changeset
237 break;
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34417
diff changeset
238
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
239 case STREAMTYPE_VCD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
240 guiInfoMediumClear( CLEAR_ALL - CLEAR_VCD - CLEAR_FILE );
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
241 if ( guiInfo.Playing != GUI_PAUSE )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
242 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
243 if ( !guiInfo.Track )
33874
e1bec41397bb Don't let VCD track number and guiInfo.Track differ.
ib
parents: 33773
diff changeset
244 guiInfo.Track=2;
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
245 guiInfo.NewPlay=GUI_FILE_SAME;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
246 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
247 break;
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34417
diff changeset
248
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
249 case STREAMTYPE_DVD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
250 guiInfoMediumClear( CLEAR_ALL - CLEAR_DVD - CLEAR_FILE );
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
251 if ( guiInfo.Playing != GUI_PAUSE )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
252 {
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
253 guiInfo.NewPlay=GUI_FILE_SAME;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
254 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
255 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
256 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
257 uiPlay();
23077
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 case evPause:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
261 case evPauseSwitchToPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
262 NoPause:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
263 uiPause();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
264 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
265
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
266 case evStop:
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33556
diff changeset
267 guiInfo.Playing=GUI_STOP;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
268 uiState();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
269 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 case evLoadPlay:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
272 uiMainAutoPlay=1;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
273 // guiInfo.StreamType=STREAMTYPE_FILE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
274 case evLoad:
34663
73a5ecb53ee2 Replace symbolic constants by enums.
ib
parents: 34610
diff changeset
275 listMgr( PLAYLIST_DELETE,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
276 gtkShow( evLoad,NULL );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
277 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
278 case evLoadSubtitle: gtkShow( evLoadSubtitle,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 case evDropSubtitle:
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
280 nfree( guiInfo.SubtitleFilename );
33763
03824cf8728d Cosmetic: Rename two functions that do MPlayer calls.
ib
parents: 33743
diff changeset
281 mplayerLoadSubtitle( NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283 case evLoadAudioFile: gtkShow( evLoadAudioFile,NULL ); break;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
284 case evPrev: uiPrev(); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
285 case evNext: uiNext(); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286
34321
daebf766dea6 Cosmetic: Synchronize evPlaylist event and message names.
ib
parents: 34174
diff changeset
287 case evPlaylist: gtkShow( evPlaylist,NULL ); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
288 case evSkinBrowser: gtkShow( evSkinBrowser,skinName ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
289 case evAbout: gtkShow( evAbout,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
290 case evPreferences: gtkShow( evPreferences,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 case evEqualizer: gtkShow( evEqualizer,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
293 case evForward10min: uiRelSeek( 600 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
294 case evBackward10min: uiRelSeek( -600 );break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
295 case evForward1min: uiRelSeek( 60 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
296 case evBackward1min: uiRelSeek( -60 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
297 case evForward10sec: uiRelSeek( 10 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
298 case evBackward10sec: uiRelSeek( -10 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
299 case evSetMoviePosition: uiAbsSeek( param ); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
300
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
301 case evIncVolume: vo_x11_putkey( wsGrayMul ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 case evDecVolume: vo_x11_putkey( wsGrayDiv ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 case evMute: mixer_mute( mixer ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
304
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
305 case evSetVolume:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
306 guiInfo.Volume=param;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
307 goto set_volume;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
308 case evSetBalance:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
309 guiInfo.Balance=param;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 set_volume:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
312 float l = guiInfo.Volume * ( ( 100.0 - guiInfo.Balance ) / 50.0 );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
313 float r = guiInfo.Volume * ( ( guiInfo.Balance ) / 50.0 );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
314 if ( l > guiInfo.Volume ) l=guiInfo.Volume;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
315 if ( r > guiInfo.Volume ) r=guiInfo.Volume;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
316 // printf( "!!! v: %.2f b: %.2f -> %.2f x %.2f\n",guiInfo.Volume,guiInfo.Balance,l,r );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
317 mixer_setvolume( mixer,l,r );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319 if ( osd_level )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
321 osd_visible=(GetTimerMS() + 1000) | 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 vo_osd_progbar_type=OSD_VOLUME;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
323 vo_osd_progbar_value=( ( guiInfo.Volume ) * 256.0 ) / 100.0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
324 vo_osd_changed( OSDTYPE_PROGBAR );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
325 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
327
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
328
34458
1e84148527ab Add user event evMenu.
ib
parents: 34456
diff changeset
329 case evMenu:
34473
2f88fa3b9e5e Cosmetic: Revise comment.
ib
parents: 34472
diff changeset
330 /*if (guiApp.menuIsPresent) NOTE TO MYSELF: Uncomment only after mouse
2f88fa3b9e5e Cosmetic: Revise comment.
ib
parents: 34472
diff changeset
331 { pointer and cursor keys work
2f88fa3b9e5e Cosmetic: Revise comment.
ib
parents: 34472
diff changeset
332 gtkShow( ivHidePopUpMenu,NULL ); with this menu from skin as
2f88fa3b9e5e Cosmetic: Revise comment.
ib
parents: 34472
diff changeset
333 uiShowMenu( 0,0 ); they do with normal menus.
34458
1e84148527ab Add user event evMenu.
ib
parents: 34456
diff changeset
334 }
1e84148527ab Add user event evMenu.
ib
parents: 34456
diff changeset
335 else*/ gtkShow( ivShowPopUpMenu,NULL );
1e84148527ab Add user event evMenu.
ib
parents: 34456
diff changeset
336 break;
1e84148527ab Add user event evMenu.
ib
parents: 34456
diff changeset
337
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
338 case evIconify:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
339 switch ( iparam )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
340 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
341 case 0: wsIconify( guiApp.mainWindow ); break;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
342 case 1: wsIconify( guiApp.videoWindow ); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
343 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
344 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
345 case evHalfSize:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
346 if ( guiInfo.VideoWindow && guiInfo.Playing )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
347 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
348 if ( guiApp.videoWindow.isFullScreen )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
349 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
350 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
351 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
352 wsResizeWindow( &guiApp.videoWindow, guiInfo.VideoWidth / 2, guiInfo.VideoHeight / 2 );
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
353 wsMoveWindow( &guiApp.videoWindow, False, guiApp.video.x, guiApp.video.y );
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
354 btnSet( evFullScreen,btnReleased );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
355 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
356 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
357 case evDoubleSize:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
358 if ( guiInfo.VideoWindow && guiInfo.Playing )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
359 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
360 if ( guiApp.videoWindow.isFullScreen )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
361 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
362 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
363 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
364 wsResizeWindow( &guiApp.videoWindow, guiInfo.VideoWidth * 2, guiInfo.VideoHeight * 2 );
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
365 wsMoveWindowWithin( &guiApp.videoWindow, False, guiApp.video.x, guiApp.video.y );
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
366 btnSet( evFullScreen,btnReleased );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
367 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
368 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
369 case evNormalSize:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
370 if ( guiInfo.VideoWindow && guiInfo.Playing )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
371 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
372 if ( guiApp.videoWindow.isFullScreen )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
373 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
374 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
375 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
376 wsResizeWindow( &guiApp.videoWindow, guiInfo.VideoWidth, guiInfo.VideoHeight );
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
377 wsMoveWindow( &guiApp.videoWindow, False, guiApp.video.x, guiApp.video.y );
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
378 btnSet( evFullScreen,btnReleased );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
379 break;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
380 } else if ( !guiApp.videoWindow.isFullScreen ) break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
381 case evFullScreen:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
382 if ( guiInfo.VideoWindow && guiInfo.Playing )
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
383 {
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
384 uiFullScreen();
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
385 if ( !guiApp.videoWindow.isFullScreen )
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
386 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
387 wsResizeWindow( &guiApp.videoWindow, guiInfo.VideoWidth, guiInfo.VideoHeight );
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
388 wsMoveWindow( &guiApp.videoWindow, False, guiApp.video.x, guiApp.video.y );
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
389 }
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
390 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
391 if ( guiApp.videoWindow.isFullScreen ) btnSet( evFullScreen,btnPressed );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
392 else btnSet( evFullScreen,btnReleased );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
393 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
394
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
395 case evSetAspect:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
396 switch ( iparam )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
397 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
398 case 2: movie_aspect=16.0f / 9.0f; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
399 case 3: movie_aspect=4.0f / 3.0f; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
400 case 4: movie_aspect=2.35; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
401 case 1:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
402 default: movie_aspect=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
403 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
404 wsClearWindow( guiApp.videoWindow );
34456
d04da1858866 Fix bug with VCD stream calling DVD code.
ib
parents: 34455
diff changeset
405 if ( guiInfo.StreamType == STREAMTYPE_VCD ) uiEventHandling( evPlayVCD, 0 );
d04da1858866 Fix bug with VCD stream calling DVD code.
ib
parents: 34455
diff changeset
406 else if ( guiInfo.StreamType == STREAMTYPE_DVD ) uiEventHandling( ivPlayDVD, 0 );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
407 else
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
408 guiInfo.NewPlay=GUI_FILE_NEW;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
409 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
410
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
411 /* timer events */
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
412 case ivRedraw:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
413 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
414 unsigned now = GetTimerMS();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
415 if ((now > last_redraw_time) &&
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
416 (now < last_redraw_time + GUI_REDRAW_WAIT) &&
34035
5daa51a194ed Force redraw of main window after playback has ended.
ib
parents: 33998
diff changeset
417 !uiPlaybarFade && (iparam == 0))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
418 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
419 last_redraw_time = now;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
420 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
421 uiMainRender=1;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
422 wsPostRedisplay( &guiApp.mainWindow );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
423 wsPostRedisplay( &guiApp.playbarWindow );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
424 break;
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
425 /* system events */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
426 case evNone:
34416
b3837500181a Remove #ifdef MP_DEBUG.
ib
parents: 34403
diff changeset
427 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] uiEventHandling: evNone\n" );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
428 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
429 default:
34416
b3837500181a Remove #ifdef MP_DEBUG.
ib
parents: 34403
diff changeset
430 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] uiEventHandling: unknown event %d, param %.2f\n", msg, param );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
431 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
432 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
433 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
434
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
435 void uiMainMouseHandle( int Button,int X,int Y,int RX,int RY )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
436 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
437 static int itemtype = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
438 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
439 wItem * item = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
440 float value = 0.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
441
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
442 static int SelectedItem = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
443 int currentselected = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
444
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
445 for ( i=0;i <= guiApp.IndexOfMainItems;i++ )
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
446 if ( ( guiApp.mainItems[i].pressed != btnDisabled )&&
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
447 ( wgIsRect( 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
448 { currentselected=i; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
449
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
450 switch ( Button )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
451 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
452 case wsPMMouseButton:
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
453 gtkShow( ivHidePopUpMenu,NULL );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
454 uiShowMenu( RX,RY );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
455 itemtype=itPRMButton;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
456 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
457 case wsRMMouseButton:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
458 uiHideMenu( RX,RY,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
459 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
460
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
461 case wsPLMouseButton:
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
462 gtkShow( ivHidePopUpMenu,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
463 sx=X; sy=Y; boxMoved=1; itemtype=itPLMButton;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
464 SelectedItem=currentselected;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
465 if ( SelectedItem == -1 ) break;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
466 boxMoved=0;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
467 item=&guiApp.mainItems[SelectedItem];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
468 itemtype=item->type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
469 item->pressed=btnPressed;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
470 switch( item->type )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
471 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
472 case itButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
473 if ( ( SelectedItem > -1 ) &&
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
474 ( ( ( item->message == evPlaySwitchToPause && item->message == evPauseSwitchToPlay ) ) ||
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
475 ( ( item->message == evPauseSwitchToPlay && item->message == evPlaySwitchToPause ) ) ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
476 { item->pressed=btnDisabled; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
477 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
478 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
479 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
480 case wsRLMouseButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
481 boxMoved=0;
33107
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
482 if ( SelectedItem != -1 ) // NOTE TO MYSELF: only if itButton, itHPotmeter or itVPotmeter
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
483 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
484 item=&guiApp.mainItems[SelectedItem];
33108
5450a92ac4bd Cosmetic: Adjust indent.
ib
parents: 33107
diff changeset
485 item->pressed=btnReleased;
33107
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
486 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
487 SelectedItem=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
488 if ( currentselected == - 1 ) { itemtype=0; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
489 value=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
490 switch( itemtype )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
491 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
492 case itPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
493 case itHPotmeter:
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
494 btnModify( item->message,(float)( X - item->x ) / item->width * 100.0f );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
495 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
496 value=item->value;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
497 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
498 case itVPotmeter:
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
499 btnModify( item->message, ( 1. - (float)( Y - item->y ) / item->height) * 100.0f );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
500 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
501 value=item->value;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
502 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
503 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
504 uiEventHandling( item->message,value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
505 itemtype=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
506 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
507
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
508 case wsRRMouseButton:
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34329
diff changeset
509 gtkShow( ivShowPopUpMenu,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
510 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
511
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
512 /* rolled mouse ... de szar :))) */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
513 case wsP5MouseButton: value=-2.5f; goto rollerhandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
514 case wsP4MouseButton: value= 2.5f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
515 rollerhandled:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
516 item=&guiApp.mainItems[currentselected];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
517 if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter )||( item->type == itPotmeter ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
518 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
519 item->value+=value;
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
520 btnModify( item->message,item->value );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
521 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
522 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
523 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
524
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34681
diff changeset
525 /* moving */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
526 case wsMoveMouse:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
527 item=&guiApp.mainItems[SelectedItem];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
528 switch ( itemtype )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
529 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
530 case itPLMButton:
33993
57d711d3dcca Change parameter b of wsMoveWindow().
ib
parents: 33950
diff changeset
531 wsMoveWindow( &guiApp.mainWindow,True,RX - abs( sx ),RY - abs( sy ) );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
532 uiMainRender=0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
533 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
534 case itPRMButton:
34472
f866092d51cd Remove unused parameter from uiMenuMouseHandle().
ib
parents: 34469
diff changeset
535 uiMenuMouseHandle( RX,RY );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
536 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
537 case itPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
538 item->value=(float)( X - item->x ) / item->width * 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
539 goto potihandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
540 case itVPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
541 item->value=(1. - (float)( Y - item->y ) / item->height) * 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
542 goto potihandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
543 case itHPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
544 item->value=(float)( X - item->x ) / item->width * 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
545 potihandled:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
546 if ( item->value > 100.0f ) item->value=100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
547 if ( item->value < 0.0f ) item->value=0.0f;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
548 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
549 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
550 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
551 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
552 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
553 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
554
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
555 int keyPressed = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
556
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
557 void uiMainKeyHandle( int KeyCode,int Type,int Key )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
558 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
559 int msg = evNone;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
560
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
561 if ( Type != wsKeyPressed ) return;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
562
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
563 if ( !Key )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
564 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
565 switch ( KeyCode )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
566 {
33524
7d5fd12b86e7 Add note on wsXFMM key definitions.
ib
parents: 33263
diff changeset
567 // 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
568 /*case wsXFMMPrev: msg=evPrev; break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
569 case wsXFMMStop: msg=evStop; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
570 case wsXFMMPlay: msg=evPlaySwitchToPause; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
571 case wsXFMMNext: msg=evNext; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
572 case wsXFMMVolUp: msg=evIncVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
573 case wsXFMMVolDown: msg=evDecVolume; break;
33536
fc1402410163 Remove support for Acer AirKey V keyboard multimedia keys.
ib
parents: 33535
diff changeset
574 case wsXFMMMute: msg=evMute; break;*/
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
575 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
576 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
577 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
578 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
579 switch ( Key )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
580 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
581 case wsEnter: msg=evPlay; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
582 case wsXF86LowerVolume: msg=evDecVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
583 case wsXF86RaiseVolume: msg=evIncVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
584 case wsXF86Mute: msg=evMute; break;
33525
b32fcc18c9b4 Add support for multimedia pause key.
ib
parents: 33524
diff changeset
585 case wsXF86Pause:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
586 case wsXF86Play: msg=evPlaySwitchToPause; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
587 case wsXF86Stop: msg=evStop; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
588 case wsXF86Prev: msg=evPrev; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
589 case wsXF86Next: msg=evNext; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
590 case wsXF86Media: msg=evLoad; break;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
591 case wsEscape:
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
592 if ( guiInfo.VideoWindow && guiInfo.Playing && guiApp.videoWindow.isFullScreen )
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
593 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
594 uiEventHandling( evNormalSize,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
595 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
596 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
597 default: vo_x11_putkey( Key ); return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
598 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
599 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
600 if ( msg != evNone ) uiEventHandling( msg,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
601 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
602
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
603 /* this will be used to handle Drag&Drop files */
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
604 void uiDandDHandler(int num,char** files)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
605 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
606 struct stat buf;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
607 int f = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
608
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
609 char* subtitles = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
610 char* filename = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
611
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
612 if (num <= 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
613 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
614
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
615
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
616 /* now fill it with new items */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
617 for(f=0; f < num; f++){
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
618 char* str = strdup( files[f] );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
619 plItem* item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
620
24086
f5b32d12b691 remove gconvert_uri_to_filename() and use url_unescape_string() instead.
iive
parents: 23457
diff changeset
621 url_unescape_string(str, files[f]);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
622
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
623 if(stat(str,&buf) == 0 && S_ISDIR(buf.st_mode) == 0) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
624 /* this is not a directory so try to play it */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
625 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
626
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
627 /* check if it is a subtitle file */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
628 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
629 char* ext = strrchr(str,'.');
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
630 if (ext) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
631 static char supported[] = "utf/sub/srt/smi/rt//txt/ssa/aqt/";
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
632 char* type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
633 int len;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
634 if((len=strlen(++ext)) && (type=strstr(supported,ext)) &&\
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
635 (type-supported)%4 == 0 && *(type+len) == '/'){
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
636 /* handle subtitle file */
33739
9f6d46d325de Remove gfree() from interface.c.
ib
parents: 33738
diff changeset
637 nfree(subtitles);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
638 subtitles = str;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
639 continue;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
640 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
641 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
642 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
643
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
644 /* clear playlist */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
645 if (filename == NULL) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
646 filename = files[f];
34663
73a5ecb53ee2 Replace symbolic constants by enums.
ib
parents: 34610
diff changeset
647 listMgr(PLAYLIST_DELETE,0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
648 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
649
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
650 item = calloc(1,sizeof(plItem));
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
651
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
652 /* FIXME: decompose file name ? */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
653 /* yes -- Pontscho */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
654 if ( strrchr( str,'/' ) ) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
655 char * s = strrchr( str,'/' ); *s=0; s++;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
656 item->name = gstrdup( s );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
657 item->path = gstrdup( str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
658 } else {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
659 item->name = strdup(str);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
660 item->path = strdup("");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
661 }
34681
42fa91951bd2 Rename PLAYLIST_ITEM_ADD PLAYLIST_ITEM_APPEND.
ib
parents: 34669
diff changeset
662 listMgr(PLAYLIST_ITEM_APPEND,item);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
663 } else {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
664 mp_msg( MSGT_GPLAYER,MSGL_WARN,MSGTR_NotAFile,str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
665 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
666 free( str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
667 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
668
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
669 if (filename) {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
670 uiSetFileName( NULL,filename,STREAMTYPE_FILE );
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
671 if ( guiInfo.Playing == GUI_PLAY ) uiEventHandling( evStop,0 );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
672 uiEventHandling( evPlay,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
673 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
674 if (subtitles) {
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
675 nfree(guiInfo.SubtitleFilename);
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
676 guiInfo.SubtitleFilename = subtitles;
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
677 mplayerLoadSubtitle(guiInfo.SubtitleFilename);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
678 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
679 }