From ec4682128ada4047b20763dd94a7ed63c9de3d55 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Mon, 7 Dec 2009 23:17:46 +0200 Subject: [PATCH] vout_window_t: simplify via anynomous union --- include/vlc_vout_window.h | 2 +- modules/gui/hildon/maemo.c | 6 +++--- modules/gui/qt4/qt4.cpp | 8 ++++---- modules/gui/skins2/src/skin_main.cpp | 4 ++-- modules/video_output/drawable.c | 2 +- modules/video_output/msw/events.c | 2 +- modules/video_output/msw/events_vo.c | 2 +- modules/video_output/omapfb.c | 4 ++-- modules/video_output/x11/xcommon.c | 8 ++++---- modules/video_output/xcb/common.c | 8 ++++---- modules/video_output/xcb/window.c | 16 ++++++++-------- modules/video_output/xcb/x11.c | 4 ++-- modules/video_output/xcb/xvideo.c | 6 +++--- src/video_output/window.c | 5 +++-- 14 files changed, 39 insertions(+), 38 deletions(-) diff --git a/include/vlc_vout_window.h b/include/vlc_vout_window.h index a3615cdbdb..2c05e4cb7a 100644 --- a/include/vlc_vout_window.h +++ b/include/vlc_vout_window.h @@ -90,7 +90,7 @@ struct vout_window_t { union { void *hwnd; /* Win32 window handle */ uint32_t xid; /* X11 windows ID */ - } handle; + }; /* Control on the module (mandatory) * diff --git a/modules/gui/hildon/maemo.c b/modules/gui/hildon/maemo.c index 2642171381..476dacf530 100644 --- a/modules/gui/hildon/maemo.c +++ b/modules/gui/hildon/maemo.c @@ -288,15 +288,15 @@ static int OpenWindow (vlc_object_t *obj) while ((intf = wnd_req.intf) == NULL) vlc_cond_wait (&wnd_req.wait, &wnd_req.lock); - wnd->handle.xid = request_video( intf, vout ); + wnd->xid = request_video( intf, vout ); vlc_mutex_unlock (&wnd_req.lock); vlc_object_release( vout ); - if (!wnd->handle.xid) + if (!wnd->xid) return VLC_EGENERIC; - msg_Dbg( intf, "Using handle %"PRIu32, wnd->handle.xid ); + msg_Dbg( intf, "Using handle %"PRIu32, wnd->xid ); wnd->control = ControlWindow; wnd->sys = (vout_window_sys_t*)intf; diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 87055924b8..92b4672614 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -528,13 +528,13 @@ static int WindowOpen( vlc_object_t *p_obj ) unsigned i_height = p_wnd->cfg->height; #if defined (Q_WS_X11) - p_wnd->handle.xid = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); - if( !p_wnd->handle.xid ) + p_wnd->xid = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); + if( !p_wnd->xid ) return VLC_EGENERIC; #elif defined (WIN32) - p_wnd->handle.hwnd = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); - if( !p_wnd->handle.hwnd ) + p_wnd->hwnd = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); + if( !p_wnd->hwnd ) return VLC_EGENERIC; #endif diff --git a/modules/gui/skins2/src/skin_main.cpp b/modules/gui/skins2/src/skin_main.cpp index 42840b6372..e650ac7de3 100644 --- a/modules/gui/skins2/src/skin_main.cpp +++ b/modules/gui/skins2/src/skin_main.cpp @@ -385,9 +385,9 @@ static int WindowOpen( vlc_object_t *p_this ) vlc_mutex_lock( &serializer ); - pWnd->handle.hwnd = VoutManager::getWindow( pIntf, pWnd ); + pWnd->hwnd = VoutManager::getWindow( pIntf, pWnd ); - if( pWnd->handle.hwnd ) + if( pWnd->hwnd ) { pWnd->control = &VoutManager::controlWindow; pWnd->sys = (vout_window_sys_t*)pIntf; diff --git a/modules/video_output/drawable.c b/modules/video_output/drawable.c index c2d7aae204..927f276292 100644 --- a/modules/video_output/drawable.c +++ b/modules/video_output/drawable.c @@ -101,7 +101,7 @@ skip: if (val == NULL) return VLC_EGENERIC; - wnd->handle.hwnd = val; + wnd->hwnd = val; wnd->control = Control; wnd->sys = val; return VLC_SUCCESS; diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index 9d109e9eec..647a8f669e 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -420,7 +420,7 @@ static int DirectXCreateWindow( event_thread_t *p_event ) /* If an external window was specified, we'll draw in it. */ p_event->parent_window = vout_display_NewWindow(vd, &p_event->wnd_cfg ); if( p_event->parent_window ) - p_event->hparent = p_event->parent_window->handle.hwnd; + p_event->hparent = p_event->parent_window->hwnd; else p_event->hparent = NULL; #ifdef MODULE_NAME_IS_direct3d diff --git a/modules/video_output/msw/events_vo.c b/modules/video_output/msw/events_vo.c index 1357cffcf1..7e64bf7378 100644 --- a/modules/video_output/msw/events_vo.c +++ b/modules/video_output/msw/events_vo.c @@ -449,7 +449,7 @@ static int DirectXCreateWindow( event_thread_t *p_event ) /* If an external window was specified, we'll draw in it. */ p_event->parent_window = vout_window_New( VLC_OBJECT(p_vout), NULL, &p_event->wnd_cfg ); if( p_event->parent_window ) - p_event->hparent = p_event->parent_window->handle.hwnd; + p_event->hparent = p_event->parent_window->hwnd; else p_event->hparent = NULL; #ifdef MODULE_NAME_IS_direct3d diff --git a/modules/video_output/omapfb.c b/modules/video_output/omapfb.c index 20765c6264..d18616b5be 100644 --- a/modules/video_output/omapfb.c +++ b/modules/video_output/omapfb.c @@ -610,7 +610,7 @@ static void CreateWindow( vout_sys_t *p_sys ) xwindow_attributes.event_mask = ExposureMask | StructureNotifyMask | VisibilityChangeMask; p_sys->window = XCreateWindow( p_sys->p_display, - p_sys->owner_window->handle.xid, + p_sys->owner_window->xid, 0, 0, p_sys->main_window.i_width, p_sys->main_window.i_height, @@ -620,7 +620,7 @@ static void CreateWindow( vout_sys_t *p_sys ) &xwindow_attributes ); XMapWindow( p_sys->p_display, p_sys->window ); - XSelectInput( p_sys->p_display, p_sys->owner_window->handle.xid, + XSelectInput( p_sys->p_display, p_sys->owner_window->xid, StructureNotifyMask ); } diff --git a/modules/video_output/x11/xcommon.c b/modules/video_output/x11/xcommon.c index 0dd87b4682..239e76bf40 100644 --- a/modules/video_output/x11/xcommon.c +++ b/modules/video_output/x11/xcommon.c @@ -242,7 +242,7 @@ static int ManageVideo( vout_thread_t *p_vout ) /* Handle events from the owner window */ while( XCheckWindowEvent( p_vout->p_sys->p_display, - p_vout->p_sys->window.owner_window->handle.xid, + p_vout->p_sys->window.owner_window->xid, StructureNotifyMask, &xevent ) == True ) { /* ConfigureNotify event: prepare */ @@ -602,11 +602,11 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win ) /* Select events we are interested in. */ XSelectInput( p_vout->p_sys->p_display, - p_win->owner_window->handle.xid, StructureNotifyMask ); + p_win->owner_window->xid, StructureNotifyMask ); /* Get the parent window's geometry information */ XGetGeometry( p_vout->p_sys->p_display, - p_win->owner_window->handle.xid, + p_win->owner_window->xid, &(Window){ 0 }, &(int){ 0 }, &(int){ 0 }, &p_win->i_width, &p_win->i_height, @@ -616,7 +616,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. */ p_win->base_window = XCreateWindow( p_vout->p_sys->p_display, - p_win->owner_window->handle.xid, + p_win->owner_window->xid, 0, 0, p_win->i_width, p_win->i_height, 0, diff --git a/modules/video_output/xcb/common.c b/modules/video_output/xcb/common.c index 0f99fdb157..cf3d05500b 100644 --- a/modules/video_output/xcb/common.c +++ b/modules/video_output/xcb/common.c @@ -116,7 +116,7 @@ vout_window_t *GetWindow (vout_display_t *vd, xcb_get_geometry_reply_t *geo; xcb_get_geometry_cookie_t ck; - ck = xcb_get_geometry (conn, wnd->handle.xid); + ck = xcb_get_geometry (conn, wnd->xid); geo = xcb_get_geometry_reply (conn, ck, NULL); if (geo == NULL) { @@ -130,7 +130,7 @@ vout_window_t *GetWindow (vout_display_t *vd, /* Subscribe to parent window resize events */ uint32_t value = XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_STRUCTURE_NOTIFY; - xcb_change_window_attributes (conn, wnd->handle.xid, + xcb_change_window_attributes (conn, wnd->xid, XCB_CW_EVENT_MASK, &value); /* Try to subscribe to click events */ /* (only one X11 client can get them, so might not work) */ @@ -138,7 +138,7 @@ vout_window_t *GetWindow (vout_display_t *vd, { value |= XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE; - xcb_change_window_attributes (conn, wnd->handle.xid, + xcb_change_window_attributes (conn, wnd->xid, XCB_CW_EVENT_MASK, &value); } } @@ -193,7 +193,7 @@ error: int GetWindowSize (struct vout_window_t *wnd, xcb_connection_t *conn, unsigned *restrict width, unsigned *restrict height) { - xcb_get_geometry_cookie_t ck = xcb_get_geometry (conn, wnd->handle.xid); + xcb_get_geometry_cookie_t ck = xcb_get_geometry (conn, wnd->xid); xcb_get_geometry_reply_t *geo = xcb_get_geometry_reply (conn, ck, NULL); if (!geo) diff --git a/modules/video_output/xcb/window.c b/modules/video_output/xcb/window.c index d28353f9b3..f22db1d353 100644 --- a/modules/video_output/xcb/window.c +++ b/modules/video_output/xcb/window.c @@ -261,7 +261,7 @@ static int Open (vlc_object_t *obj) goto error; } - wnd->handle.xid = window; + wnd->xid = window; wnd->control = Control; wnd->sys = p_sys; @@ -335,7 +335,7 @@ static int Open (vlc_object_t *obj) #ifdef MATCHBOX_HACK if (p_sys->mb_current_app_window) xcb_set_input_focus (p_sys->conn, XCB_INPUT_FOCUS_POINTER_ROOT, - wnd->handle.xid, XCB_CURRENT_TIME); + wnd->xid, XCB_CURRENT_TIME); #endif xcb_flush (conn); /* Make sure map_window is sent (should be useless) */ return VLC_SUCCESS; @@ -404,13 +404,13 @@ static void *Thread (void *data) xcb_get_property (conn, 0, pne->window, pne->atom, XA_WINDOW, 0, 4), NULL); if (r != NULL - && !memcmp (xcb_get_property_value (r), &wnd->handle.xid, + && !memcmp (xcb_get_property_value (r), &wnd->xid, 4)) { msg_Dbg (wnd, "asking Matchbox for input focus"); xcb_set_input_focus (conn, XCB_INPUT_FOCUS_POINTER_ROOT, - wnd->handle.xid, pne->time); + wnd->xid, pne->time); xcb_flush (conn); } free (r); @@ -440,7 +440,7 @@ static void set_wm_state (vout_window_t *wnd, bool on, xcb_atom_t state) xcb_client_message_event_t ev = { .response_type = XCB_CLIENT_MESSAGE, .format = 32, - .window = wnd->handle.xid, + .window = wnd->xid, .type = sys->wm_state, }; @@ -470,7 +470,7 @@ static int Control (vout_window_t *wnd, int cmd, va_list ap) unsigned height = va_arg (ap, unsigned); const uint32_t values[] = { width, height, }; - xcb_configure_window (conn, wnd->handle.xid, + xcb_configure_window (conn, wnd->xid, XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT, values); break; @@ -585,7 +585,7 @@ static int EmOpen (vlc_object_t *obj) if (p_sys == NULL || xcb_connection_has_error (conn)) goto error; - wnd->handle.xid = window; + wnd->xid = window; wnd->control = Control; wnd->sys = p_sys; @@ -633,7 +633,7 @@ error: static void EmClose (vlc_object_t *obj) { vout_window_t *wnd = (vout_window_t *)obj; - xcb_window_t window = wnd->handle.xid; + xcb_window_t window = wnd->xid; Close (obj); ReleaseDrawable (obj, window); diff --git a/modules/video_output/xcb/x11.c b/modules/video_output/xcb/x11.c index 997c62be1b..5d330eb806 100644 --- a/modules/video_output/xcb/x11.c +++ b/modules/video_output/xcb/x11.c @@ -271,7 +271,7 @@ static int Open (vlc_object_t *obj) c = xcb_create_window_checked (p_sys->conn, p_sys->depth, p_sys->window, - p_sys->embed->handle.xid, 0, 0, + p_sys->embed->xid, 0, 0, width, height, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, vid, mask, values); @@ -519,7 +519,7 @@ static int Control (vout_display_t *vd, int query, va_list ap) /* Hide the mouse. It will be send when * vout_display_t::info.b_hide_mouse is false */ case VOUT_DISPLAY_HIDE_MOUSE: - xcb_change_window_attributes (p_sys->conn, p_sys->embed->handle.xid, + xcb_change_window_attributes (p_sys->conn, p_sys->embed->xid, XCB_CW_CURSOR, &(uint32_t){ p_sys->cursor }); return VLC_SUCCESS; diff --git a/modules/video_output/xcb/xvideo.c b/modules/video_output/xcb/xvideo.c index 775e8b4a5e..0328e1e8be 100644 --- a/modules/video_output/xcb/xvideo.c +++ b/modules/video_output/xcb/xvideo.c @@ -340,7 +340,7 @@ static int Open (vlc_object_t *obj) /* Cache adaptors infos */ xcb_xv_query_adaptors_reply_t *adaptors = xcb_xv_query_adaptors_reply (conn, - xcb_xv_query_adaptors (conn, p_sys->embed->handle.xid), NULL); + xcb_xv_query_adaptors (conn, p_sys->embed->xid), NULL); if (adaptors == NULL) goto error; @@ -464,7 +464,7 @@ static int Open (vlc_object_t *obj) xcb_void_cookie_t c; c = xcb_create_window_checked (conn, f->depth, p_sys->window, - p_sys->embed->handle.xid, 0, 0, 1, 1, 0, + p_sys->embed->xid, 0, 0, 1, 1, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, f->visual, XCB_CW_EVENT_MASK, &mask); @@ -762,7 +762,7 @@ static int Control (vout_display_t *vd, int query, va_list ap) /* Hide the mouse. It will be send when * vout_display_t::info.b_hide_mouse is false */ case VOUT_DISPLAY_HIDE_MOUSE: - xcb_change_window_attributes (p_sys->conn, p_sys->embed->handle.xid, + xcb_change_window_attributes (p_sys->conn, p_sys->embed->xid, XCB_CW_CURSOR, &(uint32_t){ p_sys->cursor }); return VLC_SUCCESS; case VOUT_DISPLAY_RESET_PICTURES: diff --git a/src/video_output/window.c b/src/video_output/window.c index 87e9a13c74..4a2498c103 100644 --- a/src/video_output/window.c +++ b/src/video_output/window.c @@ -50,7 +50,6 @@ vout_window_t *vout_window_New(vlc_object_t *obj, vout_window_t *window = &w->wnd; window->cfg = cfg; - memset(&window->handle, 0, sizeof(window->handle)); window->control = NULL; window->sys = NULL; @@ -60,9 +59,11 @@ vout_window_t *vout_window_New(vlc_object_t *obj, switch (cfg->type) { case VOUT_WINDOW_TYPE_HWND: type = "vout window hwnd"; + window->hwnd = NULL; break; case VOUT_WINDOW_TYPE_XID: type = "vout window xid"; + window->xid = 0; break; default: assert(0); @@ -78,7 +79,7 @@ vout_window_t *vout_window_New(vlc_object_t *obj, /* Hook for screensaver inhibition */ if (cfg->type == VOUT_WINDOW_TYPE_XID) { w->inhibit = vlc_inhibit_Create (VLC_OBJECT (window), - window->handle.xid); + window->xid); if (w->inhibit != NULL) vlc_inhibit_Set (w->inhibit, true); /* FIXME: ^ wait for vout activation, pause */ -- 2.39.2