Mercurial > mplayer.hg
annotate libvo/vo_quartz.c @ 34593:83f7a2f8af3b
Adjust content of GUI configuration file to MPlayer configuration files.
Use option=<value> without spaces and quote value only if necessary.
(The change of the output format is purely cosmetic, but shall make the
interested GUI user aware that defining options is basically the same
for MPlayer and the GUI.)
author | ib |
---|---|
date | Fri, 10 Feb 2012 14:57:29 +0000 |
parents | dc1ac10ececd |
children | 598767b14852 |
rev | line source |
---|---|
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
1 /* |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
2 * This file is part of MPlayer. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
3 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
7 * (at your option) any later version. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
8 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
12 * GNU General Public License for more details. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
13 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
17 */ |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28122
diff
changeset
|
18 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
19 /** |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
20 \author Nicolas Plourde <nicolasplourde@gmail.com> |
27989 | 21 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
22 Copyright (c) Nicolas Plourde - April 2004 |
27989 | 23 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
24 YUV support Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org> |
12414 | 25 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
26 \brief MPlayer Mac OSX Quartz video out module. |
27989 | 27 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
28 \todo: -screen overlay output |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
29 -fit osd in black bar when available |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
30 -fix RGB32 |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
31 -(add sugestion here) |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
32 */ |
12120 | 33 |
34 //SYS | |
35 #include <stdio.h> | |
36 | |
37 //OSX | |
38 #include <Carbon/Carbon.h> | |
12414 | 39 #include <QuickTime/QuickTime.h> |
12120 | 40 |
41 //MPLAYER | |
42 #include "config.h" | |
12414 | 43 #include "fastmemcpy.h" |
12120 | 44 #include "video_out.h" |
45 #include "video_out_internal.h" | |
46 #include "aspect.h" | |
12414 | 47 #include "mp_msg.h" |
48 #include "m_option.h" | |
22823
98eaf29b5dee
Code cleanup: don't include a .c file in mplayer.c and fix a few
rathann
parents:
21396
diff
changeset
|
49 #include "mp_fifo.h" |
23676
f3cb35ec74c3
bugfix intel mac vo_quartz, PlanarPixmapInfoYUV420 structure requires big-endian value. author Taihei Monma tmkk@mac.com
nplourde
parents:
23457
diff
changeset
|
50 #include "mpbswap.h" |
32467 | 51 #include "sub/sub.h" |
12120 | 52 |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13779
diff
changeset
|
53 #include "input/input.h" |
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13779
diff
changeset
|
54 #include "input/mouse.h" |
12120 | 55 |
29531
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
29530
diff
changeset
|
56 #include "osx_common.h" |
12120 | 57 |
27989 | 58 static const vo_info_t info = |
12296 | 59 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
60 "Mac OSX (Quartz)", |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
61 "quartz", |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
62 "Nicolas Plourde <nicolasplourde@hotmail.com>, Romain Dolbeau <romain@dolbeau.org>", |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
63 "" |
12120 | 64 }; |
65 | |
25220
c9e9ac2008c2
Mark the vo_functions_t definitions as const where possible.
reimar
parents:
25216
diff
changeset
|
66 const LIBVO_EXTERN(quartz) |
12120 | 67 |
12414 | 68 static uint32_t image_depth; |
69 static uint32_t image_format; | |
70 static uint32_t image_size; | |
71 static uint32_t image_buffer_size; | |
12432 | 72 static char *image_data; |
12414 | 73 |
12432 | 74 static ImageSequence seqId; |
12414 | 75 static CodecType image_qtcodec; |
12487 | 76 static PlanarPixmapInfoYUV420 *P = NULL; |
12424 | 77 static struct |
78 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
79 ImageDescriptionHandle desc; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
80 Handle extension_colr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
81 Handle extension_fiel; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
82 Handle extension_clap; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
83 Handle extension_pasp; |
12414 | 84 } yuv_qt_stuff; |
12432 | 85 static MatrixRecord matrix; |
12414 | 86 static int EnterMoviesDone = 0; |
12487 | 87 static int get_image_done = 0; |
12120 | 88 |
12487 | 89 static int vo_quartz_fs; // we are in fullscreen |
12120 | 90 |
12826
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
91 static int winLevel = 1; |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
92 int levelList[] = |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
93 { |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
94 kCGDesktopWindowLevelKey, |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
95 kCGNormalWindowLevelKey, |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
96 kCGScreenSaverWindowLevelKey |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
97 }; |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
98 |
12487 | 99 static int int_pause = 0; |
100 static float winAlpha = 1; | |
15892 | 101 static int mouseHide = FALSE; |
29537
5ec1be895a96
Port feature from corevideo: remember half/double size settings and reapply
reimar
parents:
29532
diff
changeset
|
102 static float winSizeMult = 1; |
12296 | 103 |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
104 static int device_id = 0; |
12120 | 105 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
106 static short fs_res_x = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
107 static short fs_res_y = 0; |
13788
ced61fa921ca
let you choose fullscreen resolution for slower system
nplourde
parents:
13787
diff
changeset
|
108 |
12487 | 109 static WindowRef theWindow = NULL; |
12826
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
110 static WindowGroupRef winGroup = NULL; |
13124 | 111 static CGRect bounds; |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
112 static CGDirectDisplayID displayId = 0; |
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
113 static CFDictionaryRef originalMode = NULL; |
13124 | 114 |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
115 static CGDataProviderRef dataProviderRef = NULL; |
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
116 static CGImageRef image = NULL; |
12296 | 117 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
118 static Rect imgRect; // size of the original image (unscaled) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
119 static Rect dstRect; // size of the displayed image (after scaling) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
120 static Rect winRect; // size of the window containg the displayed image (include padding) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
121 static Rect oldWinRect; // size of the window containg the displayed image (include padding) when NOT in FS mode |
13840 | 122 static Rect oldWinBounds; |
12296 | 123 |
13792
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
124 static MenuRef windMenu; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
125 static MenuRef movMenu; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
126 static MenuRef aspectMenu; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
127 |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
128 static int lastScreensaverUpdate = 0; |
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
129 static int lastMouseHide = 0; |
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
130 |
13693
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
131 enum |
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
132 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
133 kHalfScreenCmd = 2, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
134 kNormalScreenCmd = 3, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
135 kDoubleScreenCmd = 4, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
136 kFullScreenCmd = 5, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
137 kKeepAspectCmd = 6, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
138 kAspectOrgCmd = 7, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
139 kAspectFullCmd = 8, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
140 kAspectWideCmd = 9, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
141 kPanScanCmd = 10 |
13693
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
142 }; |
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
143 |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13779
diff
changeset
|
144 #include "osdep/keycodes.h" |
15702 | 145 |
12120 | 146 //PROTOTYPE///////////////////////////////////////////////////////////////// |
15702 | 147 static OSStatus KeyEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData); |
148 static OSStatus MouseEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData); | |
149 static OSStatus WindowEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData); | |
29212
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
150 void window_resized(void); |
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
151 void window_ontop(void); |
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
152 void window_fullscreen(void); |
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
153 void window_panscan(void); |
12120 | 154 |
12296 | 155 static void draw_alpha(int x0, int y0, int w, int h, unsigned char *src, unsigned char *srca, int stride) |
156 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
157 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
158 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
159 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
160 vo_draw_alpha_rgb32(w, h, src, srca, stride, image_data + 4 * (y0 * imgRect.right + x0), 4 * imgRect.right); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
161 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
162 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
163 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
164 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
165 vo_draw_alpha_yv12(w, h, src, srca, stride, ((char *)P) + be2me_32(P->componentInfoY.offset) + x0 + y0 * imgRect.right, imgRect.right); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
166 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
167 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
168 vo_draw_alpha_uyvy(w, h, src, srca, stride, ((char *)P) + (x0 + y0 * imgRect.right) * 2, imgRect.right * 2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
169 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
170 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
171 vo_draw_alpha_yuy2(w, h, src, srca, stride, ((char *)P) + (x0 + y0 * imgRect.right) * 2, imgRect.right * 2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
172 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
173 } |
12296 | 174 } |
12120 | 175 |
15702 | 176 //default keyboard event handler |
177 static OSStatus KeyEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData) | |
12120 | 178 { |
12624 | 179 OSStatus result = noErr; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
180 UInt32 class = GetEventClass(event); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
181 UInt32 kind = GetEventKind(event); |
12624 | 182 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
183 result = CallNextEventHandler(nextHandler, event); |
27989 | 184 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
185 if (class == kEventClassKeyboard) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
186 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
187 char macCharCodes; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
188 UInt32 macKeyCode; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
189 UInt32 macKeyModifiers; |
27989 | 190 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
191 GetEventParameter(event, kEventParamKeyMacCharCodes, typeChar, NULL, sizeof(macCharCodes), NULL, &macCharCodes); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
192 GetEventParameter(event, kEventParamKeyCode, typeUInt32, NULL, sizeof(macKeyCode), NULL, &macKeyCode); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
193 GetEventParameter(event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(macKeyModifiers), NULL, &macKeyModifiers); |
27989 | 194 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
195 if (macKeyModifiers != 256) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
196 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
197 if (kind == kEventRawKeyRepeat || kind == kEventRawKeyDown) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
198 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
199 int key = convert_key(macKeyCode, macCharCodes); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
200 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
201 if (key != -1) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
202 mplayer_put_key(key); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
203 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
204 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
205 else if (macKeyModifiers == 256) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
206 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
207 switch (macCharCodes) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
208 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
209 case '[': SetWindowAlpha(theWindow, winAlpha -= 0.05); break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
210 case ']': SetWindowAlpha(theWindow, winAlpha += 0.05); break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
211 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
212 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
213 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
214 result = eventNotHandledErr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
215 } |
27989 | 216 |
15702 | 217 return result; |
218 } | |
219 | |
220 //default mouse event handler | |
221 static OSStatus MouseEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData) | |
222 { | |
223 OSStatus result = noErr; | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
224 UInt32 class = GetEventClass(event); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
225 UInt32 kind = GetEventKind(event); |
15702 | 226 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
227 result = CallNextEventHandler(nextHandler, event); |
27989 | 228 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
229 if (class == kEventClassMouse) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
230 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
231 WindowPtr tmpWin; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
232 Point mousePos; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
233 Point winMousePos; |
12460 | 234 |
29590
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
235 GetEventParameter(event, kEventParamMouseLocation, typeQDPoint, 0, sizeof(mousePos), 0, &mousePos); |
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
236 GetEventParameter(event, kEventParamWindowMouseLocation, typeQDPoint, 0, sizeof(winMousePos), 0, &winMousePos); |
12460 | 237 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
238 switch (kind) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
239 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
240 case kEventMouseMoved: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
241 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
242 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
243 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
244 CGDisplayShowCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
245 mouseHide = FALSE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
246 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
247 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
248 break; |
27989 | 249 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
250 case kEventMouseWheelMoved: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
251 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
252 int wheel; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
253 short part; |
27989 | 254 |
29590
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
255 GetEventParameter(event, kEventParamMouseWheelDelta, typeSInt32, 0, sizeof(wheel), 0, &wheel); |
15702 | 256 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
257 part = FindWindow(mousePos, &tmpWin); |
27989 | 258 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
259 if (part == inContent) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
260 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
261 if (wheel > 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
262 mplayer_put_key(MOUSE_BTN3); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
263 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
264 mplayer_put_key(MOUSE_BTN4); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
265 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
266 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
267 break; |
27989 | 268 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
269 case kEventMouseDown: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
270 case kEventMouseUp: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
271 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
272 EventMouseButton button; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
273 short part; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
274 Rect bounds; |
27989 | 275 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
276 GetWindowPortBounds(theWindow, &bounds); |
29590
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
277 GetEventParameter(event, kEventParamMouseButton, typeMouseButton, 0, sizeof(button), 0, &button); |
27989 | 278 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
279 part = FindWindow(mousePos, &tmpWin); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
280 if (kind == kEventMouseUp) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
281 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
282 if (part != inContent) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
283 break; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29212
diff
changeset
|
284 switch (button) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
285 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
286 case kEventMouseButtonPrimary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
287 mplayer_put_key(MOUSE_BTN0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
288 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
289 case kEventMouseButtonSecondary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
290 mplayer_put_key(MOUSE_BTN2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
291 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
292 case kEventMouseButtonTertiary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
293 mplayer_put_key(MOUSE_BTN1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
294 break; |
27989 | 295 |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
296 default: |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
297 result = eventNotHandledErr; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
298 break; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
299 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
300 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
301 } |
29589 | 302 if (winMousePos.h > bounds.right - 15 && winMousePos.v > bounds.bottom) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
303 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
304 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
305 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
306 Rect newSize; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
307 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
308 ResizeWindow(theWindow, mousePos, NULL, &newSize); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
309 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
310 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
311 else if (part == inMenuBar) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
312 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
313 MenuSelect(mousePos); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
314 HiliteMenu(0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
315 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
316 else if (part == inContent) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
317 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
318 switch (button) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
319 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
320 case kEventMouseButtonPrimary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
321 mplayer_put_key(MOUSE_BTN0 | MP_KEY_DOWN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
322 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
323 case kEventMouseButtonSecondary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
324 mplayer_put_key(MOUSE_BTN2 | MP_KEY_DOWN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
325 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
326 case kEventMouseButtonTertiary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
327 mplayer_put_key(MOUSE_BTN1 | MP_KEY_DOWN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
328 break; |
27989 | 329 |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
330 default: |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
331 result = eventNotHandledErr; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
332 break; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
333 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
334 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
335 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
336 break; |
27989 | 337 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
338 case kEventMouseDragged: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
339 break; |
27989 | 340 |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
341 default: |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
342 result = eventNotHandledErr; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
343 break; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
344 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
345 } |
15702 | 346 |
12624 | 347 return result; |
12296 | 348 } |
12120 | 349 |
29588
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
350 static void set_winSizeMult(float mult) |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
351 { |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
352 int d_width, d_height; |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
353 aspect(&d_width, &d_height, A_NOZOOM); |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
354 |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
355 if (vo_quartz_fs) |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
356 { |
29589 | 357 vo_fs = !vo_fs; |
29588
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
358 window_fullscreen(); |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
359 } |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
360 |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
361 winSizeMult = mult; |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
362 SizeWindow(theWindow, d_width * mult, d_height * mult, 1); |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
363 window_resized(); |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
364 } |
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
365 |
15702 | 366 //default window event handler |
367 static OSStatus WindowEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData) | |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
368 { |
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
369 OSStatus result = noErr; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
370 UInt32 class = GetEventClass(event); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
371 UInt32 kind = GetEventKind(event); |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
372 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
373 result = CallNextEventHandler(nextHandler, event); |
27989 | 374 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
375 if (class == kEventClassCommand) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
376 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
377 HICommand theHICommand; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
378 |
29590
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
379 GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, sizeof(theHICommand), NULL, &theHICommand); |
27989 | 380 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
381 switch (theHICommand.commandID) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
382 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
383 case kHICommandQuit: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
384 mplayer_put_key(KEY_CLOSE_WIN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
385 break; |
27989 | 386 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
387 case kHalfScreenCmd: |
29588
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
388 set_winSizeMult(0.5); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
389 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
390 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
391 case kNormalScreenCmd: |
29588
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
392 set_winSizeMult(1); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
393 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
394 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
395 case kDoubleScreenCmd: |
29588
17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
reimar
parents:
29587
diff
changeset
|
396 set_winSizeMult(2); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
397 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
398 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
399 case kFullScreenCmd: |
29589 | 400 vo_fs = !vo_fs; |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
401 window_fullscreen(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
402 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
403 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
404 case kKeepAspectCmd: |
29589 | 405 vo_keepaspect = !vo_keepaspect; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
406 CheckMenuItem(aspectMenu, 1, vo_keepaspect); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
407 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
408 break; |
27989 | 409 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
410 case kAspectOrgCmd: |
29532
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
411 change_movie_aspect(-1); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
412 break; |
27989 | 413 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
414 case kAspectFullCmd: |
29532
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
415 change_movie_aspect(4.0 / 3.0); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
416 break; |
27989 | 417 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
418 case kAspectWideCmd: |
29532
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
419 change_movie_aspect(16.0 / 9.0); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
420 break; |
27989 | 421 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
422 case kPanScanCmd: |
29589 | 423 vo_panscan = !vo_panscan; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
424 CheckMenuItem(aspectMenu, 2, vo_panscan); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
425 window_panscan(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
426 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
427 break; |
27989 | 428 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
429 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
430 result = eventNotHandledErr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
431 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
432 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
433 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
434 else if (class == kEventClassWindow) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
435 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
436 WindowRef window; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
437 Rect rectWindow = { 0, 0, 0, 0 }; |
27989 | 438 |
29590
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
439 GetEventParameter(event, kEventParamDirectObject, typeWindowRef, NULL, sizeof(window), NULL, &window); |
27989 | 440 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
441 if (window) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
442 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
443 GetWindowBounds(window, kWindowGlobalPortRgn, &rectWindow); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
444 } |
27989 | 445 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
446 switch (kind) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
447 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
448 case kEventWindowClosed: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
449 theWindow = NULL; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
450 mplayer_put_key(KEY_CLOSE_WIN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
451 break; |
27989 | 452 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
453 // resize window |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
454 case kEventWindowZoomed: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
455 case kEventWindowBoundsChanged: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
456 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
457 flip_page(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
458 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
459 break; |
27989 | 460 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
461 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
462 result = eventNotHandledErr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
463 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
464 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
465 } |
27989 | 466 |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
467 return result; |
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
468 } |
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
469 |
27989 | 470 static void quartz_CreateWindow(uint32_t d_width, uint32_t d_height, WindowAttributes windowAttrs) |
12487 | 471 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
472 MenuItemIndex index; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
473 CFStringRef movMenuTitle; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
474 CFStringRef aspMenuTitle; |
27989 | 475 |
24952 | 476 const EventTypeSpec win_events[] = { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
477 {kEventClassWindow, kEventWindowClosed}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
478 {kEventClassWindow, kEventWindowBoundsChanged}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
479 {kEventClassCommand, kEventCommandProcess} |
24952 | 480 }; |
481 | |
482 const EventTypeSpec key_events[] = { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
483 {kEventClassKeyboard, kEventRawKeyDown}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
484 {kEventClassKeyboard, kEventRawKeyRepeat} |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
485 }; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
486 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
487 const EventTypeSpec mouse_events[] = { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
488 {kEventClassMouse, kEventMouseMoved}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
489 {kEventClassMouse, kEventMouseWheelMoved}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
490 {kEventClassMouse, kEventMouseDown}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
491 {kEventClassMouse, kEventMouseUp}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
492 {kEventClassMouse, kEventMouseDragged} |
24952 | 493 }; |
494 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
495 SetRect(&winRect, 0, 0, d_width, d_height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
496 SetRect(&oldWinRect, 0, 0, d_width, d_height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
497 SetRect(&dstRect, 0, 0, d_width, d_height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
498 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
499 // Clear Menu Bar |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
500 ClearMenuBar(); |
24952 | 501 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
502 // Create Window Menu |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
503 CreateStandardWindowMenu(0, &windMenu); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
504 InsertMenu(windMenu, 0); |
27989 | 505 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
506 // Create Movie Menu |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
507 CreateNewMenu(1004, 0, &movMenu); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
508 movMenuTitle = CFSTR("Movie"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
509 SetMenuTitleWithCFString(movMenu, movMenuTitle); |
27989 | 510 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
511 AppendMenuItemTextWithCFString(movMenu, CFSTR("Half Size"), 0, kHalfScreenCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
512 SetMenuItemCommandKey(movMenu, index, 0, '0'); |
27989 | 513 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
514 AppendMenuItemTextWithCFString(movMenu, CFSTR("Normal Size"), 0, kNormalScreenCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
515 SetMenuItemCommandKey(movMenu, index, 0, '1'); |
27989 | 516 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
517 AppendMenuItemTextWithCFString(movMenu, CFSTR("Double Size"), 0, kDoubleScreenCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
518 SetMenuItemCommandKey(movMenu, index, 0, '2'); |
27989 | 519 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
520 AppendMenuItemTextWithCFString(movMenu, CFSTR("Full Size"), 0, kFullScreenCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
521 SetMenuItemCommandKey(movMenu, index, 0, 'F'); |
27989 | 522 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
523 AppendMenuItemTextWithCFString(movMenu, NULL, kMenuItemAttrSeparator, 0, &index); |
27989 | 524 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
525 AppendMenuItemTextWithCFString(movMenu, CFSTR("Aspect Ratio"), 0, 0, &index); |
13792
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
526 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
527 //// Create Aspect Ratio Sub Menu |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
528 CreateNewMenu(0, 0, &aspectMenu); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
529 aspMenuTitle = CFSTR("Aspect Ratio"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
530 SetMenuTitleWithCFString(aspectMenu, aspMenuTitle); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
531 SetMenuItemHierarchicalMenu(movMenu, 6, aspectMenu); |
27989 | 532 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
533 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Keep"), 0, kKeepAspectCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
534 CheckMenuItem(aspectMenu, 1, vo_keepaspect); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
535 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Pan-Scan"), 0, kPanScanCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
536 CheckMenuItem(aspectMenu, 2, vo_panscan); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
537 AppendMenuItemTextWithCFString(aspectMenu, NULL, kMenuItemAttrSeparator, 0, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
538 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Original"), 0, kAspectOrgCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
539 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("4:3"), 0, kAspectFullCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
540 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("16:9"), 0, kAspectWideCmd, &index); |
27989 | 541 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
542 InsertMenu(movMenu, GetMenuID(windMenu)); //insert before Window menu |
27989 | 543 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
544 DrawMenuBar(); |
27989 | 545 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
546 // create window |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
547 CreateNewWindow(kDocumentWindowClass, windowAttrs, &winRect, &theWindow); |
27989 | 548 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
549 CreateWindowGroup(0, &winGroup); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
550 SetWindowGroup(theWindow, winGroup); |
12826
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
551 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
552 // Install event handler |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
553 InstallApplicationEventHandler(NewEventHandlerUPP(KeyEventHandler), GetEventTypeCount(key_events), key_events, NULL, NULL); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
554 InstallApplicationEventHandler(NewEventHandlerUPP(MouseEventHandler), GetEventTypeCount(mouse_events), mouse_events, NULL, NULL); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
555 InstallWindowEventHandler(theWindow, NewEventHandlerUPP(WindowEventHandler), GetEventTypeCount(win_events), win_events, theWindow, NULL); |
12487 | 556 } |
557 | |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
558 static void update_screen_info(void) |
12296 | 559 { |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
560 CGRect displayRect; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
561 CGDisplayCount displayCount; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
562 CGDirectDisplayID *displays; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
563 // Display IDs might not be consecutive, get the list of all devices up to # device_id |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
564 displayCount = device_id + 1; |
29590
ee385ab885b2
Consistently use sizeof(variable) instead of sizeof(type) where easily possible.
reimar
parents:
29589
diff
changeset
|
565 displays = malloc(sizeof(*displays) * displayCount); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
566 if (kCGErrorSuccess != CGGetActiveDisplayList(displayCount, displays, &displayCount) || displayCount < device_id + 1) { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
567 mp_msg(MSGT_VO, MSGL_FATAL, "Quartz error: Device ID %d do not exist, falling back to main device.\n", device_id); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
568 displayId = kCGDirectMainDisplay; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
569 device_id = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
570 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
571 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
572 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
573 displayId = displays[device_id]; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
574 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
575 free(displays); |
27989 | 576 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
577 displayRect = CGDisplayBounds(displayId); |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
578 xinerama_x = displayRect.origin.x; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
579 xinerama_y = displayRect.origin.y; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
580 vo_screenwidth = displayRect.size.width; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
581 vo_screenheight = displayRect.size.height; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
582 aspect_save_screenres(vo_screenwidth, vo_screenheight); |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
583 } |
27989 | 584 |
29576
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
585 static void free_video_specific(void) |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
586 { |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
587 if (seqId) CDSequenceEnd(seqId); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
588 seqId = 0; |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
589 free(image_data); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
590 image_data = NULL; |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
591 free(P); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
592 P = NULL; |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
593 CGDataProviderRelease(dataProviderRef); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
594 dataProviderRef = NULL; |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
595 CGImageRelease(image); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
596 image = NULL; |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
597 } |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
598 |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
599 static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format) |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
600 { |
34297 | 601 CFStringRef windowTitle; |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
602 WindowAttributes windowAttrs; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
603 OSErr qterr; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
604 CGRect tmpBounds; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
605 |
29576
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
606 free_video_specific(); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
607 |
29537
5ec1be895a96
Port feature from corevideo: remember half/double size settings and reapply
reimar
parents:
29532
diff
changeset
|
608 vo_dwidth = d_width *= winSizeMult; |
5ec1be895a96
Port feature from corevideo: remember half/double size settings and reapply
reimar
parents:
29532
diff
changeset
|
609 vo_dheight = d_height *= winSizeMult; |
29532
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
610 config_movie_aspect((float)d_width / d_height); |
13791 | 611 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
612 // misc mplayer setup///////////////////////////////////////////////////// |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
613 SetRect(&imgRect, 0, 0, width, height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
614 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
615 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
616 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
617 image_depth = 32; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
618 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
619 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
620 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
621 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
622 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
623 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
624 image_depth = 16; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
625 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
626 } |
29589 | 627 image_size = (imgRect.right * imgRect.bottom * image_depth + 7) / 8; |
12296 | 628 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
629 image_data = malloc(image_size); |
12296 | 630 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
631 // Create player window////////////////////////////////////////////////// |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
632 windowAttrs = kWindowStandardDocumentAttributes |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
633 | kWindowStandardHandlerAttribute |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
634 | kWindowLiveResizeAttribute; |
27989 | 635 |
29589 | 636 windowAttrs &= ~kWindowResizableAttribute; |
27989 | 637 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
638 if (theWindow == NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
639 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
640 CGContextRef context; |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
641 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
642 quartz_CreateWindow(d_width, d_height, windowAttrs); |
27989 | 643 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
644 if (theWindow == NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
645 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
646 mp_msg(MSGT_VO, MSGL_FATAL, "Quartz error: Couldn't create window !!!!!\n"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
647 return -1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
648 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
649 tmpBounds = CGRectMake(0, 0, winRect.right, winRect.bottom); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
650 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
651 CGContextFillRect(context, tmpBounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
652 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
653 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
654 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
655 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
656 HideWindow(theWindow); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
657 ChangeWindowAttributes(theWindow, ~windowAttrs, windowAttrs); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
658 SetRect(&winRect, 0, 0, d_width, d_height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
659 SetRect(&oldWinRect, 0, 0, d_width, d_height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
660 SizeWindow(theWindow, d_width, d_height, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
661 } |
27989 | 662 |
34297 | 663 // Set window title |
664 windowTitle = CFStringCreateWithCString(NULL, vo_wintitle ? vo_wintitle : title, kCFStringEncodingUTF8); | |
665 SetWindowTitleWithCFString(theWindow, windowTitle); | |
666 CFRelease(windowTitle); | |
667 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
668 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
669 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
670 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
671 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
672 CGContextRef context; |
27989 | 673 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
674 QDBeginCGContext(GetWindowPort(theWindow), &context); |
27989 | 675 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
676 dataProviderRef = CGDataProviderCreateWithData(0, image_data, imgRect.right * imgRect.bottom * 4, 0); |
27989 | 677 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
678 image = CGImageCreate(imgRect.right, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
679 imgRect.bottom, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
680 8, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
681 image_depth, |
29589 | 682 (imgRect.right * 32 + 7) / 8, |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
683 CGColorSpaceCreateDeviceRGB(), |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
684 kCGImageAlphaNoneSkipFirst, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
685 dataProviderRef, 0, 1, kCGRenderingIntentDefault); |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
686 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
687 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
688 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
689 } |
27989 | 690 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
691 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
692 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
693 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
694 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
695 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
696 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
697 get_image_done = 0; |
12623 | 698 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
699 if (!EnterMoviesDone) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
700 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
701 qterr = EnterMovies(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
702 EnterMoviesDone = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
703 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
704 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
705 qterr = 0; |
27989 | 706 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
707 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
708 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
709 mp_msg(MSGT_VO, MSGL_FATAL, "Quartz error: EnterMovies (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
710 return -1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
711 } |
27989 | 712 |
713 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
714 SetIdentityMatrix(&matrix); |
27989 | 715 |
29589 | 716 if (d_width != width || d_height != height) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
717 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
718 ScaleMatrix(&matrix, FixDiv(Long2Fix(d_width), Long2Fix(width)), FixDiv(Long2Fix(d_height), Long2Fix(height)), 0, 0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
719 } |
12623 | 720 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
721 yuv_qt_stuff.desc = (ImageDescriptionHandle) NewHandleClear(sizeof(ImageDescription)); |
27989 | 722 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
723 yuv_qt_stuff.extension_colr = NewHandleClear(sizeof(NCLCColorInfoImageDescriptionExtension)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
724 ((NCLCColorInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_colr))->colorParamType = kVideoColorInfoImageDescriptionExtensionType; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
725 ((NCLCColorInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_colr))->primaries = 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
726 ((NCLCColorInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_colr))->transferFunction = 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
727 ((NCLCColorInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_colr))->matrix = 2; |
27989 | 728 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
729 yuv_qt_stuff.extension_fiel = NewHandleClear(sizeof(FieldInfoImageDescriptionExtension)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
730 ((FieldInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_fiel))->fieldCount = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
731 ((FieldInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_fiel))->fieldOrderings = 0; |
27989 | 732 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
733 yuv_qt_stuff.extension_clap = NewHandleClear(sizeof(CleanApertureImageDescriptionExtension)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
734 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->cleanApertureWidthN = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
735 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->cleanApertureWidthD = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
736 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->cleanApertureHeightN = imgRect.bottom; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
737 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->cleanApertureHeightD = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
738 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->horizOffN = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
739 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->horizOffD = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
740 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->vertOffN = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
741 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->vertOffD = 1; |
27989 | 742 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
743 yuv_qt_stuff.extension_pasp = NewHandleClear(sizeof(PixelAspectRatioImageDescriptionExtension)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
744 ((PixelAspectRatioImageDescriptionExtension *) (*yuv_qt_stuff.extension_pasp))->hSpacing = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
745 ((PixelAspectRatioImageDescriptionExtension *) (*yuv_qt_stuff.extension_pasp))->vSpacing = 1; |
12432 | 746 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
747 (*yuv_qt_stuff.desc)->idSize = sizeof(ImageDescription); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
748 (*yuv_qt_stuff.desc)->cType = image_qtcodec; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
749 (*yuv_qt_stuff.desc)->version = 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
750 (*yuv_qt_stuff.desc)->revisionLevel = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
751 (*yuv_qt_stuff.desc)->vendor = 'mpla'; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
752 (*yuv_qt_stuff.desc)->width = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
753 (*yuv_qt_stuff.desc)->height = imgRect.bottom; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
754 (*yuv_qt_stuff.desc)->hRes = Long2Fix(72); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
755 (*yuv_qt_stuff.desc)->vRes = Long2Fix(72); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
756 (*yuv_qt_stuff.desc)->temporalQuality = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
757 (*yuv_qt_stuff.desc)->spatialQuality = codecLosslessQuality; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
758 (*yuv_qt_stuff.desc)->frameCount = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
759 (*yuv_qt_stuff.desc)->dataSize = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
760 (*yuv_qt_stuff.desc)->depth = 24; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
761 (*yuv_qt_stuff.desc)->clutID = -1; |
27989 | 762 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
763 qterr = AddImageDescriptionExtension(yuv_qt_stuff.desc, yuv_qt_stuff.extension_colr, kColorInfoImageDescriptionExtension); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
764 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
765 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
766 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: AddImageDescriptionExtension [colr] (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
767 } |
27989 | 768 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
769 qterr = AddImageDescriptionExtension(yuv_qt_stuff.desc, yuv_qt_stuff.extension_fiel, kFieldInfoImageDescriptionExtension); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
770 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
771 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
772 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: AddImageDescriptionExtension [fiel] (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
773 } |
27989 | 774 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
775 qterr = AddImageDescriptionExtension(yuv_qt_stuff.desc, yuv_qt_stuff.extension_clap, kCleanApertureImageDescriptionExtension); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
776 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
777 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
778 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: AddImageDescriptionExtension [clap] (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
779 } |
27989 | 780 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
781 qterr = AddImageDescriptionExtension(yuv_qt_stuff.desc, yuv_qt_stuff.extension_pasp, kCleanApertureImageDescriptionExtension); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
782 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
783 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
784 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: AddImageDescriptionExtension [pasp] (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
785 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
786 P = calloc(sizeof(PlanarPixmapInfoYUV420) + image_size, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
787 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
788 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
789 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
790 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
791 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
792 P->componentInfoY.offset = be2me_32(sizeof(PlanarPixmapInfoYUV420)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
793 P->componentInfoCb.offset = be2me_32(be2me_32(P->componentInfoY.offset) + image_size / 2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
794 P->componentInfoCr.offset = be2me_32(be2me_32(P->componentInfoCb.offset) + image_size / 4); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
795 P->componentInfoY.rowBytes = be2me_32(imgRect.right); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
796 P->componentInfoCb.rowBytes = be2me_32(imgRect.right / 2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
797 P->componentInfoCr.rowBytes = be2me_32(imgRect.right / 2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
798 image_buffer_size = image_size + sizeof(PlanarPixmapInfoYUV420); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
799 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
800 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
801 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
802 image_buffer_size = image_size; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
803 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
804 } |
12414 | 805 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
806 qterr = DecompressSequenceBeginS(&seqId, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
807 yuv_qt_stuff.desc, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
808 (char *)P, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
809 image_buffer_size, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
810 GetWindowPort(theWindow), |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
811 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
812 NULL, |
29589 | 813 d_width != width || d_height != height ? |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
814 &matrix : NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
815 srcCopy, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
816 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
817 0, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
818 codecLosslessQuality, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
819 bestSpeedCodec); |
12432 | 820 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
821 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
822 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
823 mp_msg(MSGT_VO, MSGL_FATAL, "Quartz error: DecompressSequenceBeginS (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
824 return -1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
825 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
826 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
827 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
828 } |
27989 | 829 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
830 // Show window |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
831 RepositionWindow(theWindow, NULL, kWindowCenterOnMainScreen); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
832 ShowWindow(theWindow); |
27989 | 833 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
834 if (vo_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
835 window_fullscreen(); |
27989 | 836 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
837 if (vo_ontop) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
838 window_ontop(); |
27989 | 839 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
840 if (vo_rootwin) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
841 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
842 vo_fs = TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
843 winLevel = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
844 SetWindowGroupLevel(winGroup, CGWindowLevelForKey(levelList[winLevel])); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
845 window_fullscreen(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
846 } |
27989 | 847 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
848 window_resized(); |
27989 | 849 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
850 return 0; |
12120 | 851 } |
852 | |
12296 | 853 static void check_events(void) |
12120 | 854 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
855 EventRef theEvent; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
856 EventTargetRef theTarget; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
857 OSStatus theErr; |
27989 | 858 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
859 // Get event |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
860 theTarget = GetEventDispatcherTarget(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
861 theErr = ReceiveNextEvent(0, 0, kEventDurationNoWait, true, &theEvent); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
862 if (theErr == noErr && theEvent != NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
863 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
864 SendEventToEventTarget(theEvent, theTarget); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
865 ReleaseEvent(theEvent); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
866 } |
12296 | 867 } |
12120 | 868 |
12296 | 869 static void draw_osd(void) |
870 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
871 vo_draw_text(imgRect.right, imgRect.bottom, draw_alpha); |
12296 | 872 } |
12120 | 873 |
12296 | 874 static void flip_page(void) |
875 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
876 int curTime; |
21396 | 877 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
878 if (theWindow == NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
879 return; |
27989 | 880 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
881 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
882 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
883 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
884 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
885 CGContextRef context; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
886 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
887 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
888 CGContextDrawImage(context, bounds, image); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
889 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
890 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
891 break; |
27989 | 892 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
893 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
894 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
895 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
896 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
897 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
898 if (EnterMoviesDone) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
899 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
900 OSErr qterr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
901 CodecFlags flags = 0; |
27989 | 902 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
903 qterr = DecompressSequenceFrameWhen(seqId, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
904 (char *)P, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
905 image_buffer_size, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
906 0, //codecFlagUseImageBuffer, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
907 &flags, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
908 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
909 NULL); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
910 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
911 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
912 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: DecompressSequenceFrameWhen in flip_page (%d) flags:0x%08x\n", qterr, flags); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
913 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
914 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
915 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
916 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
917 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
918 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
919 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
920 CGContextRef context; |
27989 | 921 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
922 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
923 // render resize box |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
924 CGContextBeginPath(context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
925 CGContextSetAllowsAntialiasing(context, false); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
926 //CGContextSaveGState(context); |
27989 | 927 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
928 // line white |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
929 CGContextSetRGBStrokeColor(context, 0.2, 0.2, 0.2, 0.5); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
930 CGContextMoveToPoint(context, winRect.right - 1, 1); CGContextAddLineToPoint(context, winRect.right - 1, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
931 CGContextMoveToPoint(context, winRect.right - 1, 5); CGContextAddLineToPoint(context, winRect.right - 5, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
932 CGContextMoveToPoint(context, winRect.right - 1, 9); CGContextAddLineToPoint(context, winRect.right - 9, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
933 CGContextStrokePath(context); |
15723 | 934 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
935 // line gray |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
936 CGContextSetRGBStrokeColor(context, 0.4, 0.4, 0.4, 0.5); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
937 CGContextMoveToPoint(context, winRect.right - 1, 2); CGContextAddLineToPoint(context, winRect.right - 2, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
938 CGContextMoveToPoint(context, winRect.right - 1, 6); CGContextAddLineToPoint(context, winRect.right - 6, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
939 CGContextMoveToPoint(context, winRect.right - 1, 10); CGContextAddLineToPoint(context, winRect.right - 10, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
940 CGContextStrokePath(context); |
27989 | 941 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
942 // line black |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
943 CGContextSetRGBStrokeColor(context, 0.6, 0.6, 0.6, 0.5); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
944 CGContextMoveToPoint(context, winRect.right - 1, 3); CGContextAddLineToPoint(context, winRect.right - 3, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
945 CGContextMoveToPoint(context, winRect.right - 1, 7); CGContextAddLineToPoint(context, winRect.right - 7, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
946 CGContextMoveToPoint(context, winRect.right - 1, 11); CGContextAddLineToPoint(context, winRect.right - 11, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
947 CGContextStrokePath(context); |
27989 | 948 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
949 // CGContextRestoreGState( context ); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
950 CGContextFlush(context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
951 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
952 } |
15881 | 953 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
954 curTime = TickCount() / 60; |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
955 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
956 // auto hide mouse cursor (and future on-screen control?) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
957 if (vo_quartz_fs && !mouseHide) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
958 { |
29589 | 959 if (curTime - lastMouseHide >= 5 || lastMouseHide == 0) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
960 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
961 CGDisplayHideCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
962 mouseHide = TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
963 lastMouseHide = curTime; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
964 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
965 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
966 // update activity every 30 seconds to prevent |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
967 // screensaver from starting up. |
29589 | 968 if (curTime - lastScreensaverUpdate >= 30 || lastScreensaverUpdate == 0) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
969 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
970 UpdateSystemActivity(UsrActivity); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
971 lastScreensaverUpdate = curTime; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
972 } |
12296 | 973 } |
974 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
975 static int draw_slice(uint8_t * src[], int stride[], int w, int h, int x, int y) |
12296 | 976 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
977 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
978 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
979 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
980 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
981 memcpy_pic(((char *)P) + be2me_32(P->componentInfoY.offset) + x + imgRect.right * y, src[0], w, h, imgRect.right, stride[0]); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
982 x=x/2;y=y/2;w=w/2;h=h/2; |
27989 | 983 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
984 memcpy_pic(((char *)P) + be2me_32(P->componentInfoCb.offset) + x + imgRect.right / 2 * y, src[1], w, h, imgRect.right / 2, stride[1]); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
985 memcpy_pic(((char *)P) + be2me_32(P->componentInfoCr.offset) + x + imgRect.right / 2 * y, src[2], w, h, imgRect.right / 2, stride[2]); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
986 return 0; |
27989 | 987 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
988 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
989 memcpy_pic(((char *)P) + be2me_32(P->componentInfoY.offset) + x + imgRect.right * y, src[0], w, h, imgRect.right, stride[0]); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
990 x=x/2;y=y/2;w=w/2;h=h/2; |
27989 | 991 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
992 memcpy_pic(((char *)P) + be2me_32(P->componentInfoCr.offset) + x + imgRect.right / 2 * y, src[1], w, h, imgRect.right / 2, stride[1]); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
993 memcpy_pic(((char *)P) + be2me_32(P->componentInfoCb.offset) + x + imgRect.right / 2 * y, src[2], w, h, imgRect.right / 2, stride[2]); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
994 return 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
995 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
996 return -1; |
12296 | 997 } |
998 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
999 static int draw_frame(uint8_t * src[]) |
12296 | 1000 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1001 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1002 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1003 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1004 fast_memcpy(image_data, src[0], image_size); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1005 return 0; |
27989 | 1006 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1007 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1008 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1009 memcpy_pic(((char *)P), src[0], imgRect.right * 2, imgRect.bottom, imgRect.right * 2, imgRect.right * 2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1010 return 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1011 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1012 return -1; |
12296 | 1013 } |
12120 | 1014 |
16171
fd51fd1ff231
Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents:
15909
diff
changeset
|
1015 static int query_format(uint32_t format) |
12296 | 1016 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1017 image_format = format; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1018 image_qtcodec = 0; |
13124 | 1019 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1020 if (format == IMGFMT_RGB32) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1021 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1022 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN; |
13124 | 1023 } |
27989 | 1024 |
29589 | 1025 if (format == IMGFMT_YV12 || format == IMGFMT_IYUV || format == IMGFMT_I420) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1026 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1027 image_qtcodec = kMpegYUV420CodecType; //kYUV420CodecType ?; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1028 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_ACCEPT_STRIDE; |
12414 | 1029 } |
1030 | |
12424 | 1031 if (format == IMGFMT_YUY2) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1032 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1033 image_qtcodec = kComponentVideoUnsigned; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1034 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN; |
12414 | 1035 } |
27989 | 1036 |
12424 | 1037 if (format == IMGFMT_UYVY) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1038 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1039 image_qtcodec = k422YpCbCr8CodecType; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1040 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1041 } |
12414 | 1042 |
12296 | 1043 return 0; |
1044 } | |
12120 | 1045 |
12296 | 1046 static void uninit(void) |
1047 { | |
29576
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
1048 free_video_specific(); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
1049 if (EnterMoviesDone) |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
1050 ExitMovies(); |
fbed30114410
vo_quartz: change deallocation/uninit to more reliably free allocated data.
reimar
parents:
29537
diff
changeset
|
1051 EnterMoviesDone = 0; |
12432 | 1052 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1053 ShowMenuBar(); |
12296 | 1054 } |
12120 | 1055 |
16171
fd51fd1ff231
Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents:
15909
diff
changeset
|
1056 static int preinit(const char *arg) |
12296 | 1057 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1058 int parse_err = 0; |
27989 | 1059 |
1060 if(arg) | |
12519
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1061 { |
12623 | 1062 char *parse_pos = (char *)&arg[0]; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1063 |
27989 | 1064 while (parse_pos[0] && !parse_err) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1065 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1066 if (strncmp(parse_pos, "device_id=", 10) == 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1067 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1068 parse_pos = &parse_pos[10]; |
12519
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1069 device_id = strtol(parse_pos, &parse_pos, 0); |
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1070 } |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1071 if (strncmp(parse_pos, "fs_res=", 7) == 0) |
13788
ced61fa921ca
let you choose fullscreen resolution for slower system
nplourde
parents:
13787
diff
changeset
|
1072 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1073 parse_pos = &parse_pos[7]; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1074 fs_res_x = strtol(parse_pos, &parse_pos, 0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1075 parse_pos = &parse_pos[1]; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1076 fs_res_y = strtol(parse_pos, &parse_pos, 0); |
13788
ced61fa921ca
let you choose fullscreen resolution for slower system
nplourde
parents:
13787
diff
changeset
|
1077 } |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1078 if (parse_pos[0] == ':') |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1079 parse_pos = &parse_pos[1]; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1080 else if (parse_pos[0]) |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1081 parse_err = 1; |
12519
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1082 } |
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1083 } |
27989 | 1084 |
30922
7e3b047c51e7
Refactor OS X foreground process setting into a separate function.
diego
parents:
29590
diff
changeset
|
1085 osx_foreground_hack(); |
12785
33f58bfc8a1b
make mplayer capable of being in the foreground by Dan Christiansen
nplourde
parents:
12624
diff
changeset
|
1086 |
12296 | 1087 return 0; |
12120 | 1088 } |
1089 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1090 static uint32_t draw_yuv_image(mp_image_t * mpi) |
12424 | 1091 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1092 // ATM we're only called for planar IMGFMT |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1093 // drawing is done directly in P |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1094 // and displaying is in flip_page. |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1095 return get_image_done ? VO_TRUE : VO_FALSE; |
12414 | 1096 } |
1097 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1098 static uint32_t get_yuv_image(mp_image_t * mpi) |
12424 | 1099 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1100 if (mpi->type != MP_IMGTYPE_EXPORT) return VO_FALSE; |
27989 | 1101 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1102 if (mpi->imgfmt != image_format) return VO_FALSE; |
27989 | 1103 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1104 if (mpi->flags & MP_IMGFLAG_PLANAR) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1105 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1106 if (mpi->num_planes != 3) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1107 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1108 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: only 3 planes allowed in get_yuv_image for planar (%d) \n", mpi->num_planes); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1109 return VO_FALSE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1110 } |
12414 | 1111 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1112 mpi->planes[0] = ((char *)P) + be2me_32(P->componentInfoY.offset); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1113 mpi->stride[0] = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1114 mpi->width = imgRect.right; |
12414 | 1115 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1116 if (mpi->flags & MP_IMGFLAG_SWAPPED) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1117 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1118 // I420 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1119 mpi->planes[1] = ((char *)P) + be2me_32(P->componentInfoCb.offset); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1120 mpi->planes[2] = ((char *)P) + be2me_32(P->componentInfoCr.offset); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1121 mpi->stride[1] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1122 mpi->stride[2] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1123 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1124 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1125 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1126 // YV12 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1127 mpi->planes[1] = ((char *)P) + be2me_32(P->componentInfoCr.offset); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1128 mpi->planes[2] = ((char *)P) + be2me_32(P->componentInfoCb.offset); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1129 mpi->stride[1] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1130 mpi->stride[2] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1131 } |
27989 | 1132 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1133 mpi->flags |= MP_IMGFLAG_DIRECT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1134 get_image_done = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1135 return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1136 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1137 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1138 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1139 // doesn't work yet |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1140 if (mpi->num_planes != 1) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1141 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1142 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: only 1 plane allowed in get_yuv_image for packed (%d) \n", mpi->num_planes); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1143 return VO_FALSE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1144 } |
12414 | 1145 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1146 mpi->planes[0] = (char *)P; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1147 mpi->stride[0] = imgRect.right * 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1148 mpi->width = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1149 mpi->flags |= MP_IMGFLAG_DIRECT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1150 get_image_done = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1151 return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1152 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1153 return VO_FALSE; |
12414 | 1154 } |
1155 | |
33305
ddb45e9443ec
Remove the variable arguments from the libvo control() functions.
iive
parents:
32467
diff
changeset
|
1156 static int control(uint32_t request, void *data) |
12120 | 1157 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1158 switch (request) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1159 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1160 case VOCTRL_PAUSE: return int_pause = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1161 case VOCTRL_RESUME: return int_pause = 0; |
29589 | 1162 case VOCTRL_FULLSCREEN: vo_fs = !vo_fs; window_fullscreen(); return VO_TRUE; |
1163 case VOCTRL_ONTOP: vo_ontop = !vo_ontop; window_ontop(); return VO_TRUE; | |
1164 case VOCTRL_QUERY_FORMAT: return query_format(*(uint32_t *) data); | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1165 case VOCTRL_GET_PANSCAN: return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1166 case VOCTRL_SET_PANSCAN: window_panscan(); return VO_TRUE; |
27989 | 1167 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1168 case VOCTRL_GET_IMAGE: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1169 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1170 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1171 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1172 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1173 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1174 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1175 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1176 return get_yuv_image(data); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1177 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1178 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1179 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1180 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1181 case VOCTRL_DRAW_IMAGE: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1182 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1183 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1184 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1185 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1186 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1187 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1188 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1189 return draw_yuv_image(data); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1190 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1191 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1192 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1193 } |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1194 case VOCTRL_UPDATE_SCREENINFO: |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1195 update_screen_info(); |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1196 return VO_TRUE; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1197 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1198 return VO_NOTIMPL; |
12120 | 1199 } |
1200 | |
29212
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
1201 void window_resized(void) |
12120 | 1202 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1203 uint32_t d_width; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1204 uint32_t d_height; |
27989 | 1205 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1206 CGRect tmpBounds; |
13734 | 1207 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1208 CGContextRef context; |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
1209 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1210 GetWindowPortBounds(theWindow, &winRect); |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1211 d_width = vo_dwidth = winRect.right; |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1212 d_height = vo_dheight = winRect.bottom; |
12120 | 1213 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1214 if (vo_keepaspect) |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1215 aspect(&d_width, &d_height, A_WINZOOM); |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1216 SetRect(&dstRect, (vo_dwidth - d_width) / 2, (vo_dheight - d_height) / 2, d_width, d_height); |
27989 | 1217 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1218 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1219 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1220 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1221 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1222 bounds = CGRectMake(dstRect.left, dstRect.top, dstRect.right - dstRect.left, dstRect.bottom - dstRect.top); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1223 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1224 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1225 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1226 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1227 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1228 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1229 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1230 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1231 long scale_X = FixDiv(Long2Fix(dstRect.right - dstRect.left), Long2Fix(imgRect.right)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1232 long scale_Y = FixDiv(Long2Fix(dstRect.bottom - dstRect.top), Long2Fix(imgRect.bottom)); |
27989 | 1233 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1234 SetIdentityMatrix(&matrix); |
29589 | 1235 if (dstRect.right - dstRect.left != imgRect.right || dstRect.bottom - dstRect.right != imgRect.bottom) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1236 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1237 ScaleMatrix(&matrix, scale_X, scale_Y, 0, 0); |
27989 | 1238 |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1239 if (vo_dwidth > d_width || vo_dheight > d_height) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1240 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1241 TranslateMatrix(&matrix, Long2Fix(dstRect.left), Long2Fix(dstRect.top)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1242 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1243 } |
27989 | 1244 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1245 SetDSequenceMatrix(seqId, &matrix); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1246 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1247 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1248 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1249 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1250 } |
27989 | 1251 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1252 // Clear Background |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1253 tmpBounds = CGRectMake(0, 0, winRect.right, winRect.bottom); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1254 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1255 CGContextFillRect(context, tmpBounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1256 QDEndCGContext(GetWindowPort(theWindow), &context); |
12120 | 1257 } |
1258 | |
29212
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
1259 void window_ontop(void) |
12460 | 1260 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1261 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1262 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1263 // Cycle between level |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1264 winLevel++; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1265 if (winLevel > 2) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1266 winLevel = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1267 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1268 SetWindowGroupLevel(winGroup, CGWindowLevelForKey(levelList[winLevel])); |
12120 | 1269 } |
1270 | |
29212
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
1271 void window_fullscreen(void) |
12120 | 1272 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1273 // go fullscreen |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1274 if (vo_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1275 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1276 if (winLevel != 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1277 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1278 if (displayId == kCGDirectMainDisplay) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1279 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1280 SetSystemUIMode(kUIModeAllHidden, kUIOptionAutoShowMenuBar); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1281 CGDisplayHideCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1282 mouseHide = TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1283 } |
27989 | 1284 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1285 if (fs_res_x != 0 || fs_res_y != 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1286 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1287 CFDictionaryRef mode; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1288 size_t desiredBitDepth = 32; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1289 boolean_t exactMatch; |
27989 | 1290 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1291 originalMode = CGDisplayCurrentMode(displayId); |
27989 | 1292 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1293 mode = CGDisplayBestModeForParameters(displayId, desiredBitDepth, fs_res_x, fs_res_y, &exactMatch); |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
1294 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1295 if (mode != NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1296 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1297 if (!exactMatch) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1298 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1299 // Warn if the mode doesn't match exactly |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1300 mp_msg(MSGT_VO, MSGL_WARN, "Quartz warning: did not get exact mode match (got %dx%d) \n", (int)CFDictionaryGetValue(mode, kCGDisplayWidth), (int)CFDictionaryGetValue(mode, kCGDisplayHeight)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1301 } |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
1302 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1303 CGDisplayCapture(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1304 CGDisplaySwitchToMode(displayId, mode); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1305 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1306 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1307 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1308 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: can't switch to fullscreen \n"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1309 } |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
1310 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1311 // Get Main device info/////////////////////////////////////////////////// |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1312 update_screen_info(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1313 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1314 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1315 // save old window size |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1316 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1317 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1318 GetWindowPortBounds(theWindow, &oldWinRect); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1319 GetWindowBounds(theWindow, kWindowContentRgn, &oldWinBounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1320 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1321 // go fullscreen |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1322 ChangeWindowAttributes(theWindow, kWindowNoShadowAttribute, 0); |
12487 | 1323 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1324 vo_quartz_fs = 1; |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1325 window_panscan(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1326 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1327 else //go back to windowed mode |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1328 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1329 vo_quartz_fs = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1330 if (originalMode != NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1331 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1332 CGDisplaySwitchToMode(displayId, originalMode); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1333 CGDisplayRelease(displayId); |
27989 | 1334 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1335 // Get Main device info/////////////////////////////////////////////////// |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1336 update_screen_info(); |
27989 | 1337 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1338 originalMode = NULL; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1339 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1340 SetSystemUIMode(kUIModeNormal, 0); |
12120 | 1341 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1342 // show mouse cursor |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1343 CGDisplayShowCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1344 mouseHide = FALSE; |
27989 | 1345 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1346 // revert window to previous setting |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1347 ChangeWindowAttributes(theWindow, 0, kWindowNoShadowAttribute); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1348 SizeWindow(theWindow, oldWinRect.right, oldWinRect.bottom, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1349 MoveWindow(theWindow, oldWinBounds.left, oldWinBounds.top, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1350 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1351 window_resized(); |
12120 | 1352 } |
13840 | 1353 |
29212
eda346733b8c
Add missing 'void' to parameterless function declarations.
diego
parents:
28446
diff
changeset
|
1354 void window_panscan(void) |
13840 | 1355 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1356 panscan_calc(); |
27989 | 1357 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1358 if (vo_panscan > 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1359 CheckMenuItem(aspectMenu, 2, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1360 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1361 CheckMenuItem(aspectMenu, 2, 0); |
27989 | 1362 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1363 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1364 { |
29530
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1365 MoveWindow(theWindow, xinerama_x - (vo_panscan_x >> 1), xinerama_y - (vo_panscan_y >> 1), 1); |
4fdf692b06a4
Use the standard MPlayer aspect handling instead of reimplementing our own in vo_quartz.
reimar
parents:
29528
diff
changeset
|
1366 SizeWindow(theWindow, vo_screenwidth + vo_panscan_x, vo_screenheight + vo_panscan_y, 1); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1367 } |
13840 | 1368 } |