/*****************************************************************************
* voutagl.c: MacOS X agl OpenGL provider (used by webbrowser.plugin)
*****************************************************************************
- * Copyright (C) 2001-2004 the VideoLAN team
+ * Copyright (C) 2001-2007 the VideoLAN team
* $Id$
*
* Authors: Colin Delacroix <colin@zoy.org>
{
vlc_value_t val;
- Rect viewBounds;
+ Rect viewBounds;
Rect clipBounds;
- static const GLint ATTRIBUTES[] = {
+ static const GLint ATTRIBUTES[] = {
AGL_WINDOW,
AGL_RGBA,
AGL_NO_RECOVERY,
AGLPixelFormat pixFormat;
- p_vout->p_sys->b_embedded = VLC_TRUE;
+ p_vout->p_sys->b_embedded = true;
pixFormat = aglChoosePixelFormat(NULL, 0, ATTRIBUTES);
if( NULL == pixFormat )
{
- msg_Err( p_vout, "no screen renderer available for required attributes." );
+ msg_Err( p_vout, "No screen renderer available for required attributes." );
return VLC_EGENERIC;
}
-
+
p_vout->p_sys->agl_ctx = aglCreateContext(pixFormat, NULL);
aglDestroyPixelFormat(pixFormat);
if( NULL == p_vout->p_sys->agl_ctx )
{
- msg_Err( p_vout, "cannot create AGL context." );
+ msg_Err( p_vout, "Cannot create AGL context." );
return VLC_EGENERIC;
}
else {
unsigned int i_height = p_vout->p_sys->i_height;
unsigned int i_width = p_vout->p_sys->i_width;
- vout_PlacePicture(p_vout, i_width, i_height, &x, &y, &i_width, &i_height);
+ vout_PlacePicture(p_vout, i_width, i_height, &x, &y, &i_width, &i_height);
glViewport( p_vout->p_sys->i_offx + x, p_vout->p_sys->i_offy + y, i_width, i_height );
}
/* private event class */
-enum
+enum
{
kEventClassVLCPlugin = 'vlcp',
};
{
/* Close the fullscreen window and resume normal drawing */
vlc_value_t val;
- Rect viewBounds;
+ Rect viewBounds;
Rect clipBounds;
var_Get( p_vout->p_libvlc, "drawable", &val );
else
{
Rect deviceRect;
-
+
GDHandle deviceHdl = GetMainDevice();
deviceRect = (*deviceHdl)->gdRect;
-
+
if( !p_vout->p_sys->theWindow )
{
/* Create a window */
| kWindowStandardHandlerAttribute
| kWindowLiveResizeAttribute
| kWindowNoShadowAttribute;
-
+
windowAttrs &= (~kWindowResizableAttribute);
CreateNewWindow(kDocumentWindowClass, windowAttrs, &deviceRect, &p_vout->p_sys->theWindow);
SetWindowGroup(p_vout->p_sys->theWindow, p_vout->p_sys->winGroup);
SetWindowGroupParent( p_vout->p_sys->winGroup, GetWindowGroupOfClass(kDocumentWindowClass) ) ;
}
-
+
// Window title
CFStringRef titleKey = CFSTR("Fullscreen VLC media plugin");
CFStringRef windowTitle = CFCopyLocalizedString(titleKey, NULL);
SetWindowTitleWithCFString(p_vout->p_sys->theWindow, windowTitle);
CFRelease(titleKey);
CFRelease(windowTitle);
-
+
//Install event handler
static const EventTypeSpec win_events[] = {
{ kEventClassMouse, kEventMouseDown },
clipBounds.left = va_arg( args, int);
clipBounds.bottom = va_arg( args, int);
clipBounds.right = va_arg( args, int);
-
- if( !p_vout->b_fullscreen )
+
+ if( !p_vout->b_fullscreen )
{
/*
** check that the clip rect is not empty, as this is used
return VLC_SUCCESS;
}
- case VOUT_REPARENT:
- {
- AGLDrawable drawable = (AGLDrawable)va_arg( args, int);
- if( !p_vout->b_fullscreen && drawable != p_vout->p_sys->agl_drawable )
- {
- p_vout->p_sys->agl_drawable = drawable;
- aglSetDrawable(p_vout->p_sys->agl_ctx, drawable);
- }
- return VLC_SUCCESS;
- }
-
default:
- return vout_vaControlDefault( p_vout, i_query, args );
+ return VLC_EGENERIC;
}
}
{
if( ! p_vout->p_sys->b_clipped_out )
{
- p_vout->p_sys->b_got_frame = VLC_TRUE;
+ p_vout->p_sys->b_got_frame = true;
aglSwapBuffers(p_vout->p_sys->agl_ctx);
}
else
p_vout->p_sys->i_height = viewBounds.bottom-viewBounds.top;
p_vout->p_sys->i_offx = -clipBounds.left - viewBounds.left;
p_vout->p_sys->i_offy = clipBounds.bottom + viewBounds.top
- - p_vout->p_sys->i_height;
+ - p_vout->p_sys->i_height;
aglUpdateContext(p_vout->p_sys->agl_ctx);
}
{
OSStatus result = noErr;
UInt32 class = GetEventClass (event);
- UInt32 kind = GetEventKind (event);
+ UInt32 kind = GetEventKind (event);
vout_thread_t *p_vout = (vout_thread_t *)userData;
result = CallNextEventHandler(nextHandler, event);
{
HICommand theHICommand;
GetEventParameter( event, kEventParamDirectObject, typeHICommand, NULL, sizeof( HICommand ), NULL, &theHICommand );
-
+
switch ( theHICommand.commandID )
{
default:
{
WindowRef window;
Rect rectPort = {0,0,0,0};
-
+
GetEventParameter(event, kEventParamDirectObject, typeWindowRef, NULL, sizeof(WindowRef), NULL, &window);
if(window)
{
GetPortBounds(GetWindowPort(window), &rectPort);
- }
+ }
switch (kind)
{
case kEventWindowZoomed:
case kEventWindowBoundsChanged:
break;
-
+
default:
result = eventNotHandledErr;
}
case kEventMouseDown:
{
UInt16 button;
-
+
GetEventParameter(event, kEventParamMouseButton, typeMouseButton, NULL, sizeof(button), NULL, &button);
switch (button)
{
case kEventMouseUp:
{
UInt16 button;
-
+
GetEventParameter(event, kEventParamMouseButton, typeMouseButton, NULL, sizeof(button), NULL, &button);
switch (button)
{
{
vlc_value_t val;
- val.b_bool = VLC_FALSE;
+ val.b_bool = false;
var_Set((vout_thread_t *) p_vout->p_parent, "fullscreen", val);
}
else
{
vlc_value_t val;
- val.b_bool = VLC_TRUE;
- var_Set( p_vout, "mouse-clicked", val );
+ var_SetBool( p_vout, "mouse-clicked", true );
var_Get( p_vout, "mouse-button-down", &val );
val.i_int &= ~1;
unsigned int i_height = p_vout->p_sys->i_height;
unsigned int i_width = p_vout->p_sys->i_width;
- vout_PlacePicture(p_vout, i_width, i_height, &i_x, &i_y, &i_width, &i_height);
+ vout_PlacePicture(p_vout, i_width, i_height, &i_x, &i_y, &i_width, &i_height);
GetEventParameter(event, kEventParamWindowMouseLocation, typeQDPoint, NULL, sizeof(Point), NULL, &ml);
-
+
val.i_int = ( ((int)ml.h) - i_x ) *
p_vout->render.i_width / i_width;
var_Set( p_vout, "mouse-x", val );
var_Set( p_vout, "mouse-y", val );
- val.b_bool = VLC_TRUE;
+ val.b_bool = true;
var_Set( p_vout, "mouse-moved", val );
break;
}
-
+
default:
result = eventNotHandledErr;
}
#ifdef __ppc__
/*
* before 10.4, we set the AGL context as current and
- * then we retrieve and use the matching CGL context
+ * then we retrieve and use the matching CGL context
*/
aglSetCurrentContext(p_vout->p_sys->agl_ctx);
return kCGLNoError != CGLLockContext( CGLGetCurrentContext() );
#ifdef __ppc__
/*
* before 10.4, we assume that the AGL context is current.
- * therefore, we use the current CGL context
+ * therefore, we use the current CGL context
*/
CGLUnlockContext( CGLGetCurrentContext() );
#else