2 * MPlayer Mac OS X video output driver
4 * Copyright (c) 2005 Nicolas Plourde <nicolasplourde@gmail.com>
6 * This file is part of MPlayer.
8 * MPlayer is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * MPlayer is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License along
19 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 #import <Cocoa/Cocoa.h>
24 #import <QuartzCore/QuartzCore.h>
25 #import <QuickTime/QuickTime.h>
27 // MPlayer OS X VO Protocol
28 @protocol MPlayerOSXVOProto
29 - (int) startWithWidth
: (bycopy
int)width
30 withHeight
: (bycopy
int)height
31 withBytes
: (bycopy
int)bytes
32 withAspect
: (bycopy
int)aspect
;
35 - (void) toggleFullscreen
;
39 @interface MPlayerOpenGLView
: NSOpenGLView
43 NSOpenGLContext
*glContext
;
47 CVPixelBufferRef frameBuffers
[2];
48 CVOpenGLTextureCacheRef textureCache
;
49 CVOpenGLTextureRef texture
;
53 GLfloat lowerRight
[2];
54 GLfloat upperRight
[2];
62 NSMenuItem
*kHalfScreenCmd
;
63 NSMenuItem
*kNormalScreenCmd
;
64 NSMenuItem
*kDoubleScreenCmd
;
65 NSMenuItem
*kFullScreenCmd
;
66 NSMenuItem
*kKeepAspectCmd
;
67 NSMenuItem
*kAspectOrgCmd
;
68 NSMenuItem
*kAspectFullCmd
;
69 NSMenuItem
*kAspectWideCmd
;
70 NSMenuItem
*kPanScanCmd
;
72 //timestamps for disabling screensaver and mouse hiding
74 int lastScreensaverUpdate
;
77 - (BOOL
) acceptsFirstResponder
;
78 - (BOOL
) becomeFirstResponder
;
79 - (BOOL
) resignFirstResponder
;
84 - (void) prepareOpenGL
;
87 - (void) setCurrentTexture
;
88 - (void) drawRect
: (NSRect
*) bounds
;
91 - (void) fullscreen
: (BOOL
) animate
;
98 - (void) menuAction
:(id
)sender
;
101 - (void) keyDown
: (NSEvent
*) theEvent
;
102 - (void) mouseMoved
: (NSEvent
*) theEvent
;
103 - (void) mouseDown
: (NSEvent
*) theEvent
;
104 - (void) mouseUp
: (NSEvent
*) theEvent
;
105 - (void) rightMouseDown
: (NSEvent
*) theEvent
;
106 - (void) rightMouseUp
: (NSEvent
*) theEvent
;
107 - (void) otherMouseDown
: (NSEvent
*) theEvent
;
108 - (void) otherMouseUp
: (NSEvent
*) theEvent
;
109 - (void) scrollWheel
: (NSEvent
*) theEvent
;
110 - (void) mouseEvent
: (NSEvent
*) theEvent
;
111 - (void) check_events
;