annotate libvo/x11_common.h @ 14742:76d461a061df

Unified colorkey code for vo xv and vo xvmc. Made the code also more flexible. Colorkey drawing is now by default done as proposed by Marko Macek. Patch also approved by iive.
author al
date Sun, 20 Feb 2005 22:43:25 +0000
parents 9d79600ff98d
children 83a5a8262611
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
diff changeset
1
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
diff changeset
2 #ifndef X11_COMMON_H
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
diff changeset
3 #define X11_COMMON_H
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
4
4993
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
5 #include <X11/Xlib.h>
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
6 #include <X11/Xutil.h>
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
7
14663
9d79600ff98d X11 headers must be included also when X11_FULLSCREEN is not defined (although
reimar
parents: 13843
diff changeset
8 #ifdef X11_FULLSCREEN
9d79600ff98d X11 headers must be included also when X11_FULLSCREEN is not defined (although
reimar
parents: 13843
diff changeset
9
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
10 #define vo_wm_LAYER 1
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
11 #define vo_wm_FULLSCREEN 2
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
12 #define vo_wm_STAYS_ON_TOP 4
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
13 #define vo_wm_ABOVE 8
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
14 #define vo_wm_BELOW 16
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
15 #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
16
12520
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
17 /* EWMH state actions, see
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
18 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
19 #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
20 #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
21 #define _NET_WM_STATE_TOGGLE 2 /* toggle property */
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
22
8864
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
23 extern int metacity_hack;
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
24 extern int vo_fsmode;
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
25
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
26 extern int vo_depthonscreen;
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
27 extern int vo_screenwidth;
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
28 extern int vo_screenheight;
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
29 extern int vo_dwidth;
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
30 extern int vo_dheight;
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
diff changeset
31 extern int vo_fs;
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
32 extern int vo_fs_layer;
5997
b5fb9a927bf3 add WM detection, and wm specific fullscreen code. (???)
pontscho
parents: 5955
diff changeset
33 extern int vo_wm_type;
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
34 extern int vo_fs_type;
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
35 extern char** vo_fstype_list;
11542
85e503ddf65f runtime 'stay-on-top' functionality
joey
parents: 10854
diff changeset
36 extern int vo_ontop;
12972
c8900eba2cc7 now use vo_rootwin var to check for -rootwin switch
nplourde
parents: 12520
diff changeset
37 extern int vo_rootwin;
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
38
922
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 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
40 extern Display *mDisplay;
2455
712a46dff92d printf-gcc3 patch, x11-commons mRootwin
sven
parents: 1811
diff changeset
41 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
42 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
43 extern int mLocalDisplay;
3830
fc1db33734e7 WinID cleanup, support for Xv
arpi
parents: 2455
diff changeset
44 extern int WinID;
922
db06ae8967eb Centralized and cleaned up X11 connecting, fixed remote X11 playing, -display option for mplayer. SHOULD BE TESTED.
lgb
parents: 723
diff changeset
45
5651
b8d8d72776f2 fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents: 4993
diff changeset
46 extern int vo_mouse_timer_const;
5955
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5835
diff changeset
47 extern int vo_mouse_autohide;
5651
b8d8d72776f2 fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents: 4993
diff changeset
48
6013
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
49 extern int vo_init( void );
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
50 extern void vo_uninit( void );
6406
9bbbcd3a6762 Aii 10l forgot to commit with my last x11_common.c commit
atmos4
parents: 6095
diff changeset
51 extern void vo_hidecursor ( Display* , Window );
5651
b8d8d72776f2 fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents: 4993
diff changeset
52 extern void vo_showcursor( Display *disp, Window win );
6013
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
53 extern void vo_x11_decoration( Display * vo_Display,Window w,int d );
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
54 extern void vo_x11_classhint( Display * display,Window window,char *name );
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 12972
diff changeset
55 extern void vo_x11_nofs_sizepos(int x, int y, int width, int height);
6013
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
56 extern void vo_x11_sizehint( int x, int y, int width, int height, int max );
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
57 extern int vo_x11_check_events(Display *mydisplay);
6953
ce67cc1f0beb ignore BadAccess error at XSelectInput() (grabbing mouse etc) with warning
arpi
parents: 6406
diff changeset
58 extern void vo_x11_selectinput_witherr(Display *display, Window w, long event_mask);
6013
7f6e02a16ac4 some bugfix, x[11|mga|v] ( fullscreen with more files )
pontscho
parents: 5998
diff changeset
59 extern void vo_x11_fullscreen( void );
8864
b8c271750450 - sync with x11_common
pontscho
parents: 7964
diff changeset
60 extern void vo_x11_setlayer( Display * mDisplay,Window vo_window,int layer );
6095
891cff8aba60 some cleanup, gl/gl2 updated to use vo_window
arpi
parents: 6013
diff changeset
61 extern void vo_x11_uninit();
7964
143d730908ae here is a somewhat generic equalizer implementation for the X11 vo drivers
arpi
parents: 7256
diff changeset
62 extern Colormap vo_x11_create_colormap(XVisualInfo *vinfo);
143d730908ae here is a somewhat generic equalizer implementation for the X11 vo drivers
arpi
parents: 7256
diff changeset
63 extern uint32_t vo_x11_set_equalizer(char *name, int value);
143d730908ae here is a somewhat generic equalizer implementation for the X11 vo drivers
arpi
parents: 7256
diff changeset
64 extern uint32_t vo_x11_get_equalizer(char *name, int *value);
9317
c7f5df43b937 - support command line parameter -fstype, eg. -fstype layer=12,above,fullscreen
filon
parents: 8864
diff changeset
65 extern void fstype_help(void);
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
66 extern Window vo_x11_create_smooth_window( Display *mDisplay, Window mRoot,
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
67 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
68 int depth, Colormap col_map);
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
69 extern void vo_x11_clearwindow_part(Display *mDisplay, Window vo_window,
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
70 int img_width, int img_height, int use_fs);
10854
53611f557562 fix for warning in some vo_*.c
pl
parents: 10765
diff changeset
71 extern void vo_x11_clearwindow( Display *mDisplay, Window vo_window );
11542
85e503ddf65f runtime 'stay-on-top' functionality
joey
parents: 10854
diff changeset
72 extern void vo_x11_ontop();
12520
94e66acdb706 Metacity fullscreen issues, patch by Alexander Strasser <eclipse7@gmx.net>,
diego
parents: 11542
diff changeset
73 extern void vo_x11_ewmh_fullscreen( int action );
6095
891cff8aba60 some cleanup, gl/gl2 updated to use vo_window
arpi
parents: 6013
diff changeset
74
32
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
75 #endif
9e66f722790e the common x11 stuff
arpi_esp
parents:
diff changeset
76
4993
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
77 extern Window vo_window;
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
78 extern GC vo_gc;
53c569d36b2c small changes in libvo's X11 support
pontscho
parents: 4981
diff changeset
79 extern XSizeHints vo_hint;
4795
b18e61cb457a small changes
pontscho
parents: 4425
diff changeset
80
10359
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
81 #ifdef HAVE_XV
14742
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
82 //XvPortID xv_port;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
83 extern unsigned int xv_port;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
84
10359
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
85 extern int vo_xv_set_eq(uint32_t xv_port, char * name, int value);
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
86 extern 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
87
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
88 /*** colorkey handling ***/
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
89 typedef struct xv_ck_info_s
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
90 {
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
91 int method; ///< CK_METHOD_* constants
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
92 int source; ///< CK_SRC_* constants
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
93 } xv_ck_info_t;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
94
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
95 #define CK_METHOD_NONE 0 ///< no colorkey drawing
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
96 #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
97 #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
98 #define CK_METHOD_MANUALFILL 3 ///< manually draw the colorkey
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
99 #define CK_SRC_USE 0 ///< use specified / default colorkey
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
100 #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
101 #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
102
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
103 extern xv_ck_info_t xv_ck_info;
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
104 extern unsigned long xv_colorkey;
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 int vo_xv_init_colorkey();
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
107 extern void vo_xv_colorkey(uint32_t x,uint32_t y, uint32_t w, uint32_t h);
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
108
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
109 /*** test functions for common suboptions ***/
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
110 int xv_test_ck( void * arg );
76d461a061df Unified colorkey code for vo xv and vo xvmc.
al
parents: 14663
diff changeset
111 int xv_test_ckm( void * arg );
10359
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
112 #endif
772571c63d45 move xv_set_eq to x11_common
iive
parents: 9317
diff changeset
113
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1137
diff changeset
114 #ifdef HAVE_NEW_GUI
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1137
diff changeset
115 extern void vo_setwindow( Window w,GC g );
1811
0483b88482f5 fix size ?
pontscho
parents: 1746
diff changeset
116 extern void vo_x11_putkey(int key);
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1137
diff changeset
117 #endif
723
c3e0bdb64027 add gui support
pontscho
parents: 402
diff changeset
118
324
720c640332c8 Szebb es jobb screensaver-kikapcsolo resz
laaz
parents: 32
diff changeset
119 void saver_off( Display * );
720c640332c8 Szebb es jobb screensaver-kikapcsolo resz
laaz
parents: 32
diff changeset
120 void saver_on( Display * );
3990
87538547c8f4 xinerama fix by attila
atmos4
parents: 3830
diff changeset
121
87538547c8f4 xinerama fix by attila
atmos4
parents: 3830
diff changeset
122 #ifdef HAVE_XINERAMA
87538547c8f4 xinerama fix by attila
atmos4
parents: 3830
diff changeset
123 void vo_x11_xinerama_move(Display *dsp, Window w);
87538547c8f4 xinerama fix by attila
atmos4
parents: 3830
diff changeset
124 #endif
4425
6144f63cbaa1 common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents: 3990
diff changeset
125
6144f63cbaa1 common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents: 3990
diff changeset
126 #ifdef HAVE_XF86VM
6144f63cbaa1 common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents: 3990
diff changeset
127 void vo_vm_switch(uint32_t, uint32_t, int*, int*);
6144f63cbaa1 common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents: 3990
diff changeset
128 void vo_vm_close(Display*);
6144f63cbaa1 common -vm code, patch by Santi Bjar <tiarda@yahoo.es>
arpi
parents: 3990
diff changeset
129 #endif
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
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
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4795
diff changeset
133 #endif
7256
ec6dd0a29d93 Add the code that chooses a good X11 truecolor visual to the vo_x11 config()
jkeil
parents: 6953
diff changeset
134