annotate gui/ui/main.c @ 34067:eb6344ee99ac

Set an URL guiInfo.Filename by using uiSetFileName(). Because the evPlayNetwork code in uiEventHandling() is already performed in uiSetFileName(), it may be omitted and evPlay may be called directly.
author ib
date Thu, 29 Sep 2011 13:44:21 +0000
parents 5daa51a194ed
children deff81b57903
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 * main window
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 * This file is part of MPlayer.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
5 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
6 * MPlayer is free software; you can redistribute it and/or modify
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
7 * 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
8 * the Free Software Foundation; either version 2 of the License, or
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
9 * (at your option) any later version.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
10 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
11 * MPlayer is distributed in the hope that it will be useful,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
14 * GNU General Public License for more details.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
15 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
16 * 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
17 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
19 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
20
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"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
39 #include "libvo/x11_common.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
40 #include "libvo/fastmemcpy.h"
33531
84ce059fae34 Get non-multimedia X11 key definitions from libvo/wskeys.h.
ib
parents: 33525
diff changeset
41 #include "libvo/wskeys.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
42
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
43 #include "stream/stream.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
44 #include "stream/url.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
45 #include "mixer.h"
32467
fbe5c829c69b Move libvo/sub.[ch] from libvo to sub.
cigaes
parents: 32043
diff changeset
46 #include "sub/sub.h"
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
47 #include "access_mpcontext.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
48
30537
7bebe34b6ad2 Move movie_aspect extern declaration to libmpcodecs/vd.h.
diego
parents: 30516
diff changeset
49 #include "libmpcodecs/vd.h"
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"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
54 #include "m_property.h"
30516
f4e017b6921a Fix exit_player() usage throughout the codebase.
diego
parents: 29263
diff changeset
55 #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
56 #include "mpcommon.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
58 #define CLEAR_FILE 1
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
59 #define CLEAR_DVD 2
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
60 #define CLEAR_VCD 4
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
61 #define CLEAR_ALL (CLEAR_FILE + CLEAR_DVD + CLEAR_VCD)
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
62
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
63 #define GUI_REDRAW_WAIT 375
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
64
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
65 #include "actions.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
66 #include "widgets.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
67
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27370
diff changeset
68 unsigned int GetTimerMS( void );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
69
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
70 unsigned char * mainDrawBuffer = NULL;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
71 int uiMainRender = 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
72
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
73 int uiMainAutoPlay = 0;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
74 int uiMiddleMenu = 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76 int mainVisible = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
77
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78 int boxMoved = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79 int sx = 0,sy = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 int i,pot = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
81
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
82 #include "render.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
83
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
84 void uiMainDraw( void )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
85 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
86
33768
cee9987bc81d Remove guiExit().
ib
parents: 33763
diff changeset
87 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
88
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
89 if ( guiApp.mainWindow.Visible == wsWindowNotVisible ||
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
90 !mainVisible ) return;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
91 // !guiApp.mainWindow.Mapped ) return;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
92
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
93 if ( uiMainRender && guiApp.mainWindow.State == wsWindowExpose )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
94 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
95 btnModify( evSetMoviePosition,guiInfo.Position );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
96 btnModify( evSetVolume,guiInfo.Volume );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
98 fast_memcpy( mainDrawBuffer,guiApp.main.Bitmap.Image,guiApp.main.Bitmap.ImageSize );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
99 RenderAll( &guiApp.mainWindow,guiApp.mainItems,guiApp.IndexOfMainItems,mainDrawBuffer );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
100 uiMainRender=0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
101 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
102 wsPutImage( &guiApp.mainWindow );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
103 // XFlush( wsDisplay );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
105
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
106 static void guiInfoMediumClear (int what)
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
107 {
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
108 if (what & CLEAR_FILE)
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
109 {
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
110 nfree(guiInfo.Filename);
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
111 nfree(guiInfo.SubtitleFilename);
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
112 nfree(guiInfo.AudioFilename);
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
113 listSet(gtkDelPl, NULL);
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
114 }
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 #ifdef CONFIG_DVDREAD
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
117 if (what & CLEAR_DVD)
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
118 {
33902
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
119 guiInfo.AudioStreams = 0;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
120 guiInfo.Subtitles = 0;
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
121 guiInfo.Tracks = 0;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
122 guiInfo.Chapters = 0;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
123 guiInfo.Angles = 0;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
124 }
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
125 #endif
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
126
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
127 #ifdef CONFIG_VCD
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
128 if (what & CLEAR_VCD) guiInfo.Tracks = 0;
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
129 #endif
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
130 }
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
131
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
132 static unsigned last_redraw_time = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
134 void uiEventHandling( int msg,float param )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
136 int iparam = (int)param;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
137 mixer_t *mixer = mpctx_get_mixer(guiInfo.mpcontext);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
138
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
139 switch( msg )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
140 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
141 // --- user events
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
142 case evExit:
33768
cee9987bc81d Remove guiExit().
ib
parents: 33763
diff changeset
143 mplayer( MPLAYER_EXIT_GUI, EXIT_QUIT, 0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
144 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
145
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
146 case evSetURL:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
147 gtkShow( evPlayNetwork,NULL );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
148 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
149
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
150 case evSetAudio:
33657
c92f23eac7a4 Remove guiGetEvent type guiSetDemuxer.
ib
parents: 33655
diff changeset
151 if ( !mpctx_get_demuxer(guiInfo.mpcontext) || audio_id == iparam ) break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
152 audio_id=iparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
153 goto play;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
154
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
155 case evSetVideo:
33657
c92f23eac7a4 Remove guiGetEvent type guiSetDemuxer.
ib
parents: 33655
diff changeset
156 if ( !mpctx_get_demuxer(guiInfo.mpcontext) || video_id == iparam ) break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
157 video_id=iparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
158 goto play;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
159
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 case evSetSubtitle:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
161 mp_property_do("sub",M_PROPERTY_SET,&iparam,guiInfo.mpcontext);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
162 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
163
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27341
diff changeset
164 #ifdef CONFIG_VCD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
165 case evSetVCDTrack:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
166 guiInfo.Track=iparam;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
167 case evPlayVCD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
168 guiInfoMediumClear ( CLEAR_ALL );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
169 guiInfo.StreamType=STREAMTYPE_VCD;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
170 goto play;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
171 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
172 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
173 case evPlayDVD:
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
174 guiInfo.Track=1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
175 guiInfo.Chapter=1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
176 guiInfo.Angle=1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 play_dvd_2:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
178 guiInfoMediumClear( CLEAR_ALL - CLEAR_DVD );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
179 guiInfo.StreamType=STREAMTYPE_DVD;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
180 goto play;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
181 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182 case evPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
183 case evPlaySwitchToPause:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
184 play:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
185
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
186 if ( ( msg == evPlaySwitchToPause )&&( guiInfo.Playing == GUI_PAUSE ) ) goto NoPause;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
187
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33739
diff changeset
188 if ( listSet( gtkGetCurrPlItem,NULL ) &&( guiInfo.StreamType == STREAMTYPE_FILE ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
189 {
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33739
diff changeset
190 plItem * next = listSet( gtkGetCurrPlItem,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
191 plLastPlayed=next;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
192 uiSetFileName( next->path,next->name,STREAMTYPE_FILE );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
193 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
194
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
195 switch ( guiInfo.StreamType )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
197 case STREAMTYPE_STREAM:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
198 case STREAMTYPE_FILE:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
199 guiInfoMediumClear( CLEAR_ALL - CLEAR_FILE );
33898
67790ce1185e Provide track information for playlists.
ib
parents: 33897
diff changeset
200 if ( !guiInfo.Track )
67790ce1185e Provide track information for playlists.
ib
parents: 33897
diff changeset
201 guiInfo.Track=1;
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
202 guiInfo.NewPlay=GUI_FILE_NEW;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
203 break;
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27341
diff changeset
204 #ifdef CONFIG_VCD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 case STREAMTYPE_VCD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
206 guiInfoMediumClear( CLEAR_ALL - CLEAR_VCD - CLEAR_FILE );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
207 if ( !cdrom_device ) cdrom_device=gstrdup( DEFAULT_CDROM_DEVICE );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
208 uiSetFileName( NULL,cdrom_device,STREAMTYPE_VCD );
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
209 if ( guiInfo.Playing != GUI_PAUSE )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
210 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
211 if ( !guiInfo.Track )
33874
e1bec41397bb Don't let VCD track number and guiInfo.Track differ.
ib
parents: 33773
diff changeset
212 guiInfo.Track=2;
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
213 guiInfo.NewPlay=GUI_FILE_SAME;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
214 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
215 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
216 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
217 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
218 case STREAMTYPE_DVD:
33771
6e774a02d00c Remove gtkClearStruct code from mplayer() in interface.c.
ib
parents: 33768
diff changeset
219 guiInfoMediumClear( CLEAR_ALL - CLEAR_DVD - CLEAR_FILE );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
220 if ( !dvd_device ) dvd_device=gstrdup( DEFAULT_DVD_DEVICE );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
221 uiSetFileName( NULL,dvd_device,STREAMTYPE_DVD );
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
222 if ( guiInfo.Playing != GUI_PAUSE )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
223 {
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
224 guiInfo.NewPlay=GUI_FILE_SAME;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
225 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
226 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
228 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
229 uiPlay();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
230 break;
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
231 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
232 case evSetDVDSubtitle:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
233 dvdsub_id=iparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
234 goto play_dvd_2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
235 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
236 case evSetDVDAudio:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
237 audio_id=iparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
238 goto play_dvd_2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
239 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
240 case evSetDVDChapter:
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
241 guiInfo.Chapter=iparam;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
242 goto play_dvd_2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
243 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
244 case evSetDVDTitle:
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
245 guiInfo.Track=iparam;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
246 guiInfo.Chapter=1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33874
diff changeset
247 guiInfo.Angle=1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248 goto play_dvd_2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
249 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
250 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
251
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
252 case evPause:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
253 case evPauseSwitchToPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
254 NoPause:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
255 uiPause();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
256 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
257
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
258 case evStop:
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33556
diff changeset
259 guiInfo.Playing=GUI_STOP;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
260 uiState();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
261 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
262
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
263 case evLoadPlay:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
264 uiMainAutoPlay=1;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
265 // guiInfo.StreamType=STREAMTYPE_FILE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
266 case evLoad:
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33739
diff changeset
267 listSet( gtkDelPl,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
268 gtkShow( evLoad,NULL );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
269 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270 case evLoadSubtitle: gtkShow( evLoadSubtitle,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 case evDropSubtitle:
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
272 nfree( guiInfo.SubtitleFilename );
33763
03824cf8728d Cosmetic: Rename two functions that do MPlayer calls.
ib
parents: 33743
diff changeset
273 mplayerLoadSubtitle( NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
274 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
275 case evLoadAudioFile: gtkShow( evLoadAudioFile,NULL ); break;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
276 case evPrev: uiPrev(); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
277 case evNext: uiNext(); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
278
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 case evPlayList: gtkShow( evPlayList,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
280 case evSkinBrowser: gtkShow( evSkinBrowser,skinName ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281 case evAbout: gtkShow( evAbout,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 case evPreferences: gtkShow( evPreferences,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283 case evEqualizer: gtkShow( evEqualizer,NULL ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
284
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
285 case evForward10min: uiRelSeek( 600 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
286 case evBackward10min: uiRelSeek( -600 );break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
287 case evForward1min: uiRelSeek( 60 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
288 case evBackward1min: uiRelSeek( -60 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
289 case evForward10sec: uiRelSeek( 10 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
290 case evBackward10sec: uiRelSeek( -10 ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
291 case evSetMoviePosition: uiAbsSeek( param ); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
293 case evIncVolume: vo_x11_putkey( wsGrayMul ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
294 case evDecVolume: vo_x11_putkey( wsGrayDiv ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
295 case evMute: mixer_mute( mixer ); break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
296
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
297 case evSetVolume:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
298 guiInfo.Volume=param;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
299 goto set_volume;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
300 case evSetBalance:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
301 guiInfo.Balance=param;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 set_volume:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
304 float l = guiInfo.Volume * ( ( 100.0 - guiInfo.Balance ) / 50.0 );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
305 float r = guiInfo.Volume * ( ( guiInfo.Balance ) / 50.0 );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
306 if ( l > guiInfo.Volume ) l=guiInfo.Volume;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
307 if ( r > guiInfo.Volume ) r=guiInfo.Volume;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
308 // printf( "!!! v: %.2f b: %.2f -> %.2f x %.2f\n",guiInfo.Volume,guiInfo.Balance,l,r );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
309 mixer_setvolume( mixer,l,r );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 if ( osd_level )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
312 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
313 osd_visible=(GetTimerMS() + 1000) | 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 vo_osd_progbar_type=OSD_VOLUME;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
315 vo_osd_progbar_value=( ( guiInfo.Volume ) * 256.0 ) / 100.0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
316 vo_osd_changed( OSDTYPE_PROGBAR );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
317 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
321 case evIconify:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 switch ( iparam )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
323 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
324 case 0: wsIconify( guiApp.mainWindow ); break;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
325 case 1: wsIconify( guiApp.subWindow ); break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
327 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
328 case evHalfSize:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
329 if ( guiInfo.VideoWindow && guiInfo.Playing )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
330 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
331 if ( guiApp.subWindow.isFullScreen )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
332 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
333 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
334 }
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33898
diff changeset
335 wsResizeWindow( &guiApp.subWindow, guiInfo.VideoWidth / 2, guiInfo.VideoHeight / 2 );
33997
68633e7c5e1e Preserve x and y position of a half-size window.
ib
parents: 33993
diff changeset
336 wsMoveWindow( &guiApp.subWindow, False, guiApp.sub.x, guiApp.sub.y );
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
337 btnSet( evFullScreen,btnReleased );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
338 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
339 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
340 case evDoubleSize:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
341 if ( guiInfo.VideoWindow && guiInfo.Playing )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
342 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
343 if ( guiApp.subWindow.isFullScreen )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
344 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
345 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
346 }
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33898
diff changeset
347 wsResizeWindow( &guiApp.subWindow, guiInfo.VideoWidth * 2, guiInfo.VideoHeight * 2 );
33998
ca20e4098c1d Preserve x and y position of a double-size window if possible.
ib
parents: 33997
diff changeset
348 wsMoveWindowWithin( &guiApp.subWindow, False, guiApp.sub.x, guiApp.sub.y );
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
349 btnSet( evFullScreen,btnReleased );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
350 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
351 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
352 case evNormalSize:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
353 if ( guiInfo.VideoWindow && guiInfo.Playing )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
354 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
355 if ( guiApp.subWindow.isFullScreen )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
356 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
357 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
358 }
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33898
diff changeset
359 wsResizeWindow( &guiApp.subWindow, guiInfo.VideoWidth, guiInfo.VideoHeight );
33993
57d711d3dcca Change parameter b of wsMoveWindow().
ib
parents: 33950
diff changeset
360 wsMoveWindow( &guiApp.subWindow, False, guiApp.sub.x, guiApp.sub.y );
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
361 btnSet( evFullScreen,btnReleased );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
362 break;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
363 } else if ( !guiApp.subWindow.isFullScreen ) break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
364 case evFullScreen:
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
365 if ( guiInfo.VideoWindow && guiInfo.Playing )
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
366 {
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
367 uiFullScreen();
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
368 if ( !guiApp.subWindow.isFullScreen )
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
369 {
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
370 wsResizeWindow( &guiApp.subWindow, guiInfo.VideoWidth, guiInfo.VideoHeight );
33993
57d711d3dcca Change parameter b of wsMoveWindow().
ib
parents: 33950
diff changeset
371 wsMoveWindow( &guiApp.subWindow, False, guiApp.sub.x, guiApp.sub.y );
33950
bb35e74851cd Cosmetic: Adjust indent.
ib
parents: 33949
diff changeset
372 }
33947
3867c67b35a3 Modify video window size change behavior.
ib
parents: 33945
diff changeset
373 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
374 if ( guiApp.subWindow.isFullScreen ) btnSet( evFullScreen,btnPressed );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
375 else btnSet( evFullScreen,btnReleased );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
376 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
377
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
378 case evSetAspect:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
379 switch ( iparam )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
380 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
381 case 2: movie_aspect=16.0f / 9.0f; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
382 case 3: movie_aspect=4.0f / 3.0f; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
383 case 4: movie_aspect=2.35; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
384 case 1:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
385 default: movie_aspect=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
386 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
387 wsClearWindow( guiApp.subWindow );
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
388 #ifdef CONFIG_DVDREAD
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
389 if ( guiInfo.StreamType == STREAMTYPE_DVD || guiInfo.StreamType == STREAMTYPE_VCD ) goto play_dvd_2;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
390 else
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
391 #endif
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
392 guiInfo.NewPlay=GUI_FILE_NEW;
23077
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 // --- timer events
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
396 case evRedraw:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
397 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
398 unsigned now = GetTimerMS();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
399 if ((now > last_redraw_time) &&
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
400 (now < last_redraw_time + GUI_REDRAW_WAIT) &&
34035
5daa51a194ed Force redraw of main window after playback has ended.
ib
parents: 33998
diff changeset
401 !uiPlaybarFade && (iparam == 0))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
402 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
403 last_redraw_time = now;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
404 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
405 uiMainRender=1;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
406 wsPostRedisplay( &guiApp.mainWindow );
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
407 wsPostRedisplay( &guiApp.playbarWindow );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
408 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
409 // --- system events
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
410 #ifdef MP_DEBUG
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
411 case evNone:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
412 mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[mw] event none received.\n" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
413 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
414 default:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
415 mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[mw] unknown event received ( %d,%.2f ).\n",msg,param );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
416 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
417 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
418 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
419 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
420
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
421 void uiMainMouseHandle( int Button,int X,int Y,int RX,int RY )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
422 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
423 static int itemtype = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
424 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
425 wItem * item = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
426 float value = 0.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
427
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
428 static int SelectedItem = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
429 int currentselected = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
430
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
431 for ( i=0;i <= guiApp.IndexOfMainItems;i++ )
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
432 if ( ( guiApp.mainItems[i].pressed != btnDisabled )&&
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
433 ( 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
434 { currentselected=i; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
435
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
436 switch ( Button )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
437 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
438 case wsPMMouseButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
439 gtkShow( evHidePopUpMenu,NULL );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
440 uiShowMenu( RX,RY );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
441 itemtype=itPRMButton;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
442 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
443 case wsRMMouseButton:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
444 uiHideMenu( RX,RY,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
445 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
446
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
447 case wsPLMouseButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
448 gtkShow( evHidePopUpMenu,NULL );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
449 sx=X; sy=Y; boxMoved=1; itemtype=itPLMButton;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
450 SelectedItem=currentselected;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
451 if ( SelectedItem == -1 ) break;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
452 boxMoved=0;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
453 item=&guiApp.mainItems[SelectedItem];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
454 itemtype=item->type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
455 item->pressed=btnPressed;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
456 switch( item->type )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
457 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
458 case itButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
459 if ( ( SelectedItem > -1 ) &&
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
460 ( ( ( item->message == evPlaySwitchToPause && item->message == evPauseSwitchToPlay ) ) ||
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
461 ( ( item->message == evPauseSwitchToPlay && item->message == evPlaySwitchToPause ) ) ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
462 { item->pressed=btnDisabled; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
463 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
464 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
465 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
466 case wsRLMouseButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
467 boxMoved=0;
33107
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
468 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
469 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
470 item=&guiApp.mainItems[SelectedItem];
33108
5450a92ac4bd Cosmetic: Adjust indent.
ib
parents: 33107
diff changeset
471 item->pressed=btnReleased;
33107
eda3df3e4a9d Prevent an out-of-bounds array access.
ib
parents: 33002
diff changeset
472 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
473 SelectedItem=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
474 if ( currentselected == - 1 ) { itemtype=0; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
475 value=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
476 switch( itemtype )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
477 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
478 case itPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
479 case itHPotmeter:
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
480 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
481 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
482 value=item->value;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
483 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
484 case itVPotmeter:
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
485 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
486 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
487 value=item->value;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
488 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
489 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
490 uiEventHandling( item->message,value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
491 itemtype=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
492 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
493
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
494 case wsRRMouseButton:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
495 gtkShow( evShowPopUpMenu,NULL );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
496 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
497
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
498 // --- rolled mouse ... de szar :)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
499 case wsP5MouseButton: value=-2.5f; goto rollerhandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
500 case wsP4MouseButton: value= 2.5f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
501 rollerhandled:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
502 item=&guiApp.mainItems[currentselected];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
503 if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter )||( item->type == itPotmeter ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
504 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
505 item->value+=value;
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32896
diff changeset
506 btnModify( item->message,item->value );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
507 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
508 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
509 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
510
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
511 // --- moving
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
512 case wsMoveMouse:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
513 item=&guiApp.mainItems[SelectedItem];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
514 switch ( itemtype )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
515 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
516 case itPLMButton:
33993
57d711d3dcca Change parameter b of wsMoveWindow().
ib
parents: 33950
diff changeset
517 wsMoveWindow( &guiApp.mainWindow,True,RX - abs( sx ),RY - abs( sy ) );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
518 uiMainRender=0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
519 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
520 case itPRMButton:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
521 uiMenuMouseHandle( X,Y,RX,RY );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
522 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
523 case itPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
524 item->value=(float)( X - item->x ) / item->width * 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
525 goto potihandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
526 case itVPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
527 item->value=(1. - (float)( Y - item->y ) / item->height) * 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
528 goto potihandled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
529 case itHPotmeter:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
530 item->value=(float)( X - item->x ) / item->width * 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
531 potihandled:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
532 if ( item->value > 100.0f ) item->value=100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
533 if ( item->value < 0.0f ) item->value=0.0f;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
534 uiEventHandling( item->message,item->value );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
535 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
536 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
537 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
538 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
539 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
540
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
541 int keyPressed = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
542
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
543 void uiMainKeyHandle( int KeyCode,int Type,int Key )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
544 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
545 int msg = evNone;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
546
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
547 if ( Type != wsKeyPressed ) return;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
548
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
549 if ( !Key )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
550 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
551 switch ( KeyCode )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
552 {
33524
7d5fd12b86e7 Add note on wsXFMM key definitions.
ib
parents: 33263
diff changeset
553 // 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
554 /*case wsXFMMPrev: msg=evPrev; break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
555 case wsXFMMStop: msg=evStop; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
556 case wsXFMMPlay: msg=evPlaySwitchToPause; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
557 case wsXFMMNext: msg=evNext; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
558 case wsXFMMVolUp: msg=evIncVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
559 case wsXFMMVolDown: msg=evDecVolume; break;
33536
fc1402410163 Remove support for Acer AirKey V keyboard multimedia keys.
ib
parents: 33535
diff changeset
560 case wsXFMMMute: msg=evMute; break;*/
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
561 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
562 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
563 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
564 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
565 switch ( Key )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
566 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
567 case wsEnter: msg=evPlay; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
568 case wsXF86LowerVolume: msg=evDecVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
569 case wsXF86RaiseVolume: msg=evIncVolume; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
570 case wsXF86Mute: msg=evMute; break;
33525
b32fcc18c9b4 Add support for multimedia pause key.
ib
parents: 33524
diff changeset
571 case wsXF86Pause:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
572 case wsXF86Play: msg=evPlaySwitchToPause; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
573 case wsXF86Stop: msg=evStop; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
574 case wsXF86Prev: msg=evPrev; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
575 case wsXF86Next: msg=evNext; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
576 case wsXF86Media: msg=evLoad; break;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
577 case wsEscape:
33943
de065d751a8c Change ESC key behavior in fullscreen state.
ib
parents: 33902
diff changeset
578 if ( guiInfo.VideoWindow && guiInfo.Playing && guiApp.subWindow.isFullScreen )
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
579 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
580 uiEventHandling( evNormalSize,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
581 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
582 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
583 default: vo_x11_putkey( Key ); return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
584 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
585 }
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
586 if ( msg != evNone ) uiEventHandling( msg,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
587 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
588
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
589 /* this will be used to handle Drag&Drop files */
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
590 void uiDandDHandler(int num,char** files)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
591 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
592 struct stat buf;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
593 int f = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
594
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
595 char* subtitles = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
596 char* filename = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
597
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
598 if (num <= 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
599 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
600
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
601
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
602 /* now fill it with new items */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
603 for(f=0; f < num; f++){
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
604 char* str = strdup( files[f] );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
605 plItem* item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
606
24086
f5b32d12b691 remove gconvert_uri_to_filename() and use url_unescape_string() instead.
iive
parents: 23457
diff changeset
607 url_unescape_string(str, files[f]);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
608
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
609 if(stat(str,&buf) == 0 && S_ISDIR(buf.st_mode) == 0) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
610 /* this is not a directory so try to play it */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
611 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
612
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
613 /* check if it is a subtitle file */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
614 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
615 char* ext = strrchr(str,'.');
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
616 if (ext) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
617 static char supported[] = "utf/sub/srt/smi/rt//txt/ssa/aqt/";
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
618 char* type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
619 int len;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
620 if((len=strlen(++ext)) && (type=strstr(supported,ext)) &&\
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
621 (type-supported)%4 == 0 && *(type+len) == '/'){
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
622 /* handle subtitle file */
33739
9f6d46d325de Remove gfree() from interface.c.
ib
parents: 33738
diff changeset
623 nfree(subtitles);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
624 subtitles = str;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
625 continue;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
626 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
627 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
628 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
629
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
630 /* clear playlist */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
631 if (filename == NULL) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
632 filename = files[f];
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33739
diff changeset
633 listSet(gtkDelPl,NULL);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
634 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
635
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
636 item = calloc(1,sizeof(plItem));
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28051
diff changeset
637
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
638 /* FIXME: decompose file name ? */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
639 /* yes -- Pontscho */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
640 if ( strrchr( str,'/' ) ) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
641 char * s = strrchr( str,'/' ); *s=0; s++;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
642 item->name = gstrdup( s );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
643 item->path = gstrdup( str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
644 } else {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
645 item->name = strdup(str);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
646 item->path = strdup("");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
647 }
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33739
diff changeset
648 listSet(gtkAddPlItem,item);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
649 } else {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
650 mp_msg( MSGT_GPLAYER,MSGL_WARN,MSGTR_NotAFile,str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
651 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
652 free( str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
653 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
654
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
655 if (filename) {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
656 uiSetFileName( NULL,filename,STREAMTYPE_FILE );
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
657 if ( guiInfo.Playing == GUI_PLAY ) uiEventHandling( evStop,0 );
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33548
diff changeset
658 uiEventHandling( evPlay,0 );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
659 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
660 if (subtitles) {
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
661 nfree(guiInfo.SubtitleFilename);
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
662 guiInfo.SubtitleFilename = subtitles;
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33890
diff changeset
663 mplayerLoadSubtitle(guiInfo.SubtitleFilename);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
664 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
665 }