Mercurial > mplayer.hg
annotate libvo/vo_quartz.c @ 28063:a318969a4f45
Set the base size window manager hint, otherwise some subtract the minimum
size of 4x4 from the numbers displayed to the user which might be confusing.
Based on patch by Bert Wesarg [bert wesarg googlemail com].
author | reimar |
---|---|
date | Fri, 05 Dec 2008 19:01:49 +0000 |
parents | 9e739bdb049c |
children | ca9badc94740 |
rev | line source |
---|---|
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
1 /** |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
2 \author Nicolas Plourde <nicolasplourde@gmail.com> |
27989 | 3 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
4 Copyright (c) Nicolas Plourde - April 2004 |
27989 | 5 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
6 YUV support Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org> |
12414 | 7 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
8 \brief MPlayer Mac OSX Quartz video out module. |
27989 | 9 |
27990
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
10 \todo: -screen overlay output |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
11 -fit osd in black bar when available |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
12 -fix RGB32 |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
13 -(add sugestion here) |
a5755165051a
Use doxygen-style comments in file header. Remove tabs usage.
gpoirier
parents:
27989
diff
changeset
|
14 */ |
12120 | 15 |
16 //SYS | |
17 #include <stdio.h> | |
18 | |
19 //OSX | |
20 #include <Carbon/Carbon.h> | |
12414 | 21 #include <QuickTime/QuickTime.h> |
12120 | 22 |
23 //MPLAYER | |
24 #include "config.h" | |
12414 | 25 #include "fastmemcpy.h" |
12120 | 26 #include "video_out.h" |
27 #include "video_out_internal.h" | |
28 #include "aspect.h" | |
12414 | 29 #include "mp_msg.h" |
30 #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
|
31 #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
|
32 #include "mpbswap.h" |
12120 | 33 |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13779
diff
changeset
|
34 #include "input/input.h" |
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13779
diff
changeset
|
35 #include "input/mouse.h" |
12120 | 36 |
37 #include "vo_quartz.h" | |
38 | |
27989 | 39 static const vo_info_t info = |
12296 | 40 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
41 "Mac OSX (Quartz)", |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
42 "quartz", |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
43 "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
|
44 "" |
12120 | 45 }; |
46 | |
25220
c9e9ac2008c2
Mark the vo_functions_t definitions as const where possible.
reimar
parents:
25216
diff
changeset
|
47 const LIBVO_EXTERN(quartz) |
12120 | 48 |
12414 | 49 static uint32_t image_depth; |
50 static uint32_t image_format; | |
51 static uint32_t image_size; | |
52 static uint32_t image_buffer_size; | |
12432 | 53 static char *image_data; |
12414 | 54 |
12432 | 55 static ImageSequence seqId; |
12414 | 56 static CodecType image_qtcodec; |
12487 | 57 static PlanarPixmapInfoYUV420 *P = NULL; |
12424 | 58 static struct |
59 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
60 ImageDescriptionHandle desc; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
61 Handle extension_colr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
62 Handle extension_fiel; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
63 Handle extension_clap; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
64 Handle extension_pasp; |
12414 | 65 } yuv_qt_stuff; |
12432 | 66 static MatrixRecord matrix; |
12414 | 67 static int EnterMoviesDone = 0; |
12487 | 68 static int get_image_done = 0; |
12120 | 69 |
12487 | 70 static int vo_quartz_fs; // we are in fullscreen |
13791 | 71 extern float monitor_aspect; |
13792
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
72 extern float movie_aspect; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
73 static float old_movie_aspect; |
12120 | 74 |
12826
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
75 static int winLevel = 1; |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
76 int levelList[] = |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
77 { |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
78 kCGDesktopWindowLevelKey, |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
79 kCGNormalWindowLevelKey, |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
80 kCGScreenSaverWindowLevelKey |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
81 }; |
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
82 |
12487 | 83 static int int_pause = 0; |
84 static float winAlpha = 1; | |
15892 | 85 static int mouseHide = FALSE; |
12296 | 86 |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
87 static int device_id = 0; |
12120 | 88 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
89 static short fs_res_x = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
90 static short fs_res_y = 0; |
13788
ced61fa921ca
let you choose fullscreen resolution for slower system
nplourde
parents:
13787
diff
changeset
|
91 |
12487 | 92 static WindowRef theWindow = NULL; |
12826
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
93 static WindowGroupRef winGroup = NULL; |
13124 | 94 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
|
95 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
|
96 static CFDictionaryRef originalMode = NULL; |
13124 | 97 |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
98 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
|
99 static CGImageRef image = NULL; |
12296 | 100 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
101 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
|
102 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
|
103 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
|
104 static Rect oldWinRect; // size of the window containg the displayed image (include padding) when NOT in FS mode |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
105 static CGRect displayRect; // size of the display device |
13840 | 106 static Rect oldWinBounds; |
12296 | 107 |
13792
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
108 static MenuRef windMenu; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
109 static MenuRef movMenu; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
110 static MenuRef aspectMenu; |
d603c33bb3d3
menu option to set desired movie aspect & keep aspect on window resize
nplourde
parents:
13791
diff
changeset
|
111 |
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 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
|
113 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
|
114 |
13693
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
115 enum |
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
116 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
117 kQuitCmd = 1, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
118 kHalfScreenCmd = 2, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
119 kNormalScreenCmd = 3, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
120 kDoubleScreenCmd = 4, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
121 kFullScreenCmd = 5, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
122 kKeepAspectCmd = 6, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
123 kAspectOrgCmd = 7, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
124 kAspectFullCmd = 8, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
125 kAspectWideCmd = 9, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
126 kPanScanCmd = 10 |
13693
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
127 }; |
abba514689a1
fix menu bar support and add new movie zoom option menu a la quicktime
nplourde
parents:
13124
diff
changeset
|
128 |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13779
diff
changeset
|
129 #include "osdep/keycodes.h" |
15702 | 130 |
28051 | 131 void vo_draw_text(int dxs, int dys, void (*draw_alpha) (int x0, int y0, int w, int h, unsigned char *src, unsigned char *srca, int stride)); |
12120 | 132 |
133 //PROTOTYPE///////////////////////////////////////////////////////////////// | |
15702 | 134 static OSStatus KeyEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData); |
135 static OSStatus MouseEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData); | |
136 static OSStatus WindowEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData); | |
12296 | 137 void window_resized(); |
138 void window_ontop(); | |
139 void window_fullscreen(); | |
13840 | 140 void window_panscan(); |
12120 | 141 |
12886
9b95958f4eb0
listen for key repeats, patch by Dan Christiansen
nplourde
parents:
12830
diff
changeset
|
142 static inline int convert_key(UInt32 key, UInt32 charcode) |
9b95958f4eb0
listen for key repeats, patch by Dan Christiansen
nplourde
parents:
12830
diff
changeset
|
143 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
144 switch (key) |
12886
9b95958f4eb0
listen for key repeats, patch by Dan Christiansen
nplourde
parents:
12830
diff
changeset
|
145 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
146 case QZ_IBOOK_ENTER: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
147 case QZ_RETURN: return KEY_ENTER; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
148 case QZ_ESCAPE: return KEY_ESC; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
149 case QZ_BACKSPACE: return KEY_BACKSPACE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
150 case QZ_LALT: return KEY_BACKSPACE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
151 case QZ_LCTRL: return KEY_BACKSPACE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
152 case QZ_LSHIFT: return KEY_BACKSPACE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
153 case QZ_F1: return KEY_F + 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
154 case QZ_F2: return KEY_F + 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
155 case QZ_F3: return KEY_F + 3; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
156 case QZ_F4: return KEY_F + 4; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
157 case QZ_F5: return KEY_F + 5; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
158 case QZ_F6: return KEY_F + 6; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
159 case QZ_F7: return KEY_F + 7; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
160 case QZ_F8: return KEY_F + 8; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
161 case QZ_F9: return KEY_F + 9; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
162 case QZ_F10: return KEY_F + 10; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
163 case QZ_F11: return KEY_F + 11; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
164 case QZ_F12: return KEY_F + 12; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
165 case QZ_INSERT: return KEY_INSERT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
166 case QZ_DELETE: return KEY_DELETE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
167 case QZ_HOME: return KEY_HOME; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
168 case QZ_END: return KEY_END; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
169 case QZ_KP_PLUS: return '+'; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
170 case QZ_KP_MINUS: return '-'; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
171 case QZ_TAB: return KEY_TAB; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
172 case QZ_PAGEUP: return KEY_PAGE_UP; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
173 case QZ_PAGEDOWN: return KEY_PAGE_DOWN; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
174 case QZ_UP: return KEY_UP; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
175 case QZ_DOWN: return KEY_DOWN; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
176 case QZ_LEFT: return KEY_LEFT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
177 case QZ_RIGHT: return KEY_RIGHT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
178 case QZ_KP_MULTIPLY: return '*'; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
179 case QZ_KP_DIVIDE: return '/'; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
180 case QZ_KP_ENTER: return KEY_KPENTER; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
181 case QZ_KP_PERIOD: return KEY_KPDEC; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
182 case QZ_KP0: return KEY_KP0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
183 case QZ_KP1: return KEY_KP1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
184 case QZ_KP2: return KEY_KP2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
185 case QZ_KP3: return KEY_KP3; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
186 case QZ_KP4: return KEY_KP4; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
187 case QZ_KP5: return KEY_KP5; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
188 case QZ_KP6: return KEY_KP6; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
189 case QZ_KP7: return KEY_KP7; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
190 case QZ_KP8: return KEY_KP8; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
191 case QZ_KP9: return KEY_KP9; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
192 default: return charcode; |
12886
9b95958f4eb0
listen for key repeats, patch by Dan Christiansen
nplourde
parents:
12830
diff
changeset
|
193 } |
9b95958f4eb0
listen for key repeats, patch by Dan Christiansen
nplourde
parents:
12830
diff
changeset
|
194 } |
9b95958f4eb0
listen for key repeats, patch by Dan Christiansen
nplourde
parents:
12830
diff
changeset
|
195 |
12296 | 196 static void draw_alpha(int x0, int y0, int w, int h, unsigned char *src, unsigned char *srca, int stride) |
197 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
198 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
199 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
200 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
201 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
|
202 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
203 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
204 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
205 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
206 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
|
207 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
208 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
209 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
|
210 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
211 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
212 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
|
213 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
214 } |
12296 | 215 } |
12120 | 216 |
15702 | 217 //default keyboard event handler |
218 static OSStatus KeyEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData) | |
12120 | 219 { |
12624 | 220 OSStatus result = noErr; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
221 UInt32 class = GetEventClass(event); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
222 UInt32 kind = GetEventKind(event); |
12624 | 223 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
224 result = CallNextEventHandler(nextHandler, event); |
27989 | 225 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
226 if (class == kEventClassKeyboard) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
227 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
228 char macCharCodes; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
229 UInt32 macKeyCode; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
230 UInt32 macKeyModifiers; |
27989 | 231 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
232 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
|
233 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
|
234 GetEventParameter(event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(macKeyModifiers), NULL, &macKeyModifiers); |
27989 | 235 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
236 if (macKeyModifiers != 256) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
237 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
238 if (kind == kEventRawKeyRepeat || kind == kEventRawKeyDown) |
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 int key = convert_key(macKeyCode, macCharCodes); |
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 (key != -1) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
243 mplayer_put_key(key); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
244 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
245 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
246 else if (macKeyModifiers == 256) |
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 switch (macCharCodes) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
249 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
250 case '[': SetWindowAlpha(theWindow, winAlpha -= 0.05); break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
251 case ']': SetWindowAlpha(theWindow, winAlpha += 0.05); break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
252 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
253 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
254 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
255 result = eventNotHandledErr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
256 } |
27989 | 257 |
15702 | 258 return result; |
259 } | |
260 | |
261 //default mouse event handler | |
262 static OSStatus MouseEventHandler(EventHandlerCallRef nextHandler, EventRef event, void *userData) | |
263 { | |
264 OSStatus result = noErr; | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
265 UInt32 class = GetEventClass(event); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
266 UInt32 kind = GetEventKind(event); |
15702 | 267 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
268 result = CallNextEventHandler(nextHandler, event); |
27989 | 269 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
270 if (class == kEventClassMouse) |
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 WindowPtr tmpWin; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
273 Point mousePos; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
274 Point winMousePos; |
12460 | 275 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
276 GetEventParameter(event, kEventParamMouseLocation, typeQDPoint, 0, sizeof(Point), 0, &mousePos); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
277 GetEventParameter(event, kEventParamWindowMouseLocation, typeQDPoint, 0, sizeof(Point), 0, &winMousePos); |
12460 | 278 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
279 switch (kind) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
280 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
281 case kEventMouseMoved: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
282 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
283 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
284 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
285 CGDisplayShowCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
286 mouseHide = FALSE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
287 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
288 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
289 break; |
27989 | 290 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
291 case kEventMouseWheelMoved: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
292 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
293 int wheel; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
294 short part; |
27989 | 295 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
296 GetEventParameter(event, kEventParamMouseWheelDelta, typeSInt32, 0, sizeof(int), 0, &wheel); |
15702 | 297 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
298 part = FindWindow(mousePos, &tmpWin); |
27989 | 299 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
300 if (part == inContent) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
301 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
302 if (wheel > 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
303 mplayer_put_key(MOUSE_BTN3); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
304 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
305 mplayer_put_key(MOUSE_BTN4); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
306 } |
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 break; |
27989 | 309 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
310 case kEventMouseDown: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
311 case kEventMouseUp: |
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 EventMouseButton button; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
314 short part; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
315 Rect bounds; |
27989 | 316 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
317 GetWindowPortBounds(theWindow, &bounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
318 GetEventParameter(event, kEventParamMouseButton, typeMouseButton, 0, sizeof(EventMouseButton), 0, &button); |
27989 | 319 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
320 part = FindWindow(mousePos, &tmpWin); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
321 if (kind == kEventMouseUp) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
322 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
323 if (part != inContent) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
324 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
325 switch (button) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
326 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
327 case kEventMouseButtonPrimary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
328 mplayer_put_key(MOUSE_BTN0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
329 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
330 case kEventMouseButtonSecondary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
331 mplayer_put_key(MOUSE_BTN2); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
332 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
333 case kEventMouseButtonTertiary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
334 mplayer_put_key(MOUSE_BTN1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
335 break; |
27989 | 336 |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
337 default: |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
338 result = eventNotHandledErr; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
339 break; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
340 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
341 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
342 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
343 if ((winMousePos.h > (bounds.right - 15)) && (winMousePos.v > (bounds.bottom))) |
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 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
346 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
347 Rect newSize; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
348 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
349 ResizeWindow(theWindow, mousePos, NULL, &newSize); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
350 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
351 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
352 else if (part == inMenuBar) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
353 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
354 MenuSelect(mousePos); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
355 HiliteMenu(0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
356 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
357 else if (part == inContent) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
358 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
359 switch (button) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
360 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
361 case kEventMouseButtonPrimary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
362 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
|
363 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
364 case kEventMouseButtonSecondary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
365 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
|
366 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
367 case kEventMouseButtonTertiary: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
368 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
|
369 break; |
27989 | 370 |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
371 default: |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
372 result = eventNotHandledErr; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
373 break; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
374 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
375 } |
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 break; |
27989 | 378 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
379 case kEventMouseDragged: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
380 break; |
27989 | 381 |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
382 default: |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
383 result = eventNotHandledErr; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
384 break; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
385 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
386 } |
15702 | 387 |
12624 | 388 return result; |
12296 | 389 } |
12120 | 390 |
15702 | 391 //default window event handler |
392 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
|
393 { |
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
394 OSStatus result = noErr; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
395 uint32_t d_width; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
396 uint32_t d_height; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
397 UInt32 class = GetEventClass(event); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
398 UInt32 kind = GetEventKind(event); |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
399 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
400 result = CallNextEventHandler(nextHandler, event); |
27989 | 401 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
402 aspect(&d_width, &d_height, A_NOZOOM); |
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 if (class == kEventClassCommand) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
405 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
406 HICommand theHICommand; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
407 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
408 GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, sizeof(HICommand), NULL, &theHICommand); |
27989 | 409 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
410 switch (theHICommand.commandID) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
411 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
412 case kHICommandQuit: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
413 mplayer_put_key(KEY_CLOSE_WIN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
414 break; |
27989 | 415 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
416 case kHalfScreenCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
417 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
418 { |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
419 vo_fs = (!(vo_fs)); |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
420 window_fullscreen(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
421 } |
27989 | 422 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
423 SizeWindow(theWindow, (d_width / 2), ((d_width / movie_aspect) / 2), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
424 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
425 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
426 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
427 case kNormalScreenCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
428 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
429 { |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
430 vo_fs = (!(vo_fs)); |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
431 window_fullscreen(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
432 } |
27989 | 433 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
434 SizeWindow(theWindow, d_width, (d_width / movie_aspect), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
435 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
436 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
437 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
438 case kDoubleScreenCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
439 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
440 { |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
441 vo_fs = (!(vo_fs)); |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
442 window_fullscreen(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
443 } |
27989 | 444 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
445 SizeWindow(theWindow, (d_width * 2), ((d_width / movie_aspect) * 2), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
446 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
447 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
448 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
449 case kFullScreenCmd: |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
450 vo_fs = (!(vo_fs)); |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
451 window_fullscreen(); |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
452 break; |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
453 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
454 case kKeepAspectCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
455 vo_keepaspect = (!(vo_keepaspect)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
456 CheckMenuItem(aspectMenu, 1, vo_keepaspect); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
457 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
458 break; |
27989 | 459 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
460 case kAspectOrgCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
461 movie_aspect = old_movie_aspect; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
462 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
463 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
464 SizeWindow(theWindow, dstRect.right, (dstRect.right / movie_aspect), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
465 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
466 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
467 break; |
27989 | 468 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
469 case kAspectFullCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
470 movie_aspect = 4.0f / 3.0f; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
471 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
472 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
473 SizeWindow(theWindow, dstRect.right, (dstRect.right / movie_aspect), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
474 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
475 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
476 break; |
27989 | 477 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
478 case kAspectWideCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
479 movie_aspect = 16.0f / 9.0f; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
480 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
481 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
482 SizeWindow(theWindow, dstRect.right, (dstRect.right / movie_aspect), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
483 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
484 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
485 break; |
27989 | 486 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
487 case kPanScanCmd: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
488 vo_panscan = (!(vo_panscan)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
489 CheckMenuItem(aspectMenu, 2, vo_panscan); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
490 window_panscan(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
491 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
492 break; |
27989 | 493 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
494 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
495 result = eventNotHandledErr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
496 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
497 } |
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 else if (class == kEventClassWindow) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
500 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
501 WindowRef window; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
502 Rect rectWindow = { 0, 0, 0, 0 }; |
27989 | 503 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
504 GetEventParameter(event, kEventParamDirectObject, typeWindowRef, NULL, sizeof(WindowRef), NULL, &window); |
27989 | 505 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
506 if (window) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
507 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
508 GetWindowBounds(window, kWindowGlobalPortRgn, &rectWindow); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
509 } |
27989 | 510 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
511 switch (kind) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
512 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
513 case kEventWindowClosed: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
514 theWindow = NULL; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
515 mplayer_put_key(KEY_CLOSE_WIN); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
516 break; |
27989 | 517 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
518 // resize window |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
519 case kEventWindowZoomed: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
520 case kEventWindowBoundsChanged: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
521 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
522 flip_page(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
523 window_resized(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
524 break; |
27989 | 525 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
526 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
527 result = eventNotHandledErr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
528 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
529 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
530 } |
27989 | 531 |
13707
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
532 return result; |
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
533 } |
3fff37ed4fe7
Fixed event handling for menubar and window close button.
nplourde
parents:
13693
diff
changeset
|
534 |
27989 | 535 static void quartz_CreateWindow(uint32_t d_width, uint32_t d_height, WindowAttributes windowAttrs) |
12487 | 536 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
537 CFStringRef titleKey; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
538 CFStringRef windowTitle; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
539 OSStatus result; |
27989 | 540 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
541 MenuItemIndex index; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
542 CFStringRef movMenuTitle; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
543 CFStringRef aspMenuTitle; |
27989 | 544 |
24952 | 545 const EventTypeSpec win_events[] = { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
546 {kEventClassWindow, kEventWindowClosed}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
547 {kEventClassWindow, kEventWindowBoundsChanged}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
548 {kEventClassCommand, kEventCommandProcess} |
24952 | 549 }; |
550 | |
551 const EventTypeSpec key_events[] = { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
552 {kEventClassKeyboard, kEventRawKeyDown}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
553 {kEventClassKeyboard, kEventRawKeyRepeat} |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
554 }; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
555 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
556 const EventTypeSpec mouse_events[] = { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
557 {kEventClassMouse, kEventMouseMoved}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
558 {kEventClassMouse, kEventMouseWheelMoved}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
559 {kEventClassMouse, kEventMouseDown}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
560 {kEventClassMouse, kEventMouseUp}, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
561 {kEventClassMouse, kEventMouseDragged} |
24952 | 562 }; |
563 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
564 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
|
565 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
|
566 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
|
567 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
568 // Clear Menu Bar |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
569 ClearMenuBar(); |
24952 | 570 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
571 // Create Window Menu |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
572 CreateStandardWindowMenu(0, &windMenu); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
573 InsertMenu(windMenu, 0); |
27989 | 574 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
575 // Create Movie Menu |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
576 CreateNewMenu(1004, 0, &movMenu); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
577 movMenuTitle = CFSTR("Movie"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
578 SetMenuTitleWithCFString(movMenu, movMenuTitle); |
27989 | 579 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
580 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
|
581 SetMenuItemCommandKey(movMenu, index, 0, '0'); |
27989 | 582 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
583 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
|
584 SetMenuItemCommandKey(movMenu, index, 0, '1'); |
27989 | 585 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
586 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
|
587 SetMenuItemCommandKey(movMenu, index, 0, '2'); |
27989 | 588 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
589 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
|
590 SetMenuItemCommandKey(movMenu, index, 0, 'F'); |
27989 | 591 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
592 AppendMenuItemTextWithCFString(movMenu, NULL, kMenuItemAttrSeparator, 0, &index); |
27989 | 593 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
594 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
|
595 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
596 //// Create Aspect Ratio Sub Menu |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
597 CreateNewMenu(0, 0, &aspectMenu); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
598 aspMenuTitle = CFSTR("Aspect Ratio"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
599 SetMenuTitleWithCFString(aspectMenu, aspMenuTitle); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
600 SetMenuItemHierarchicalMenu(movMenu, 6, aspectMenu); |
27989 | 601 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
602 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Keep"), 0, kKeepAspectCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
603 CheckMenuItem(aspectMenu, 1, vo_keepaspect); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
604 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
|
605 CheckMenuItem(aspectMenu, 2, vo_panscan); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
606 AppendMenuItemTextWithCFString(aspectMenu, NULL, kMenuItemAttrSeparator, 0, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
607 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Original"), 0, kAspectOrgCmd, &index); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
608 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
|
609 AppendMenuItemTextWithCFString(aspectMenu, CFSTR("16:9"), 0, kAspectWideCmd, &index); |
27989 | 610 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
611 InsertMenu(movMenu, GetMenuID(windMenu)); //insert before Window menu |
27989 | 612 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
613 DrawMenuBar(); |
27989 | 614 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
615 // create window |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
616 CreateNewWindow(kDocumentWindowClass, windowAttrs, &winRect, &theWindow); |
27989 | 617 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
618 CreateWindowGroup(0, &winGroup); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
619 SetWindowGroup(theWindow, winGroup); |
12826
fb55f94f3001
Add Window Level Key, Can switch mode with T key
nplourde
parents:
12785
diff
changeset
|
620 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
621 // Set window title |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
622 titleKey = CFSTR("MPlayer - The Movie Player"); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
623 windowTitle = CFCopyLocalizedString(titleKey, NULL); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
624 result = SetWindowTitleWithCFString(theWindow, windowTitle); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
625 CFRelease(titleKey); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
626 CFRelease(windowTitle); |
27989 | 627 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
628 // Install event handler |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
629 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
|
630 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
|
631 InstallWindowEventHandler(theWindow, NewEventHandlerUPP(WindowEventHandler), GetEventTypeCount(win_events), win_events, theWindow, NULL); |
12487 | 632 } |
633 | |
16171
fd51fd1ff231
Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents:
15909
diff
changeset
|
634 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) |
12296 | 635 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
636 WindowAttributes windowAttrs; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
637 OSErr qterr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
638 CGRect tmpBounds; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
639 CGDisplayCount displayCount; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
640 CGDirectDisplayID *displays; |
13719 | 641 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
642 // Get Main device info/////////////////////////////////////////////////// |
13719 | 643 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
644 // 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
|
645 displayCount = device_id + 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
646 displays = malloc(sizeof(CGDirectDisplayID) * displayCount); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
647 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
|
648 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
|
649 displayId = kCGDirectMainDisplay; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
650 device_id = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
651 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
652 else |
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 displayId = displays[device_id]; |
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 free(displays); |
27989 | 657 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
658 displayRect = CGDisplayBounds(displayId); |
27989 | 659 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
660 monitor_aspect = (float)displayRect.size.width / (float)displayRect.size.height; |
13791 | 661 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
662 // misc mplayer setup///////////////////////////////////////////////////// |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
663 SetRect(&imgRect, 0, 0, width, height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
664 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
665 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
666 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
667 image_depth = 32; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
668 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
669 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
670 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
671 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
672 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
673 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
674 image_depth = 16; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
675 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
676 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
677 image_size = ((imgRect.right * imgRect.bottom * image_depth) + 7) / 8; |
12296 | 678 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
679 vo_fs = flags & VOFLAG_FULLSCREEN; |
27989 | 680 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
681 // get movie aspect |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
682 panscan_init(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
683 aspect_save_orig(width, height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
684 aspect_save_prescale(d_width, d_height); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
685 aspect_save_screenres(displayRect.size.width, displayRect.size.height); |
27989 | 686 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
687 aspect(&d_width, &d_height, A_NOZOOM); |
27989 | 688 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
689 movie_aspect = (float)d_width / (float)d_height; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
690 old_movie_aspect = movie_aspect; |
27989 | 691 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
692 if (image_data) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
693 free(image_data); |
27989 | 694 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
695 image_data = malloc(image_size); |
12296 | 696 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
697 // Create player window////////////////////////////////////////////////// |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
698 windowAttrs = kWindowStandardDocumentAttributes |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
699 | kWindowStandardHandlerAttribute |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
700 | kWindowLiveResizeAttribute; |
27989 | 701 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
702 windowAttrs &= (~kWindowResizableAttribute); |
27989 | 703 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
704 if (theWindow == NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
705 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
706 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
|
707 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
708 quartz_CreateWindow(d_width, d_height, windowAttrs); |
27989 | 709 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
710 if (theWindow == NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
711 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
712 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
|
713 return -1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
714 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
715 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
|
716 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
717 CGContextFillRect(context, tmpBounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
718 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
719 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
720 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
721 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
722 HideWindow(theWindow); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
723 ChangeWindowAttributes(theWindow, ~windowAttrs, windowAttrs); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
724 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
|
725 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
|
726 SizeWindow(theWindow, d_width, d_height, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
727 } |
27989 | 728 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
729 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
730 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
731 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
732 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
733 CGContextRef context; |
27989 | 734 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
735 QDBeginCGContext(GetWindowPort(theWindow), &context); |
27989 | 736 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
737 dataProviderRef = CGDataProviderCreateWithData(0, image_data, imgRect.right * imgRect.bottom * 4, 0); |
27989 | 738 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
739 image = CGImageCreate(imgRect.right, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
740 imgRect.bottom, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
741 8, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
742 image_depth, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
743 ((imgRect.right * 32) + 7) / 8, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
744 CGColorSpaceCreateDeviceRGB(), |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
745 kCGImageAlphaNoneSkipFirst, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
746 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
|
747 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
748 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
749 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
750 } |
27989 | 751 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
752 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
753 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
754 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
755 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
756 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
757 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
758 get_image_done = 0; |
12623 | 759 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
760 if (!EnterMoviesDone) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
761 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
762 qterr = EnterMovies(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
763 EnterMoviesDone = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
764 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
765 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
766 qterr = 0; |
27989 | 767 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
768 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
769 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
770 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
|
771 return -1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
772 } |
27989 | 773 |
774 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
775 SetIdentityMatrix(&matrix); |
27989 | 776 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
777 if ((d_width != width) || (d_height != height)) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
778 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
779 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
|
780 } |
12623 | 781 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
782 yuv_qt_stuff.desc = (ImageDescriptionHandle) NewHandleClear(sizeof(ImageDescription)); |
27989 | 783 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
784 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
|
785 ((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
|
786 ((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
|
787 ((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
|
788 ((NCLCColorInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_colr))->matrix = 2; |
27989 | 789 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
790 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
|
791 ((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
|
792 ((FieldInfoImageDescriptionExtension *) (*yuv_qt_stuff.extension_fiel))->fieldOrderings = 0; |
27989 | 793 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
794 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
|
795 ((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
|
796 ((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
|
797 ((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
|
798 ((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
|
799 ((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
|
800 ((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
|
801 ((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
|
802 ((CleanApertureImageDescriptionExtension *) (*yuv_qt_stuff.extension_clap))->vertOffD = 1; |
27989 | 803 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
804 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
|
805 ((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
|
806 ((PixelAspectRatioImageDescriptionExtension *) (*yuv_qt_stuff.extension_pasp))->vSpacing = 1; |
12432 | 807 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
808 (*yuv_qt_stuff.desc)->idSize = sizeof(ImageDescription); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
809 (*yuv_qt_stuff.desc)->cType = image_qtcodec; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
810 (*yuv_qt_stuff.desc)->version = 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
811 (*yuv_qt_stuff.desc)->revisionLevel = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
812 (*yuv_qt_stuff.desc)->vendor = 'mpla'; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
813 (*yuv_qt_stuff.desc)->width = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
814 (*yuv_qt_stuff.desc)->height = imgRect.bottom; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
815 (*yuv_qt_stuff.desc)->hRes = Long2Fix(72); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
816 (*yuv_qt_stuff.desc)->vRes = Long2Fix(72); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
817 (*yuv_qt_stuff.desc)->temporalQuality = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
818 (*yuv_qt_stuff.desc)->spatialQuality = codecLosslessQuality; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
819 (*yuv_qt_stuff.desc)->frameCount = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
820 (*yuv_qt_stuff.desc)->dataSize = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
821 (*yuv_qt_stuff.desc)->depth = 24; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
822 (*yuv_qt_stuff.desc)->clutID = -1; |
27989 | 823 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
824 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
|
825 if (qterr) |
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 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
|
828 } |
27989 | 829 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
830 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
|
831 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
832 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
833 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
|
834 } |
27989 | 835 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
836 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
|
837 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
838 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
839 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
|
840 } |
27989 | 841 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
842 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
|
843 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
844 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
845 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
|
846 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
847 if (P != NULL) { // second or subsequent movie |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
848 free(P); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
849 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
850 P = calloc(sizeof(PlanarPixmapInfoYUV420) + image_size, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
851 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
852 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
853 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
854 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
855 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
856 P->componentInfoY.offset = be2me_32(sizeof(PlanarPixmapInfoYUV420)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
857 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
|
858 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
|
859 P->componentInfoY.rowBytes = be2me_32(imgRect.right); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
860 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
|
861 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
|
862 image_buffer_size = image_size + sizeof(PlanarPixmapInfoYUV420); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
863 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
864 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
865 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
866 image_buffer_size = image_size; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
867 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
868 } |
12414 | 869 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
870 qterr = DecompressSequenceBeginS(&seqId, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
871 yuv_qt_stuff.desc, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
872 (char *)P, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
873 image_buffer_size, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
874 GetWindowPort(theWindow), |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
875 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
876 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
877 ((d_width != width) || (d_height != height)) ? |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
878 &matrix : NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
879 srcCopy, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
880 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
881 0, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
882 codecLosslessQuality, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
883 bestSpeedCodec); |
12432 | 884 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
885 if (qterr) |
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 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
|
888 return -1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
889 } |
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; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
892 } |
27989 | 893 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
894 // Show window |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
895 RepositionWindow(theWindow, NULL, kWindowCenterOnMainScreen); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
896 ShowWindow(theWindow); |
27989 | 897 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
898 if (vo_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
899 window_fullscreen(); |
27989 | 900 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
901 if (vo_ontop) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
902 window_ontop(); |
27989 | 903 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
904 if (vo_rootwin) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
905 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
906 vo_fs = TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
907 winLevel = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
908 SetWindowGroupLevel(winGroup, CGWindowLevelForKey(levelList[winLevel])); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
909 window_fullscreen(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
910 } |
27989 | 911 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
912 window_resized(); |
27989 | 913 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
914 return 0; |
12120 | 915 } |
916 | |
12296 | 917 static void check_events(void) |
12120 | 918 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
919 EventRef theEvent; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
920 EventTargetRef theTarget; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
921 OSStatus theErr; |
27989 | 922 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
923 // Get event |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
924 theTarget = GetEventDispatcherTarget(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
925 theErr = ReceiveNextEvent(0, 0, kEventDurationNoWait, true, &theEvent); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
926 if (theErr == noErr && theEvent != NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
927 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
928 SendEventToEventTarget(theEvent, theTarget); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
929 ReleaseEvent(theEvent); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
930 } |
12296 | 931 } |
12120 | 932 |
12296 | 933 static void draw_osd(void) |
934 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
935 vo_draw_text(imgRect.right, imgRect.bottom, draw_alpha); |
12296 | 936 } |
12120 | 937 |
12296 | 938 static void flip_page(void) |
939 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
940 int curTime; |
21396 | 941 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
942 if (theWindow == NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
943 return; |
27989 | 944 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
945 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
946 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
947 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
948 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
949 CGContextRef context; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
950 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
951 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
952 CGContextDrawImage(context, bounds, image); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
953 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
954 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
955 break; |
27989 | 956 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
957 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
958 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
959 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
960 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
961 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
962 if (EnterMoviesDone) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
963 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
964 OSErr qterr; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
965 CodecFlags flags = 0; |
27989 | 966 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
967 qterr = DecompressSequenceFrameWhen(seqId, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
968 (char *)P, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
969 image_buffer_size, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
970 0, //codecFlagUseImageBuffer, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
971 &flags, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
972 NULL, |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
973 NULL); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
974 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
975 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
976 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
|
977 } |
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 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
980 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
981 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
982 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
983 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
984 CGContextRef context; |
27989 | 985 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
986 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
987 // render resize box |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
988 CGContextBeginPath(context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
989 CGContextSetAllowsAntialiasing(context, false); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
990 //CGContextSaveGState(context); |
27989 | 991 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
992 // line white |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
993 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
|
994 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
|
995 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
|
996 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
|
997 CGContextStrokePath(context); |
15723 | 998 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
999 // line gray |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1000 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
|
1001 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
|
1002 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
|
1003 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
|
1004 CGContextStrokePath(context); |
27989 | 1005 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1006 // line black |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1007 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
|
1008 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
|
1009 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
|
1010 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
|
1011 CGContextStrokePath(context); |
27989 | 1012 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1013 // CGContextRestoreGState( context ); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1014 CGContextFlush(context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1015 QDEndCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1016 } |
15881 | 1017 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1018 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
|
1019 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1020 // 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
|
1021 if (vo_quartz_fs && !mouseHide) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1022 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1023 if (((curTime - lastMouseHide) >= 5) || (lastMouseHide == 0)) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1024 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1025 CGDisplayHideCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1026 mouseHide = TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1027 lastMouseHide = curTime; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1028 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1029 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1030 // update activity every 30 seconds to prevent |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1031 // screensaver from starting up. |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1032 if (((curTime - lastScreensaverUpdate) >= 30) || (lastScreensaverUpdate == 0)) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1033 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1034 UpdateSystemActivity(UsrActivity); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1035 lastScreensaverUpdate = curTime; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1036 } |
12296 | 1037 } |
1038 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1039 static int draw_slice(uint8_t * src[], int stride[], int w, int h, int x, int y) |
12296 | 1040 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1041 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1042 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1043 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1044 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1045 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
|
1046 x=x/2;y=y/2;w=w/2;h=h/2; |
27989 | 1047 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1048 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
|
1049 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
|
1050 return 0; |
27989 | 1051 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1052 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1053 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
|
1054 x=x/2;y=y/2;w=w/2;h=h/2; |
27989 | 1055 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1056 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
|
1057 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
|
1058 return 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1059 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1060 return -1; |
12296 | 1061 } |
1062 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1063 static int draw_frame(uint8_t * src[]) |
12296 | 1064 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1065 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1066 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1067 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1068 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
|
1069 return 0; |
27989 | 1070 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1071 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1072 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1073 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
|
1074 return 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1075 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1076 return -1; |
12296 | 1077 } |
12120 | 1078 |
16171
fd51fd1ff231
Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents:
15909
diff
changeset
|
1079 static int query_format(uint32_t format) |
12296 | 1080 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1081 image_format = format; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1082 image_qtcodec = 0; |
13124 | 1083 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1084 if (format == IMGFMT_RGB32) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1085 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1086 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN; |
13124 | 1087 } |
27989 | 1088 |
12424 | 1089 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
|
1090 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1091 image_qtcodec = kMpegYUV420CodecType; //kYUV420CodecType ?; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1092 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_ACCEPT_STRIDE; |
12414 | 1093 } |
1094 | |
12424 | 1095 if (format == IMGFMT_YUY2) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1096 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1097 image_qtcodec = kComponentVideoUnsigned; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1098 return VFCAP_CSP_SUPPORTED | VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN; |
12414 | 1099 } |
27989 | 1100 |
12424 | 1101 if (format == IMGFMT_UYVY) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1102 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1103 image_qtcodec = k422YpCbCr8CodecType; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1104 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
|
1105 } |
12414 | 1106 |
12296 | 1107 return 0; |
1108 } | |
12120 | 1109 |
12296 | 1110 static void uninit(void) |
1111 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1112 OSErr qterr; |
27989 | 1113 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1114 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1115 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1116 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1117 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1118 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1119 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1120 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1121 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1122 if (EnterMoviesDone) |
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 qterr = CDSequenceEnd(seqId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1125 if (qterr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1126 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1127 mp_msg(MSGT_VO, MSGL_ERR, "Quartz error: CDSequenceEnd (%d)\n", qterr); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1128 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1129 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1130 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1131 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1132 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1133 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1134 } |
12432 | 1135 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1136 ShowMenuBar(); |
12296 | 1137 } |
12120 | 1138 |
16171
fd51fd1ff231
Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents:
15909
diff
changeset
|
1139 static int preinit(const char *arg) |
12296 | 1140 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1141 int parse_err = 0; |
27989 | 1142 |
1143 if(arg) | |
12519
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1144 { |
12623 | 1145 char *parse_pos = (char *)&arg[0]; |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1146 |
27989 | 1147 while (parse_pos[0] && !parse_err) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1148 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1149 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
|
1150 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1151 parse_pos = &parse_pos[10]; |
12519
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1152 device_id = strtol(parse_pos, &parse_pos, 0); |
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1153 } |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1154 if (strncmp(parse_pos, "fs_res=", 7) == 0) |
13788
ced61fa921ca
let you choose fullscreen resolution for slower system
nplourde
parents:
13787
diff
changeset
|
1155 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1156 parse_pos = &parse_pos[7]; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1157 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
|
1158 parse_pos = &parse_pos[1]; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1159 fs_res_y = strtol(parse_pos, &parse_pos, 0); |
13788
ced61fa921ca
let you choose fullscreen resolution for slower system
nplourde
parents:
13787
diff
changeset
|
1160 } |
27991
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1161 if (parse_pos[0] == ':') |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1162 parse_pos = &parse_pos[1]; |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1163 else if (parse_pos[0]) |
0a0ea17f7f64
avoid putting several statements on a single line
gpoirier
parents:
27990
diff
changeset
|
1164 parse_err = 1; |
12519
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1165 } |
12a87d539f6d
choose fullscreen device with suboption device_id=#
nplourde
parents:
12517
diff
changeset
|
1166 } |
27989 | 1167 |
27397
d47744b95b78
Give a CONFIG_ prefix to preprocessor directives that lacked one and
diego
parents:
27394
diff
changeset
|
1168 #if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL) |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1169 // this chunk of code is heavily based off SDL_macosx.m from SDL |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1170 // the CPSEnableForegroundOperation that was here before is private and shouldn't be used |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1171 // replaced by a call to the 10.3+ TransformProcessType |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1172 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1173 ProcessSerialNumber myProc, frProc; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1174 Boolean sameProc; |
27989 | 1175 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1176 if (GetFrontProcess(&frProc) == noErr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1177 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1178 if (GetCurrentProcess(&myProc) == noErr) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1179 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1180 if (SameProcess(&frProc, &myProc, &sameProc) == noErr && !sameProc) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1181 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1182 TransformProcessType(&myProc, kProcessTransformToForegroundApplication); |
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 SetFrontProcess(&myProc); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1185 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1186 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1187 } |
13909
07dadc3066f3
add support for macosx finder argument support (let you bundle mplayer to be a finder compliant .app) patch by Chris Roccati <roccati@pobox.com>
nplourde
parents:
13856
diff
changeset
|
1188 #endif |
12785
33f58bfc8a1b
make mplayer capable of being in the foreground by Dan Christiansen
nplourde
parents:
12624
diff
changeset
|
1189 |
12296 | 1190 return 0; |
12120 | 1191 } |
1192 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1193 static uint32_t draw_yuv_image(mp_image_t * mpi) |
12424 | 1194 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1195 // 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
|
1196 // drawing is done directly in P |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1197 // and displaying is in flip_page. |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1198 return get_image_done ? VO_TRUE : VO_FALSE; |
12414 | 1199 } |
1200 | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1201 static uint32_t get_yuv_image(mp_image_t * mpi) |
12424 | 1202 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1203 if (mpi->type != MP_IMGTYPE_EXPORT) return VO_FALSE; |
27989 | 1204 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1205 if (mpi->imgfmt != image_format) return VO_FALSE; |
27989 | 1206 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1207 if (mpi->flags & MP_IMGFLAG_PLANAR) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1208 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1209 if (mpi->num_planes != 3) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1210 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1211 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
|
1212 return VO_FALSE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1213 } |
12414 | 1214 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1215 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
|
1216 mpi->stride[0] = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1217 mpi->width = imgRect.right; |
12414 | 1218 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1219 if (mpi->flags & MP_IMGFLAG_SWAPPED) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1220 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1221 // I420 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1222 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
|
1223 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
|
1224 mpi->stride[1] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1225 mpi->stride[2] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1226 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1227 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1228 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1229 // YV12 |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1230 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
|
1231 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
|
1232 mpi->stride[1] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1233 mpi->stride[2] = imgRect.right / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1234 } |
27989 | 1235 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1236 mpi->flags |= MP_IMGFLAG_DIRECT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1237 get_image_done = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1238 return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1239 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1240 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1241 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1242 // doesn't work yet |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1243 if (mpi->num_planes != 1) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1244 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1245 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
|
1246 return VO_FALSE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1247 } |
12414 | 1248 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1249 mpi->planes[0] = (char *)P; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1250 mpi->stride[0] = imgRect.right * 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1251 mpi->width = imgRect.right; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1252 mpi->flags |= MP_IMGFLAG_DIRECT; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1253 get_image_done = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1254 return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1255 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1256 return VO_FALSE; |
12414 | 1257 } |
1258 | |
16171
fd51fd1ff231
Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents:
15909
diff
changeset
|
1259 static int control(uint32_t request, void *data, ...) |
12120 | 1260 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1261 switch (request) |
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 case VOCTRL_PAUSE: return int_pause = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1264 case VOCTRL_RESUME: return int_pause = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1265 case VOCTRL_FULLSCREEN: vo_fs = (!(vo_fs)); window_fullscreen(); return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1266 case VOCTRL_ONTOP: vo_ontop = (!(vo_ontop)); window_ontop(); return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1267 case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t *) data)); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1268 case VOCTRL_GET_PANSCAN: return VO_TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1269 case VOCTRL_SET_PANSCAN: window_panscan(); return VO_TRUE; |
27989 | 1270 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1271 case VOCTRL_GET_IMAGE: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1272 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1273 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1274 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1275 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1276 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1277 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1278 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1279 return get_yuv_image(data); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1280 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1281 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1282 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1283 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1284 case VOCTRL_DRAW_IMAGE: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1285 switch (image_format) |
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 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1288 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1289 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1290 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1291 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1292 return draw_yuv_image(data); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1293 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1294 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1295 break; |
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 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1298 return VO_NOTIMPL; |
12120 | 1299 } |
1300 | |
12296 | 1301 void window_resized() |
12120 | 1302 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1303 float aspectX; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1304 float aspectY; |
27989 | 1305 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1306 int padding = 0; |
27989 | 1307 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1308 uint32_t d_width; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1309 uint32_t d_height; |
27989 | 1310 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1311 CGRect tmpBounds; |
13734 | 1312 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1313 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
|
1314 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1315 GetWindowPortBounds(theWindow, &winRect); |
12120 | 1316 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1317 if (vo_keepaspect) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1318 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1319 aspect(&d_width, &d_height, A_NOZOOM); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1320 d_height = ((float)d_width / movie_aspect); |
27989 | 1321 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1322 aspectX = (float)((float)winRect.right / (float)d_width); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1323 aspectY = (float)((float)(winRect.bottom) / (float)d_height); |
27989 | 1324 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1325 if ((d_height * aspectX) > (winRect.bottom)) |
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 padding = (winRect.right - d_width * aspectY) / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1328 SetRect(&dstRect, padding, 0, d_width * aspectY + padding, d_height * aspectY); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1329 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1330 else |
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 padding = ((winRect.bottom) - d_height * aspectX) / 2; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1333 SetRect(&dstRect, 0, padding, (d_width * aspectX), d_height * aspectX + padding); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1334 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1335 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1336 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1337 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1338 SetRect(&dstRect, 0, 0, winRect.right, winRect.bottom); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1339 } |
27989 | 1340 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1341 switch (image_format) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1342 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1343 case IMGFMT_RGB32: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1344 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1345 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
|
1346 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1347 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1348 case IMGFMT_YV12: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1349 case IMGFMT_IYUV: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1350 case IMGFMT_I420: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1351 case IMGFMT_UYVY: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1352 case IMGFMT_YUY2: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1353 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1354 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
|
1355 long scale_Y = FixDiv(Long2Fix(dstRect.bottom - dstRect.top), Long2Fix(imgRect.bottom)); |
27989 | 1356 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1357 SetIdentityMatrix(&matrix); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1358 if (((dstRect.right - dstRect.left) != imgRect.right) || ((dstRect.bottom - dstRect.right) != imgRect.bottom)) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1359 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1360 ScaleMatrix(&matrix, scale_X, scale_Y, 0, 0); |
27989 | 1361 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1362 if (padding > 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1363 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1364 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
|
1365 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1366 } |
27989 | 1367 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1368 SetDSequenceMatrix(seqId, &matrix); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1369 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1370 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1371 default: |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1372 break; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1373 } |
27989 | 1374 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1375 // Clear Background |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1376 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
|
1377 QDBeginCGContext(GetWindowPort(theWindow), &context); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1378 CGContextFillRect(context, tmpBounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1379 QDEndCGContext(GetWindowPort(theWindow), &context); |
12120 | 1380 } |
1381 | |
12296 | 1382 void window_ontop() |
12460 | 1383 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1384 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1385 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1386 // Cycle between level |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1387 winLevel++; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1388 if (winLevel > 2) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1389 winLevel = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1390 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1391 SetWindowGroupLevel(winGroup, CGWindowLevelForKey(levelList[winLevel])); |
12120 | 1392 } |
1393 | |
12296 | 1394 void window_fullscreen() |
12120 | 1395 { |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1396 // go fullscreen |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1397 if (vo_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1398 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1399 if (winLevel != 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1400 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1401 if (displayId == kCGDirectMainDisplay) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1402 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1403 SetSystemUIMode(kUIModeAllHidden, kUIOptionAutoShowMenuBar); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1404 CGDisplayHideCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1405 mouseHide = TRUE; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1406 } |
27989 | 1407 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1408 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
|
1409 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1410 CFDictionaryRef mode; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1411 size_t desiredBitDepth = 32; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1412 boolean_t exactMatch; |
27989 | 1413 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1414 originalMode = CGDisplayCurrentMode(displayId); |
27989 | 1415 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1416 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
|
1417 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1418 if (mode != NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1419 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1420 if (!exactMatch) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1421 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1422 // 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
|
1423 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
|
1424 } |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
1425 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1426 CGDisplayCapture(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1427 CGDisplaySwitchToMode(displayId, mode); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1428 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1429 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1430 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1431 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
|
1432 } |
27986
9e17ab676ab9
Replace QuickDraw calls in vo_quartz.c to fix warnings when compiling with current SDK versions.
gpoirier
parents:
27397
diff
changeset
|
1433 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1434 // Get Main device info/////////////////////////////////////////////////// |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1435 displayRect = CGDisplayBounds(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1436 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1437 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1438 // save old window size |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1439 if (!vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1440 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1441 GetWindowPortBounds(theWindow, &oldWinRect); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1442 GetWindowBounds(theWindow, kWindowContentRgn, &oldWinBounds); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1443 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1444 // go fullscreen |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1445 panscan_calc(); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1446 ChangeWindowAttributes(theWindow, kWindowNoShadowAttribute, 0); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1447 MoveWindow(theWindow, displayRect.origin.x - (vo_panscan_x >> 1), displayRect.origin.y - (vo_panscan_y >> 1), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1448 SizeWindow(theWindow, displayRect.size.width + vo_panscan_x, displayRect.size.height + vo_panscan_y, 1); |
12487 | 1449 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1450 vo_quartz_fs = 1; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1451 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1452 else //go back to windowed mode |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1453 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1454 vo_quartz_fs = 0; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1455 if (originalMode != NULL) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1456 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1457 CGDisplaySwitchToMode(displayId, originalMode); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1458 CGDisplayRelease(displayId); |
27989 | 1459 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1460 // Get Main device info/////////////////////////////////////////////////// |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1461 displayRect = CGDisplayBounds(displayId); |
27989 | 1462 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1463 originalMode = NULL; |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1464 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1465 SetSystemUIMode(kUIModeNormal, 0); |
12120 | 1466 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1467 // show mouse cursor |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1468 CGDisplayShowCursor(displayId); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1469 mouseHide = FALSE; |
27989 | 1470 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1471 // revert window to previous setting |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1472 ChangeWindowAttributes(theWindow, 0, kWindowNoShadowAttribute); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1473 SizeWindow(theWindow, oldWinRect.right, oldWinRect.bottom, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1474 MoveWindow(theWindow, oldWinBounds.left, oldWinBounds.top, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1475 } |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1476 window_resized(); |
12120 | 1477 } |
13840 | 1478 |
1479 void window_panscan() | |
1480 { | |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1481 panscan_calc(); |
27989 | 1482 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1483 if (vo_panscan > 0) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1484 CheckMenuItem(aspectMenu, 2, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1485 else |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1486 CheckMenuItem(aspectMenu, 2, 0); |
27989 | 1487 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1488 if (vo_quartz_fs) |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1489 { |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1490 MoveWindow(theWindow, displayRect.origin.x - (vo_panscan_x >> 1), displayRect.origin.y - (vo_panscan_y >> 1), 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1491 SizeWindow(theWindow, displayRect.size.width + vo_panscan_x, displayRect.size.height + vo_panscan_y, 1); |
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
1492 } |
13840 | 1493 } |