annotate libvo/x11_common.h @ 28063:a318969a4f45

Set the base size window manager hint, otherwise some subtract the minimum size of 4x4 from the numbers displayed to the user which might be confusing. Based on patch by Bert Wesarg [bert wesarg googlemail com].
author reimar
date Fri, 05 Dec 2008 19:01:49 +0000
parents a4e2700e9381
children a4aa7ecd8cbe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26007
diff changeset
1 #ifndef MPLAYER_X11_COMMON_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26007
diff changeset
2 #define MPLAYER_X11_COMMON_H
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
3
4993
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
4 #include <X11/Xlib.h>
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
5 #include <X11/Xutil.h>
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
6
27750
2c11b155ff11 Move X11_FULLSCREEN definition to x11_common.h where it belongs.
diego
parents: 27377
diff changeset
7 #include "config.h"
2c11b155ff11 Move X11_FULLSCREEN definition to x11_common.h where it belongs.
diego
parents: 27377
diff changeset
8
2c11b155ff11 Move X11_FULLSCREEN definition to x11_common.h where it belongs.
diego
parents: 27377
diff changeset
9 #if defined(CONFIG_GL) || defined(CONFIG_X11) || defined(CONFIG_XV)
2c11b155ff11 Move X11_FULLSCREEN definition to x11_common.h where it belongs.
diego
parents: 27377
diff changeset
10 #define X11_FULLSCREEN 1
2c11b155ff11 Move X11_FULLSCREEN definition to x11_common.h where it belongs.
diego
parents: 27377
diff changeset
11 #endif
2c11b155ff11 Move X11_FULLSCREEN definition to x11_common.h where it belongs.
diego
parents: 27377
diff changeset
12
14663
9d79600ff98d X11 headers must be included also when X11_FULLSCREEN is not defined (although
reimar
parents: 13843
diff changeset
13 #ifdef X11_FULLSCREEN
9d79600ff98d X11 headers must be included also when X11_FULLSCREEN is not defined (although
reimar
parents: 13843
diff changeset
14
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
15 #define vo_wm_LAYER 1
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
16 #define vo_wm_FULLSCREEN 2
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
17 #define vo_wm_STAYS_ON_TOP 4
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
18 #define vo_wm_ABOVE 8
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
19 #define vo_wm_BELOW 16
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
20 #define vo_wm_NETWM (vo_wm_FULLSCREEN | vo_wm_STAYS_ON_TOP | vo_wm_ABOVE | vo_wm_BELOW)
8864
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
21
12520
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
22 /* EWMH state actions, see
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
23 http://freedesktop.org/Standards/wm-spec/index.html#id2768769 */
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
24 #define _NET_WM_STATE_REMOVE 0 /* remove/unset property */
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
25 #define _NET_WM_STATE_ADD 1 /* add/set property */
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
26 #define _NET_WM_STATE_TOGGLE 2 /* toggle property */
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
27
8864
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
28 extern int metacity_hack;
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
29
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
30 extern int vo_fs_layer;
5997
b5fb9a927bf3 add WM detection, and wm specific fullscreen code. (???)
pontscho
parents: 5955
diff changeset
31 extern int vo_wm_type;
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
32 extern int vo_fs_type;
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
33 extern char** vo_fstype_list;
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
34
922
db06ae8967eb Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents: 723
diff changeset
35 extern char *mDisplayName;
db06ae8967eb Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents: 723
diff changeset
36 extern Display *mDisplay;
2455
712a46dff92d printf-gcc3 patch, x11-commons mRootwin
sven
parents: 1811
diff changeset
37 extern Window mRootWin;
922
db06ae8967eb Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents: 723
diff changeset
38 extern int mScreen;
db06ae8967eb Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents: 723
diff changeset
39 extern int mLocalDisplay;
db06ae8967eb Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents: 723
diff changeset
40
5955
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5835
diff changeset
41 extern int vo_mouse_autohide;
5651
b8d8d72776f2 fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents: 4993
diff changeset
42
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
43 int vo_init( void );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
44 void vo_uninit( void );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
45 void vo_hidecursor ( Display* , Window );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
46 void vo_showcursor( Display *disp, Window win );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
47 void vo_x11_decoration( Display * vo_Display,Window w,int d );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
48 void vo_x11_classhint( Display * display,Window window,char *name );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
49 void vo_x11_nofs_sizepos(int x, int y, int width, int height);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
50 void vo_x11_sizehint( int x, int y, int width, int height, int max );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
51 int vo_x11_check_events(Display *mydisplay);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
52 void vo_x11_selectinput_witherr(Display *display, Window w, long event_mask);
27885
9829cfa41d6d Replace some of the different inconsistent XGetGeometry uses by a
reimar
parents: 27750
diff changeset
53 int vo_x11_update_geometry(void);
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
54 void vo_x11_fullscreen( void );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
55 void vo_x11_setlayer( Display * mDisplay,Window vo_window,int layer );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
56 void vo_x11_uninit(void);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
57 Colormap vo_x11_create_colormap(XVisualInfo *vinfo);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
58 uint32_t vo_x11_set_equalizer(char *name, int value);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
59 uint32_t vo_x11_get_equalizer(char *name, int *value);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
60 void fstype_help(void);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
61 Window vo_x11_create_smooth_window( Display *mDisplay, Window mRoot,
10765
c8fb7e2690a3 10000l. Never ever use such foolish GCC 3.x extensionscvs diff -u x11_common.c x11_common.h |more
alex
parents: 10359
diff changeset
62 Visual *vis, int x, int y, unsigned int width, unsigned int height,
c8fb7e2690a3 10000l. Never ever use such foolish GCC 3.x extensionscvs diff -u x11_common.c x11_common.h |more
alex
parents: 10359
diff changeset
63 int depth, Colormap col_map);
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
64 void vo_x11_create_vo_window(XVisualInfo *vis, int x, int y,
23655
00aa61cde84a Make X11 window creation and (with -fixed-vo) management simpler and more
reimar
parents: 22886
diff changeset
65 unsigned int width, unsigned int height, int flags,
00aa61cde84a Make X11 window creation and (with -fixed-vo) management simpler and more
reimar
parents: 22886
diff changeset
66 Colormap col_map, const char *classname, const char *title);
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
67 void vo_x11_clearwindow_part(Display *mDisplay, Window vo_window,
10765
c8fb7e2690a3 10000l. Never ever use such foolish GCC 3.x extensionscvs diff -u x11_common.c x11_common.h |more
alex
parents: 10359
diff changeset
68 int img_width, int img_height, int use_fs);
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
69 void vo_x11_clearwindow( Display *mDisplay, Window vo_window );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
70 void vo_x11_ontop(void);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
71 void vo_x11_border(void);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
72 void vo_x11_ewmh_fullscreen( int action );
6095
891cff8aba60 some cleanup, gl/gl2 updated to use vo_window
arpi
parents: 6013
diff changeset
73
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
74 #endif
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
75
4993
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
76 extern Window vo_window;
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
77 extern GC vo_gc;
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
78 extern XSizeHints vo_hint;
4795
b18e61cb457a small changes
pontscho
parents: 4425
diff changeset
79
27377
d58d06eafe83 Change a bunch of X11-specific preprocessor directives.
diego
parents: 27306
diff changeset
80 #ifdef CONFIG_XV
14742
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
81 //XvPortID xv_port;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
82 extern unsigned int xv_port;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
83
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
84 int vo_xv_set_eq(uint32_t xv_port, char * name, int value);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
85 int vo_xv_get_eq(uint32_t xv_port, char * name, int *value);
14742
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
86
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
87 int vo_xv_enable_vsync(void);
15864
9c674e162678 added forgotten xv_enable_vsync
reimar
parents: 15100
diff changeset
88
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
89 void vo_xv_get_max_img_dim( uint32_t * width, uint32_t * height );
16958
3ff863e54b93 Test if source image dimensions are too big.
al
parents: 16280
diff changeset
90
14742
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
91 /*** colorkey handling ***/
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
92 typedef struct xv_ck_info_s
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
93 {
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
94 int method; ///< CK_METHOD_* constants
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
95 int source; ///< CK_SRC_* constants
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
96 } xv_ck_info_t;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
97
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
98 #define CK_METHOD_NONE 0 ///< no colorkey drawing
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
99 #define CK_METHOD_BACKGROUND 1 ///< set colorkey as window background
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
100 #define CK_METHOD_AUTOPAINT 2 ///< let xv draw the colorkey
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
101 #define CK_METHOD_MANUALFILL 3 ///< manually draw the colorkey
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
102 #define CK_SRC_USE 0 ///< use specified / default colorkey
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
103 #define CK_SRC_SET 1 ///< use and set specified / default colorkey
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
104 #define CK_SRC_CUR 2 ///< use current colorkey ( get it from xv )
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
105
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
106 extern xv_ck_info_t xv_ck_info;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
107 extern unsigned long xv_colorkey;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
108
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
109 int vo_xv_init_colorkey(void);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
110 void vo_xv_draw_colorkey(int32_t x, int32_t y, int32_t w, int32_t h);
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
111 void xv_setup_colorkeyhandling(char const * ck_method_str, char const * ck_str);
14742
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
112
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
113 /*** test functions for common suboptions ***/
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
114 int xv_test_ck( void * arg );
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
115 int xv_test_ckm( void * arg );
10359
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
116 #endif
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
117
27886
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
118 void vo_setwindow( Window w,GC g );
e38ae03895c9 Cosmetics: remove useless "extern"
reimar
parents: 27885
diff changeset
119 void vo_x11_putkey(int key);
723
c3e0bdb64027 add gui support
pontscho
parents: 402
diff changeset
120
324
720c640332c8 Szebb es jobb screensaver-kikapcsolo resz
laaz
parents: 32
diff changeset
121 void saver_off( Display * );
720c640332c8 Szebb es jobb screensaver-kikapcsolo resz
laaz
parents: 32
diff changeset
122 void saver_on( Display * );
3990
87538547c8f4 xinerama fix by attila
atmos4
parents: 3830
diff changeset
123
27377
d58d06eafe83 Change a bunch of X11-specific preprocessor directives.
diego
parents: 27306
diff changeset
124 #ifdef CONFIG_XF86VM
27890
a4e2700e9381 Simplify vo_vm_switch and vo_vm_close, everyone was using the (almost) same
reimar
parents: 27886
diff changeset
125 void vo_vm_switch(void);
a4e2700e9381 Simplify vo_vm_switch and vo_vm_close, everyone was using the (almost) same
reimar
parents: 27886
diff changeset
126 void vo_vm_close(void);
4425
6144f63cbaa1 common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents: 3990
diff changeset
127 #endif
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
diff changeset
128
18174
0f897ffb95bc forgotten update_xinerama_info prototypes
reimar
parents: 18116
diff changeset
129 void update_xinerama_info(void);
0f897ffb95bc forgotten update_xinerama_info prototypes
reimar
parents: 18116
diff changeset
130
8864
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
131 int vo_find_depth_from_visuals(Display *dpy, int screen, Visual **visual_return);
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
132
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26007
diff changeset
133 #endif /* MPLAYER_X11_COMMON_H */