diff libvo/vo_corevideo.h @ 29210:779281d8cd80

Rename macosx video output driver to corevideo.
author diego
date Mon, 04 May 2009 16:55:05 +0000
parents libvo/vo_macosx.h@5044f4496791
children 0f1b5b68af32
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libvo/vo_corevideo.h	Mon May 04 16:55:05 2009 +0000
@@ -0,0 +1,112 @@
+/*
+ * CoreVideo video output driver
+ *
+ * Copyright (c) 2005 Nicolas Plourde <nicolasplourde@gmail.com>
+ *
+ * This file is part of MPlayer.
+ *
+ * MPlayer is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * MPlayer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with MPlayer; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import <QuartzCore/QuartzCore.h>
+#import <Carbon/Carbon.h>
+
+// MPlayer OS X VO Protocol
+@protocol MPlayerOSXVOProto
+- (int) startWithWidth: (bycopy int)width
+            withHeight: (bycopy int)height
+             withBytes: (bycopy int)bytes
+            withAspect: (bycopy int)aspect;
+- (void) stop;
+- (void) render;
+- (void) toggleFullscreen;
+- (void) ontop;
+@end
+
+@interface MPlayerOpenGLView : NSOpenGLView
+{
+	//Cocoa
+	NSWindow *window;
+	NSOpenGLContext *glContext;
+	NSEvent *event;
+	
+	//CoreVideo
+	CVPixelBufferRef frameBuffers[2];
+	CVOpenGLTextureCacheRef textureCache;
+	CVOpenGLTextureRef texture;
+	NSRect textureFrame;
+	
+    GLfloat	lowerLeft[2]; 
+    GLfloat lowerRight[2]; 
+    GLfloat upperRight[2];
+    GLfloat upperLeft[2];
+	
+	BOOL mouseHide;
+	float winSizeMult;
+	
+	//menu command id
+	NSMenuItem *kQuitCmd;
+	NSMenuItem *kHalfScreenCmd;
+	NSMenuItem *kNormalScreenCmd;
+	NSMenuItem *kDoubleScreenCmd;
+	NSMenuItem *kFullScreenCmd;
+	NSMenuItem *kKeepAspectCmd;
+	NSMenuItem *kAspectOrgCmd;
+	NSMenuItem *kAspectFullCmd;
+	NSMenuItem *kAspectWideCmd;
+	NSMenuItem *kPanScanCmd;
+	
+	//timestamps for disabling screensaver and mouse hiding
+	int lastMouseHide;
+	int lastScreensaverUpdate;
+}
+
+- (BOOL) acceptsFirstResponder;
+- (BOOL) becomeFirstResponder;
+- (BOOL) resignFirstResponder;
+
+//window & rendering
+- (void) preinit;
+- (void) config;
+- (void) prepareOpenGL;
+- (void) render;
+- (void) reshape;
+- (void) setCurrentTexture;
+- (void) drawRect: (NSRect *) bounds;
+
+//vo control
+- (void) fullscreen: (BOOL) animate;
+- (void) ontop;
+- (void) panscan;
+- (void) rootwin;
+
+//menu
+- (void) initMenu;
+- (void) menuAction:(id)sender;
+
+//event
+- (void) keyDown: (NSEvent *) theEvent;
+- (void) mouseMoved: (NSEvent *) theEvent;
+- (void) mouseDown: (NSEvent *) theEvent;
+- (void) mouseUp: (NSEvent *) theEvent;
+- (void) rightMouseDown: (NSEvent *) theEvent;
+- (void) rightMouseUp: (NSEvent *) theEvent;
+- (void) otherMouseDown: (NSEvent *) theEvent;
+- (void) otherMouseUp: (NSEvent *) theEvent;
+- (void) scrollWheel: (NSEvent *) theEvent;
+- (void) mouseEvent: (NSEvent *) theEvent;
+- (void) check_events;
+@end