Mercurial > mplayer.hg
annotate libvo/vo_corevideo.h @ 33307:552f1f7731c8
Set GUI initialization flag earlier.
So far, the flag is set after the call of guiInit(), but there are calls
to GUI functions (like reading the GUI config) before that. As MPlayer
(when exiting) only calls GUI's cleanup function guiDone() if the flag
is set, it neglects calling guiDone() on any error between the first GUI
function call and execution of guiInit(). Now the flag is set before the
first GUI function call.
As a result, GUI's own exit function (also used for fatal GUI errors, and
thus also for errors occurring before guiInit() properly finishes) doesn't
have to handle cleanup any longer. The code can be moved to guiDone().
author | ib |
---|---|
date | Sat, 07 May 2011 15:30:14 +0000 |
parents | 98f341e62270 |
children | 3702a2b88d12 |
rev | line source |
---|---|
15289 | 1 /* |
29210 | 2 * CoreVideo video output driver |
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
3 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
4 * Copyright (c) 2005 Nicolas Plourde <nicolasplourde@gmail.com> |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
5 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
6 * This file is part of MPlayer. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
7 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
8 * MPlayer is free software; you can redistribute it and/or modify |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
11 * (at your option) any later version. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
12 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
13 * MPlayer is distributed in the hope that it will be useful, |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
16 * GNU General Public License for more details. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
17 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
18 * You should have received a copy of the GNU General Public License along |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
19 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28010
diff
changeset
|
21 */ |
15289 | 22 |
32126 | 23 #ifndef MPLAYER_VO_COREVIDEO_H |
24 #define MPLAYER_VO_COREVIDEO_H | |
25 | |
15289 | 26 #import <Cocoa/Cocoa.h> |
27 #import <QuartzCore/QuartzCore.h> | |
29207
5044f4496791
Replace QuickTime.h #include with Carbon.h, which is really needed.
diego
parents:
28446
diff
changeset
|
28 #import <Carbon/Carbon.h> |
15289 | 29 |
25157
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
30 // MPlayer OS X VO Protocol |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
31 @protocol MPlayerOSXVOProto |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
32 - (int) startWithWidth: (bycopy int)width |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
33 withHeight: (bycopy int)height |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
34 withBytes: (bycopy int)bytes |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
35 withAspect: (bycopy int)aspect; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
36 - (void) stop; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
37 - (void) render; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
38 - (void) toggleFullscreen; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
39 - (void) ontop; |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
40 @end |
cf3b6015735d
Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents:
24077
diff
changeset
|
41 |
15611 | 42 @interface MPlayerOpenGLView : NSOpenGLView |
15289 | 43 { |
44 //Cocoa | |
45 NSWindow *window; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
46 |
15289 | 47 //CoreVideo |
25180 | 48 CVPixelBufferRef frameBuffers[2]; |
15289 | 49 CVOpenGLTextureCacheRef textureCache; |
50 CVOpenGLTextureRef texture; | |
15729 | 51 NSRect textureFrame; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
52 |
31744 | 53 GLfloat lowerLeft[2]; |
54 GLfloat lowerRight[2]; | |
55 GLfloat upperRight[2]; | |
56 GLfloat upperLeft[2]; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
57 |
15289 | 58 BOOL mouseHide; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
59 |
15570 | 60 //menu command id |
61 NSMenuItem *kHalfScreenCmd; | |
62 NSMenuItem *kNormalScreenCmd; | |
63 NSMenuItem *kDoubleScreenCmd; | |
64 NSMenuItem *kFullScreenCmd; | |
65 NSMenuItem *kKeepAspectCmd; | |
66 NSMenuItem *kAspectOrgCmd; | |
67 NSMenuItem *kAspectFullCmd; | |
68 NSMenuItem *kAspectWideCmd; | |
69 NSMenuItem *kPanScanCmd; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29210
diff
changeset
|
70 |
28010
0a0f63090e60
factorize mouse hiding and screensaver disabling code
gpoirier
parents:
25180
diff
changeset
|
71 //timestamps for disabling screensaver and mouse hiding |
0a0f63090e60
factorize mouse hiding and screensaver disabling code
gpoirier
parents:
25180
diff
changeset
|
72 int lastMouseHide; |
0a0f63090e60
factorize mouse hiding and screensaver disabling code
gpoirier
parents:
25180
diff
changeset
|
73 int lastScreensaverUpdate; |
29564
4ae3d2d7946e
Use MPlayer's standard aspect handling functions in corevideo
reimar
parents:
29263
diff
changeset
|
74 @public |
4ae3d2d7946e
Use MPlayer's standard aspect handling functions in corevideo
reimar
parents:
29263
diff
changeset
|
75 float winSizeMult; |
15289 | 76 } |
77 | |
78 - (BOOL) acceptsFirstResponder; | |
79 - (BOOL) becomeFirstResponder; | |
80 - (BOOL) resignFirstResponder; | |
81 | |
82 //window & rendering | |
24076 | 83 - (void) preinit; |
84 - (void) config; | |
15289 | 85 - (void) prepareOpenGL; |
86 - (void) render; | |
87 - (void) reshape; | |
88 - (void) setCurrentTexture; | |
89 - (void) drawRect: (NSRect *) bounds; | |
15611 | 90 |
91 //vo control | |
15289 | 92 - (void) fullscreen: (BOOL) animate; |
93 - (void) ontop; | |
94 - (void) panscan; | |
15327 | 95 - (void) rootwin; |
15289 | 96 |
15611 | 97 //menu |
98 - (void) initMenu; | |
99 - (void) menuAction:(id)sender; | |
100 | |
15289 | 101 //event |
102 - (void) keyDown: (NSEvent *) theEvent; | |
103 - (void) mouseMoved: (NSEvent *) theEvent; | |
104 - (void) mouseDown: (NSEvent *) theEvent; | |
24077
9ce03980ed0c
added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents:
24076
diff
changeset
|
105 - (void) mouseUp: (NSEvent *) theEvent; |
15289 | 106 - (void) rightMouseDown: (NSEvent *) theEvent; |
24077
9ce03980ed0c
added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents:
24076
diff
changeset
|
107 - (void) rightMouseUp: (NSEvent *) theEvent; |
15289 | 108 - (void) otherMouseDown: (NSEvent *) theEvent; |
24077
9ce03980ed0c
added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents:
24076
diff
changeset
|
109 - (void) otherMouseUp: (NSEvent *) theEvent; |
15289 | 110 - (void) scrollWheel: (NSEvent *) theEvent; |
111 - (void) mouseEvent: (NSEvent *) theEvent; | |
112 - (void) check_events; | |
24075 | 113 @end |
32126 | 114 |
115 #endif /* MPLAYER_VO_COREVIDEO_H */ |