Commit 0926bbb6 authored by Laurent Aimar's avatar Laurent Aimar

Split back window module providers by type.

parent 592f40d6
...@@ -41,7 +41,7 @@ typedef struct vout_window_sys_t vout_window_sys_t; ...@@ -41,7 +41,7 @@ typedef struct vout_window_sys_t vout_window_sys_t;
* Window handle type * Window handle type
*/ */
enum { enum {
VOUT_WINDOW_TYPE_XWINDOW, VOUT_WINDOW_TYPE_XID,
VOUT_WINDOW_TYPE_HWND, VOUT_WINDOW_TYPE_HWND,
}; };
......
...@@ -70,7 +70,7 @@ vlc_module_begin(); ...@@ -70,7 +70,7 @@ vlc_module_begin();
add_shortcut( "maemo" ); add_shortcut( "maemo" );
add_submodule(); add_submodule();
set_capability( "vout window", 50 ); set_capability( "vout window xid", 50 );
set_callbacks( OpenWindow, CloseWindow ); set_callbacks( OpenWindow, CloseWindow );
vlc_module_end(); vlc_module_end();
...@@ -265,8 +265,7 @@ static int OpenWindow (vlc_object_t *obj) ...@@ -265,8 +265,7 @@ static int OpenWindow (vlc_object_t *obj)
{ {
vout_window_t *wnd = (vout_window_t *)obj; vout_window_t *wnd = (vout_window_t *)obj;
if (wnd->cfg->type != VOUT_WINDOW_TYPE_XWINDOW || if (wnd->cfg->is_standalone)
wnd->cfg->is_standalone)
return VLC_EGENERIC; return VLC_EGENERIC;
intf_thread_t *intf = (intf_thread_t*)vlc_object_find_name (obj, "maemo", FIND_ANYWHERE); intf_thread_t *intf = (intf_thread_t*)vlc_object_find_name (obj, "maemo", FIND_ANYWHERE);
......
...@@ -243,7 +243,11 @@ vlc_module_begin () ...@@ -243,7 +243,11 @@ vlc_module_begin ()
#if defined(Q_WS_X11) || defined(WIN32) #if defined(Q_WS_X11) || defined(WIN32)
add_submodule () add_submodule ()
set_capability( "vout window", 50 ) #if defined(Q_WS_X11)
set_capability( "vout window xid", 50 )
#elif defined(WIN32)
set_capability( "vout window hwnd", 50 )
#endif
set_callbacks( WindowOpen, WindowClose ) set_callbacks( WindowOpen, WindowClose )
#endif #endif
...@@ -518,14 +522,6 @@ static int WindowOpen( vlc_object_t *p_obj ) ...@@ -518,14 +522,6 @@ static int WindowOpen( vlc_object_t *p_obj )
{ {
vout_window_t *p_wnd = (vout_window_t*)p_obj; vout_window_t *p_wnd = (vout_window_t*)p_obj;
/* Check compatibility */
#if defined (Q_WS_X11)
if( p_wnd->cfg->type != VOUT_WINDOW_TYPE_XWINDOW )
#elif defined (WIN32)
if( p_wnd->cfg->type != VOUT_WINDOW_TYPE_HWND )
#endif
return VLC_EGENERIC;
/* */ /* */
if( p_wnd->cfg->is_standalone ) if( p_wnd->cfg->is_standalone )
return VLC_EGENERIC; return VLC_EGENERIC;
......
...@@ -569,7 +569,11 @@ vlc_module_begin () ...@@ -569,7 +569,11 @@ vlc_module_begin ()
add_shortcut( "skins" ) add_shortcut( "skins" )
add_submodule () add_submodule ()
set_capability( "vout window", 51 ) #ifdef WIN32
set_capability( "vout window hwnd", 51 )
#else
set_capability( "vout window xid", 51 )
#endif
set_callbacks( WindowOpen, WindowClose ) set_callbacks( WindowOpen, WindowClose )
add_submodule () add_submodule ()
......
...@@ -47,7 +47,7 @@ vlc_module_begin () ...@@ -47,7 +47,7 @@ vlc_module_begin ()
set_description (N_("Embedded window video")) set_description (N_("Embedded window video"))
set_category (CAT_VIDEO) set_category (CAT_VIDEO)
set_subcategory (SUBCAT_VIDEO_VOUT) set_subcategory (SUBCAT_VIDEO_VOUT)
set_capability ("vout window", 70) set_capability ("vout window xid", 70)
set_callbacks (Open, Close) set_callbacks (Open, Close)
add_integer ("drawable-xid", 0, NULL, XID_TEXT, XID_LONGTEXT, true) add_integer ("drawable-xid", 0, NULL, XID_TEXT, XID_LONGTEXT, true)
change_unsaveable () change_unsaveable ()
...@@ -77,7 +77,7 @@ static int Open (vlc_object_t *obj) ...@@ -77,7 +77,7 @@ static int Open (vlc_object_t *obj)
switch (wnd->cfg->type) switch (wnd->cfg->type)
{ {
case VOUT_WINDOW_TYPE_XWINDOW: case VOUT_WINDOW_TYPE_XID:
varname = "drawable-xid"; varname = "drawable-xid";
ptr = false; ptr = false;
break; break;
......
...@@ -668,7 +668,7 @@ static int InitWindow( vout_thread_t *p_vout ) ...@@ -668,7 +668,7 @@ static int InitWindow( vout_thread_t *p_vout )
vout_window_cfg_t wnd_cfg; vout_window_cfg_t wnd_cfg;
memset( &wnd_cfg, 0, sizeof(wnd_cfg) ); memset( &wnd_cfg, 0, sizeof(wnd_cfg) );
wnd_cfg.type = VOUT_WINDOW_TYPE_XWINDOW; wnd_cfg.type = VOUT_WINDOW_TYPE_XID;
wnd_cfg.x = p_sys->embedded_window.i_x; wnd_cfg.x = p_sys->embedded_window.i_x;
wnd_cfg.y = p_sys->embedded_window.i_y; wnd_cfg.y = p_sys->embedded_window.i_y;
wnd_cfg.width = p_sys->embedded_window.i_width; wnd_cfg.width = p_sys->embedded_window.i_width;
......
...@@ -1612,7 +1612,7 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win ) ...@@ -1612,7 +1612,7 @@ static int CreateWindow( vout_thread_t *p_vout, x11_window_t *p_win )
{ {
vout_window_cfg_t wnd_cfg; vout_window_cfg_t wnd_cfg;
memset( &wnd_cfg, 0, sizeof(wnd_cfg) ); memset( &wnd_cfg, 0, sizeof(wnd_cfg) );
wnd_cfg.type = VOUT_WINDOW_TYPE_XWINDOW; wnd_cfg.type = VOUT_WINDOW_TYPE_XID;
wnd_cfg.x = p_win->i_x; wnd_cfg.x = p_win->i_x;
wnd_cfg.y = p_win->i_y; wnd_cfg.y = p_win->i_y;
wnd_cfg.width = p_win->i_width; wnd_cfg.width = p_win->i_width;
......
...@@ -72,7 +72,7 @@ vout_window_t *GetWindow (vout_thread_t *obj, ...@@ -72,7 +72,7 @@ vout_window_t *GetWindow (vout_thread_t *obj,
vout_window_cfg_t wnd_cfg; vout_window_cfg_t wnd_cfg;
memset( &wnd_cfg, 0, sizeof(wnd_cfg) ); memset( &wnd_cfg, 0, sizeof(wnd_cfg) );
wnd_cfg.type = VOUT_WINDOW_TYPE_XWINDOW; wnd_cfg.type = VOUT_WINDOW_TYPE_XID;
wnd_cfg.width = obj->i_window_width; wnd_cfg.width = obj->i_window_width;
wnd_cfg.height = obj->i_window_height; wnd_cfg.height = obj->i_window_height;
......
...@@ -56,7 +56,7 @@ vlc_module_begin () ...@@ -56,7 +56,7 @@ vlc_module_begin ()
set_description (N_("(Experimental) XCB video window")) set_description (N_("(Experimental) XCB video window"))
set_category (CAT_VIDEO) set_category (CAT_VIDEO)
set_subcategory (SUBCAT_VIDEO_VOUT) set_subcategory (SUBCAT_VIDEO_VOUT)
set_capability ("vout window", 10) set_capability ("vout window xid", 10)
set_callbacks (Open, Close) set_callbacks (Open, Close)
add_string ("x11-display", NULL, NULL, add_string ("x11-display", NULL, NULL,
...@@ -144,9 +144,6 @@ static int Open (vlc_object_t *obj) ...@@ -144,9 +144,6 @@ static int Open (vlc_object_t *obj)
xcb_generic_error_t *err; xcb_generic_error_t *err;
xcb_void_cookie_t ck; xcb_void_cookie_t ck;
if (wnd->cfg->type != VOUT_WINDOW_TYPE_XWINDOW)
return VLC_EGENERIC;
vout_window_sys_t *p_sys = malloc (sizeof (*p_sys)); vout_window_sys_t *p_sys = malloc (sizeof (*p_sys));
if (p_sys == NULL) if (p_sys == NULL)
return VLC_ENOMEM; return VLC_ENOMEM;
......
...@@ -46,7 +46,19 @@ vout_window_t *vout_window_New(vlc_object_t *obj, ...@@ -46,7 +46,19 @@ vout_window_t *vout_window_New(vlc_object_t *obj,
vlc_object_attach(window, obj); vlc_object_attach(window, obj);
window->module = module_need(window, "vout window", const char *type;
switch (cfg->type) {
case VOUT_WINDOW_TYPE_HWND:
type = "vout window hwnd";
break;
default:
assert(0);
case VOUT_WINDOW_TYPE_XID:
type = "vout window xid";
break;
}
window->module = module_need(window, type,
module, module && *module != '\0'); module, module && *module != '\0');
if (!window->module) { if (!window->module) {
vlc_object_detach(window); vlc_object_detach(window);
......
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