annotate libvo/vo_quartz.c @ 28421:6284666d3794

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