annotate gui/win32/interface.c @ 37151:c63629427fde

Apply skin defaults in Win32 GUI. The starting defaults for volume, balance and movie position are defined in the skin used by the GUI. So far, the Win32 GUI has completely ignored these. Based on a patch by Stephen Sheldon, sfsheldo gmail com.
author ib
date Wed, 06 Aug 2014 16:35:38 +0000
parents 8643426b12de
children 3dca2acb98ac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1 /*
23079
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
2 * MPlayer GUI for Win32
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
3 * Copyright (C) 2003 Sascha Sommer <saschasommer@freenet.de>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
4 * Copyright (C) 2006 Erik Augustson <erik_27can@yahoo.com>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
5 * Copyright (C) 2006 Gianluigi Tiesi <sherpya@netfarm.it>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
6 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
7 * This file is part of MPlayer.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
8 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
9 * MPlayer is free software; you can redistribute it and/or modify
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
10 * it under the terms of the GNU General Public License as published by
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
12 * (at your option) any later version.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
13 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
14 * MPlayer is distributed in the hope that it will be useful,
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
17 * GNU General Public License for more details.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
18 *
26457
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
19 * You should have received a copy of the GNU General Public License along
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
20 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23079
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
22 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23
34405
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
24 #include "config.h"
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
25
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
26 #if defined(CONFIG_LIBCDIO)
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
27 #include <cdio/cdda.h>
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
28 #elif defined(CONFIG_CDDA)
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
29 #include <cdda_interface.h>
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
30 #endif
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
31
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
32 #include <windows.h>
36775
666757381a27 Avoid pointer cast warnings.
ib
parents: 36461
diff changeset
33 #include <stdint.h>
33358
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
34
34115
3d7ee643b110 Port to Wine.
ib
parents: 34084
diff changeset
35 #if defined(__CYGWIN__) || defined(__WINE__)
33358
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
36 #define _beginthreadex CreateThread
34392
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
37 #ifdef __WINE__
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
38 #include <winioctl.h>
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
39 #define WINE_MOUNTMGR_EXTENSIONS
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
40 #include <ddk/mountmgr.h>
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
41 #endif
33358
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
42 #else
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
43 #include <process.h>
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
44 #endif
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
45
30901
76a13038105e Rename get_path.[ch] --> path.[ch].
diego
parents: 30722
diff changeset
46 #include "path.h"
26372
76413880bfad Update include paths to account for build system changes.
diego
parents: 26193
diff changeset
47 #include "gui/interface.h"
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
48 #include "m_option.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
49 #include "mixer.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
50 #include "mp_msg.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
51 #include "help_mp.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
52 #include "codec-cfg.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
53 #include "stream/stream.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
54 #include "libmpdemux/demuxer.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
55 #include "libmpdemux/stheader.h"
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26457
diff changeset
56 #ifdef CONFIG_DVDREAD
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
57 #include "stream/stream_dvd.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58 #endif
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
59 #include "input/input.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
60 #include "libvo/video_out.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
61 #include "libao2/audio_out.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
62 #include "access_mpcontext.h"
36966
ef9dea4785bc Detect audio AC3/DTS pass-through S/PDIF.
ib
parents: 36953
diff changeset
63 #include "libmpcodecs/ad.h"
30558
71acebef19ec Fix win32 gui compilation.
reimar
parents: 27391
diff changeset
64 #include "libmpcodecs/vd.h"
31425
2392ad3cec9c Move af_cfg extern variable declaration to dec_audio.h.
diego
parents: 31312
diff changeset
65 #include "libmpcodecs/dec_audio.h"
33761
16286ee1fc71 Fix Win32 GUI compilation problems.
ib
parents: 33752
diff changeset
66 #include "gui/ui/actions.h"
35528
ab07b17fddfb Rebuild GUI directory structure.
ib
parents: 35521
diff changeset
67 #include "gui/ui/ui.h"
33770
6134493605c6 Use macro nfree() in Win32 GUI code.
ib
parents: 33761
diff changeset
68 #include "gui/util/mem.h"
33761
16286ee1fc71 Fix Win32 GUI compilation problems.
ib
parents: 33752
diff changeset
69 #include "gui/util/list.h"
16286ee1fc71 Fix Win32 GUI compilation problems.
ib
parents: 33752
diff changeset
70 #include "gui/util/string.h"
30558
71acebef19ec Fix win32 gui compilation.
reimar
parents: 27391
diff changeset
71 #include "mp_core.h"
32093
e34226e0a890 Fix win32 gui compilation
reimar
parents: 31426
diff changeset
72 #include "mpcommon.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
73 #include "gui.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
74 #include "dialogs.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75
34399
f2c03009068d Don't explicitly set stream type if the type doesn't change.
ib
parents: 34393
diff changeset
76 #define SAME_STREAMTYPE (STREAMTYPE_DUMMY - 1)
f2c03009068d Don't explicitly set stream type if the type doesn't change.
ib
parents: 34393
diff changeset
77
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78 int guiWinID = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 char *skinName = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
81 char *codecname = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
82 static gui_t *mygui = NULL;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
83 static int update_videowindow(void);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84 static RECT old_rect;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
85 static DWORD style;
24992
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
86 static HANDLE hThread;
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
87 static unsigned threadId;
25765
304fc0bbefe1 audio_out / video_out structs should be treated as const
reimar
parents: 24992
diff changeset
88 const ao_functions_t *audio_out = NULL;
304fc0bbefe1 audio_out / video_out structs should be treated as const
reimar
parents: 24992
diff changeset
89 const vo_functions_t *video_out = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
90 mixer_t *mixer = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
91
34392
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
92 #ifdef __WINE__
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
93 /**
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
94 * @brief Convert a Windows style path to a file name into an Unix style one.
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
95 *
37065
b28b632efeef Cosmetic: Revise a few comments.
ib
parents: 36966
diff changeset
96 * @param filename file path string to be converted
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
97 *
37065
b28b632efeef Cosmetic: Revise a few comments.
ib
parents: 36966
diff changeset
98 * @return converted file path string
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
99 */
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
100 static char *unix_name (char *win_filename)
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
101 {
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
102 static char *unix_filename;
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
103 LPSTR (*CDECL wine_get_unix_file_name_ptr)(LPCWSTR);
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
104 int wchar_conv;
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
105
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
106 if (*win_filename && (win_filename[1] == ':'))
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
107 {
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
108 wine_get_unix_file_name_ptr = (void *) GetProcAddress(GetModuleHandleA("KERNEL32"), "wine_get_unix_file_name");
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
109 wchar_conv = MultiByteToWideChar(CP_UNIXCP, 0, win_filename, -1, NULL, 0);
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
110
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
111 if (wine_get_unix_file_name_ptr && wchar_conv)
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
112 {
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
113 WCHAR *ntpath;
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
114 char *unix_name;
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
115
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
116 ntpath = HeapAlloc(GetProcessHeap(), 0, sizeof(*ntpath) * (wchar_conv + 1));
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
117 MultiByteToWideChar(CP_UNIXCP, 0, win_filename, -1, ntpath, wchar_conv);
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
118 unix_name = wine_get_unix_file_name_ptr(ntpath);
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
119 setdup(&unix_filename, unix_name);
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
120 win_filename = unix_filename;
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
121 HeapFree(GetProcessHeap(), 0, unix_name);
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
122 HeapFree(GetProcessHeap(), 0, ntpath);
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
123 }
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
124 }
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
125
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
126 return win_filename;
34393
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
127 }
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
128
4c8bdc633648 Cosmetic: Collect together Wine port related functions.
ib
parents: 34392
diff changeset
129 /**
34392
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
130 * @brief Convert a Windows style device name into an Unix style one.
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
131 *
37065
b28b632efeef Cosmetic: Revise a few comments.
ib
parents: 36966
diff changeset
132 * @param device device name to be converted
34392
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
133 *
37065
b28b632efeef Cosmetic: Revise a few comments.
ib
parents: 36966
diff changeset
134 * @return converted device name
34392
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
135 */
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
136 static char *unix_device (char *device)
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
137 {
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
138 static char *unix_devname;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
139 HANDLE mgr;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
140 DWORD size = 1024;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
141
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
142 mgr = CreateFileW(MOUNTMGR_DOS_DEVICE_NAME, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
143
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
144 if (mgr != INVALID_HANDLE_VALUE)
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
145 {
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
146 struct mountmgr_unix_drive input;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
147 struct mountmgr_unix_drive *data;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
148
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
149 data = HeapAlloc(GetProcessHeap(), 0, size);
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
150
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
151 if (data)
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
152 {
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
153 memset(&input, 0, sizeof(input));
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
154 input.letter = *device;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
155
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
156 if (DeviceIoControl(mgr, IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE, &input, sizeof(input), data, size, NULL, NULL))
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
157 {
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
158 if (data->device_offset)
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
159 {
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
160 setdup(&unix_devname, (char *) data + data->device_offset);
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
161 device = unix_devname;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
162 }
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
163 }
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
164
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
165 HeapFree(GetProcessHeap(), 0, data);
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
166 }
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
167
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
168 CloseHandle(mgr);
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
169 }
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
170
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
171 return device;
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
172 }
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
173 #endif
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
174
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
175 /* test for playlist files, no need to specify -playlist on the commandline.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
176 * add any conceivable playlist extensions here.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 * - Erik
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
178 */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
179 int parse_filename(char *file, play_tree_t *playtree, m_config_t *mconfig, int clear)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
180 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
181 if(clear)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182 mygui->playlist->clear_playlist(mygui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
183
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
184 if(strstr(file, ".m3u") || strstr(file, ".pls"))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
185 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
186 playtree = parse_playlist_file(file);
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
187 guiPlaylist(GUI_PLAYLIST_ADD, playtree, mconfig, 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
188 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
189 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
190 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
191 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
192
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
193 /* this function gets called by the gui to update mplayer */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
194 static void guiSetEvent(int event)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
195 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
196 if(guiInfo.mpcontext)
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
197 mixer = mpctx_get_mixer(guiInfo.mpcontext);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
198
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
199 switch(event)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
200 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
201 case evPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
202 case evPlaySwitchToPause:
23148
71efd1fc20c8 add missing case value, fixes functionality when using some skins.
vayne
parents: 23147
diff changeset
203 case evPauseSwitchToPlay:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
204 uiPlay();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
206 case evPause:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
207 uiPause();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
208 break;
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26457
diff changeset
209 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
210 case evPlayDVD:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
211 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
212 static char dvdname[MAX_PATH];
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
213 guiInfo.Track = 1;
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
214 guiInfo.Chapter = 1;
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
215 guiInfo.Angle = 1;
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
216 guiInfo.MediumChanged = GUI_MEDIUM_SAME;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
217
34392
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
218 #ifdef __WINE__
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
219 // dvd_device is in the Windows style (D:\), which needs to be
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
220 // converted for MPlayer, so that it will find the device in the
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
221 // Linux filesystem.
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
222 dvd_device = unix_device(dvd_device);
e195ad9bdc59 Allow Windows style devices for Wine port.
ib
parents: 34391
diff changeset
223 #endif
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35431
diff changeset
224 uiSetFile(NULL, dvd_device, STREAMTYPE_DVD);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
225 dvdname[0] = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
226 strcat(dvdname, "DVD Movie");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 GetVolumeInformation(dvd_device, dvdname, MAX_PATH, NULL, NULL, NULL, NULL, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
228 capitalize(dvdname);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
229 mp_msg(MSGT_GPLAYER, MSGL_V, "Opening DVD %s -> %s\n", dvd_device, dvdname);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
230 mygui->playlist->clear_playlist(mygui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
231 mygui->playlist->add_track(mygui->playlist, filename, NULL, dvdname, 0);
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
232 uiPlay();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
233 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
234 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
235 #endif
34405
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
236 #ifdef CONFIG_CDDA
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
237 case evPlayCD:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
238 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
239 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
240 char track[10];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
241 char trackname[10];
34405
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
242 #ifdef CONFIG_LIBCDIO
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
243 cdrom_drive_t *cd;
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
244 #else
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
245 cdrom_drive *cd;
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
246 #endif
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
247 int i_tracks;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248
34406
2364585f3f1e Allow Windows style CDROM device names for Wine port.
ib
parents: 34405
diff changeset
249 #ifdef __WINE__
2364585f3f1e Allow Windows style CDROM device names for Wine port.
ib
parents: 34405
diff changeset
250 // cdrom_device is in the Windows style (D:\), which needs to be
2364585f3f1e Allow Windows style CDROM device names for Wine port.
ib
parents: 34405
diff changeset
251 // converted for MPlayer, so that it will find the device in the
2364585f3f1e Allow Windows style CDROM device names for Wine port.
ib
parents: 34405
diff changeset
252 // Linux filesystem.
2364585f3f1e Allow Windows style CDROM device names for Wine port.
ib
parents: 34405
diff changeset
253 cdrom_device = unix_device(cdrom_device);
2364585f3f1e Allow Windows style CDROM device names for Wine port.
ib
parents: 34405
diff changeset
254 #endif
34405
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
255 cd = cdda_identify(cdrom_device, 0, NULL);
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
256 if (cd)
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
257 {
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
258 if (cdda_open(cd) != 0)
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
259 {
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
260 cdda_close(cd);
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
261 cd = NULL;
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
262 }
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
263 }
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
264 if(!cd)
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
265 {
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
266 printf("Couldn't find a driver.\n");
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
267 break;
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
268 }
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
269 i_tracks = cdda_tracks(cd);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 mygui->playlist->clear_playlist(mygui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
272 for(i=0;i<i_tracks;i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
273 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
274 sprintf(track, "cdda://%d", i+1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
275 sprintf(trackname, "Track %d", i+1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
276 mygui->playlist->add_track(mygui->playlist, track, NULL, trackname, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
277 }
34405
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34400
diff changeset
278 cdda_close(cd);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 mygui->startplay(mygui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
280 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283 case evFullScreen:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
284 mp_input_queue_cmd(mp_input_parse_cmd("vo_fullscreen"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
285 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286 case evExit:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
287 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
288 /* We are asking mplayer to exit, later it will ask us after uninit is made
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
289 this should be the only safe way to quit */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
290 mygui->activewidget = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 mp_input_queue_cmd(mp_input_parse_cmd("quit"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
293 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
294 case evStop:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
295 if(guiInfo.Playing)
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
296 gui(GUI_SET_STATE, (void *) GUI_STOP);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
297 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
298 case evSetMoviePosition:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
299 {
36905
bff7c54aa8f1 Increase arithmetic precision.
ib
parents: 36902
diff changeset
300 rel_seek_secs = guiInfo.Position / 100.0;
35431
20c90da2ba0d Use symbolic constants to set abs_seek_pos.
ib
parents: 35430
diff changeset
301 abs_seek_pos = SEEK_ABSOLUTE | SEEK_FACTOR;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
304 case evForward10sec:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
305 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
306 rel_seek_secs = 10.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
307 abs_seek_pos = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
308 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
309 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 case evBackward10sec:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
312 rel_seek_secs = -10.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
313 abs_seek_pos = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
315 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
316 case evSetBalance:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
317 case evSetVolume:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319 float l,r;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
321 if (guiInfo.Playing == GUI_STOP)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
323
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
324 if (guiInfo.Balance == 50.0f)
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
325 mixer_setvolume(mixer, guiInfo.Volume, guiInfo.Volume);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326
36905
bff7c54aa8f1 Increase arithmetic precision.
ib
parents: 36902
diff changeset
327 l = guiInfo.Volume * (100.0 - guiInfo.Balance) / 50.0;
bff7c54aa8f1 Increase arithmetic precision.
ib
parents: 36902
diff changeset
328 r = guiInfo.Volume * guiInfo.Balance / 50.0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
329
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
330 if (l > guiInfo.Volume) l=guiInfo.Volume;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
331 if (r > guiInfo.Volume) r=guiInfo.Volume;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
332 mixer_setvolume(mixer, l, r);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
333 /* Check for balance support on mixer - there is a better way ?? */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
334 if (r != l)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
335 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
336 mixer_getvolume(mixer, &l, &r);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
337 if (r == l)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
338 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
339 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] Mixer doesn't support balanced audio\n");
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
340 mixer_setvolume(mixer, guiInfo.Volume, guiInfo.Volume);
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
341 guiInfo.Balance = 50.0f;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
342 }
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 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
346 case evMute:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
347 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
348 mp_cmd_t * cmd = calloc(1, sizeof(*cmd));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
349 cmd->id=MP_CMD_MUTE;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
350 cmd->name=strdup("mute");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
351 mp_input_queue_cmd(cmd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
352 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
353 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
354 case evLoadPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
355 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
356 switch(guiInfo.StreamType)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
357 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
358 case STREAMTYPE_DVD:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
359 {
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
360 guiInfo.MediumChanged = GUI_MEDIUM_SAME;
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
361 gui(GUI_SET_STATE, (void *) GUI_PLAY);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
362 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
363 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
364 default:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
365 {
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
366 guiInfo.MediumChanged = GUI_MEDIUM_NEW;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
367 update_playlistwindow();
35430
2d55540614a9 Move uiProcessNextInPlaylist to the guiInfo structure.
ib
parents: 35376
diff changeset
368 guiInfo.PlaylistNext = guiInfo.Playing? 0 : 1;
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
369 gui(GUI_SET_STATE, (void *) GUI_STOP);
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
370 gui(GUI_SET_STATE, (void *) GUI_PLAY);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
371 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
372 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
373 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
374 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
375 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
376 case evNext:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
377 uiNext();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
378 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
379 case evPrev:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
380 uiPrev();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
381 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
382 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
383 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
384
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
385 void uiPlay( void )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
386 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
387 if((!guiInfo.Filename ) || (guiInfo.Filename[0] == 0))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
388 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
389
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
390 if(guiInfo.Playing > GUI_STOP)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
391 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
392 uiPause();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
393 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
394 }
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
395 guiInfo.MediumChanged = GUI_MEDIUM_NEW;
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
396 gui(GUI_SET_STATE, (void *) GUI_PLAY);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
397 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
398
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
399 void uiPause( void )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
400 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
401 if(!guiInfo.Playing) return;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
402
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
403 if(guiInfo.Playing == GUI_PLAY)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
404 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
405 mp_cmd_t * cmd = calloc(1, sizeof(*cmd));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
406 cmd->id=MP_CMD_PAUSE;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
407 cmd->name=strdup("pause");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
408 mp_input_queue_cmd(cmd);
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
409 } else guiInfo.Playing = GUI_PLAY;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
410 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
411
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
412 void uiNext(void)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
413 {
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
414 if(guiInfo.Playing == GUI_PAUSE) return;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
415 switch(guiInfo.StreamType)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
416 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
417 case STREAMTYPE_DVD:
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
418 if(guiInfo.Chapter == (guiInfo.Chapters - 1))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
419 return;
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
420 guiInfo.Chapter++;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
421 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
422 default:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
423 if(mygui->playlist->current == (mygui->playlist->trackcount - 1))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
424 return;
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35431
diff changeset
425 uiSetFile(NULL, mygui->playlist->tracks[(mygui->playlist->current)++]->filename,
34075
b9cab6c0992c Restrict use of STREAMTYPE_STREAM in Win32 GUI.
ib
parents: 34073
diff changeset
426 STREAMTYPE_FILE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
427 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
428 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
429 mygui->startplay(mygui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
430 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
431
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
432 void uiPrev(void)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
433 {
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
434 if(guiInfo.Playing == GUI_PAUSE) return;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
435 switch(guiInfo.StreamType)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
436 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
437 case STREAMTYPE_DVD:
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
438 if(guiInfo.Chapter == 1)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
439 return;
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
440 guiInfo.Chapter--;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
441 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
442 default:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
443 if(mygui->playlist->current == 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
444 return;
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35431
diff changeset
445 uiSetFile(NULL, mygui->playlist->tracks[(mygui->playlist->current)--]->filename,
34075
b9cab6c0992c Restrict use of STREAMTYPE_STREAM in Win32 GUI.
ib
parents: 34073
diff changeset
446 STREAMTYPE_FILE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
447 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
448 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
449 mygui->startplay(mygui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
450 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
451
35968
9474726062ef Change parameter declaration to const.
ib
parents: 35528
diff changeset
452 void uiSetFile(const char *dir, const char *name, int type)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
453 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
454 if(!name) return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
455 if(!dir)
33740
2c02269701bd Remove macros guiSetFilename() and guiSetDF() from interface.h.
ib
parents: 33737
diff changeset
456 setdup(&guiInfo.Filename, name);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
457 else
33740
2c02269701bd Remove macros guiSetFilename() and guiSetDF() from interface.h.
ib
parents: 33737
diff changeset
458 setddup(&guiInfo.Filename, dir, name);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
459
34064
54becc464788 Set MPlayer filename in uiSetFileName().
ib
parents: 34058
diff changeset
460 filename = guiInfo.Filename;
34115
3d7ee643b110 Port to Wine.
ib
parents: 34084
diff changeset
461 #ifdef __WINE__
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
462 // When the GUI receives the files to be played in guiPlaylist(),
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
463 // it calls import_file_into_gui() where the call of
34127
98f6d11e2ff3 Revise comment on filename conversion in the Wine port.
ib
parents: 34126
diff changeset
464 // Wine's GetFullPathName() converts each file name into the Windows style
98f6d11e2ff3 Revise comment on filename conversion in the Wine port.
ib
parents: 34126
diff changeset
465 // (C:\path\to\file), which needs to be reconverted for MPlayer, so that
98f6d11e2ff3 Revise comment on filename conversion in the Wine port.
ib
parents: 34126
diff changeset
466 // it will find the filename in the Linux filesystem.
34123
178c5660c090 Cosmetic: Change comment.
ib
parents: 34117
diff changeset
467 filename = unix_name(filename);
34115
3d7ee643b110 Port to Wine.
ib
parents: 34084
diff changeset
468 #endif
34399
f2c03009068d Don't explicitly set stream type if the type doesn't change.
ib
parents: 34393
diff changeset
469
f2c03009068d Don't explicitly set stream type if the type doesn't change.
ib
parents: 34393
diff changeset
470 if (type != SAME_STREAMTYPE)
34400
19b68f388735 Cosmetic: Adjust indent.
ib
parents: 34399
diff changeset
471 guiInfo.StreamType = type;
34064
54becc464788 Set MPlayer filename in uiSetFileName().
ib
parents: 34058
diff changeset
472
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33894
diff changeset
473 nfree(guiInfo.AudioFilename);
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33894
diff changeset
474 nfree(guiInfo.SubtitleFilename);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
475 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
476
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
477 void uiFullScreen( void )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
478 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
479 if(!guiInfo.sh_video) return;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
480
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
481 if(video_window)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
482 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
483 if(!fullscreen && IsWindowVisible(mygui->videowindow) && !IsIconic(mygui->videowindow))
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
484 GetWindowRect(mygui->videowindow, &old_rect);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
485
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
486 if(fullscreen)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
487 {
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
488 fullscreen = FALSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
489 style = WS_OVERLAPPEDWINDOW | WS_SIZEBOX;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
490 } else {
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
491 fullscreen = TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
492 style = WS_VISIBLE | WS_POPUP;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
493 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
494 SetWindowLong(mygui->videowindow, GWL_STYLE, style);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
495 update_videowindow();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
496 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
497 video_out->control(VOCTRL_FULLSCREEN, 0);
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
498 if(video_window) ShowWindow(mygui->videowindow, SW_SHOW);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
499 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
500
24992
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
501 static unsigned __stdcall GuiThread(void* param)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
502 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
503 MSG msg;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
504
36848
92e53547406d Silence Win32 GUI's "warning: unused parameter".
ib
parents: 36779
diff changeset
505 (void) param;
92e53547406d Silence Win32 GUI's "warning: unused parameter".
ib
parents: 36779
diff changeset
506
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
507 if(!skinName) skinName = strdup("Blue");
33781
cdd4fc0616b6 Fix memory leak in the Win32 GUI.
ib
parents: 33780
diff changeset
508 if(!mygui) mygui = create_gui(get_path("skins"), guiSetEvent);
30558
71acebef19ec Fix win32 gui compilation.
reimar
parents: 27391
diff changeset
509 if(!mygui) exit_player(EXIT_ERROR);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
510
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
511 if(autosync && autosync != gtkAutoSync)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
512 {
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
513 gtkAutoSyncOn = TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
514 gtkAutoSync = autosync;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
515 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
516
24992
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
517 while(GetMessage(&msg, NULL, 0, 0))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
518 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
519 TranslateMessage(&msg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
520 DispatchMessage(&msg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
521 }
23078
f81cd5be161b spelling cosmetics
diego
parents: 23077
diff changeset
522 fprintf(stderr, "[GUI] GUI thread terminated.\n");
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
523 fflush(stderr);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
524 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
525 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
526
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
527 void guiInit(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
528 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
529 memset(&guiInfo, 0, sizeof(guiInfo));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
530 /* Create The gui thread */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
531 if (!mygui)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
532 {
33358
c9c9f015619b Don't use CreateThread() unconditionally.
ib
parents: 33303
diff changeset
533 hThread = _beginthreadex(NULL, 0, GuiThread, NULL, 0, &threadId);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
534 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] Creating GUI Thread 0x%04x\n", threadId);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
535 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
536
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
537 /* Wait until the gui is created */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
538 while(!mygui) Sleep(100);
23078
f81cd5be161b spelling cosmetics
diego
parents: 23077
diff changeset
539 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] GUI thread started.\n");
37151
c63629427fde Apply skin defaults in Win32 GUI.
ib
parents: 37096
diff changeset
540
c63629427fde Apply skin defaults in Win32 GUI.
ib
parents: 37096
diff changeset
541 guiInfo.Volume = mygui->default_volume;
c63629427fde Apply skin defaults in Win32 GUI.
ib
parents: 37096
diff changeset
542 guiInfo.Balance = mygui->default_balance;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
543 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
544
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
545 void guiDone(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
546 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
547 if(mygui)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
548 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
549 fprintf(stderr, "[GUI] Closed by main mplayer window\n");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
550 fflush(stderr);
24992
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
551 PostThreadMessage(threadId, WM_QUIT, 0, 0);
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
552 WaitForSingleObject(hThread, INFINITE);
5701e23ebcb4 Better handling of win32 GUI thread:
zuxy
parents: 23148
diff changeset
553 CloseHandle(hThread);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
554 mygui->uninit(mygui);
33770
6134493605c6 Use macro nfree() in Win32 GUI code.
ib
parents: 33761
diff changeset
555 nfree(mygui);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
556 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
557 /* Remove tray icon */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
558 Shell_NotifyIcon(NIM_DELETE, &nid);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
559 cfg_write();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
560 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
561
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
562 /* this function gets called by mplayer to update the gui */
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33781
diff changeset
563 int gui(int what, void *data)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
564 {
36779
f5320e43d458 Simplify code.
ib
parents: 36775
diff changeset
565 int idata = (intptr_t) data;
36948
a5537f70df8e Change assignment of stream in Win32 GUI.
ib
parents: 36946
diff changeset
566 stream_t *stream;
36952
60361776b592 Add variable sh_audio in Win32 GUI.
ib
parents: 36951
diff changeset
567 sh_audio_t *sh_audio;
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26457
diff changeset
568 #ifdef CONFIG_DVDREAD
33730
b4c64f168b29 Remove gui() GMP_SET_DVD.
ib
parents: 33726
diff changeset
569 dvd_priv_t *dvdp;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
570 #endif
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
571 if(!mygui || !mygui->skin) return FALSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
572
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
573 if(guiInfo.mpcontext)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
574 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
575 audio_out = mpctx_get_audio_out(guiInfo.mpcontext);
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
576 video_out = mpctx_get_video_out(guiInfo.mpcontext);
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
577 mixer = mpctx_get_mixer(guiInfo.mpcontext);
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
578 playtree = mpctx_get_playtree_iter(guiInfo.mpcontext);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
579 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
580
33726
a800f30c40d1 Cosmetic: Rename gui() parameter.
ib
parents: 33725
diff changeset
581 switch (what)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
582 {
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
583 case GUI_PREPARE:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
584 {
34052
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
585 audio_id = -1;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
586 video_id = -1;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
587 dvdsub_id = -1;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
588 vobsub_id = -1;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
589 stream_cache_size = -1;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
590 autosync = 0;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
591 force_fps = 0;
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
592 if(!mygui->playlist->tracks) return FALSE;
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
593 switch(guiInfo.StreamType)
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
594 {
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
595 case STREAMTYPE_FILE:
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
596 case STREAMTYPE_STREAM:
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35431
diff changeset
597 uiSetFile(NULL, mygui->playlist->tracks[mygui->playlist->current]->filename, SAME_STREAMTYPE);
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
598 guiInfo.Track = mygui->playlist->current + 1;
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
599 break;
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
600 case STREAMTYPE_DVD:
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
601 {
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
602 char tmp[512];
35168
627bdd8915ca Fix building GUI without DVD support.
ib
parents: 35159
diff changeset
603 #ifdef CONFIG_DVDREAD
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
604 dvd_chapter = guiInfo.Chapter;
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
605 dvd_angle = guiInfo.Angle;
35168
627bdd8915ca Fix building GUI without DVD support.
ib
parents: 35159
diff changeset
606 #endif
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
607 sprintf(tmp,"dvd://%d", guiInfo.Track);
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35431
diff changeset
608 uiSetFile(NULL, tmp, SAME_STREAMTYPE);
34391
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
609 break;
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
610 }
6b558b00939a Fix Win32 GUI DVD playback.
ib
parents: 34339
diff changeset
611 }
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
612 guiInfo.VideoWindow = TRUE;
34610
4ff933a89818 Cosmetic: Rename functions in list.c.
ib
parents: 34454
diff changeset
613 if(gtkAONorm) listRepl(&af_cfg.list, "volnorm", "volnorm");
34052
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
614 if(gtkAOExtraStereo)
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
615 {
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
616 char *name = malloc(12 + 20 + 1);
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
617 snprintf(name, 12 + 20, "extrastereo=%f", gtkAOExtraStereoMul);
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
618 name[12 + 20] = 0;
34610
4ff933a89818 Cosmetic: Rename functions in list.c.
ib
parents: 34454
diff changeset
619 listRepl(&af_cfg.list, "extrastereo", name);
34052
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
620 free(name);
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
621 }
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
622 if(gtkCacheOn) stream_cache_size = gtkCacheSize;
9f19a87d2062 Remove gui() instruction GUI_SET_FILE.
ib
parents: 33902
diff changeset
623 if(gtkAutoSyncOn) autosync = gtkAutoSync;
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
624 guiInfo.MediumChanged = 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
625 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
626 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
627 case GUI_SET_AUDIO:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
628 {
36952
60361776b592 Add variable sh_audio in Win32 GUI.
ib
parents: 36951
diff changeset
629 sh_audio = data;
37091
ec312b34e302 Fix segmentation fault.
ib
parents: 37065
diff changeset
630 if (sh_audio)
ec312b34e302 Fix segmentation fault.
ib
parents: 37065
diff changeset
631 {
37092
4eeb8a38a971 Simplify code.
ib
parents: 37091
diff changeset
632 guiInfo.AudioChannels = sh_audio->channels;
37094
09c3f76bc780 Remove unnecessary variable.
ib
parents: 37093
diff changeset
633 guiInfo.AudioPassthrough = (gstrcmp(sh_audio->ad_driver->info->short_name, "hwac3") == 0);
37096
8643426b12de Simplify code.
ib
parents: 37094
diff changeset
634
8643426b12de Simplify code.
ib
parents: 37094
diff changeset
635 if (!guiInfo.sh_video) guiInfo.VideoWindow = FALSE;
37091
ec312b34e302 Fix segmentation fault.
ib
parents: 37065
diff changeset
636 }
ec312b34e302 Fix segmentation fault.
ib
parents: 37065
diff changeset
637 else
37092
4eeb8a38a971 Simplify code.
ib
parents: 37091
diff changeset
638 {
4eeb8a38a971 Simplify code.
ib
parents: 37091
diff changeset
639 guiInfo.AudioChannels = 0;
37091
ec312b34e302 Fix segmentation fault.
ib
parents: 37065
diff changeset
640 guiInfo.AudioPassthrough = FALSE;
37092
4eeb8a38a971 Simplify code.
ib
parents: 37091
diff changeset
641 }
37151
c63629427fde Apply skin defaults in Win32 GUI.
ib
parents: 37096
diff changeset
642 guiSetEvent(evSetVolume);
c63629427fde Apply skin defaults in Win32 GUI.
ib
parents: 37096
diff changeset
643 guiSetEvent(evSetBalance);
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
644 if(IsWindowVisible(mygui->videowindow) && !guiInfo.VideoWindow)
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
645 ShowWindow(mygui->videowindow, SW_HIDE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
646 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
647 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
648 case GUI_SET_CONTEXT:
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33781
diff changeset
649 guiInfo.mpcontext = data;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
650 break;
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
651 case GUI_SET_VIDEO:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
652 {
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33781
diff changeset
653 guiInfo.sh_video = data;
36950
277be9e37ada Change variable in if statement in Win32 GUI.
ib
parents: 36949
diff changeset
654 if (guiInfo.sh_video)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
655 {
36951
bd4f00c044a9 Remove unnecessary variable in Win32 GUI.
ib
parents: 36950
diff changeset
656 codecname = guiInfo.sh_video->codec->name;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
657
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
658 /* we have video, show the video window */
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
659 if(!IsWindowVisible(mygui->videowindow) || IsIconic(mygui->videowindow))
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
660 ShowWindow(mygui->videowindow, SW_SHOWNORMAL);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
661 if(WinID == -1)
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
662 update_videowindow();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
663
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
664 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
665 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
666 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
667 case GUI_SETUP_VIDEO_WINDOW:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
668 {
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33897
diff changeset
669 guiInfo.VideoWidth = vo_dwidth;
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33897
diff changeset
670 guiInfo.VideoHeight = vo_dheight;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
671
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
672 video_aspect = (float)guiInfo.VideoWidth/guiInfo.VideoHeight;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
673 if(WinID != -1)
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
674 update_videowindow();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
675 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
676 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
677 case GUI_SET_STREAM:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
678 {
36948
a5537f70df8e Change assignment of stream in Win32 GUI.
ib
parents: 36946
diff changeset
679 stream = data;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
680 guiInfo.StreamType = stream->type;
36949
6593a01b08c2 Change variable in switch statement in Win32 GUI.
ib
parents: 36948
diff changeset
681 switch(guiInfo.StreamType)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
682 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
683 case STREAMTYPE_DVD:
34451
19277315b8c6 Retrieve DVD's titles, chapters and angles by stream control commands.
ib
parents: 34406
diff changeset
684 guiInfo.Tracks = 0;
19277315b8c6 Retrieve DVD's titles, chapters and angles by stream control commands.
ib
parents: 34406
diff changeset
685 stream_control(stream, STREAM_CTRL_GET_NUM_TITLES, &guiInfo.Tracks);
19277315b8c6 Retrieve DVD's titles, chapters and angles by stream control commands.
ib
parents: 34406
diff changeset
686 guiInfo.Chapters = 0;
19277315b8c6 Retrieve DVD's titles, chapters and angles by stream control commands.
ib
parents: 34406
diff changeset
687 stream_control(stream, STREAM_CTRL_GET_NUM_CHAPTERS, &guiInfo.Chapters);
19277315b8c6 Retrieve DVD's titles, chapters and angles by stream control commands.
ib
parents: 34406
diff changeset
688 guiInfo.Angles = 0;
19277315b8c6 Retrieve DVD's titles, chapters and angles by stream control commands.
ib
parents: 34406
diff changeset
689 stream_control(stream, STREAM_CTRL_GET_NUM_ANGLES, &guiInfo.Angles);
36430
08f21a09a545 Don't discard current DVD track information without cause.
ib
parents: 36294
diff changeset
690 if (stream_control(stream, STREAM_CTRL_GET_CURRENT_TITLE, &guiInfo.Track) == STREAM_OK)
08f21a09a545 Don't discard current DVD track information without cause.
ib
parents: 36294
diff changeset
691 guiInfo.Track++;
35168
627bdd8915ca Fix building GUI without DVD support.
ib
parents: 35159
diff changeset
692 // guiInfo.Chapter will be set by mplayer
627bdd8915ca Fix building GUI without DVD support.
ib
parents: 35159
diff changeset
693 guiInfo.Angle = 1;
627bdd8915ca Fix building GUI without DVD support.
ib
parents: 35159
diff changeset
694 stream_control(stream, STREAM_CTRL_GET_ANGLE, &guiInfo.Angle);
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34451
diff changeset
695 #ifdef CONFIG_DVDREAD
33730
b4c64f168b29 Remove gui() GMP_SET_DVD.
ib
parents: 33726
diff changeset
696 dvdp = stream->priv;
33902
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
697 guiInfo.AudioStreams = dvdp->nr_of_channels;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
698 memcpy(guiInfo.AudioStream, dvdp->audio_streams, sizeof(dvdp->audio_streams));
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
699 guiInfo.Subtitles = dvdp->nr_of_subtitles;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
700 memcpy(guiInfo.Subtitle, dvdp->subtitles, sizeof(dvdp->subtitles));
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34451
diff changeset
701 #endif
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
702 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
703 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
704 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
705 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
706 case GUI_REDRAW:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
707 mygui->updatedisplay(mygui, mygui->mainwindow);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
708 break;
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
709 case GUI_SET_STATE:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
710 {
36779
f5320e43d458 Simplify code.
ib
parents: 36775
diff changeset
711 guiInfo.Playing = idata;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
712 switch (guiInfo.Playing)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
713 {
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
714 case GUI_PLAY:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
715 {
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
716 guiInfo.Playing = GUI_PLAY;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
717 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
718 }
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
719 case GUI_STOP:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
720 {
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
721 guiInfo.Playing = GUI_STOP;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
722 if(movie_aspect >= 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
723 movie_aspect = -1;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
724 update_videowindow();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
725 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
726 }
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
727 case GUI_PAUSE:
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
728 guiInfo.Playing = GUI_PAUSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
729 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
730 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
731 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
732 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
733 case GUI_RUN_COMMAND:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
734 {
36779
f5320e43d458 Simplify code.
ib
parents: 36775
diff changeset
735 mp_msg(MSGT_GPLAYER,MSGL_V, "cmd: %d\n", idata);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
736 /* MPlayer asks us to quit */
36779
f5320e43d458 Simplify code.
ib
parents: 36775
diff changeset
737 switch(idata)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
738 {
31312
0b7792622c88 Remove Gui-specific slave commands and associated key-bindings and other code.
reimar
parents: 30901
diff changeset
739 case MP_CMD_VO_FULLSCREEN:
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
740 uiFullScreen();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
741 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
742 case MP_CMD_QUIT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
743 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
744 mygui->uninit(mygui);
33770
6134493605c6 Use macro nfree() in Win32 GUI code.
ib
parents: 33761
diff changeset
745 nfree(mygui);
30558
71acebef19ec Fix win32 gui compilation.
reimar
parents: 27391
diff changeset
746 exit_player(EXIT_QUIT);
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
747 return TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
748 }
33696
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
749 case MP_CMD_PLAY_TREE_STEP:
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
750 guiSetEvent(evNext);
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
751 break;
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
752 case -MP_CMD_PLAY_TREE_STEP:
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
753 guiSetEvent(evPrev);
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
754 break;
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
755 case MP_CMD_STOP:
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
756 guiSetEvent(evStop);
24d919fb6778 Don't let MPlayer directly call user interface functions.
ib
parents: 33695
diff changeset
757 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
758 default:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
759 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
760 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
761 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
762 }
34339
f05c75392897 Enable gui slave commands.
ib
parents: 34315
diff changeset
763 case GUI_RUN_MESSAGE:
f05c75392897 Enable gui slave commands.
ib
parents: 34315
diff changeset
764 break;
36946
cbaa08dbc9aa Cosmetic: Rename GUI_SET_MIXER GUI_SET_VOLUME_BALANCE.
ib
parents: 36940
diff changeset
765 case GUI_SET_VOLUME_BALANCE:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
766 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
767 if(audio_out)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
768 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
769 /* Some audio_out drivers do not support balance e.g. dsound */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
770 /* FIXME this algo is not correct */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
771 float l, r;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
772 mixer_getvolume(mixer, &l, &r);
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
773 guiInfo.Volume = (r > l ? r : l); /* max(r,l) */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
774 if (r != l)
36905
bff7c54aa8f1 Increase arithmetic precision.
ib
parents: 36902
diff changeset
775 guiInfo.Balance = ((r-l) + 100.0) * 0.5;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
776 else
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
777 guiInfo.Balance = 50.0f;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
778 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
779 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
780 }
36940
6410fe917eac Cosmetic: Rename symbolic constant GUI_END_FILE GUI_END_PLAY.
ib
parents: 36937
diff changeset
781 case GUI_END_PLAY:
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
782 {
35330
5fbd422b355e Fix segmentation fault after end of file playback.
ib
parents: 35170
diff changeset
783 guiInfo.sh_video = NULL;
5fbd422b355e Fix segmentation fault after end of file playback.
ib
parents: 35170
diff changeset
784
35430
2d55540614a9 Move uiProcessNextInPlaylist to the guiInfo structure.
ib
parents: 35376
diff changeset
785 if(!guiInfo.PlaylistNext && guiInfo.Playing)
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
786 {
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
787 guiInfo.PlaylistNext = TRUE;
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
788 break;
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
789 }
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
790
35430
2d55540614a9 Move uiProcessNextInPlaylist to the guiInfo structure.
ib
parents: 35376
diff changeset
791 if(guiInfo.PlaylistNext && guiInfo.Playing &&
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
792 (mygui->playlist->current < (mygui->playlist->trackcount - 1)) &&
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
793 guiInfo.StreamType != STREAMTYPE_DVD &&
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
794 guiInfo.StreamType != STREAMTYPE_DVDNAV)
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
795 {
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
796 /* we've finished this file, reset the aspect */
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
797 if(movie_aspect >= 0)
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
798 movie_aspect = -1;
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
799
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
800 guiInfo.PlaylistNext = TRUE;
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
801 guiInfo.MediumChanged = GUI_MEDIUM_NEW;
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35431
diff changeset
802 uiSetFile(NULL, mygui->playlist->tracks[(mygui->playlist->current)++]->filename, STREAMTYPE_FILE);
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
803 //sprintf(guiInfo.Filename, mygui->playlist->tracks[(mygui->playlist->current)++]->filename);
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
804 }
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
805
36937
ad939f49bb28 Cosmetic: Rename guiInfo member NewPlay MediumChanged.
ib
parents: 36936
diff changeset
806 if(guiInfo.MediumChanged == GUI_MEDIUM_NEW)
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
807 break;
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
808
33897
e0d211c62cf7 Cosmetic: Rename some guiInfo members.
ib
parents: 33894
diff changeset
809 guiInfo.ElapsedTime = 0;
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
810 guiInfo.Position = 0;
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
811 guiInfo.AudioChannels = 0;
36966
ef9dea4785bc Detect audio AC3/DTS pass-through S/PDIF.
ib
parents: 36953
diff changeset
812 guiInfo.AudioPassthrough = FALSE;
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
813
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
814 guiInfo.Track = 1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
815 guiInfo.Chapter = 1;
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
816 guiInfo.Angle = 1;
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
817
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
818 if (mygui->playlist->current == (mygui->playlist->trackcount - 1))
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
819 mygui->playlist->current = 0;
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
820
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
821 fullscreen = FALSE;
34999
b0133d910683 Add parentheses to avoid compiler warning.
ib
parents: 34996
diff changeset
822 if(style == (WS_VISIBLE | WS_POPUP))
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
823 {
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
824 style = WS_OVERLAPPEDWINDOW | WS_SIZEBOX;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
825 SetWindowLong(mygui->videowindow, GWL_STYLE, style);
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
826 }
33731
81f71d910333 Cosmetic: Change prefix for symbolic constants from GMP to GUI.
ib
parents: 33730
diff changeset
827 gui(GUI_SET_STATE, (void *) GUI_STOP);
33694
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
828 break;
45553d0f65c6 Don't let MPlayer directly call user interface functions.
ib
parents: 33691
diff changeset
829 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
830 default:
33726
a800f30c40d1 Cosmetic: Rename gui() parameter.
ib
parents: 33725
diff changeset
831 mp_msg(MSGT_GPLAYER, MSGL_ERR, "[GUI] GOT UNHANDLED EVENT %i\n", what);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
832 }
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
833 return TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
834 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
835
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
836 /* This function adds/inserts one file into the gui playlist */
35376
02006c5b3b30 Move add_to_gui_playlist() to util/list.c.
ib
parents: 35374
diff changeset
837 static int import_file_into_gui(char *pathname, int insert)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
838 {
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
839 char file[MAX_PATH];
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
840 char *filepart = file;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
841
36848
92e53547406d Silence Win32 GUI's "warning: unused parameter".
ib
parents: 36779
diff changeset
842 (void) insert; // NOTE TO MYSELF: this isn't yet implemented
92e53547406d Silence Win32 GUI's "warning: unused parameter".
ib
parents: 36779
diff changeset
843
35376
02006c5b3b30 Move add_to_gui_playlist() to util/list.c.
ib
parents: 35374
diff changeset
844 if (strstr(pathname, "://"))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
845 {
35376
02006c5b3b30 Move add_to_gui_playlist() to util/list.c.
ib
parents: 35374
diff changeset
846 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] Adding special %s\n", pathname);
02006c5b3b30 Move add_to_gui_playlist() to util/list.c.
ib
parents: 35374
diff changeset
847 mygui->playlist->add_track(mygui->playlist, pathname, NULL, NULL, 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
848 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
849 }
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
850 if (GetFullPathName(pathname, MAX_PATH, file, &filepart))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
851 {
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
852 if (!(GetFileAttributes(file) & FILE_ATTRIBUTE_DIRECTORY))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
853 {
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
854 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] Adding filename: %s - fullpath: %s\n", filepart, file);
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
855 mygui->playlist->add_track(mygui->playlist, file, NULL, filepart, 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
856 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
857 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
858 else
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35520
diff changeset
859 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] Cannot add %s\n", file);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
860 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
861
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
862 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
863 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
864
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35511
diff changeset
865 int guiPlaylist (int what, play_tree_t *playtree, m_config_t *config, int enqueue)
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
866 {
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35511
diff changeset
867 play_tree_iter_t *pt_iter = NULL;
35520
ecbaf301748f Don't unnecessarily use global MPlayer variable filename in Win32 GUI.
ib
parents: 35512
diff changeset
868 char *file;
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
869 int added = FALSE;
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
870
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
871 switch (what)
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
872 {
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
873 /* This function imports the initial playtree (based on cmd-line files) into the gui playlist
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
874 by either:
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
875 - overwriting gui pl (enqueue=0) */
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
876 case GUI_PLAYLIST_INIT:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
877
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
878 if(!mygui) guiInit();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
879
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35511
diff changeset
880 if((pt_iter = pt_iter_create(&playtree, config)))
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
881 {
35520
ecbaf301748f Don't unnecessarily use global MPlayer variable filename in Win32 GUI.
ib
parents: 35512
diff changeset
882 while ((file = pt_iter_get_next_file(pt_iter)) != NULL)
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
883 {
35520
ecbaf301748f Don't unnecessarily use global MPlayer variable filename in Win32 GUI.
ib
parents: 35512
diff changeset
884 if (parse_filename(file, playtree, config, 0))
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
885 added = TRUE;
35520
ecbaf301748f Don't unnecessarily use global MPlayer variable filename in Win32 GUI.
ib
parents: 35512
diff changeset
886 else if (import_file_into_gui(file, 0)) /* Add it to end of list */
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
887 added = TRUE;
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
888 }
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
889 }
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
890 guiInfo.PlaylistNext = TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
891
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
892 if (added)
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
893 {
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
894 mygui->playlist->current = 0;
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
895 uiSetFile(NULL, mygui->playlist->tracks[0]->filename, STREAMTYPE_FILE);
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
896 }
34084
b77b5e7bee72 Enable option "enqueue" for Win32 GUI.
ib
parents: 34075
diff changeset
897
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
898 if (enqueue) filename = NULL;
34084
b77b5e7bee72 Enable option "enqueue" for Win32 GUI.
ib
parents: 34075
diff changeset
899
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
900 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
901
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
902 /* This function imports and inserts an playtree, that is created "on the fly", for example by
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
903 parsing some MOV-Reference-File; or by loading an playlist with "File Open"
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
904 The file which contained the playlist is thereby replaced with it's contents. */
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
905 case GUI_PLAYLIST_ADD:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
906
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35511
diff changeset
907 if((pt_iter = pt_iter_create(&playtree, config)))
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
908 {
35520
ecbaf301748f Don't unnecessarily use global MPlayer variable filename in Win32 GUI.
ib
parents: 35512
diff changeset
909 while ((file = pt_iter_get_next_file(pt_iter)) != NULL)
ecbaf301748f Don't unnecessarily use global MPlayer variable filename in Win32 GUI.
ib
parents: 35512
diff changeset
910 if (import_file_into_gui(file, 1)) /* insert it into the list and set plCurrent = new item */
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
911 added = TRUE;
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35511
diff changeset
912 pt_iter_destroy(&pt_iter);
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
913 }
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
914
35511
6616645f91ea Cosmetic: Adjust indent.
ib
parents: 35510
diff changeset
915 break;
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
916 }
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35502
diff changeset
917
35502
381cd31289f2 Cosmetic: Choose better variable name in Win32 GUI.
ib
parents: 35501
diff changeset
918 return added;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
919 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
920
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
921 static int update_videowindow(void)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
922 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
923 int x,y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
924 RECT rd;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
925 WINDOWPOS wp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
926
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
927 if(!video_window)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
928 {
33567
251a48bca536 Implement uiStop and remove outdated comment.
reimar
parents: 33557
diff changeset
929 WinID = -1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
930
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
931 if(IsWindowVisible(mygui->videowindow) && guiInfo.sh_video && guiInfo.Playing)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
932 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
933 ShowWindow(mygui->videowindow, SW_HIDE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
934 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
935 }
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33897
diff changeset
936 else if(!guiInfo.VideoWindow)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
937 return 0;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
938 else ShowWindow(mygui->videowindow, SW_SHOW);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
939 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
940
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
941 /* we've come out of fullscreen at the end of file */
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
942 if((!IsWindowVisible(mygui->videowindow) || IsIconic(mygui->videowindow)) && guiInfo.VideoWindow)
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
943 ShowWindow(mygui->videowindow, SW_SHOWNORMAL);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
944
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
945 /* get our current window coordinates */
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
946 GetWindowRect(mygui->videowindow, &rd);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
947
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
948 x = rd.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
949 y = rd.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
950
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
951 /* restore video window position when coming out of fullscreen */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
952 if(x <= 0) x = old_rect.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
953 if(y <= 0) y = old_rect.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
954
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33358
diff changeset
955 if(!guiInfo.Playing)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
956 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
957 window *desc = NULL;
34996
ebcc17a3c165 Fix compiler warnings (comparison between signed and unsigned).
ib
parents: 34697
diff changeset
958 unsigned int i;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
959
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
960 for (i=0; i<mygui->skin->windowcount; i++)
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
961 if(mygui->skin->windows[i]->type == wiVideo)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
962 desc = mygui->skin->windows[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
963
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
964 rd.right = rd.left+desc->base->bitmap[0]->width;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
965 rd.bottom = rd.top+desc->base->bitmap[0]->height;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
966 video_aspect = (float)(rd.right-rd.left)/(rd.bottom-rd.top);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
967 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
968 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
969 {
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33897
diff changeset
970 rd.right = rd.left+guiInfo.VideoWidth;
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33897
diff changeset
971 rd.bottom = rd.top+guiInfo.VideoHeight;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
972
36906
7d8f27be5796 Make value explicitly type float.
ib
parents: 36905
diff changeset
973 if (movie_aspect > 0.0f) // forced aspect from the cmdline
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
974 video_aspect = movie_aspect;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
975 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
976
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
977
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
978 AdjustWindowRect(&rd, WS_OVERLAPPEDWINDOW | WS_SIZEBOX, 0);
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
979 SetWindowPos(mygui->videowindow, 0, x, y, rd.right-rd.left, rd.bottom-rd.top, SWP_NOOWNERZORDER);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
980
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
981 wp.hwnd = mygui->videowindow;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
982 wp.x = rd.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
983 wp.y = rd.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
984 wp.cx = rd.right-rd.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
985 wp.cy = rd.bottom-rd.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
986 wp.flags = SWP_NOOWNERZORDER | SWP_SHOWWINDOW;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
987
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
988 /* erase the bitmap image if there's video */
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33614
diff changeset
989 if(guiInfo.Playing != GUI_STOP && guiInfo.sh_video)
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
990 SendMessage(mygui->videowindow, WM_ERASEBKGND, (WPARAM)GetDC(mygui->videowindow), 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
991
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
992 /* reset the window aspect */
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34610
diff changeset
993 SendMessage(mygui->videowindow, WM_WINDOWPOSCHANGED, 0, (LPARAM)&wp);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
994 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
995 }