Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
ec468212
Commit
ec468212
authored
Dec 07, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vout_window_t: simplify via anynomous union
parent
d5618a75
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
39 additions
and
38 deletions
+39
-38
include/vlc_vout_window.h
include/vlc_vout_window.h
+1
-1
modules/gui/hildon/maemo.c
modules/gui/hildon/maemo.c
+3
-3
modules/gui/qt4/qt4.cpp
modules/gui/qt4/qt4.cpp
+4
-4
modules/gui/skins2/src/skin_main.cpp
modules/gui/skins2/src/skin_main.cpp
+2
-2
modules/video_output/drawable.c
modules/video_output/drawable.c
+1
-1
modules/video_output/msw/events.c
modules/video_output/msw/events.c
+1
-1
modules/video_output/msw/events_vo.c
modules/video_output/msw/events_vo.c
+1
-1
modules/video_output/omapfb.c
modules/video_output/omapfb.c
+2
-2
modules/video_output/x11/xcommon.c
modules/video_output/x11/xcommon.c
+4
-4
modules/video_output/xcb/common.c
modules/video_output/xcb/common.c
+4
-4
modules/video_output/xcb/window.c
modules/video_output/xcb/window.c
+8
-8
modules/video_output/xcb/x11.c
modules/video_output/xcb/x11.c
+2
-2
modules/video_output/xcb/xvideo.c
modules/video_output/xcb/xvideo.c
+3
-3
src/video_output/window.c
src/video_output/window.c
+3
-2
No files found.
include/vlc_vout_window.h
View file @
ec468212
...
...
@@ -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)
*
...
...
modules/gui/hildon/maemo.c
View file @
ec468212
...
...
@@ -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
;
...
...
modules/gui/qt4/qt4.cpp
View file @
ec468212
...
...
@@ -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
->
h
andle
.
h
wnd
=
p_mi
->
getVideo
(
&
i_x
,
&
i_y
,
&
i_width
,
&
i_height
);
if
(
!
p_wnd
->
h
andle
.
h
wnd
)
p_wnd
->
hwnd
=
p_mi
->
getVideo
(
&
i_x
,
&
i_y
,
&
i_width
,
&
i_height
);
if
(
!
p_wnd
->
hwnd
)
return
VLC_EGENERIC
;
#endif
...
...
modules/gui/skins2/src/skin_main.cpp
View file @
ec468212
...
...
@@ -385,9 +385,9 @@ static int WindowOpen( vlc_object_t *p_this )
vlc_mutex_lock
(
&
serializer
);
pWnd
->
h
andle
.
h
wnd
=
VoutManager
::
getWindow
(
pIntf
,
pWnd
);
pWnd
->
hwnd
=
VoutManager
::
getWindow
(
pIntf
,
pWnd
);
if
(
pWnd
->
h
andle
.
h
wnd
)
if
(
pWnd
->
hwnd
)
{
pWnd
->
control
=
&
VoutManager
::
controlWindow
;
pWnd
->
sys
=
(
vout_window_sys_t
*
)
pIntf
;
...
...
modules/video_output/drawable.c
View file @
ec468212
...
...
@@ -101,7 +101,7 @@ skip:
if
(
val
==
NULL
)
return
VLC_EGENERIC
;
wnd
->
h
andle
.
h
wnd
=
val
;
wnd
->
hwnd
=
val
;
wnd
->
control
=
Control
;
wnd
->
sys
=
val
;
return
VLC_SUCCESS
;
...
...
modules/video_output/msw/events.c
View file @
ec468212
...
...
@@ -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
->
h
andle
.
h
wnd
;
p_event
->
hparent
=
p_event
->
parent_window
->
hwnd
;
else
p_event
->
hparent
=
NULL
;
#ifdef MODULE_NAME_IS_direct3d
...
...
modules/video_output/msw/events_vo.c
View file @
ec468212
...
...
@@ -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
->
h
andle
.
h
wnd
;
p_event
->
hparent
=
p_event
->
parent_window
->
hwnd
;
else
p_event
->
hparent
=
NULL
;
#ifdef MODULE_NAME_IS_direct3d
...
...
modules/video_output/omapfb.c
View file @
ec468212
...
...
@@ -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
);
}
modules/video_output/x11/xcommon.c
View file @
ec468212
...
...
@@ -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
,
...
...
modules/video_output/xcb/common.c
View file @
ec468212
...
...
@@ -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
)
...
...
modules/video_output/xcb/window.c
View file @
ec468212
...
...
@@ -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
);
...
...
modules/video_output/xcb/x11.c
View file @
ec468212
...
...
@@ -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
;
...
...
modules/video_output/xcb/xvideo.c
View file @
ec468212
...
...
@@ -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
:
...
...
src/video_output/window.c
View file @
ec468212
...
...
@@ -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 */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment