annotate libvo/vo_quartz.c @ 30460:2675229bd06f

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