/*****************************************************************************
* vout.h: Windows DirectX video output header file
*****************************************************************************
- * Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vout.h,v 1.9 2003/11/20 17:48:44 gbazin Exp $
+ * Copyright (C) 2001-2004 VideoLAN (Centrale Réseaux) and its contributors
+ * $Id$
*
- * Authors: Gildas Bazin <gbazin@netcourrier.com>
+ * Authors: Gildas Bazin <gbazin@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
HWND hwnd; /* Handle of the main window */
HWND hvideownd; /* Handle of the video sub-window */
HWND hparent; /* Handle of the parent window */
+ HWND hfswnd; /* Handle of the fullscreen window */
WNDPROC pf_wndproc; /* Window handling callback */
+ /* Multi-monitor support */
+ HMONITOR hmonitor; /* handle of the current monitor */
+ GUID *p_display_driver;
+ HMONITOR (WINAPI* MonitorFromWindow)( HWND, DWORD );
+ BOOL (WINAPI* GetMonitorInfo)( HMONITOR, LPMONITORINFO );
+
vlc_bool_t b_using_overlay; /* Are we using an overlay surface */
vlc_bool_t b_use_sysmem; /* Should we use system memory for surfaces */
vlc_bool_t b_hw_yuv; /* Should we use hardware YUV->RGB conversions */
int i_window_y;
int i_window_width;
int i_window_height;
+ int i_window_style;
/* Coordinates of src and dest images (used when blitting to display) */
RECT rect_src;
RECT rect_src_clipped;
RECT rect_dest;
RECT rect_dest_clipped;
+ RECT rect_parent;
+
+ /* Overlay alignment restrictions */
+ int i_align_src_boundary;
+ int i_align_src_size;
+ int i_align_dest_boundary;
+ int i_align_dest_size;
/* DDraw capabilities */
int b_caps_overlay_clipping;
volatile mtime_t i_lastmoved;
/* Misc */
- vlc_bool_t b_on_top_change;
+ vlc_bool_t b_on_top_change;
+
+ vlc_bool_t b_wallpaper;
+ COLORREF color_bkg;
+ COLORREF color_bkgtxt;
+
+#ifdef MODULE_NAME_IS_glwin32
+ HDC hGLDC;
+ HGLRC hGLRC;
+#endif
- event_thread_t * p_event;
+ event_thread_t *p_event;
+ vlc_mutex_t lock;
};
/*****************************************************************************
/*****************************************************************************
* Prototypes from vout.c
*****************************************************************************/
-int DirectXUpdateOverlay( vout_thread_t *p_vout );
+int E_(DirectXUpdateOverlay)( vout_thread_t *p_vout );
/*****************************************************************************
* Prototypes from events.c
*****************************************************************************/
-void DirectXEventThread ( event_thread_t *p_event );
-void DirectXUpdateRects ( vout_thread_t *p_vout, vlc_bool_t b_force );
+void E_(DirectXEventThread) ( event_thread_t *p_event );
+void E_(DirectXUpdateRects) ( vout_thread_t *p_vout, vlc_bool_t b_force );
/*****************************************************************************
* Constants
*****************************************************************************/
#define WM_VLC_HIDE_MOUSE WM_APP
-#define WM_VLC_CREATE_VIDEO_WIN WM_APP + 1
-#define WM_VLC_DESTROY_VIDEO_WIN WM_APP + 2
+#define WM_VLC_SHOW_MOUSE WM_APP + 1
+#define WM_VLC_CREATE_VIDEO_WIN WM_APP + 2
+#define WM_VLC_CHANGE_TEXT WM_APP + 3
#define IDM_TOGGLE_ON_TOP WM_USER + 1
+#define DX_POSITION_CHANGE 0x1000
+#define DX_WALLPAPER_CHANGE 0x2000
+
+/*****************************************************************************
+ * WinCE helpers
+ *****************************************************************************/
+#ifdef UNDER_CE
+
+#define AdjustWindowRect(a,b,c)
+
+#ifndef GCL_HBRBACKGROUND
+# define GCL_HBRBACKGROUND (-10)
+#endif
+
+#define FindWindowEx(a,b,c,d) 0
+
+#define GetWindowPlacement(a,b)
+#define SetWindowPlacement(a,b)
+typedef struct _WINDOWPLACEMENT {
+ UINT length;
+ UINT flags;
+ UINT showCmd;
+ POINT ptMinPosition;
+ POINT ptMaxPosition;
+ RECT rcNormalPosition;
+} WINDOWPLACEMENT;
+
+#ifndef WM_NCMOUSEMOVE
+# define WM_NCMOUSEMOVE 160
+#endif
+#ifndef CS_OWNDC
+# define CS_OWNDC 32
+#endif
+#ifndef SC_SCREENSAVE
+# define SC_SCREENSAVE 0xF140
+#endif
+#ifndef SC_MONITORPOWER
+# define SC_MONITORPOWER 0xF170
+#endif
+#ifndef WM_NCPAINT
+# define WM_NCPAINT 133
+#endif
+#ifndef WS_OVERLAPPEDWINDOW
+# define WS_OVERLAPPEDWINDOW 0xcf0000
+#endif
+#ifndef WS_EX_NOPARENTNOTIFY
+# define WS_EX_NOPARENTNOTIFY 4
+#endif
+#ifndef WS_EX_APPWINDOW
+#define WS_EX_APPWINDOW 0x40000
+#endif
+
+#define SetWindowLongPtr SetWindowLong
+#define GetWindowLongPtr GetWindowLong
+#define GWLP_USERDATA GWL_USERDATA
+
+#endif //UNDER_CE