annotate libvo/vo_macosx.h @ 28063:a318969a4f45

Set the base size window manager hint, otherwise some subtract the minimum size of 4x4 from the numbers displayed to the user which might be confusing. Based on patch by Bert Wesarg [bert wesarg googlemail com].
author reimar
date Fri, 05 Dec 2008 19:01:49 +0000
parents 0a0f63090e60
children 7681eab10aea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
1 /*
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
2 vo_macosx.h
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
3
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
4 by Nicolas Plourde <nicolasplourde@gmail.com>
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
5
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
6 Copyright (c) Nicolas Plourde - 2005
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
7
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
8 MPlayer Mac OSX video out module.
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
9 */
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
10
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
11 #import <Cocoa/Cocoa.h>
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
12 #import <QuartzCore/QuartzCore.h>
15327
8e21844c8a4c enable rootwin
nplourde
parents: 15289
diff changeset
13 #import <QuickTime/QuickTime.h>
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
14
25157
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
15 // MPlayer OS X VO Protocol
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
16 @protocol MPlayerOSXVOProto
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
17 - (int) startWithWidth: (bycopy int)width
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
18 withHeight: (bycopy int)height
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
19 withBytes: (bycopy int)bytes
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
20 withAspect: (bycopy int)aspect;
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
21 - (void) stop;
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
22 - (void) render;
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
23 - (void) toggleFullscreen;
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
24 - (void) ontop;
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
25 @end
cf3b6015735d Set protocol for the vo proxy used in shared-buffer mode.
ulion
parents: 24077
diff changeset
26
15611
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
27 @interface MPlayerOpenGLView : NSOpenGLView
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
28 {
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
29 //Cocoa
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
30 NSWindow *window;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
31 NSOpenGLContext *glContext;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
32 NSEvent *event;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
33
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
34 //CoreVideo
25180
48fe4b6e3bab Support double buffering, fix osd flicker.
ulion
parents: 25157
diff changeset
35 CVPixelBufferRef frameBuffers[2];
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
36 CVOpenGLTextureCacheRef textureCache;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
37 CVOpenGLTextureRef texture;
15729
55aaeb7b6aae new texture frame
nplourde
parents: 15726
diff changeset
38 NSRect textureFrame;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
39
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
40 GLfloat lowerLeft[2];
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
41 GLfloat lowerRight[2];
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
42 GLfloat upperRight[2];
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
43 GLfloat upperLeft[2];
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
44
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
45 BOOL mouseHide;
15855
1ca8b5873c3f keep window size when changing aspect
nplourde
parents: 15729
diff changeset
46 float winSizeMult;
15570
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
47
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
48 //menu command id
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
49 NSMenuItem *kQuitCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
50 NSMenuItem *kHalfScreenCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
51 NSMenuItem *kNormalScreenCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
52 NSMenuItem *kDoubleScreenCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
53 NSMenuItem *kFullScreenCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
54 NSMenuItem *kKeepAspectCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
55 NSMenuItem *kAspectOrgCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
56 NSMenuItem *kAspectFullCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
57 NSMenuItem *kAspectWideCmd;
f197f4a60b20 create menu
nplourde
parents: 15327
diff changeset
58 NSMenuItem *kPanScanCmd;
28010
0a0f63090e60 factorize mouse hiding and screensaver disabling code
gpoirier
parents: 25180
diff changeset
59
0a0f63090e60 factorize mouse hiding and screensaver disabling code
gpoirier
parents: 25180
diff changeset
60 //timestamps for disabling screensaver and mouse hiding
0a0f63090e60 factorize mouse hiding and screensaver disabling code
gpoirier
parents: 25180
diff changeset
61 int lastMouseHide;
0a0f63090e60 factorize mouse hiding and screensaver disabling code
gpoirier
parents: 25180
diff changeset
62 int lastScreensaverUpdate;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
63 }
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
64
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
65 - (BOOL) acceptsFirstResponder;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
66 - (BOOL) becomeFirstResponder;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
67 - (BOOL) resignFirstResponder;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
68
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
69 //window & rendering
24076
7ac48ed8c394 Functions that do not return a value must be void
reimar
parents: 24075
diff changeset
70 - (void) preinit;
7ac48ed8c394 Functions that do not return a value must be void
reimar
parents: 24075
diff changeset
71 - (void) config;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
72 - (void) prepareOpenGL;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
73 - (void) render;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
74 - (void) reshape;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
75 - (void) setCurrentTexture;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
76 - (void) drawRect: (NSRect *) bounds;
15611
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
77
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
78 //vo control
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
79 - (void) fullscreen: (BOOL) animate;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
80 - (void) ontop;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
81 - (void) panscan;
15327
8e21844c8a4c enable rootwin
nplourde
parents: 15289
diff changeset
82 - (void) rootwin;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
83
15611
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
84 //menu
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
85 - (void) initMenu;
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
86 - (void) menuAction:(id)sender;
2f77a2da1d82 Function name cleanup
nplourde
parents: 15570
diff changeset
87
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
88 //event
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
89 - (void) keyDown: (NSEvent *) theEvent;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
90 - (void) mouseMoved: (NSEvent *) theEvent;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
91 - (void) mouseDown: (NSEvent *) theEvent;
24077
9ce03980ed0c added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents: 24076
diff changeset
92 - (void) mouseUp: (NSEvent *) theEvent;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
93 - (void) rightMouseDown: (NSEvent *) theEvent;
24077
9ce03980ed0c added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents: 24076
diff changeset
94 - (void) rightMouseUp: (NSEvent *) theEvent;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
95 - (void) otherMouseDown: (NSEvent *) theEvent;
24077
9ce03980ed0c added double click support in vo_macosx. Patch by Ulion <ulion2002@gmail.com>
nplourde
parents: 24076
diff changeset
96 - (void) otherMouseUp: (NSEvent *) theEvent;
15289
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
97 - (void) scrollWheel: (NSEvent *) theEvent;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
98 - (void) mouseEvent: (NSEvent *) theEvent;
e985d786c5f1 macosx core video module
nplourde
parents:
diff changeset
99 - (void) check_events;
24075
8595d6dbd0ed Text files must end with a newline
reimar
parents: 15855
diff changeset
100 @end