[vlc-commits] vout:win32: separate the bare object use from direct vout_display_t use
Steve Lhomme
git at videolan.org
Tue Apr 2 16:32:54 CEST 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Tue Mar 26 13:15:06 2019 +0100| [debcdb33d084e1ce5d656d9fbc20734504e6257e] | committer: Steve Lhomme
vout:win32: separate the bare object use from direct vout_display_t use
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=debcdb33d084e1ce5d656d9fbc20734504e6257e
---
modules/video_output/win32/common.c | 10 +++---
modules/video_output/win32/common.h | 2 +-
modules/video_output/win32/direct3d11.c | 2 +-
modules/video_output/win32/direct3d9.c | 2 +-
modules/video_output/win32/events.c | 62 +++++++++++++++------------------
modules/video_output/win32/events.h | 2 +-
modules/video_output/win32/glwin32.c | 2 +-
modules/video_output/win32/wingdi.c | 2 +-
8 files changed, 40 insertions(+), 44 deletions(-)
diff --git a/modules/video_output/win32/common.c b/modules/video_output/win32/common.c
index 0cb2162d61..6d2a395063 100644
--- a/modules/video_output/win32/common.c
+++ b/modules/video_output/win32/common.c
@@ -77,7 +77,7 @@ static bool GetWindowDimensions(void *opaque, UINT *width, UINT *height)
}
/* */
-int CommonInit(vout_display_t *vd, display_win32_area_t *area, vout_display_sys_win32_t *sys)
+int CommonInit(vlc_object_t *obj, vout_display_t *vd, display_win32_area_t *area, vout_display_sys_win32_t *sys)
{
if (unlikely(area->vdcfg.window == NULL))
return VLC_EGENERIC;
@@ -98,10 +98,10 @@ int CommonInit(vout_display_t *vd, display_win32_area_t *area, vout_display_sys_
area->pf_GetDisplayDimensions = GetWindowDimensions;
area->opaque_dimensions = sys;
- var_Create(vd, "video-deco", VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
+ var_Create(obj, "video-deco", VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
/* */
- sys->event = EventThreadCreate(vd, area->vdcfg.window);
+ sys->event = EventThreadCreate(obj, area->vdcfg.window);
if (!sys->event)
return VLC_EGENERIC;
@@ -114,8 +114,8 @@ int CommonInit(vout_display_t *vd, display_win32_area_t *area, vout_display_sys_
#ifdef MODULE_NAME_IS_direct3d9
cfg.use_desktop = sys->use_desktop;
#endif
- cfg.x = var_InheritInteger(vd, "video-x");
- cfg.y = var_InheritInteger(vd, "video-y");
+ cfg.x = var_InheritInteger(obj, "video-x");
+ cfg.y = var_InheritInteger(obj, "video-y");
cfg.width = area->vdcfg.display.width;
cfg.height = area->vdcfg.display.height;
cfg.is_projected = vd->source.projection_mode != PROJECTION_MODE_RECTANGULAR;
diff --git a/modules/video_output/win32/common.h b/modules/video_output/win32/common.h
index 74000a51b7..88745755b7 100644
--- a/modules/video_output/win32/common.h
+++ b/modules/video_output/win32/common.h
@@ -75,7 +75,7 @@ typedef struct vout_display_sys_win32_t
* Prototypes from common.c
*****************************************************************************/
#if !VLC_WINSTORE_APP
-int CommonInit(vout_display_t *, display_win32_area_t *, vout_display_sys_win32_t *);
+int CommonInit(vlc_object_t *, vout_display_t *, display_win32_area_t *, vout_display_sys_win32_t *);
void CommonClean(vlc_object_t *, vout_display_sys_win32_t *);
#endif /* !VLC_WINSTORE_APP */
void CommonManage(vout_display_t *, display_win32_area_t *, vout_display_sys_win32_t *);
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index 4ccee2ff22..fe8456b43d 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -481,7 +481,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg,
#endif
InitArea(vd, &sys->area, cfg);
#if !VLC_WINSTORE_APP
- if (d3d11_ctx == NULL && CommonInit(vd, &sys->area, &sys->sys))
+ if (d3d11_ctx == NULL && CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys))
goto error;
#else /* !VLC_WINSTORE_APP */
sys->area.pf_GetDisplayDimensions = GetExtenalSwapchainDimensions;
diff --git a/modules/video_output/win32/direct3d9.c b/modules/video_output/win32/direct3d9.c
index 41268ba0fb..d5e0a4369e 100644
--- a/modules/video_output/win32/direct3d9.c
+++ b/modules/video_output/win32/direct3d9.c
@@ -1681,7 +1681,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg,
sys->desktop_save.is_on_top = false;
InitArea(vd, &sys->area, cfg);
- if (d3d9_device == NULL && CommonInit(vd, &sys->area, &sys->sys))
+ if (d3d9_device == NULL && CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys))
goto error;
/* */
diff --git a/modules/video_output/win32/events.c b/modules/video_output/win32/events.c
index 6d040d5f8d..303f843f35 100644
--- a/modules/video_output/win32/events.c
+++ b/modules/video_output/win32/events.c
@@ -50,7 +50,7 @@
struct event_thread_t
{
- vout_display_t *vd;
+ vlc_object_t *obj;
/* */
vlc_thread_t thread;
@@ -154,13 +154,12 @@ static inline bool isKeyEvent( WPARAM type )
static void *EventThread( void *p_this )
{
event_thread_t *p_event = (event_thread_t *)p_this;
- vout_display_t *vd = p_event->vd;
MSG msg;
POINT old_mouse_pos = {0,0}, mouse_pos;
int canc = vlc_savecancel ();
- bool b_mouse_support = var_InheritBool( vd, "mouse-events" );
- bool b_key_support = var_InheritBool( vd, "keyboard-events" );
+ bool b_mouse_support = var_InheritBool( p_event->obj, "mouse-events" );
+ bool b_key_support = var_InheritBool( p_event->obj, "keyboard-events" );
vlc_mutex_lock( &p_event->lock );
/* Create a window for the video */
@@ -381,11 +380,11 @@ static void *EventThread( void *p_this )
/* Check for WM_QUIT if we created the window */
if( !p_event->hparent && msg.message == WM_QUIT )
{
- msg_Warn( vd, "WM_QUIT... should not happen!!" );
+ msg_Warn( p_event->obj, "WM_QUIT... should not happen!!" );
p_event->hwnd = NULL; /* Window already destroyed */
}
- msg_Dbg( vd, "Win32 Vout EventThread terminating" );
+ msg_Dbg( p_event->obj, "Win32 Vout EventThread terminating" );
Win32VoutCloseWindow( p_event );
vlc_restorecancel(canc);
@@ -394,7 +393,7 @@ static void *EventThread( void *p_this )
void EventThreadUpdateTitle( event_thread_t *p_event, const char *psz_fallback )
{
- char *psz_title = var_InheritString( p_event->vd, "video-title" );
+ char *psz_title = var_InheritString( p_event->obj, "video-title" );
if( !psz_title )
psz_title = strdup( psz_fallback );
if( !psz_title )
@@ -426,7 +425,7 @@ bool EventThreadGetAndResetSizeChanged( event_thread_t *p_event )
return atomic_exchange(&p_event->size_changed, false);
}
-event_thread_t *EventThreadCreate( vout_display_t *vd, vout_window_t *parent_window)
+event_thread_t *EventThreadCreate( vlc_object_t *obj, vout_window_t *parent_window)
{
if (parent_window->type != VOUT_WINDOW_TYPE_HWND &&
!(parent_window->type == VOUT_WINDOW_TYPE_DUMMY && parent_window->handle.hwnd == 0))
@@ -438,12 +437,12 @@ event_thread_t *EventThreadCreate( vout_display_t *vd, vout_window_t *parent_win
* Vout EventThread will take care of the creation of the video
* window (because PeekMessage has to be called from the same thread which
* created the window). */
- msg_Dbg( vd, "creating Vout EventThread" );
+ msg_Dbg( obj, "creating Vout EventThread" );
event_thread_t *p_event = malloc( sizeof(*p_event) );
if( !p_event )
return NULL;
- p_event->vd = vd;
+ p_event->obj = obj;
vlc_mutex_init( &p_event->lock );
vlc_cond_init( &p_event->wait );
@@ -494,7 +493,7 @@ int EventThreadStart( event_thread_t *p_event, event_hwnd_t *p_hwnd, const event
if( vlc_clone( &p_event->thread, EventThread, p_event,
VLC_THREAD_PRIORITY_LOW ) )
{
- msg_Err( p_event->vd, "cannot create Vout EventThread" );
+ msg_Err( p_event->obj, "cannot create Vout EventThread" );
return VLC_EGENERIC;
}
@@ -510,7 +509,7 @@ int EventThreadStart( event_thread_t *p_event, event_hwnd_t *p_hwnd, const event
p_event->b_ready = false;
return VLC_EGENERIC;
}
- msg_Dbg( p_event->vd, "Vout EventThread running" );
+ msg_Dbg( p_event->obj, "Vout EventThread running" );
/* */
p_hwnd->parent_window = p_event->parent_window;
@@ -626,7 +625,7 @@ enumWindowsProc(HWND hwnd, LPARAM lParam)
return true;
}
-static HWND GetDesktopHandle(vout_display_t *vd)
+static HWND GetDesktopHandle(vlc_object_t *obj)
{
/* Find Program Manager */
HWND hwnd = FindWindow( _T("Progman"), NULL );
@@ -635,7 +634,7 @@ static HWND GetDesktopHandle(vout_display_t *vd)
if( hwnd )
return hwnd;
- msg_Dbg( vd, "Couldn't find desktop icon window,. Trying the hard way." );
+ msg_Dbg( obj, "Couldn't find desktop icon window,. Trying the hard way." );
EnumWindows( enumWindowsProc, (LPARAM)&hwnd );
return hwnd;
@@ -651,14 +650,13 @@ static HWND GetDesktopHandle(vout_display_t *vd)
*****************************************************************************/
static int Win32VoutCreateWindow( event_thread_t *p_event )
{
- vout_display_t *vd = p_event->vd;
HINSTANCE hInstance;
HMENU hMenu;
WNDCLASS wc; /* window class components */
TCHAR vlc_path[MAX_PATH+1];
int i_style;
- msg_Dbg( vd, "Win32VoutCreateWindow" );
+ msg_Dbg( p_event->obj, "Win32VoutCreateWindow" );
/* Get this module's instance */
hInstance = GetModuleHandle(NULL);
@@ -674,7 +672,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
else
{
p_event->parent_window = NULL;
- p_event->hparent = GetDesktopHandle(vd);
+ p_event->hparent = GetDesktopHandle(p_event->obj);
}
#endif
p_event->cursor_arrow = LoadCursor(NULL, IDC_ARROW);
@@ -686,7 +684,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
{
p_event->vlc_icon = ExtractIcon( hInstance, vlc_path, 0 );
}
- p_event->hide_timeout = var_InheritInteger( p_event->vd, "mouse-hide-timeout" );
+ p_event->hide_timeout = var_InheritInteger( p_event->obj, "mouse-hide-timeout" );
UpdateCursorMoved( p_event );
/* Fill in the window class structure */
@@ -712,7 +710,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
if( p_event->vlc_icon )
DestroyIcon( p_event->vlc_icon );
- msg_Err( vd, "Win32VoutCreateWindow RegisterClass FAILED (err=%lu)", GetLastError() );
+ msg_Err( p_event->obj, "Win32VoutCreateWindow RegisterClass FAILED (err=%lu)", GetLastError() );
return VLC_EGENERIC;
}
@@ -722,7 +720,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
wc.hbrBackground = NULL; /* no background color */
if( !RegisterClass(&wc) )
{
- msg_Err( vd, "Win32VoutCreateWindow RegisterClass FAILED (err=%lu)", GetLastError() );
+ msg_Err( p_event->obj, "Win32VoutCreateWindow RegisterClass FAILED (err=%lu)", GetLastError() );
return VLC_EGENERIC;
}
@@ -731,7 +729,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
* titlebar. We use the following function to find out the size of
* the window corresponding to the useable surface we want */
RECT decorated_window = p_event->window_area;
- i_style = var_GetBool( vd, "video-deco" )
+ i_style = var_GetBool( p_event->obj, "video-deco" )
/* Open with window decoration */
? WS_OVERLAPPEDWINDOW|WS_SIZEBOX
/* No window decoration */
@@ -744,8 +742,8 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
i_style = WS_VISIBLE|WS_CLIPCHILDREN|WS_CHILD;
/* allow user to regain control over input events if requested */
- bool b_mouse_support = var_InheritBool( vd, "mouse-events" );
- bool b_key_support = var_InheritBool( vd, "keyboard-events" );
+ bool b_mouse_support = var_InheritBool( p_event->obj, "mouse-events" );
+ bool b_key_support = var_InheritBool( p_event->obj, "keyboard-events" );
if( !b_mouse_support && !b_key_support )
i_style |= WS_DISABLED;
}
@@ -771,7 +769,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
if( !p_event->hwnd )
{
- msg_Warn( vd, "Win32VoutCreateWindow create window FAILED (err=%lu)", GetLastError() );
+ msg_Warn( p_event->obj, "Win32VoutCreateWindow create window FAILED (err=%lu)", GetLastError() );
return VLC_EGENERIC;
}
@@ -819,10 +817,10 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
if( !p_event->hvideownd )
{
- msg_Err( vd, "can't create video sub-window" );
+ msg_Err( p_event->obj, "can't create video sub-window" );
return VLC_EGENERIC;
}
- msg_Dbg( vd, "created video sub-window" );
+ msg_Dbg( p_event->obj, "created video sub-window" );
InitGestures( p_event->hwnd, &p_event->p_gesture, p_event->is_projected );
@@ -839,8 +837,7 @@ static int Win32VoutCreateWindow( event_thread_t *p_event )
*****************************************************************************/
static void Win32VoutCloseWindow( event_thread_t *p_event )
{
- vout_display_t *vd = p_event->vd;
- msg_Dbg( vd, "Win32VoutCloseWindow" );
+ msg_Dbg( p_event->obj, "Win32VoutCloseWindow" );
#if defined(MODULE_NAME_IS_direct3d9) || defined(MODULE_NAME_IS_direct3d11)
DestroyWindow( p_event->hvideownd );
@@ -909,12 +906,11 @@ static long FAR PASCAL WinVoutEventProc( HWND hwnd, UINT message,
return DefWindowProc(hwnd, message, wParam, lParam);
}
}
- vout_display_t *vd = p_event->vd;
#if 0
if( message == WM_SETCURSOR )
{
- msg_Err(vd, "WM_SETCURSOR: %d (t2)", p_event->is_cursor_hidden);
+ msg_Err(p_event->obj, "WM_SETCURSOR: %d (t2)", p_event->is_cursor_hidden);
SetCursor( p_event->is_cursor_hidden ? p_event->cursor_empty : p_event->cursor_arrow );
return 1;
}
@@ -968,7 +964,7 @@ static long FAR PASCAL WinVoutEventProc( HWND hwnd, UINT message,
/* the window has been closed so shut down everything now */
case WM_DESTROY:
- msg_Dbg( vd, "WinProc WM_DESTROY" );
+ msg_Dbg( p_event->obj, "WinProc WM_DESTROY" );
/* just destroy the window */
PostQuitMessage( 0 );
return 0;
@@ -978,7 +974,7 @@ static long FAR PASCAL WinVoutEventProc( HWND hwnd, UINT message,
{
case IDM_TOGGLE_ON_TOP: /* toggle the "on top" status */
{
- msg_Dbg(vd, "WinProc WM_SYSCOMMAND: IDM_TOGGLE_ON_TOP");
+ msg_Dbg(p_event->obj, "WinProc WM_SYSCOMMAND: IDM_TOGGLE_ON_TOP");
HMENU hMenu = GetSystemMenu(p_event->hwnd, FALSE);
const bool is_on_top = (GetMenuState(hMenu, IDM_TOGGLE_ON_TOP, MF_BYCOMMAND) & MF_CHECKED) == 0;
#ifdef MODULE_NAME_IS_direct3d9
@@ -1009,7 +1005,7 @@ static long FAR PASCAL WinVoutEventProc( HWND hwnd, UINT message,
return 0;
case WM_GESTURE:
- return DecodeGesture( VLC_OBJECT(vd), p_event->p_gesture, hwnd, message, wParam, lParam );
+ return DecodeGesture( p_event->obj, p_event->p_gesture, hwnd, message, wParam, lParam );
default:
break;
diff --git a/modules/video_output/win32/events.h b/modules/video_output/win32/events.h
index 15cdb05897..6a9716036c 100644
--- a/modules/video_output/win32/events.h
+++ b/modules/video_output/win32/events.h
@@ -46,7 +46,7 @@ typedef struct {
HWND hfswnd;
} event_hwnd_t;
-event_thread_t *EventThreadCreate( vout_display_t *, vout_window_t *);
+event_thread_t *EventThreadCreate( vlc_object_t *, vout_window_t *);
void EventThreadDestroy( event_thread_t * );
int EventThreadStart( event_thread_t *, event_hwnd_t *, const event_cfg_t * );
void EventThreadStop( event_thread_t * );
diff --git a/modules/video_output/win32/glwin32.c b/modules/video_output/win32/glwin32.c
index a1a9516839..2a3252134e 100644
--- a/modules/video_output/win32/glwin32.c
+++ b/modules/video_output/win32/glwin32.c
@@ -123,7 +123,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg,
/* */
InitArea(vd, &sys->area, cfg);
- if (CommonInit(vd, &sys->area, &sys->sys))
+ if (CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys))
goto error;
if (vd->source.projection_mode != PROJECTION_MODE_RECTANGULAR)
diff --git a/modules/video_output/win32/wingdi.c b/modules/video_output/win32/wingdi.c
index c2fad2a092..e7da115fe4 100644
--- a/modules/video_output/win32/wingdi.c
+++ b/modules/video_output/win32/wingdi.c
@@ -118,7 +118,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg,
return VLC_ENOMEM;
InitArea(vd, &sys->area, cfg);
- if (CommonInit(vd, &sys->area, &sys->sys))
+ if (CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys))
goto error;
/* */
More information about the vlc-commits
mailing list