Mercurial > mplayer.hg
annotate libvo/vo_quartz.c @ 27992:0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
replace tabs by 4 spaces.
prettier intentation.
author | gpoirier |
---|---|
date | Mon, 24 Nov 2008 14:29:32 +0000 |
parents | 0a0ea17f7f64 |
children | 9e739bdb049c |
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 |
27992
0923262b0ebc
cosmetics (svn diff --diff-cmd diff -x '-duwbBE' gives no differences)
gpoirier
parents:
27991
diff
changeset
|
131 extern 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 } |