Commit 4de1d766 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Cleanup vout window handle typedef

parent 92107b3a
...@@ -36,7 +36,11 @@ struct vout_window_t ...@@ -36,7 +36,11 @@ struct vout_window_t
module_t *module; module_t *module;
vout_thread_t *vout; vout_thread_t *vout;
void *handle; /* OS-specific Window handle */ union
{
void *hwnd; /* Win32 window handle */
uint32_t xid; /* X11 window ID */
} handle;
void *p_sys; /* window provider private data */ void *p_sys; /* window provider private data */
unsigned width; /* pixels width */ unsigned width; /* pixels width */
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <hildon/hildon-banner.h> #include <hildon/hildon-banner.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <stdio.h> #include <stdio.h>
#include <inttypes.h>
#include "maemo.h" #include "maemo.h"
#include "maemo_callbacks.h" #include "maemo_callbacks.h"
...@@ -288,8 +289,8 @@ static int OpenWindow (vlc_object_t *obj) ...@@ -288,8 +289,8 @@ static int OpenWindow (vlc_object_t *obj)
return VLC_EGENERIC; /* Maemo not in use */ return VLC_EGENERIC; /* Maemo not in use */
} }
wnd->handle = request_video( intf, wnd->vout ); wnd->handle.xid = request_video( intf, wnd->vout );
msg_Dbg( intf, "Using handle %p", wnd->handle ); msg_Dbg( intf, "Using handle %"PRIu32, wnd->handle.xid );
wnd->control = ControlWindow; wnd->control = ControlWindow;
wnd->p_private = intf; wnd->p_private = intf;
......
...@@ -100,9 +100,9 @@ VideoWidget::~VideoWidget() ...@@ -100,9 +100,9 @@ VideoWidget::~VideoWidget()
/** /**
* Request the video to avoid the conflicts * Request the video to avoid the conflicts
**/ **/
void *VideoWidget::request( vout_thread_t *p_nvout, int *pi_x, int *pi_y, WId VideoWidget::request( vout_thread_t *p_nvout, int *pi_x, int *pi_y,
unsigned int *pi_width, unsigned int *pi_height, unsigned int *pi_width, unsigned int *pi_height,
bool b_keep_size ) bool b_keep_size )
{ {
msg_Dbg( p_intf, "Video was requested %i, %i", *pi_x, *pi_y ); msg_Dbg( p_intf, "Video was requested %i, %i", *pi_x, *pi_y );
...@@ -122,7 +122,7 @@ void *VideoWidget::request( vout_thread_t *p_nvout, int *pi_x, int *pi_y, ...@@ -122,7 +122,7 @@ void *VideoWidget::request( vout_thread_t *p_nvout, int *pi_x, int *pi_y,
#ifndef NDEBUG #ifndef NDEBUG
msg_Dbg( p_intf, "embedded video ready (handle %p)", (void *)winId() ); msg_Dbg( p_intf, "embedded video ready (handle %p)", (void *)winId() );
#endif #endif
return ( void* )winId(); return winId();
} }
/* Set the Widget to the correct Size */ /* Set the Widget to the correct Size */
......
...@@ -59,8 +59,8 @@ public: ...@@ -59,8 +59,8 @@ public:
VideoWidget( intf_thread_t * ); VideoWidget( intf_thread_t * );
virtual ~VideoWidget(); virtual ~VideoWidget();
void *request( vout_thread_t *, int *, int *, WId request( vout_thread_t *, int *, int *,
unsigned int *, unsigned int *, bool ); unsigned int *, unsigned int *, bool );
void release( void ); void release( void );
int control( void *, int, va_list ); int control( void *, int, va_list );
......
...@@ -638,13 +638,13 @@ private: ...@@ -638,13 +638,13 @@ private:
* Thou shall not call/resize/hide widgets from on another thread. * Thou shall not call/resize/hide widgets from on another thread.
* This is wrong, and this is THE reason to emit signals on those Video Functions * This is wrong, and this is THE reason to emit signals on those Video Functions
**/ **/
void *MainInterface::requestVideo( vout_thread_t *p_nvout, int *pi_x, WId MainInterface::requestVideo( vout_thread_t *p_nvout, int *pi_x,
int *pi_y, unsigned int *pi_width, int *pi_y, unsigned int *pi_width,
unsigned int *pi_height ) unsigned int *pi_height )
{ {
/* Request the videoWidget */ /* Request the videoWidget */
void *ret = videoWidget->request( p_nvout,pi_x, pi_y, WId ret = videoWidget->request( p_nvout,pi_x, pi_y,
pi_width, pi_height, b_keep_size ); pi_width, pi_height, b_keep_size );
if( ret ) /* The videoWidget is available */ if( ret ) /* The videoWidget is available */
{ {
/* Did we have a bg ? Hide it! */ /* Did we have a bg ? Hide it! */
...@@ -689,9 +689,8 @@ void MainInterface::releaseVideoSlot( void ) ...@@ -689,9 +689,8 @@ void MainInterface::releaseVideoSlot( void )
} }
/* Call from WindowControl function */ /* Call from WindowControl function */
int MainInterface::controlVideo( void *p_window, int i_query, va_list args ) int MainInterface::controlVideo( int i_query, va_list args )
{ {
VLC_UNUSED( p_window ); //FIXME remove this param
int i_ret = VLC_SUCCESS; int i_ret = VLC_SUCCESS;
switch( i_query ) switch( i_query )
{ {
......
...@@ -75,11 +75,11 @@ public: ...@@ -75,11 +75,11 @@ public:
virtual ~MainInterface(); virtual ~MainInterface();
/* Video requests from core */ /* Video requests from core */
void *requestVideo( vout_thread_t *p_nvout, int *pi_x, WId requestVideo( vout_thread_t *p_nvout, int *pi_x,
int *pi_y, unsigned int *pi_width, int *pi_y, unsigned int *pi_width,
unsigned int *pi_height ); unsigned int *pi_height );
void releaseVideo( void ); void releaseVideo( void );
int controlVideo( void *p_window, int i_query, va_list args ); int controlVideo( int i_query, va_list args );
/* Getters */ /* Getters */
QSystemTrayIcon *getSysTray() { return sysTray; }; QSystemTrayIcon *getSysTray() { return sysTray; };
......
...@@ -516,11 +516,23 @@ static int WindowOpen (vlc_object_t *obj) ...@@ -516,11 +516,23 @@ static int WindowOpen (vlc_object_t *obj)
MainInterface *p_mi = intf->p_sys->p_mi; MainInterface *p_mi = intf->p_sys->p_mi;
msg_Dbg (obj, "requesting video..."); msg_Dbg (obj, "requesting video...");
wnd->handle = p_mi->requestVideo (wnd->vout, &wnd->pos_x, &wnd->pos_y, #if defined (Q_WS_X11)
&wnd->width, &wnd->height); wnd->handle.xid = p_mi->requestVideo (wnd->vout, &wnd->pos_x, &wnd->pos_y,
if (!wnd->handle) &wnd->width, &wnd->height);
if (!wnd->handle.xid)
return VLC_EGENERIC; return VLC_EGENERIC;
#elif defined (WIN32)
wnd->handle.hwnd = p_mi->requestVideo (wnd->vout, &wnd->pos_x, &wnd->pos_y,
&wnd->width, &wnd->height);
if (!wnd->handle.hwnd)
return VLC_EGENERIC;
#else
return VLC_EGENERIC;
#endif
wnd->control = WindowControl; wnd->control = WindowControl;
wnd->p_private = p_mi; wnd->p_private = p_mi;
return VLC_SUCCESS; return VLC_SUCCESS;
...@@ -531,7 +543,7 @@ static int WindowControl (vout_window_t *wnd, int query, va_list args) ...@@ -531,7 +543,7 @@ static int WindowControl (vout_window_t *wnd, int query, va_list args)
MainInterface *p_mi = (MainInterface *)wnd->p_private; MainInterface *p_mi = (MainInterface *)wnd->p_private;
QMutexLocker locker (&iface.lock); QMutexLocker locker (&iface.lock);
return p_mi->controlVideo (wnd->handle, query, args); return p_mi->controlVideo (query, args);
} }
static void WindowClose (vlc_object_t *obj) static void WindowClose (vlc_object_t *obj)
......
...@@ -422,7 +422,7 @@ static int DirectXCreateWindow( vout_thread_t *p_vout ) ...@@ -422,7 +422,7 @@ static int DirectXCreateWindow( vout_thread_t *p_vout )
&p_vout->p_sys->i_window_y, &p_vout->p_sys->i_window_y,
&p_vout->p_sys->i_window_width, &p_vout->p_sys->i_window_width,
&p_vout->p_sys->i_window_height ); &p_vout->p_sys->i_window_height );
p_vout->p_sys->hparent = p_vout->p_sys->parent_window->handle; p_vout->p_sys->hparent = p_vout->p_sys->parent_window->handle.hwnd;
/* We create the window ourself, there is no previous window proc. */ /* We create the window ourself, there is no previous window proc. */
p_vout->p_sys->pf_wndproc = NULL; p_vout->p_sys->pf_wndproc = NULL;
......
...@@ -701,7 +701,7 @@ static void CreateWindow( vout_sys_t *p_sys ) ...@@ -701,7 +701,7 @@ static void CreateWindow( vout_sys_t *p_sys )
BlackPixel( p_sys->p_display, DefaultScreen(p_sys->p_display) ); BlackPixel( p_sys->p_display, DefaultScreen(p_sys->p_display) );
xwindow_attributes.event_mask = ExposureMask | StructureNotifyMask; xwindow_attributes.event_mask = ExposureMask | StructureNotifyMask;
p_sys->window = XCreateWindow( p_sys->p_display, p_sys->window = XCreateWindow( p_sys->p_display,
p_sys->owner_window->handle, p_sys->owner_window->handle.xid,
0, 0, 0, 0,
p_sys->main_window.i_width, p_sys->main_window.i_width,
p_sys->main_window.i_height, p_sys->main_window.i_height,
...@@ -714,7 +714,7 @@ static void CreateWindow( vout_sys_t *p_sys ) ...@@ -714,7 +714,7 @@ static void CreateWindow( vout_sys_t *p_sys )
XSelectInput( p_sys->p_display, p_sys->window, XSelectInput( p_sys->p_display, p_sys->window,
KeyPressMask | ButtonPressMask | StructureNotifyMask | KeyPressMask | ButtonPressMask | StructureNotifyMask |
VisibilityChangeMask | FocusChangeMask ); VisibilityChangeMask | FocusChangeMask );
XSelectInput( p_sys->p_display, p_sys->owner_window->handle, XSelectInput( p_sys->p_display, p_sys->owner_window->handle.xid,
StructureNotifyMask ); StructureNotifyMask );
XSetInputFocus( p_sys->p_display, p_sys->window, RevertToParent, CurrentTime ); XSetInputFocus( p_sys->p_display, p_sys->window, RevertToParent, CurrentTime );
} }
......
...@@ -1161,7 +1161,7 @@ static int ManageVideo( vout_thread_t *p_vout ) ...@@ -1161,7 +1161,7 @@ static int ManageVideo( vout_thread_t *p_vout )
if( p_vout->p_sys->p_win->owner_window ) if( p_vout->p_sys->p_win->owner_window )
{ {
while( XCheckWindowEvent( p_vout->p_sys->p_display, while( XCheckWindowEvent( p_vout->p_sys->p_display,
p_vout->p_sys->p_win->owner_window->handle, p_vout->p_sys->p_win->owner_window->handle.xid,
StructureNotifyMask, &xevent ) == True ) StructureNotifyMask, &xevent ) == True )
{ {
/* ConfigureNotify event: prepare */ /* ConfigureNotify event: prepare */
...@@ -1716,11 +1716,12 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win ) ...@@ -1716,11 +1716,12 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win )
unsigned int dummy4, dummy5; unsigned int dummy4, dummy5;
/* Select events we are interested in. */ /* Select events we are interested in. */
XSelectInput( p_vout->p_sys->p_display, p_win->owner_window->handle, XSelectInput( p_vout->p_sys->p_display,
StructureNotifyMask ); p_win->owner_window->handle.xid, StructureNotifyMask );
/* Get the parent window's geometry information */ /* Get the parent window's geometry information */
XGetGeometry( p_vout->p_sys->p_display, p_win->owner_window->handle, XGetGeometry( p_vout->p_sys->p_display,
p_win->owner_window->handle.xid,
&dummy1, &dummy2, &dummy3, &dummy1, &dummy2, &dummy3,
&p_win->i_width, &p_win->i_width,
&p_win->i_height, &p_win->i_height,
...@@ -1733,7 +1734,7 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win ) ...@@ -1733,7 +1734,7 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win )
* ButtonPress event, so we need to open a new window anyway. */ * ButtonPress event, so we need to open a new window anyway. */
p_win->base_window = p_win->base_window =
XCreateWindow( p_vout->p_sys->p_display, XCreateWindow( p_vout->p_sys->p_display,
p_win->owner_window->handle, p_win->owner_window->handle.xid,
0, 0, 0, 0,
p_win->i_width, p_win->i_height, p_win->i_width, p_win->i_height,
0, 0,
......
...@@ -96,7 +96,7 @@ static int Open (vlc_object_t *obj) ...@@ -96,7 +96,7 @@ static int Open (vlc_object_t *obj)
xcb_map_window (conn, window); xcb_map_window (conn, window);
xcb_flush (conn); xcb_flush (conn);
wnd->handle = (void *)(intptr_t)window; wnd->handle.xid = window;
wnd->p_sys = conn; wnd->p_sys = conn;
wnd->control = Control; wnd->control = Control;
return VLC_SUCCESS; return VLC_SUCCESS;
......
...@@ -377,7 +377,7 @@ static int Init (vout_thread_t *vout) ...@@ -377,7 +377,7 @@ static int Init (vout_thread_t *vout)
msg_Err (vout, "cannot get window"); msg_Err (vout, "cannot get window");
return VLC_EGENERIC; return VLC_EGENERIC;
} }
p_sys->parent = (intptr_t)p_sys->embed->handle; p_sys->parent = p_sys->embed->handle.xid;
} }
/* Determine our input format */ /* Determine our input format */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment