diff options
author | Lee Chang Yeon <cyeon.lee@samsung.com> | 2014-04-08 19:23:22 +0900 |
---|---|---|
committer | Lee Chang Yeon <cyeon.lee@samsung.com> | 2014-04-08 19:23:22 +0900 |
commit | 90810b81ee2024e57bc99f0a7115dd8239d3a8df (patch) | |
tree | d53f8ea063a89bd53e2f25c3f84fc3e45b7b00bc /src | |
parent | 0ac4665e4869874f94154e0c5a653aa4f446199c (diff) | |
parent | 3b08aa378f20e52aa0676223f44efbdba84fc360 (diff) | |
download | xcb-proto-90810b81ee2024e57bc99f0a7115dd8239d3a8df.tar.gz xcb-proto-90810b81ee2024e57bc99f0a7115dd8239d3a8df.tar.bz2 xcb-proto-90810b81ee2024e57bc99f0a7115dd8239d3a8df.zip |
Merge branch 'upstream' into tizen
Diffstat (limited to 'src')
-rw-r--r-- | src/.gitattributes | 1 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/Makefile.in | 479 | ||||
-rw-r--r-- | src/composite.xml | 6 | ||||
-rw-r--r-- | src/damage.xml | 8 | ||||
-rw-r--r-- | src/dpms.xml | 8 | ||||
-rw-r--r-- | src/dri2.xml | 26 | ||||
-rw-r--r-- | src/dri3.xml | 97 | ||||
-rw-r--r-- | src/glx.xml | 15 | ||||
-rw-r--r-- | src/present.xml | 205 | ||||
-rw-r--r-- | src/randr.xml | 236 | ||||
-rw-r--r-- | src/render.xml | 140 | ||||
-rw-r--r-- | src/res.xml | 75 | ||||
-rw-r--r-- | src/screensaver.xml | 27 | ||||
-rw-r--r-- | src/shape.xml | 16 | ||||
-rw-r--r-- | src/shm.xml | 21 | ||||
-rw-r--r-- | src/sync.xml | 104 | ||||
-rw-r--r-- | src/xcb.xsd | 12 | ||||
-rw-r--r-- | src/xevie.xml | 4 | ||||
-rw-r--r-- | src/xfixes.xml | 52 | ||||
-rw-r--r-- | src/xinput.xml | 2577 | ||||
-rw-r--r-- | src/xkb.xml | 615 | ||||
-rw-r--r-- | src/xproto.xml | 170 | ||||
-rw-r--r-- | src/xtest.xml | 3 | ||||
-rw-r--r-- | src/xv.xml | 42 |
25 files changed, 3108 insertions, 1833 deletions
diff --git a/src/.gitattributes b/src/.gitattributes new file mode 100644 index 0000000..8d345b0 --- /dev/null +++ b/src/.gitattributes @@ -0,0 +1 @@ +*.xml diff=xcb diff --git a/src/Makefile.am b/src/Makefile.am index eef2dbc..d81d818 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,8 +6,10 @@ xcbinclude_HEADERS = \ damage.xml \ dpms.xml \ dri2.xml \ + dri3.xml \ ge.xml \ glx.xml \ + present.xml \ randr.xml \ record.xml \ render.xml \ diff --git a/src/Makefile.in b/src/Makefile.in deleted file mode 100644 index 99a37ef..0000000 --- a/src/Makefile.in +++ /dev/null @@ -1,479 +0,0 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(xcbinclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(xcbincludedir)" -HEADERS = $(xcbinclude_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON = @PYTHON@ -PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ -PYTHON_PLATFORM = @PYTHON_PLATFORM@ -PYTHON_PREFIX = @PYTHON_PREFIX@ -PYTHON_VERSION = @PYTHON_VERSION@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -XMLLINT = @XMLLINT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -am__leading_dot = @am__leading_dot@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgpyexecdir = @pkgpyexecdir@ -pkgpythondir = @pkgpythondir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pyexecdir = @pyexecdir@ -pythondir = @pythondir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xcbincludedir = @xcbincludedir@ -xcbinclude_HEADERS = \ - xcb.xsd \ - xproto.xml \ - bigreq.xml \ - composite.xml \ - damage.xml \ - dpms.xml \ - dri2.xml \ - ge.xml \ - glx.xml \ - randr.xml \ - record.xml \ - render.xml \ - res.xml \ - screensaver.xml \ - shape.xml \ - shm.xml \ - sync.xml \ - xc_misc.xml \ - xevie.xml \ - xf86dri.xml \ - xf86vidmode.xml \ - xfixes.xml \ - xinerama.xml \ - xinput.xml \ - xkb.xml \ - xprint.xml \ - xselinux.xml \ - xtest.xml \ - xv.xml \ - xvmc.xml - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-xcbincludeHEADERS: $(xcbinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(xcbinclude_HEADERS)'; test -n "$(xcbincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(xcbincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(xcbincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(xcbincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(xcbincludedir)" || exit $$?; \ - done - -uninstall-xcbincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(xcbinclude_HEADERS)'; test -n "$(xcbincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(xcbincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@HAVE_XMLLINT_FALSE@check-local: -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-local -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(xcbincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-xcbincludeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-xcbincludeHEADERS - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ - clean-generic ctags distclean distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip install-xcbincludeHEADERS installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-xcbincludeHEADERS - - -@HAVE_XMLLINT_TRUE@check-local: -@HAVE_XMLLINT_TRUE@ $(XMLLINT) --noout --schema $(srcdir)/xcb.xsd $(srcdir)/*.xml - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/composite.xml b/src/composite.xml index d16b6e7..86de146 100644 --- a/src/composite.xml +++ b/src/composite.xml @@ -26,14 +26,14 @@ authorization from the authors. --> <!-- This file describes version 0.3 of COMPOSITE. --> <xcb header="composite" extension-xname="Composite" extension-name="Composite" - major-version="0" minor-version="3"> + major-version="0" minor-version="4"> <import>xproto</import> <import>xfixes</import> <enum name="Redirect"> - <item name="Automatic" /> - <item name="Manual" /> + <item name="Automatic"> <value>0</value> </item> + <item name="Manual"> <value>1</value> </item> </enum> <request name="QueryVersion" opcode="0"> diff --git a/src/damage.xml b/src/damage.xml index 9c5cde5..c04721d 100644 --- a/src/damage.xml +++ b/src/damage.xml @@ -35,10 +35,10 @@ authorization from the authors. <xidtype name="DAMAGE" /> <enum name="ReportLevel"> - <item name="RawRectangles" /> - <item name="DeltaRectangles" /> - <item name="BoundingBox" /> - <item name="NonEmpty" /> + <item name="RawRectangles"> <value>0</value> </item> + <item name="DeltaRectangles"> <value>1</value> </item> + <item name="BoundingBox"> <value>2</value> </item> + <item name="NonEmpty"> <value>3</value> </item> </enum> <error name="BadDamage" number="0" /> diff --git a/src/dpms.xml b/src/dpms.xml index 0c2ac20..5581284 100644 --- a/src/dpms.xml +++ b/src/dpms.xml @@ -66,10 +66,10 @@ authorization from the authors. <request name="Disable" opcode="5" /> <enum name="DPMSMode"> - <item name="On" /> - <item name="Standby" /> - <item name="Suspend" /> - <item name="Off" /> + <item name="On"> <value>0</value> </item> + <item name="Standby"> <value>1</value> </item> + <item name="Suspend"> <value>2</value> </item> + <item name="Off"> <value>3</value> </item> </enum> <request name="ForceLevel" opcode="6"> diff --git a/src/dri2.xml b/src/dri2.xml index 1916d47..d14df41 100644 --- a/src/dri2.xml +++ b/src/dri2.xml @@ -32,22 +32,22 @@ authorization from the authors. <import>xproto</import> <enum name="Attachment"> - <item name="BufferFrontLeft" /> - <item name="BufferBackLeft" /> - <item name="BufferFrontRight" /> - <item name="BufferBackRight" /> - <item name="BufferDepth" /> - <item name="BufferStencil" /> - <item name="BufferAccum" /> - <item name="BufferFakeFrontLeft" /> - <item name="BufferFakeFrontRight" /> - <item name="BufferDepthStencil" /> - <item name="BufferHiz" /> + <item name="BufferFrontLeft"> <value>0</value> </item> + <item name="BufferBackLeft"> <value>1</value> </item> + <item name="BufferFrontRight"> <value>2</value> </item> + <item name="BufferBackRight"> <value>3</value> </item> + <item name="BufferDepth"> <value>4</value> </item> + <item name="BufferStencil"> <value>5</value> </item> + <item name="BufferAccum"> <value>6</value> </item> + <item name="BufferFakeFrontLeft"> <value>7</value> </item> + <item name="BufferFakeFrontRight"> <value>8</value> </item> + <item name="BufferDepthStencil"> <value>9</value> </item> + <item name="BufferHiz"> <value>10</value> </item> </enum> <enum name="DriverType"> - <item name="DRI" /> - <item name="VDPAU" /> + <item name="DRI"> <value>0</value> </item> + <item name="VDPAU"> <value>1</value> </item> </enum> <enum name="EventType"> diff --git a/src/dri3.xml b/src/dri3.xml new file mode 100644 index 0000000..608af31 --- /dev/null +++ b/src/dri3.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +Copyright © 2013 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of the copyright holders not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. The copyright holders make no representations +about the suitability of this software for any purpose. It is provided "as +is" without express or implied warranty. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. +--> + +<xcb header="dri3" extension-xname="DRI3" extension-name="DRI3" + major-version="1" minor-version="0"> + <import>xproto</import> + + <!-- Types --> + + <!-- Requests --> + <request name="QueryVersion" opcode="0"> + <field type="CARD32" name="major_version" /> + <field type="CARD32" name="minor_version" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="major_version" /> + <field type="CARD32" name="minor_version" /> + </reply> + </request> + + <request name="Open" opcode="1"> + <field type="DRAWABLE" name="drawable" /> + <field type="CARD32" name="provider" /> + <reply> + <field type="CARD8" name="nfd"/> + <fd name="device_fd" /> + <pad bytes="24" /> + </reply> + </request> + + <request name="PixmapFromBuffer" opcode="2"> + <field type="PIXMAP" name="pixmap" /> + <field type="DRAWABLE" name="drawable" /> + <field type="CARD32" name="size" /> + <field type="CARD16" name="width" /> + <field type="CARD16" name="height" /> + <field type="CARD16" name="stride" /> + <field type="CARD8" name="depth" /> + <field type="CARD8" name="bpp" /> + <fd name="pixmap_fd" /> + </request> + + <request name="BufferFromPixmap" opcode="3"> + <field type="PIXMAP" name="pixmap" /> + <reply> + <field type="CARD8" name="nfd"/> + <field type="CARD32" name="size" /> + <field type="CARD16" name="width" /> + <field type="CARD16" name="height" /> + <field type="CARD16" name="stride" /> + <field type="CARD8" name="depth" /> + <field type="CARD8" name="bpp" /> + <fd name="pixmap_fd" /> + <pad bytes="12"/> + </reply> + </request> + + <request name="FenceFromFD" opcode="4"> + <field type="DRAWABLE" name="drawable" /> + <field type="CARD32" name="fence"/> + <field type="BOOL" name="initially_triggered"/> + <pad bytes="3"/> + <fd name="fence_fd"/> + </request> + + <request name="FDFromFence" opcode="5"> + <field type="DRAWABLE" name="drawable" /> + <field type="CARD32" name="fence"/> + <reply> + <field type="CARD8" name="nfd"/> + <fd name="fence_fd" /> + <pad bytes="24"/> + </reply> + </request> + +</xcb> diff --git a/src/glx.xml b/src/glx.xml index 53c9267..2a36daa 100644 --- a/src/glx.xml +++ b/src/glx.xml @@ -45,8 +45,7 @@ The patch that fixed this server bug in X.org CVS is here: --> <xcb header="glx" extension-xname="GLX" extension-name="Glx" - major-version="1" minor-version="3"> - <!-- target support: 1.3 --> + major-version="1" minor-version="4"> <import>xproto</import> @@ -107,6 +106,18 @@ The patch that fixed this server bug in X.org CVS is here: <pad bytes="4" /> </event> + <event name="BufferSwapComplete" number="1"> + <pad bytes="1" /> + <field type="CARD16" name="event_type" /> + <pad bytes="2" /> + <field type="glx:DRAWABLE" name="drawable" /> + <field type="CARD32" name="ust_hi" /> + <field type="CARD32" name="ust_lo" /> + <field type="CARD32" name="msc_hi" /> + <field type="CARD32" name="msc_lo" /> + <field type="CARD32" name="sbc" /> + </event> + <!-- enums for PbufferClobber event/draw type --> <enum name="PBCET"> <item name="Damaged"> diff --git a/src/present.xml b/src/present.xml new file mode 100644 index 0000000..a9adc2b --- /dev/null +++ b/src/present.xml @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +Copyright © 2013 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of the copyright holders not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. The copyright holders make no representations +about the suitability of this software for any purpose. It is provided "as +is" without express or implied warranty. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. +--> + +<xcb header="present" extension-xname="Present" extension-name="Present" + major-version="1" minor-version="0"> + <import>xproto</import> + <import>randr</import> + <import>xfixes</import> + <import>sync</import> + + <!-- Types --> + + <enum name="Event"> + <item name="ConfigureNotify"><value>0</value></item> + <item name="CompleteNotify"><value>1</value></item> + <item name="IdleNotify"><value>2</value></item> + <item name="RedirectNotify"><value>3</value></item> + </enum> + + <enum name="EventMask"> + <item name="NoEvent"><value>0</value></item> + <item name="ConfigureNotify"><bit>0</bit></item> + <item name="CompleteNotify"><bit>1</bit></item> + <item name="IdleNotify"><bit>2</bit></item> + <item name="RedirectNotify"><bit>3</bit></item> + </enum> + + <enum name="Option"> + <item name="None"><value>0</value></item> + <item name="Async"><bit>0</bit></item> + <item name="Copy"><bit>1</bit></item> + <item name="UST"><bit>2</bit></item> + </enum> + + <enum name="Capability"> + <item name="None"><value>0</value></item> + <item name="Async"><bit>0</bit></item> + <item name="Fence"><bit>1</bit></item> + <item name="UST"><bit>2</bit></item> + </enum> + + <enum name="CompleteKind"> + <item name="Pixmap"><value>0</value></item> + <item name="NotifyMSC"><value>1</value></item> + </enum> + + <enum name="CompleteMode"> + <item name="Copy"><value>0</value></item> + <item name="Flip"><value>1</value></item> + <item name="Skip"><value>2</value></item> + </enum> + + <struct name="Notify"> + <field type="WINDOW" name="window" /> + <field type="CARD32" name="serial" /> + </struct> + + <!-- Requests --> + <request name="QueryVersion" opcode="0"> + <field type="CARD32" name="major_version" /> + <field type="CARD32" name="minor_version" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="major_version" /> + <field type="CARD32" name="minor_version" /> + </reply> + </request> + + <request name="Pixmap" opcode="1"> + <field type="WINDOW" name="window" /> + <field type="PIXMAP" name="pixmap" /> + <field type="CARD32" name="serial" /> + <field type="REGION" name="valid" /> + <field type="REGION" name="update" /> + <field type="INT16" name="x_off" /> + <field type="INT16" name="y_off" /> + <field type="CRTC" name="target_crtc" /> + <field type="FENCE" name="wait_fence" /> + <field type="FENCE" name="idle_fence" /> + <field type="CARD32" name="options" /> + <pad bytes="4"/> + <field type="CARD64" name="target_msc" /> + <field type="CARD64" name="divisor" /> + <field type="CARD64" name="remainder" /> + <list type="Notify" name="notifies"/> + </request> + + <request name="NotifyMSC" opcode="2"> + <field type="WINDOW" name="window" /> + <field type="CARD32" name="serial" /> + <pad bytes="4"/> + <field type="CARD64" name="target_msc" /> + <field type="CARD64" name="divisor" /> + <field type="CARD64" name="remainder" /> + </request> + + <xidtype name="EVENT"/> + + <request name="SelectInput" opcode="3"> + <field type="EVENT" name="eid"/> + <field type="WINDOW" name="window" /> + <field type="CARD32" name="event_mask" mask="EventMask" /> + </request> + + <request name="QueryCapabilities" opcode="4"> + <field type="CARD32" name="target" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="capabilities" /> + </reply> + </request> + + <!-- Events --> + + <event name="Generic" number="0"> + <field type="CARD8" name="extension" /> + <field type="CARD32" name="length" /> + <field type="CARD16" name="evtype" /> + <pad bytes="2" /> + <field type="EVENT" name="event" /> + </event> + + <event name="ConfigureNotify" number="0" xge="true"> + <pad bytes="2" /> + <field type="EVENT" name="event" /> + <field type="WINDOW" name="window" /> + <field type="INT16" name="x" /> + <field type="INT16" name="y" /> + <field type="CARD16" name="width" /> + <field type="CARD16" name="height" /> + <field type="INT16" name="off_x" /> + <field type="INT16" name="off_y" /> + <field type="CARD16" name="pixmap_width" /> + <field type="CARD16" name="pixmap_height" /> + <field type="CARD32" name="pixmap_flags" /> + </event> + + <event name="CompleteNotify" number="1" xge="true"> + <field type="CARD8" name="kind" enum="CompleteKind" /> + <field type="CARD8" name="mode" enum="CompleteMode" /> + <field type="EVENT" name="event" /> + <field type="WINDOW" name="window" /> + <field type="CARD32" name="serial" /> + <field type="CARD64" name="ust" /> + <field type="CARD64" name="msc" /> + </event> + + <event name="IdleNotify" number="2" xge="true"> + <pad bytes="2"/> + <field type="EVENT" name="event" /> + <field type="WINDOW" name="window" /> + <field type="CARD32" name="serial" /> + <field type="PIXMAP" name="pixmap" /> + <field type="FENCE" name="idle_fence" /> + </event> + + <event name="RedirectNotify" number="3" xge="true"> + <field type="BOOL" name="update_window"/> + <pad bytes="1"/> + <field type="EVENT" name="event" /> + <field type="WINDOW" name="event_window" /> + <field type="WINDOW" name="window" /> + <field type="PIXMAP" name="pixmap" /> + <field type="CARD32" name="serial" /> + + <field type="REGION" name="valid_region" /> + <field type="REGION" name="update_region" /> + <field type="RECTANGLE" name="valid_rect" /> + <field type="RECTANGLE" name="update_rect" /> + + <field type="INT16" name="x_off" /> + <field type="INT16" name="y_off" /> + <field type="CRTC" name="target_crtc" /> + <field type="FENCE" name="wait_fence" /> + <field type="FENCE" name="idle_fence" /> + <field type="CARD32" name="options" /> + <pad bytes="4"/> + <field type="CARD64" name="target_msc" /> + <field type="CARD64" name="divisor" /> + <field type="CARD64" name="remainder" /> + <list type="Notify" name="notifies"/> + </event> + +</xcb> diff --git a/src/randr.xml b/src/randr.xml index 4f0716f..d9192b2 100644 --- a/src/randr.xml +++ b/src/randr.xml @@ -27,7 +27,7 @@ authorization from the authors. --> <xcb header="randr" extension-xname="RANDR" extension-name="RandR" - major-version="1" minor-version="3"> + major-version="1" minor-version="4"> <import>xproto</import> <import>render</import> @@ -36,12 +36,14 @@ authorization from the authors. <xidtype name="MODE" /> <xidtype name="CRTC" /> <xidtype name="OUTPUT" /> + <xidtype name="PROVIDER" /> <!-- Errors --> - <error name="BadOutput" number="0" /> - <error name="BadCrtc" number="1" /> - <error name="BadMode" number="2" /> + <error name="BadOutput" number="0" /> + <error name="BadCrtc" number="1" /> + <error name="BadMode" number="2" /> + <error name="BadProvider" number="3" /> <!-- Requests --> @@ -113,11 +115,15 @@ authorization from the authors. <!-- opcode 3 is obsolete --> <enum name="NotifyMask" > - <item name="ScreenChange"> <bit>0</bit></item> - <!-- new in 1.2 --> - <item name="CrtcChange"> <bit>1</bit></item> - <item name="OutputChange"> <bit>2</bit></item> - <item name="OutputProperty"><bit>3</bit></item> + <item name="ScreenChange"> <bit>0</bit></item> + <!-- New in version 1.2 --> + <item name="CrtcChange"> <bit>1</bit></item> + <item name="OutputChange"> <bit>2</bit></item> + <item name="OutputProperty"> <bit>3</bit></item> + <!-- New in version 1.4 --> + <item name="ProviderChange"> <bit>4</bit></item> + <item name="ProviderProperty"><bit>5</bit></item> + <item name="ResourceChange"> <bit>6</bit></item> </enum> <request name="SelectInput" opcode="4"> @@ -242,9 +248,9 @@ authorization from the authors. <!-- for GetOutputInfo.connection --> <enum name="Connection"> - <item name="Connected" /> - <item name="Disconnected" /> - <item name="Unknown" /> + <item name="Connected"> <value>0</value> </item> + <item name="Disconnected"> <value>1</value> </item> + <item name="Unknown"> <value>2</value> </item> </enum> <request name="GetOutputInfo" opcode="9"> @@ -506,6 +512,14 @@ authorization from the authors. </reply> </request> + <enum name="Transform"> + <!-- Introduced in version 1.3, but not referenced. --> + <item name="Unit"> <bit>0</bit></item> + <item name="ScaleUp"> <bit>1</bit></item> + <item name="ScaleDown"> <bit>2</bit></item> + <item name="Projective"> <bit>3</bit></item> + </enum> + <request name="SetCrtcTransform" opcode="26"> <field type="CRTC" name="crtc" /> <field type="TRANSFORM" name="transform" /> @@ -599,6 +613,162 @@ authorization from the authors. </reply> </request> + <!-- New in version 1.4 --> + + <request name="GetProviders" opcode="32"> + <field type="WINDOW" name="window" /> + <reply> + <pad bytes="1" /> + <field type="TIMESTAMP" name="timestamp" /> + <field type="CARD16" name="num_providers" /> + <pad bytes="18" /> + <list type="PROVIDER" name="providers"> + <fieldref>num_providers</fieldref> + </list> + </reply> + </request> + + <enum name="ProviderCapability"> + <item name="SourceOutput"> <bit>0</bit></item> + <item name="SinkOutput"> <bit>1</bit></item> + <item name="SourceOffload"> <bit>2</bit></item> + <item name="SinkOffload"> <bit>3</bit></item> + </enum> + + <request name="GetProviderInfo" opcode="33"> + <field type="PROVIDER" name="provider" /> + <field type="TIMESTAMP" name="config_timestamp" /> + <reply> + <field type="CARD8" name="status" /> + <field type="TIMESTAMP" name="timestamp" /> + <field type="CARD32" name="capabilities" mask="ProviderCapability" /> + <field type="CARD16" name="num_crtcs" /> + <field type="CARD16" name="num_outputs" /> + <field type="CARD16" name="num_associated_providers" /> + <field type="CARD16" name="name_len" /> + <pad bytes="8" /> + <list type="CRTC" name="crtcs"> + <fieldref>num_crtcs</fieldref> + </list> + <list type="OUTPUT" name="outputs"> + <fieldref>num_outputs</fieldref> + </list> + <list type="PROVIDER" name="associated_providers"> + <fieldref>num_associated_providers</fieldref> + </list> + <list type="CARD32" name="associated_capability"> + <fieldref>num_associated_providers</fieldref> + </list> + <list type="char" name="name"> + <fieldref>name_len</fieldref> + </list> + <!-- XXX: Prepared for the future. Until xcbgen supports + the align attribute in <pad>, we ignore the + trailing pad bytes here. + <pad align="4" /> + --> + </reply> + </request> + + <request name="SetProviderOffloadSink" opcode="34"> + <field type="PROVIDER" name="provider" /> + <field type="PROVIDER" name="sink_provider" /> + <field type="TIMESTAMP" name="config_timestamp" /> + </request> + + <request name="SetProviderOutputSource" opcode="35"> + <field type="PROVIDER" name="provider" /> + <field type="PROVIDER" name="source_provider" /> + <field type="TIMESTAMP" name="config_timestamp" /> + </request> + + <request name="ListProviderProperties" opcode="36"> + <field type="PROVIDER" name="provider" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_atoms" /> + <pad bytes="22" /> + <list type="ATOM" name="atoms"> + <fieldref>num_atoms</fieldref> + </list> + </reply> + </request> + + <request name="QueryProviderProperty" opcode="37"> + <field type="PROVIDER" name="provider" /> + <field type="ATOM" name="property" /> + <reply> + <pad bytes="1" /> + <field type="BOOL" name="pending" /> + <field type="BOOL" name="range" /> + <field type="BOOL" name="immutable" /> + <pad bytes="21" /> + <list type="INT32" name="valid_values"> + <fieldref>length</fieldref> + </list> + </reply> + </request> + + <request name="ConfigureProviderProperty" opcode="38"> + <field type="PROVIDER" name="provider" /> + <field type="ATOM" name="property" /> + <field type="BOOL" name="pending" /> + <field type="BOOL" name="range" /> + <pad bytes="2" /> + <list type="INT32" name="values" /> + </request> + + <request name="ChangeProviderProperty" opcode="39"> + <field type="PROVIDER" name="provider" /> + <field type="ATOM" name="property" /> + <field type="ATOM" name="type" /> + <field type="CARD8" name="format" /> + <field type="CARD8" name="mode" /> + <pad bytes="2" /> + <field type="CARD32" name="num_items" /> + <list type="void" name="data"> + <op op="*"> + <fieldref>num_items</fieldref> + <op op="/"> + <fieldref>format</fieldref> + <value>8</value> + </op> + </op> + </list> + </request> + + <request name="DeleteProviderProperty" opcode="40"> + <field type="PROVIDER" name="provider" /> + <field type="ATOM" name="property" /> + </request> + + <request name="GetProviderProperty" opcode="41"> + <field type="PROVIDER" name="provider" /> + <field type="ATOM" name="property" /> + <field type="ATOM" name="type" /> <!-- AnyProperty --> + <field type="CARD32" name="long_offset" /> + <field type="CARD32" name="long_length" /> + <field type="BOOL" name="delete" /> + <field type="BOOL" name="pending" /> + <pad bytes="2" /> + <reply> + <field type="CARD8" name="format" /> + <field type="ATOM" name="type" /> <!-- None --> + <field type="CARD32" name="bytes_after" /> + <field type="CARD32" name="num_items" /> + <pad bytes="12" /> + <list type="void" name="data"> + <op op="*"> + <fieldref>num_items</fieldref> + <op op="/"> + <fieldref>format</fieldref> + <value>8</value> + </op> + </op> + </list> + </reply> + </request> + <!-- Events --> <event name="ScreenChangeNotify" number="0"> @@ -619,9 +789,12 @@ authorization from the authors. <!-- subcode --> <enum name="Notify" > - <item name="CrtcChange"> <value>0</value></item> - <item name="OutputChange"> <value>1</value></item> - <item name="OutputProperty"><value>2</value></item> + <item name="CrtcChange"> <value>0</value></item> + <item name="OutputChange"> <value>1</value></item> + <item name="OutputProperty"> <value>2</value></item> + <item name="ProviderChange"> <value>3</value></item> + <item name="ProviderProperty"><value>4</value></item> + <item name="ResourceChange"> <value>5</value></item> </enum> <struct name="CrtcChange"> @@ -658,10 +831,37 @@ authorization from the authors. <pad bytes="11" /> </struct> + <!-- New in version 1.4 --> + + <struct name="ProviderChange"> + <field type="TIMESTAMP" name="timestamp" /> + <field type="WINDOW" name="window" /> + <field type="PROVIDER" name="provider" /> + <pad bytes="16" /> + </struct> + + <struct name="ProviderProperty"> + <field type="WINDOW" name="window" /> + <field type="PROVIDER" name="provider" /> + <field type="ATOM" name="atom" /> + <field type="TIMESTAMP" name="timestamp" /> + <field type="CARD8" name="state" /> + <pad bytes="11" /> + </struct> + + <struct name="ResourceChange"> + <field type="TIMESTAMP" name="timestamp" /> + <field type="WINDOW" name="window" /> + <pad bytes="20" /> + </struct> + <union name="NotifyData"> - <field type="CrtcChange" name="cc" /> - <field type="OutputChange" name="oc" /> - <field type="OutputProperty" name="op" /> + <field type="CrtcChange" name="cc" /> + <field type="OutputChange" name="oc" /> + <field type="OutputProperty" name="op" /> + <field type="ProviderChange" name="pc" /> + <field type="ProviderProperty" name="pp" /> + <field type="ResourceChange" name="rc" /> </union> <event name="Notify" number="1"> diff --git a/src/render.xml b/src/render.xml index 9667fbe..55b73f7 100644 --- a/src/render.xml +++ b/src/render.xml @@ -11,84 +11,84 @@ for licensing information. <import>xproto</import> <enum name="PictType"> - <item name="Indexed" /> - <item name="Direct" /> + <item name="Indexed"> <value>0</value> </item> + <item name="Direct"> <value>1</value> </item> </enum> <enum name="Picture"> - <item name="None" /> + <item name="None"> <value>0</value> </item> </enum> <!-- Disjoint* and Conjoint* are new in version 0.2 --> <!-- PDF blend modes are new in version 0.11 --> <enum name="PictOp"> - <item name="Clear" /> - <item name="Src" /> - <item name="Dst" /> - <item name="Over" /> - <item name="OverReverse" /> - <item name="In" /> - <item name="InReverse" /> - <item name="Out" /> - <item name="OutReverse" /> - <item name="Atop" /> - <item name="AtopReverse" /> - <item name="Xor" /> - <item name="Add" /> - <item name="Saturate" /> + <item name="Clear"> <value>0</value> </item> + <item name="Src"> <value>1</value> </item> + <item name="Dst"> <value>2</value> </item> + <item name="Over"> <value>3</value> </item> + <item name="OverReverse"> <value>4</value> </item> + <item name="In"> <value>5</value> </item> + <item name="InReverse"> <value>6</value> </item> + <item name="Out"> <value>7</value> </item> + <item name="OutReverse"> <value>8</value> </item> + <item name="Atop"> <value>9</value> </item> + <item name="AtopReverse"> <value>10</value> </item> + <item name="Xor"> <value>11</value> </item> + <item name="Add"> <value>12</value> </item> + <item name="Saturate"> <value>13</value> </item> - <item name="DisjointClear"><value>16</value></item> - <item name="DisjointSrc" /> - <item name="DisjointDst" /> - <item name="DisjointOver" /> - <item name="DisjointOverReverse" /> - <item name="DisjointIn" /> - <item name="DisjointInReverse" /> - <item name="DisjointOut" /> - <item name="DisjointOutReverse" /> - <item name="DisjointAtop" /> - <item name="DisjointAtopReverse" /> - <item name="DisjointXor" /> + <item name="DisjointClear"> <value>16</value></item> + <item name="DisjointSrc"> <value>17</value> </item> + <item name="DisjointDst"> <value>18</value> </item> + <item name="DisjointOver"> <value>19</value> </item> + <item name="DisjointOverReverse"> <value>20</value> </item> + <item name="DisjointIn"> <value>21</value> </item> + <item name="DisjointInReverse"> <value>22</value> </item> + <item name="DisjointOut"> <value>23</value> </item> + <item name="DisjointOutReverse"> <value>24</value> </item> + <item name="DisjointAtop"> <value>25</value> </item> + <item name="DisjointAtopReverse"> <value>26</value> </item> + <item name="DisjointXor"> <value>27</value> </item> - <item name="ConjointClear"><value>32</value></item> - <item name="ConjointSrc" /> - <item name="ConjointDst" /> - <item name="ConjointOver" /> - <item name="ConjointOverReverse" /> - <item name="ConjointIn" /> - <item name="ConjointInReverse" /> - <item name="ConjointOut" /> - <item name="ConjointOutReverse" /> - <item name="ConjointAtop" /> - <item name="ConjointAtopReverse" /> - <item name="ConjointXor" /> + <item name="ConjointClear"> <value>32</value></item> + <item name="ConjointSrc"> <value>33</value> </item> + <item name="ConjointDst"> <value>34</value> </item> + <item name="ConjointOver"> <value>35</value> </item> + <item name="ConjointOverReverse"> <value>36</value> </item> + <item name="ConjointIn"> <value>37</value> </item> + <item name="ConjointInReverse"> <value>38</value> </item> + <item name="ConjointOut"> <value>39</value> </item> + <item name="ConjointOutReverse"> <value>40</value> </item> + <item name="ConjointAtop"> <value>41</value> </item> + <item name="ConjointAtopReverse"> <value>42</value> </item> + <item name="ConjointXor"> <value>43</value> </item> <!-- PDF blend modes are new in version 0.11 --> - <item name="Multiply"><value>48</value></item> - <item name="Screen" /> - <item name="Overlay" /> - <item name="Darken" /> - <item name="Lighten" /> - <item name="ColorDodge" /> - <item name="ColorBurn" /> - <item name="HardLight" /> - <item name="SoftLight" /> - <item name="Difference" /> - <item name="Exclusion" /> - <item name="HSLHue" /> - <item name="HSLSaturation" /> - <item name="HSLColor" /> - <item name="HSLLuminosity" /> + <item name="Multiply"> <value>48</value></item> + <item name="Screen"> <value>49</value> </item> + <item name="Overlay"> <value>50</value> </item> + <item name="Darken"> <value>51</value> </item> + <item name="Lighten"> <value>52</value> </item> + <item name="ColorDodge"> <value>53</value> </item> + <item name="ColorBurn"> <value>54</value> </item> + <item name="HardLight"> <value>55</value> </item> + <item name="SoftLight"> <value>56</value> </item> + <item name="Difference"> <value>57</value> </item> + <item name="Exclusion"> <value>58</value> </item> + <item name="HSLHue"> <value>59</value> </item> + <item name="HSLSaturation"> <value>60</value> </item> + <item name="HSLColor"> <value>61</value> </item> + <item name="HSLLuminosity"> <value>62</value> </item> </enum> <enum name="PolyEdge"> - <item name="Sharp" /> - <item name="Smooth" /> + <item name="Sharp"> <value>0</value> </item> + <item name="Smooth"> <value>1</value> </item> </enum> <enum name="PolyMode"> - <item name="Precise" /> - <item name="Imprecise" /> + <item name="Precise"> <value>0</value> </item> + <item name="Imprecise"> <value>1</value> </item> </enum> <enum name="CP"> @@ -108,20 +108,20 @@ for licensing information. </enum> <enum name="SubPixel"> - <item name="Unknown" /> - <item name="HorizontalRGB" /> - <item name="HorizontalBGR" /> - <item name="VerticalRGB" /> - <item name="VerticalBGR" /> - <item name="None" /> + <item name="Unknown"> <value>0</value> </item> + <item name="HorizontalRGB"> <value>1</value> </item> + <item name="HorizontalBGR"> <value>2</value> </item> + <item name="VerticalRGB"> <value>3</value> </item> + <item name="VerticalBGR"> <value>4</value> </item> + <item name="None"> <value>5</value> </item> </enum> <!-- Extended repeat attributes introduced in 0.10 --> <enum name="Repeat"> - <item name="None" /> - <item name="Normal" /> - <item name="Pad" /> - <item name="Reflect" /> + <item name="None"> <value>0</value> </item> + <item name="Normal"> <value>1</value> </item> + <item name="Pad"> <value>2</value> </item> + <item name="Reflect"> <value>3</value> </item> </enum> <typedef oldname="CARD32" newname="GLYPH" /> diff --git a/src/res.xml b/src/res.xml index d758d89..17e6f83 100644 --- a/src/res.xml +++ b/src/res.xml @@ -26,9 +26,10 @@ sale, use or other dealings in this Software without prior written authorization from the authors. --> <xcb header="res" extension-xname="X-Resource" extension-name="Res" - major-version="1" minor-version="0"> + major-version="1" minor-version="2"> <import>xproto</import> + <!-- v1.0 --> <struct name="Client"> <field type="CARD32" name="resource_base" /> <field type="CARD32" name="resource_mask" /> @@ -39,6 +40,46 @@ authorization from the authors. <field type="CARD32" name="count" /> </struct> + <!-- v1.2 --> + <enum name="ClientIdMask"> + <item name="ClientXID"> <bit>0</bit> </item> + <item name="LocalClientPID"> <bit>1</bit> </item> + </enum> + + <struct name="ClientIdSpec"> + <field type="CARD32" name="client" /> + <field type="CARD32" name="mask" mask="ClientIdMask" /> + </struct> + + <struct name="ClientIdValue"> + <field type="ClientIdSpec" name="spec" /> + <field type="CARD32" name="length" /> + <list type="CARD32" name="value"> + <fieldref>length</fieldref> + </list> + </struct> + + <struct name="ResourceIdSpec"> + <field type="CARD32" name="resource" /> + <field type="CARD32" name="type" /> + </struct> + + <struct name="ResourceSizeSpec"> + <field type="ResourceIdSpec" name="spec" /> + <field type="CARD32" name="bytes" /> + <field type="CARD32" name="ref_count" /> + <field type="CARD32" name="use_count" /> + </struct> + + <struct name="ResourceSizeValue"> + <field type="ResourceSizeSpec" name="size" /> + <field type="CARD32" name="num_cross_references" /> + <list type="ResourceSizeSpec" name="cross_references"> + <fieldref>num_cross_references</fieldref> + </list> + </struct> + + <!-- v1.0 --> <request name="QueryVersion" opcode="0"> <field type="CARD8" name="client_major" /> <field type="CARD8" name="client_minor" /> @@ -80,4 +121,36 @@ authorization from the authors. <field type="CARD32" name="bytes_overflow" /> </reply> </request> + + <!-- v1.2 --> + <request name="QueryClientIds" opcode="4"> + <field type="CARD32" name="num_specs" /> + <list type="ClientIdSpec" name="specs"> + <fieldref>num_specs</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="num_ids" /> + <pad bytes="20" /> + <list type="ClientIdValue" name="ids"> + <fieldref>num_ids</fieldref> + </list> + </reply> + </request> + + <request name="QueryResourceBytes" opcode="5"> + <field type="CARD32" name="client" /> + <field type="CARD32" name="num_specs" /> + <list type="ResourceIdSpec" name="specs"> + <fieldref>num_specs</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="num_sizes" /> + <pad bytes="20" /> + <list type="ResourceSizeValue" name="sizes"> + <fieldref>num_sizes</fieldref> + </list> + </reply> + </request> </xcb> diff --git a/src/screensaver.xml b/src/screensaver.xml index 9c7bccb..491869e 100644 --- a/src/screensaver.xml +++ b/src/screensaver.xml @@ -36,9 +36,9 @@ Draft Standard Version 1.1 <import>xproto</import> <enum name="Kind"> - <item name="Blanked" /> - <item name="Internal" /> - <item name="External" /> + <item name="Blanked"> <value>0</value> </item> + <item name="Internal"> <value>1</value> </item> + <item name="External"> <value>2</value> </item> </enum> <enum name="Event"> @@ -47,10 +47,10 @@ Draft Standard Version 1.1 </enum> <enum name="State"> - <item name="Off" /> - <item name="On" /> - <item name="Cycle" /> - <item name="Disabled" /> + <item name="Off"> <value>0</value> </item> + <item name="On"> <value>1</value> </item> + <item name="Cycle"> <value>2</value> </item> + <item name="Disabled"> <value>3</value> </item> </enum> <!-- Errors --> @@ -75,14 +75,14 @@ Draft Standard Version 1.1 <field type="CARD32" name="ms_until_server"/> <field type="CARD32" name="ms_since_user_input"/> <field type="CARD32" name="event_mask" /> - <field type="BYTE" name="kind"/> <!-- enum Kind --> + <field type="BYTE" name="kind" enum="Kind"/> <pad bytes="7"/> </reply> </request> <request name="SelectInput" opcode="2"> <field type="DRAWABLE" name="drawable"/> - <field type="CARD32" name="event_mask" /> <!-- enum Event --> + <field type="CARD32" name="event_mask" mask="Event"/> </request> <request name="SetAttributes" opcode="3"> @@ -92,7 +92,7 @@ Draft Standard Version 1.1 <field type="CARD16" name="width"/> <field type="CARD16" name="height"/> <field type="CARD16" name="border_width"/> - <field type="BYTE" name="class"/> <!-- enum XCBWindowClass --> + <field type="BYTE" name="class" enum="WindowClass"/> <field type="CARD8" name="depth"/> <field type="VISUALID" name="visual"/> <valueparam value-mask-type="CARD32" @@ -113,14 +113,11 @@ Draft Standard Version 1.1 <!-- Events --> <event name="Notify" number="0"> - <field type="CARD8" name="code"/> - <field type="BYTE" name="state"/> <!-- enum State --> - <pad bytes="1" /> - <field type="CARD16" name="sequence_number"/> + <field type="BYTE" name="state" enum="State"/> <field type="TIMESTAMP" name="time"/> <field type="WINDOW" name="root"/> <field type="WINDOW" name="window"/> - <field type="BYTE" name="kind"/> <!-- enum Kind --> + <field type="BYTE" name="kind" enum="Kind"/> <field type="BOOL" name="forced"/> <pad bytes="14"/> </event> diff --git a/src/shape.xml b/src/shape.xml index c128ade..d75549e 100644 --- a/src/shape.xml +++ b/src/shape.xml @@ -34,18 +34,18 @@ authorization from the authors. <!-- Shape attributes of type OP. --> <enum name="SO"> - <item name="Set" /> - <item name="Union" /> - <item name="Intersect" /> - <item name="Subtract" /> - <item name="Invert" /> + <item name="Set"> <value>0</value> </item> + <item name="Union"> <value>1</value> </item> + <item name="Intersect"> <value>2</value> </item> + <item name="Subtract"> <value>3</value> </item> + <item name="Invert"> <value>4</value> </item> </enum> <!-- Shape attributes of type KIND. --> <enum name="SK"> - <item name="Bounding" /> - <item name="Clip" /> - <item name="Input" /> <!-- added in version 1.1 --> + <item name="Bounding"> <value>0</value> </item> + <item name="Clip"> <value>1</value> </item> + <item name="Input"> <value>2</value> </item> <!-- added in version 1.1 --> </enum> <event name="Notify" number="0"> diff --git a/src/shm.xml b/src/shm.xml index adda509..71fce14 100644 --- a/src/shm.xml +++ b/src/shm.xml @@ -26,7 +26,7 @@ sale, use or other dealings in this Software without prior written authorization from the authors. --> <xcb header="shm" extension-xname="MIT-SHM" extension-name="Shm" - major-version="1" minor-version="1"> + major-version="1" minor-version="2"> <import>xproto</import> <xidtype name="SEG" /> @@ -113,4 +113,23 @@ authorization from the authors. <field type="SEG" name="shmseg" /> <field type="CARD32" name="offset" /> </request> + + <request name="AttachFd" opcode="6"> + <field type="SEG" name="shmseg" /> + <fd name="shm_fd" /> + <field type="BOOL" name="read_only" /> + <pad bytes="3" /> + </request> + + <request name="CreateSegment" opcode="7"> + <field type="SEG" name="shmseg" /> + <field type="CARD32" name="size" /> + <field type="BOOL" name="read_only" /> + <pad bytes="3" /> + <reply> + <field type="CARD8" name="nfd" /> + <fd name="shm_fd" /> + <pad bytes="24" /> + </reply> + </request> </xcb> diff --git a/src/sync.xml b/src/sync.xml index 516d149..23175cb 100644 --- a/src/sync.xml +++ b/src/sync.xml @@ -11,9 +11,9 @@ for licensing information. <xidtype name="ALARM" /> <enum name="ALARMSTATE"> - <item name="Active" /> - <item name="Inactive" /> - <item name="Destroyed" /> + <item name="Active"> <value>0</value> </item> + <item name="Inactive"> <value>1</value> </item> + <item name="Destroyed"> <value>2</value> </item> </enum> <xidtype name="COUNTER" /> @@ -21,15 +21,15 @@ for licensing information. <xidtype name="FENCE" /> <enum name="TESTTYPE"> - <item name="PositiveTransition" /> - <item name="NegativeTransition" /> - <item name="PositiveComparison" /> - <item name="NegativeComparison" /> + <item name="PositiveTransition"> <value>0</value> </item> + <item name="NegativeTransition"> <value>1</value> </item> + <item name="PositiveComparison"> <value>2</value> </item> + <item name="NegativeComparison"> <value>3</value> </item> </enum> <enum name="VALUETYPE"> - <item name="Absolute" /> - <item name="Relative" /> + <item name="Absolute"> <value>0</value> </item> + <item name="Relative"> <value>1</value> </item> </enum> <enum name="CA"> @@ -48,7 +48,7 @@ for licensing information. <struct name="SYSTEMCOUNTER"> <field type="COUNTER" name="counter" /> - <field type="INT64" name="resolution" /> + <field type="sync:INT64" name="resolution" /> <field type="CARD16" name="name_len" /> <list type="char" name="name"> <fieldref>name_len</fieldref> @@ -58,13 +58,13 @@ for licensing information. <struct name="TRIGGER"> <field type="COUNTER" name="counter" /> <field type="CARD32" name="wait_type" enum="VALUETYPE" /> - <field type="INT64" name="wait_value" /> + <field type="sync:INT64" name="wait_value" /> <field type="CARD32" name="test_type" enum="TESTTYPE" /> </struct> <struct name="WAITCONDITION"> <field type="TRIGGER" name="trigger" /> - <field type="INT64" name="event_threshold" /> + <field type="sync:INT64" name="event_threshold" /> </struct> <error name="Counter" number="0"> @@ -103,7 +103,7 @@ for licensing information. <request name="CreateCounter" opcode="2"> <field type="COUNTER" name="id" /> - <field type="INT64" name="initial_value" /> + <field type="sync:INT64" name="initial_value" /> </request> <request name="DestroyCounter" opcode="6"> @@ -114,7 +114,7 @@ for licensing information. <field type="COUNTER" name="counter" /> <reply> <pad bytes="1" /> - <field type="INT64" name="counter_value" /> + <field type="sync:INT64" name="counter_value" /> </reply> </request> @@ -124,26 +124,76 @@ for licensing information. <request name="ChangeCounter" opcode="4"> <field type="COUNTER" name="counter" /> - <field type="INT64" name="amount" /> + <field type="sync:INT64" name="amount" /> </request> <request name="SetCounter" opcode="3"> <field type="COUNTER" name="counter" /> - <field type="INT64" name="value" /> + <field type="sync:INT64" name="value" /> </request> <request name="CreateAlarm" opcode="8"> <field type="ALARM" name="id" /> - <valueparam value-mask-type="CARD32" - value-mask-name="value_mask" - value-list-name="value_list" /> + <field type="CARD32" name="value_mask" mask="CA" /> + <switch name="value_list"> + <fieldref>value_mask</fieldref> + <bitcase> + <enumref ref="CA">Counter</enumref> + <field type="COUNTER" name="counter" /> + </bitcase> + <bitcase> + <enumref ref="CA">ValueType</enumref> + <field type="CARD32" name="valueType" enum="VALUETYPE" /> + </bitcase> + <bitcase> + <enumref ref="CA">Value</enumref> + <field type="sync:INT64" name="value" /> + </bitcase> + <bitcase> + <enumref ref="CA">TestType</enumref> + <field type="CARD32" name="testType" enum="TESTTYPE" /> + </bitcase> + <bitcase> + <enumref ref="CA">Delta</enumref> + <field type="sync:INT64" name="delta" /> + </bitcase> + <bitcase> + <enumref ref="CA">Events</enumref> + <field type="CARD32" name="events" /> + </bitcase> + </switch> </request> <request name="ChangeAlarm" opcode="9"> <field type="ALARM" name="id" /> - <valueparam value-mask-type="CARD32" - value-mask-name="value_mask" - value-list-name="value_list" /> + <field type="CARD32" name="value_mask" mask="CA" /> + <switch name="value_list"> + <fieldref>value_mask</fieldref> + <bitcase> + <enumref ref="CA">Counter</enumref> + <field type="COUNTER" name="counter" /> + </bitcase> + <bitcase> + <enumref ref="CA">ValueType</enumref> + <field type="CARD32" name="valueType" enum="VALUETYPE" /> + </bitcase> + <bitcase> + <enumref ref="CA">Value</enumref> + <field type="sync:INT64" name="value" /> + </bitcase> + <bitcase> + <enumref ref="CA">TestType</enumref> + <field type="CARD32" name="testType" enum="TESTTYPE" /> + </bitcase> + <bitcase> + <enumref ref="CA">Delta</enumref> + <field type="sync:INT64" name="delta" /> + </bitcase> + <bitcase> + <enumref ref="CA">Events</enumref> + <field type="CARD32" name="events" /> + </bitcase> + </switch> </request> <request name="DestroyAlarm" opcode="11"> @@ -155,7 +205,7 @@ for licensing information. <reply> <pad bytes="1" /> <field type="TRIGGER" name="trigger" /> - <field type="INT64" name="delta" /> + <field type="sync:INT64" name="delta" /> <field type="BOOL" name="events" /> <field type="CARD8" name="state" enum="ALARMSTATE" /> <pad bytes="2" /> @@ -209,8 +259,8 @@ for licensing information. <event name="CounterNotify" number="0"> <field type="CARD8" name="kind" /> <field type="COUNTER" name="counter" /> - <field type="INT64" name="wait_value" /> - <field type="INT64" name="counter_value" /> + <field type="sync:INT64" name="wait_value" /> + <field type="sync:INT64" name="counter_value" /> <field type="TIMESTAMP" name="timestamp" /> <field type="CARD16" name="count" /> <field type="BOOL" name="destroyed" /> @@ -220,8 +270,8 @@ for licensing information. <event name="AlarmNotify" number="1"> <field type="CARD8" name="kind" /> <field type="ALARM" name="alarm" /> - <field type="INT64" name="counter_value" /> - <field type="INT64" name="alarm_value" /> + <field type="sync:INT64" name="counter_value" /> + <field type="sync:INT64" name="alarm_value" /> <field type="TIMESTAMP" name="timestamp" /> <field type="CARD8" name="state" enum="ALARMSTATE" /> <pad bytes="3" /> diff --git a/src/xcb.xsd b/src/xcb.xsd index cfa90c9..73dbf8a 100644 --- a/src/xcb.xsd +++ b/src/xcb.xsd @@ -59,7 +59,7 @@ authorization from the authors. <xsd:complexType name="caseexpr"> <xsd:sequence> <!-- case expression: --> - <xsd:group ref="expression" minOccurs="1" maxOccurs="1" /> + <xsd:group ref="expression" minOccurs="1" maxOccurs="unbounded" /> <!-- match --> <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" /> <xsd:choice> @@ -89,6 +89,9 @@ authorization from the authors. <!-- field replaces FIELD, PARAM, and REPLY. --> <xsd:element name="field" type="var" /> + <!-- fd passing parameter --> + <xsd:element name="fd" /> + <!-- list replaces ARRAYFIELD, LISTPARAM, and ARRAYREPLY. The name and type are specified as attributes. The content is an expression giving the length. --> @@ -185,6 +188,7 @@ authorization from the authors. <xsd:element ref="pad" /> <xsd:element ref="field" /> <xsd:element ref="list" /> + <xsd:element ref="fd" /> </xsd:choice> </xsd:group> @@ -324,6 +328,7 @@ authorization from the authors. </xsd:sequence> <xsd:attribute name="no-sequence-number" type="xsd:boolean" use="optional" /> + <xsd:attribute name="xge" type="xsd:boolean" use="optional" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> @@ -352,7 +357,10 @@ authorization from the authors. <xsd:sequence minOccurs="1" maxOccurs="unbounded"> <xsd:element name="item"> <xsd:complexType> - <xsd:group ref="expression" minOccurs="0" maxOccurs="1" /> + <xsd:choice minOccurs="1" maxOccurs="1"> + <xsd:element name="value" type="dec-or-hex-integer" /> + <xsd:element name="bit" type="xsd:integer" /> + </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> diff --git a/src/xevie.xml b/src/xevie.xml index 222b412..bafa990 100644 --- a/src/xevie.xml +++ b/src/xevie.xml @@ -55,8 +55,8 @@ authorization from the authors. </request> <enum name="Datatype"> - <item name="Unmodified" /> - <item name="Modified" /> + <item name="Unmodified"> <value>0</value> </item> + <item name="Modified"> <value>1</value> </item> </enum> <!-- The Send request needs to send an arbitrary Event; this type is used diff --git a/src/xfixes.xml b/src/xfixes.xml index 9bbeaab..c5cba35 100644 --- a/src/xfixes.xml +++ b/src/xfixes.xml @@ -26,7 +26,7 @@ authorization from the authors. --> <!-- This file describes version 4 of XFixes. --> <xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes" - major-version="4" minor-version="0"> + major-version="5" minor-version="0"> <import>xproto</import> <import>render</import> <import>shape</import> @@ -44,18 +44,18 @@ authorization from the authors. </request> <enum name="SaveSetMode"> - <item name="Insert" /> - <item name="Delete" /> + <item name="Insert"> <value>0</value> </item> + <item name="Delete"> <value>1</value> </item> </enum> <enum name="SaveSetTarget"> - <item name="Nearest" /> - <item name="Root" /> + <item name="Nearest"> <value>0</value> </item> + <item name="Root"> <value>1</value> </item> </enum> <enum name="SaveSetMapping"> - <item name="Map" /> - <item name="Unmap" /> + <item name="Map"> <value>0</value> </item> + <item name="Unmap"> <value>1</value> </item> </enum> <request name="ChangeSaveSet" opcode="1"> @@ -67,9 +67,9 @@ authorization from the authors. </request> <enum name="SelectionEvent"> - <item name="SetSelectionOwner" /> - <item name="SelectionWindowDestroy" /> - <item name="SelectionClientClose" /> + <item name="SetSelectionOwner"> <value>0</value> </item> + <item name="SelectionWindowDestroy"> <value>1</value> </item> + <item name="SelectionClientClose"> <value>2</value> </item> </enum> <enum name="SelectionEventMask"> @@ -95,7 +95,7 @@ authorization from the authors. </request> <enum name="CursorNotify"> - <item name="DisplayCursor" /> + <item name="DisplayCursor"> <value>0</value> </item> </enum> <enum name="CursorNotifyMask"> @@ -143,7 +143,7 @@ authorization from the authors. <error name="BadRegion" number="0" /> <enum name="Region"> - <item name="None" /> + <item name="None"> <value>0</value> </item> </enum> <request name="CreateRegion" opcode="5"> @@ -331,4 +331,32 @@ authorization from the authors. <request name="ShowCursor" opcode="30"> <field type="WINDOW" name="window" /> </request> + + <!-- Version 5 --> + + <xidtype name="BARRIER" /> + + <enum name="BarrierDirections"> + <item name="PositiveX"><bit>0</bit></item> + <item name="PositiveY"><bit>1</bit></item> + <item name="NegativeX"><bit>2</bit></item> + <item name="NegativeY"><bit>3</bit></item> + </enum> + + <request name="CreatePointerBarrier" opcode="31"> + <field type="BARRIER" name="barrier" /> + <field type="WINDOW" name="window" /> + <field type="CARD16" name="x1" /> + <field type="CARD16" name="y1" /> + <field type="CARD16" name="x2" /> + <field type="CARD16" name="y2" /> + <field type="CARD32" name="directions" mask="BarrierDirections" /> + <pad bytes="2" /> + <field type="CARD16" name="num_devices" /> + <list type="CARD16" name="devices"><fieldref>num_devices</fieldref></list> + </request> + + <request name="DeletePointerBarrier" opcode="32"> + <field type="BARRIER" name="barrier" /> + </request> </xcb> diff --git a/src/xinput.xml b/src/xinput.xml index 80416fe..fa115bd 100644 --- a/src/xinput.xml +++ b/src/xinput.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!-- -Copyright (C) 2006 Peter Hutterer +Copyright (C) 2006 Peter Hutterer +Copyright (C) 2013 Daniel Martin All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -26,995 +27,2211 @@ sale, use or other dealings in this Software without prior written authorization from the authors. --> -<!-- Spec: http://refspecs.freestandards.org/X11/Xinput.pdf --> +<!-- Specifications: + http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XIproto.txt + http://cgit.freedesktop.org/xorg/proto/inputproto/tree/specs/XI2proto.txt +--> <xcb header="xinput" extension-xname="XInputExtension" extension-name="Input" - major-version="1" minor-version="4"> + major-version="2" minor-version="3"> + <import>xfixes</import> <import>xproto</import> - <typedef oldname="CARD8" newname="KeyCode" /> + <!-- ⋅⋅⋅ Types (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + <typedef oldname="CARD32" newname="EventClass" /> + <typedef oldname="CARD8" newname="KeyCode" /> - <enum name="ValuatorMode"> - <item name="Relative"> <value>0</value></item> - <item name="Absolute"> <value>1</value></item> - </enum> + <!-- ⋅⋅⋅ Types (v2.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> - <enum name="PropagateMode"> - <item name="AddToList"> <value>0</value></item> - <item name="DeleteFromList"> <value>1</value></item> - </enum> + <typedef oldname="CARD16" newname="DeviceId" /> + <typedef oldname="INT32" newname="FP1616" /> + + <struct name="FP3232"> + <field type="INT32" name="integral" /> + <field type="CARD32" name="frac" /> + </struct> + + <!-- ⋅⋅⋅ Requests (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> <!-- GetExtensionVersion --> <request name="GetExtensionVersion" opcode="1"> - <field type="CARD16" name="name_len" /> - <pad bytes="2" /> - <list type="char" name="name"> - <fieldref>name_len</fieldref> - </list> - <reply> - <pad bytes="1" /> - <field type="CARD16" name="server_major" /> - <field type="CARD16" name="server_minor" /> - <field type="BOOL" name="present" /> - <pad bytes="19" /> - </reply> + <field type="CARD16" name="name_len" /> + <pad bytes="2" /> + <list type="char" name="name"> + <fieldref>name_len</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="server_major" /> + <field type="CARD16" name="server_minor" /> + <field type="BOOL" name="present" /> + <pad bytes="19" /> + </reply> </request> <!-- ListInputDevices --> <enum name="DeviceUse"> - <item name="IsXPointer"><value>0</value></item> - <item name="IsXKeyboard"><value>1</value></item> - <item name="IsXExtensionDevice"><value>2</value></item> - <item name="IsXExtensionKeyboard"><value>3</value></item> - <item name="IsXExtensionPointer"><value>4</value></item> + <item name="IsXPointer"> <value>0</value> </item> + <item name="IsXKeyboard"> <value>1</value> </item> + <item name="IsXExtensionDevice"> <value>2</value> </item> + <item name="IsXExtensionKeyboard"> <value>3</value> </item> + <item name="IsXExtensionPointer"> <value>4</value> </item> </enum> - <struct name="DeviceInfo"> - <field type="ATOM" name="device_type" /> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="num_class_info" /> - <field type="CARD8" name="device_use" enum="DeviceUse" /> - <pad bytes="1" /> - </struct> - - <request name="ListInputDevices" opcode="2"> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="devices_len" /> - <pad bytes="23" /> - <list type="DeviceInfo" name="devices"> - <fieldref>devices_len</fieldref> - </list> - <!-- Uninterpreted: list of deviceinfo structs of 3 the subtypes --> - <!-- Uninterpreted: list of null-terminated strings --> - </reply> - </request> - <enum name="InputClass"> - <item name="Key"><value>0</value></item> - <item name="Button"><value>1</value></item> - <item name="Valuator"><value>2</value></item> - <item name="Feedback"><value>3</value></item> - <item name="Proximity"><value>4</value></item> - <item name="Focus"><value>5</value></item> - <item name="Other"><value>6</value></item> + <item name="Key"> <value>0</value> </item> + <item name="Button"> <value>1</value> </item> + <item name="Valuator"> <value>2</value> </item> + <item name="Feedback"> <value>3</value> </item> + <item name="Proximity"> <value>4</value> </item> + <item name="Focus"> <value>5</value> </item> + <item name="Other"> <value>6</value> </item> </enum> - <struct name="InputInfo"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> + <enum name="ValuatorMode"> + <item name="Relative"> <value>0</value> </item> + <item name="Absolute"> <value>1</value> </item> + </enum> + + <struct name="DeviceInfo"> + <field type="ATOM" name="device_type" /> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="num_class_info" /> + <field type="CARD8" name="device_use" enum="DeviceUse" /> + <pad bytes="1" /> </struct> <struct name="KeyInfo"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="KeyCode" name="min_keycode" /> - <field type="KeyCode" name="max_keycode" /> - <field type="CARD16" name="num_keys" /> - <pad bytes="2" /> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="KeyCode" name="min_keycode" /> + <field type="KeyCode" name="max_keycode" /> + <field type="CARD16" name="num_keys" /> + <pad bytes="2" /> </struct> <struct name="ButtonInfo"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="CARD16" name="num_buttons" /> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="CARD16" name="num_buttons" /> </struct> <struct name="AxisInfo"> - <field type="CARD32" name="resolution" /> - <field type="INT32" name="minimum" /> - <field type="INT32" name="maximum" /> + <field type="CARD32" name="resolution" /> + <field type="INT32" name="minimum" /> + <field type="INT32" name="maximum" /> </struct> <struct name="ValuatorInfo"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="CARD8" name="axes_len" /> - <field type="CARD8" name="mode" enum="ValuatorMode" /> - <field type="CARD32" name="motion_size" /> - <list type="AxisInfo" name="axes"> - <fieldref>axes_len</fieldref> - </list> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="CARD8" name="axes_len" /> + <field type="CARD8" name="mode" enum="ValuatorMode" /> + <field type="CARD32" name="motion_size" /> + <list type="AxisInfo" name="axes"> + <fieldref>axes_len</fieldref> + </list> </struct> + <struct name="InputInfo"> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + </struct> + + <struct name="DeviceName"> + <field type="CARD8" name="len" /> + <list type="char" name="string"> + <fieldref>len</fieldref> + </list> + </struct> + + <request name="ListInputDevices" opcode="2"> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="devices_len" /> + <pad bytes="23" /> + <list type="DeviceInfo" name="devices"> + <fieldref>devices_len</fieldref> + </list> + <!-- Uninterpreted: list (infos) of InputInfo structures, + length is <sumof> all devices.num_class_info --> + <!-- Uninterpreted: list (name) of DeviceName structures --> + </reply> + </request> + <!-- OpenDevice --> <struct name="InputClassInfo"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="event_type_base" /> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="event_type_base" /> </struct> <request name="OpenDevice" opcode="3"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="num_classes" /> - <pad bytes="23" /> - <list type="InputClassInfo" name="class_info"> - <fieldref>num_classes</fieldref> - </list> - </reply> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="num_classes" /> + <pad bytes="23" /> + <list type="InputClassInfo" name="class_info"> + <fieldref>num_classes</fieldref> + </list> + </reply> </request> <!-- CloseDevice --> <request name="CloseDevice" opcode="4"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> </request> <!-- SetDeviceMode --> <request name="SetDeviceMode" opcode="5"> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="mode" enum="ValuatorMode" /> - <pad bytes="2" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" altenum="GrabStatus" /> - <pad bytes="23" /> - </reply> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="mode" enum="ValuatorMode" /> + <pad bytes="2" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" altenum="GrabStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- SelectExtensionEvent --> <request name="SelectExtensionEvent" opcode="6"> - <field type="WINDOW" name="window" /> - <field type="CARD16" name="num_classes" /> - <pad bytes="2" /> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> + <field type="WINDOW" name="window" /> + <field type="CARD16" name="num_classes" /> + <pad bytes="2" /> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> </request> <!-- GetSelectedExtensionEvents --> <request name="GetSelectedExtensionEvents" opcode="7"> - <field type="WINDOW" name="window" /> - <reply> - <pad bytes="1" /> - <field type="CARD16" name="num_this_classes" /> - <field type="CARD16" name="num_all_classes" /> - <pad bytes="20" /> - <list type="EventClass" name="this_classes"> - <fieldref>num_this_classes</fieldref> - </list> - <list type="EventClass" name="all_classes"> - <fieldref>num_all_classes</fieldref> - </list> - </reply> + <field type="WINDOW" name="window" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_this_classes" /> + <field type="CARD16" name="num_all_classes" /> + <pad bytes="20" /> + <list type="EventClass" name="this_classes"> + <fieldref>num_this_classes</fieldref> + </list> + <list type="EventClass" name="all_classes"> + <fieldref>num_all_classes</fieldref> + </list> + </reply> </request> <!-- ChangeDeviceDontPropagateList --> + <enum name="PropagateMode"> + <item name="AddToList"> <value>0</value> </item> + <item name="DeleteFromList"> <value>1</value> </item> + </enum> + <request name="ChangeDeviceDontPropagateList" opcode="8"> - <field type="WINDOW" name="window" /> - <field type="CARD16" name="num_classes" /> - <field type="CARD8" name="mode" enum="PropagateMode" /> - <pad bytes="1" /> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> + <field type="WINDOW" name="window" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD8" name="mode" enum="PropagateMode" /> + <pad bytes="1" /> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> </request> <!-- GetDeviceDontPropagateList --> <request name="GetDeviceDontPropagateList" opcode="9"> - <field type="WINDOW" name="window" /> - <reply> - <pad bytes="1" /> - <field type="CARD16" name="num_classes" /> - <pad bytes="22" /> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> - </reply> + <field type="WINDOW" name="window" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_classes" /> + <pad bytes="22" /> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> + </reply> </request> <!-- GetDeviceMotionEvents --> - <request name="GetDeviceMotionEvents" opcode="10"> - <field type="TIMESTAMP" name="start" /> - <field type="TIMESTAMP" name="stop" altenum="Time" /> - <field type="CARD8" name="device_id" /> - <reply> - <pad bytes="1" /> - <field type="CARD32" name="num_coords" /> - <field type="CARD8" name="num_axes" /> - <field type="CARD8" name="device_mode" enum="ValuatorMode" /> - <pad bytes="18" /> - <!-- Uninterpreted: list of DeviceTimeCoord structures --> - </reply> - </request> - <struct name="DeviceTimeCoord"> - <field type="TIMESTAMP" name="time" /> - <!-- Uninterpreted: list of CARD16 --> + <field type="TIMESTAMP" name="time" /> + <!-- Uninterpreted: list (axisvalues) of CARD32, + length is num_axes from GetDeviceMotionEvents --> </struct> + <request name="GetDeviceMotionEvents" opcode="10"> + <field type="TIMESTAMP" name="start" /> + <field type="TIMESTAMP" name="stop" altenum="Time" /> + <field type="CARD8" name="device_id" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="num_events" /> + <field type="CARD8" name="num_axes" /> + <field type="CARD8" name="device_mode" enum="ValuatorMode" /> + <pad bytes="18" /> + <!-- Uninterpreted: list (events) of DeviceTimeCoord structures --> + </reply> + </request> + <!-- ChangeKeyboardDevice --> + <request name="ChangeKeyboardDevice" opcode="11"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" altenum="GrabStatus" /> - <pad bytes="23" /> - </reply> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" altenum="GrabStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- ChangePointerDevice --> <request name="ChangePointerDevice" opcode="12"> - <field type="CARD8" name="x_axis" /> - <field type="CARD8" name="y_axis" /> - <field type="CARD8" name="device_id" /> - <pad bytes="1" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" altenum="GrabStatus" /> - <pad bytes="23" /> - </reply> + <field type="CARD8" name="x_axis" /> + <field type="CARD8" name="y_axis" /> + <field type="CARD8" name="device_id" /> + <pad bytes="1" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" altenum="GrabStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- GrabDevice --> <request name="GrabDevice" opcode="13"> - <field type="WINDOW" name="grab_window" /> - <field type="TIMESTAMP" name="time" altenum="Time" /> - <field type="CARD16" name="num_classes" /> - <field type="CARD8" name="this_device_mode" enum="GrabMode" /> - <field type="CARD8" name="other_device_mode" enum="GrabMode" /> - <field type="BOOL" name="owner_events" /> - <field type="CARD8" name="device_id" /> - <pad bytes="2" /> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" enum="GrabStatus" /> - <pad bytes="23" /> - </reply> + <field type="WINDOW" name="grab_window" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD8" name="this_device_mode" enum="GrabMode" /> + <field type="CARD8" name="other_device_mode" enum="GrabMode" /> + <field type="BOOL" name="owner_events" /> + <field type="CARD8" name="device_id" /> + <pad bytes="2" /> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" enum="GrabStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- UngrabDevice --> <request name="UngrabDevice" opcode="14"> - <field type="TIMESTAMP" name="time" altenum="Time" /> - <field type="CARD8" name="device_id" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="CARD8" name="device_id" /> </request> <!-- GrabDeviceKey --> <request name="GrabDeviceKey" opcode="15"> - <field type="WINDOW" name="grab_window" /> - <field type="CARD16" name="num_classes" /> - <field type="CARD16" name="modifiers" mask="ModMask" /> - <field type="CARD8" name="modifier_device" /> - <field type="CARD8" name="grabbed_device" /> - <field type="CARD8" name="key" altenum="Grab" /> - <field type="CARD8" name="this_device_mode" enum="GrabMode" /> - <field type="CARD8" name="other_device_mode" enum="GrabMode" /> - <field type="BOOL" name="owner_events" /> - <pad bytes="2" /> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> + <field type="WINDOW" name="grab_window" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD16" name="modifiers" mask="ModMask" /> + <field type="CARD8" name="modifier_device" /> + <field type="CARD8" name="grabbed_device" /> + <field type="CARD8" name="key" altenum="Grab" /> + <field type="CARD8" name="this_device_mode" enum="GrabMode" /> + <field type="CARD8" name="other_device_mode" enum="GrabMode" /> + <field type="BOOL" name="owner_events" /> + <pad bytes="2" /> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> </request> <!-- UngrabDeviceKey --> <request name="UngrabDeviceKey" opcode="16"> - <field type="WINDOW" name="grabWindow" /> - <field type="CARD16" name="modifiers" mask="ModMask" /> - <field type="CARD8" name="modifier_device" /> - <field type="CARD8" name="key" altenum="Grab" /> - <field type="CARD8" name="grabbed_device" /> + <field type="WINDOW" name="grabWindow" /> + <field type="CARD16" name="modifiers" mask="ModMask" /> + <field type="CARD8" name="modifier_device" /> + <field type="CARD8" name="key" altenum="Grab" /> + <field type="CARD8" name="grabbed_device" /> </request> <!-- GrabDeviceButton --> <request name="GrabDeviceButton" opcode="17"> - <field type="WINDOW" name="grab_window" /> - <field type="CARD8" name="grabbed_device" /> - <field type="CARD8" name="modifier_device" /> - <field type="CARD16" name="num_classes" /> - <field type="CARD16" name="modifiers" mask="ModMask" /> - <field type="CARD8" name="this_device_mode" enum="GrabMode" /> - <field type="CARD8" name="other_device_mode" enum="GrabMode" /> - <field type="CARD8" name="button" altenum="Grab" /> - <field type="CARD8" name="owner_events" /> - <pad bytes="2" /> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> + <field type="WINDOW" name="grab_window" /> + <field type="CARD8" name="grabbed_device" /> + <field type="CARD8" name="modifier_device" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD16" name="modifiers" mask="ModMask" /> + <field type="CARD8" name="this_device_mode" enum="GrabMode" /> + <field type="CARD8" name="other_device_mode" enum="GrabMode" /> + <field type="CARD8" name="button" altenum="Grab" /> + <field type="CARD8" name="owner_events" /> + <pad bytes="2" /> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> </request> <!-- UngrabDeviceButton --> <request name="UngrabDeviceButton" opcode="18"> - <field type="WINDOW" name="grab_window" /> - <field type="CARD16" name="modifiers" mask="ModMask" /> - <field type="CARD8" name="modifier_device" /> - <field type="CARD8" name="button" altenum="Grab" /> - <field type="CARD8" name="grabbed_device" /> + <field type="WINDOW" name="grab_window" /> + <field type="CARD16" name="modifiers" mask="ModMask" /> + <field type="CARD8" name="modifier_device" /> + <field type="CARD8" name="button" altenum="Grab" /> + <field type="CARD8" name="grabbed_device" /> </request> <!-- AllowDeviceEvents --> <enum name="DeviceInputMode"> - <item name="AsyncThisDevice" /> - <item name="SyncThisDevice" /> - <item name="ReplayThisDevice" /> - <item name="AsyncOtherDevices" /> - <item name="AsyncAll" /> - <item name="SyncAll" /> + <item name="AsyncThisDevice"> <value>0</value> </item> + <item name="SyncThisDevice"> <value>1</value> </item> + <item name="ReplayThisDevice"> <value>2</value> </item> + <item name="AsyncOtherDevices"> <value>3</value> </item> + <item name="AsyncAll"> <value>4</value> </item> + <item name="SyncAll"> <value>5</value> </item> </enum> <request name="AllowDeviceEvents" opcode="19"> - <field type="TIMESTAMP" name="time" altenum="Time" /> - <field type="CARD8" name="mode" enum="DeviceInputMode" /> - <field type="CARD8" name="device_id" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="CARD8" name="mode" enum="DeviceInputMode" /> + <field type="CARD8" name="device_id" /> </request> <!-- GetDeviceFocus --> <request name="GetDeviceFocus" opcode="20"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="WINDOW" name="focus" altenum="InputFocus" /> - <field type="TIMESTAMP" name="time" /> - <field type="CARD8" name="revert_to" enum="InputFocus" /> - <pad bytes="15" /> - </reply> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="WINDOW" name="focus" altenum="InputFocus" /> + <field type="TIMESTAMP" name="time" /> + <field type="CARD8" name="revert_to" enum="InputFocus" /> + <pad bytes="15" /> + </reply> </request> <!-- SetDeviceFocus --> <request name="SetDeviceFocus" opcode="21"> - <field type="WINDOW" name="focus" altenum="InputFocus" /> - <field type="TIMESTAMP" name="time" altenum="Time" /> - <field type="CARD8" name="revert_to" enum="InputFocus" /> - <field type="CARD8" name="device_id" /> + <field type="WINDOW" name="focus" altenum="InputFocus" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="CARD8" name="revert_to" enum="InputFocus" /> + <field type="CARD8" name="device_id" /> </request> <!-- GetFeedbackControl --> - <request name="GetFeedbackControl" opcode="22"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="CARD16" name="num_feedback" /> - <pad bytes="22" /> - <!-- Uninterpreted: list of FeedbackState structures --> - </reply> - </request> - <enum name="FeedbackClass"> - <item name="Keyboard" /> - <item name="Pointer" /> - <item name="String" /> - <item name="Integer" /> - <item name="Led" /> - <item name="Bell" /> + <item name="Keyboard"> <value>0</value> </item> + <item name="Pointer"> <value>1</value> </item> + <item name="String"> <value>2</value> </item> + <item name="Integer"> <value>3</value> </item> + <item name="Led"> <value>4</value> </item> + <item name="Bell"> <value>5</value> </item> </enum> - <struct name="FeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - </struct> - <struct name="KbdFeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="CARD16" name="pitch" /> - <field type="CARD16" name="duration" /> - <field type="CARD32" name="led_mask" /> - <field type="CARD32" name="led_values" /> - <field type="BOOL" name="global_auto_repeat" /> - <field type="CARD8" name="click" /> - <field type="CARD8" name="percent" /> - <pad bytes="1" /> - <list type="CARD8" name="auto_repeats"><value>32</value></list> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="CARD16" name="pitch" /> + <field type="CARD16" name="duration" /> + <field type="CARD32" name="led_mask" /> + <field type="CARD32" name="led_values" /> + <field type="BOOL" name="global_auto_repeat" /> + <field type="CARD8" name="click" /> + <field type="CARD8" name="percent" /> + <pad bytes="1" /> + <list type="CARD8" name="auto_repeats"> + <value>32</value> + </list> </struct> <struct name="PtrFeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <pad bytes="2" /> - <field type="CARD16" name="accel_num" /> - <field type="CARD16" name="accel_denom" /> - <field type="CARD16" name="threshold" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <pad bytes="2" /> + <field type="CARD16" name="accel_num" /> + <field type="CARD16" name="accel_denom" /> + <field type="CARD16" name="threshold" /> </struct> <struct name="IntegerFeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="CARD32" name="resolution" /> - <field type="INT32" name="min_value" /> - <field type="INT32" name="max_value" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="CARD32" name="resolution" /> + <field type="INT32" name="min_value" /> + <field type="INT32" name="max_value" /> </struct> <struct name="StringFeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="CARD16" name="max_symbols" /> - <field type="CARD16" name="num_keysyms" /> - <list type="KEYSYM" name="keysyms"> - <fieldref>num_keysyms</fieldref> - </list> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="CARD16" name="max_symbols" /> + <field type="CARD16" name="num_keysyms" /> + <list type="KEYSYM" name="keysyms"> + <fieldref>num_keysyms</fieldref> + </list> </struct> <struct name="BellFeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="CARD8" name="percent" /> - <pad bytes="3" /> - <field type="CARD16" name="pitch" /> - <field type="CARD16" name="duration" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="CARD8" name="percent" /> + <pad bytes="3" /> + <field type="CARD16" name="pitch" /> + <field type="CARD16" name="duration" /> </struct> <struct name="LedFeedbackState"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="CARD32" name="led_mask" /> - <field type="CARD32" name="led_values" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="CARD32" name="led_mask" /> + <field type="CARD32" name="led_values" /> </struct> - <!-- ChangeFeedbackControl + <struct name="FeedbackState"> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <fieldref>len</fieldref> + <value>4</value> + </op> + </list> + </struct> - <request name="ChangeFeedbackControl" opcode="23"> - <field type="CARD32" name="mask" /> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="feedback_id" /> - Uninterpreted: list of FeedbackCtl structures + <request name="GetFeedbackControl" opcode="22"> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_feedbacks" /> + <pad bytes="22" /> + <list type="FeedbackState" name="feedbacks"> + <fieldref>num_feedbacks</fieldref> + </list> + </reply> </request> - --> - - <struct name="FeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - </struct> + <!-- ChangeFeedbackControl --> <struct name="KbdFeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="KeyCode" name="key" /> - <field type="CARD8" name="auto_repeat_mode" /> - <field type="INT8" name="key_click_percent" /> - <field type="INT8" name="bell_percent" /> - <field type="INT16" name="bell_pitch" /> - <field type="INT16" name="bell_duration" /> - <field type="CARD32" name="led_mask" /> - <field type="CARD32" name="led_values" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="KeyCode" name="key" /> + <field type="CARD8" name="auto_repeat_mode" /> + <field type="INT8" name="key_click_percent" /> + <field type="INT8" name="bell_percent" /> + <field type="INT16" name="bell_pitch" /> + <field type="INT16" name="bell_duration" /> + <field type="CARD32" name="led_mask" /> + <field type="CARD32" name="led_values" /> </struct> <struct name="PtrFeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <pad bytes="2" /> - <field type="INT16" name="num" /> - <field type="INT16" name="denom" /> - <field type="INT16" name="threshold" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <pad bytes="2" /> + <field type="INT16" name="num" /> + <field type="INT16" name="denom" /> + <field type="INT16" name="threshold" /> </struct> <struct name="IntegerFeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="INT32" name="int_to_display" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="INT32" name="int_to_display" /> </struct> <struct name="StringFeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <pad bytes="2" /> - <field type="CARD16" name="num_keysyms" /> - <list type="KEYSYM" name="keysyms"> - <fieldref>num_keysyms</fieldref> - </list> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <pad bytes="2" /> + <field type="CARD16" name="num_keysyms" /> + <list type="KEYSYM" name="keysyms"> + <fieldref>num_keysyms</fieldref> + </list> </struct> <struct name="BellFeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="INT8" name="percent" /> - <pad bytes="3" /> - <field type="INT16" name="pitch" /> - <field type="INT16" name="duration" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="INT8" name="percent" /> + <pad bytes="3" /> + <field type="INT16" name="pitch" /> + <field type="INT16" name="duration" /> </struct> <struct name="LedFeedbackCtl"> - <field type="CARD8" name="class_id" enum="FeedbackClass" /> - <field type="CARD8" name="id" /> - <field type="CARD16" name="len" /> - <field type="CARD32" name="led_mask" /> - <field type="CARD32" name="led_values" /> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <field type="CARD32" name="led_mask" /> + <field type="CARD32" name="led_values" /> + </struct> + + <struct name="FeedbackCtl"> + <field type="CARD8" name="class_id" enum="FeedbackClass" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD16" name="len" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <fieldref>len</fieldref> + <value>4</value> + </op> + </list> </struct> + <request name="ChangeFeedbackControl" opcode="23"> + <field type="CARD32" name="mask" /> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="feedback_id" /> + <field type="FeedbackCtl" name="feedback" /> + </request> + <!-- GetDeviceKeyMapping --> <request name="GetDeviceKeyMapping" opcode="24"> - <field type="CARD8" name="device_id" /> - <field type="KeyCode" name="first_keycode" /> - <field type="CARD8" name="count" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="keysyms_per_keycode" /> - <pad bytes="23" /> - <list type="KEYSYM" name="keysyms"> - <fieldref>length</fieldref> - </list> - </reply> + <field type="CARD8" name="device_id" /> + <field type="KeyCode" name="first_keycode" /> + <field type="CARD8" name="count" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="keysyms_per_keycode" /> + <pad bytes="23" /> + <list type="KEYSYM" name="keysyms"> + <!-- 'length' is a field in the header --> + <fieldref>length</fieldref> + </list> + </reply> </request> <!-- ChangeDeviceKeyMapping --> <request name="ChangeDeviceKeyMapping" opcode="25"> - <field type="CARD8" name="device_id" /> - <field type="KeyCode" name="first_keycode" /> - <field type="CARD8" name="keysyms_per_keycode" /> - <field type="CARD8" name="keycode_count" /> - <list type="KEYSYM" name="keysyms"> - <op op="*"> - <fieldref>keycode_count</fieldref> - <fieldref>keysyms_per_keycode</fieldref> - </op> - </list> + <field type="CARD8" name="device_id" /> + <field type="KeyCode" name="first_keycode" /> + <field type="CARD8" name="keysyms_per_keycode" /> + <field type="CARD8" name="keycode_count" /> + <list type="KEYSYM" name="keysyms"> + <op op="*"> + <fieldref>keycode_count</fieldref> + <fieldref>keysyms_per_keycode</fieldref> + </op> + </list> </request> <!-- GetDeviceModifierMapping --> <request name="GetDeviceModifierMapping" opcode="26"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="keycodes_per_modifier" /> - <pad bytes="23" /> - <list type="CARD8" name="keymaps"> - <op op="*"> - <fieldref>keycodes_per_modifier</fieldref> - <value>8</value> - </op> - </list> - </reply> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="keycodes_per_modifier" /> + <pad bytes="23" /> + <list type="CARD8" name="keymaps"> + <op op="*"> + <fieldref>keycodes_per_modifier</fieldref> + <value>8</value> + </op> + </list> + </reply> </request> <!-- SetDeviceModifierMapping --> <request name="SetDeviceModifierMapping" opcode="27"> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="keycodes_per_modifier" /> - <pad bytes="1" /> - <list type="CARD8" name="keymaps"> - <op op="*"> - <fieldref>keycodes_per_modifier</fieldref> - <value>8</value> - </op> - </list> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" enum="MappingStatus" /> - <pad bytes="23" /> - </reply> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="keycodes_per_modifier" /> + <pad bytes="1" /> + <list type="CARD8" name="keymaps"> + <op op="*"> + <fieldref>keycodes_per_modifier</fieldref> + <value>8</value> + </op> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" enum="MappingStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- GetDeviceButtonMapping --> <request name="GetDeviceButtonMapping" opcode="28"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="map_size" /> - <pad bytes="23" /> - <list type="CARD8" name="map"> - <fieldref>map_size</fieldref> - </list> - </reply> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="map_size" /> + <pad bytes="23" /> + <list type="CARD8" name="map"> + <fieldref>map_size</fieldref> + </list> + </reply> </request> <!-- SetDeviceButtonMapping --> <request name="SetDeviceButtonMapping" opcode="29"> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="map_size" /> - <pad bytes="2" /> - <list type="CARD8" name="map"> - <fieldref>map_size</fieldref> - </list> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" enum="MappingStatus" /> - <pad bytes="23" /> - </reply> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="map_size" /> + <pad bytes="2" /> + <list type="CARD8" name="map"> + <fieldref>map_size</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" enum="MappingStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- QueryDeviceState --> - <request name="QueryDeviceState" opcode="30"> - <field type="CARD8" name="device_id" /> - <pad bytes="3" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="num_classes" /> - <pad bytes="23" /> - <!-- Uninterpreted: list of InputState structures --> - </reply> - </request> - - <struct name="InputState"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="CARD8" name="num_items" /> - </struct> - <struct name="KeyState"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="CARD8" name="num_keys" /> - <pad bytes="1" /> - <list type="CARD8" name="keys"> - <value>32</value> - </list> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="CARD8" name="num_keys" /> + <pad bytes="1" /> + <list type="CARD8" name="keys"> + <value>32</value> + </list> </struct> <struct name="ButtonState"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="CARD8" name="num_buttons" /> - <pad bytes="1" /> - <list type="CARD8" name="buttons"> - <value>32</value> - </list> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="CARD8" name="num_buttons" /> + <pad bytes="1" /> + <list type="CARD8" name="buttons"> + <value>32</value> + </list> </struct> <struct name="ValuatorState"> - <field type="CARD8" name="class_id" enum="InputClass" /> - <field type="CARD8" name="len" /> - <field type="CARD8" name="num_valuators" /> - <field type="CARD8" name="mode" /> - <list type="CARD32" name="valuators"> - <fieldref>num_valuators</fieldref> - </list> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="CARD8" name="num_valuators" /> + <field type="CARD8" name="mode" /> + <list type="CARD32" name="valuators"> + <fieldref>num_valuators</fieldref> + </list> + </struct> + + <struct name="InputState"> + <field type="CARD8" name="class_id" enum="InputClass" /> + <field type="CARD8" name="len" /> + <field type="CARD8" name="num_items" /> + <pad bytes="1" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <fieldref>len</fieldref> + <value>4</value> + </op> + </list> </struct> + <request name="QueryDeviceState" opcode="30"> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="num_classes" /> + <pad bytes="23" /> + <list type="InputState" name="classes"> + <fieldref>num_classes</fieldref> + </list> + </reply> + </request> + <!-- SendExtensionEvent --> <request name="SendExtensionEvent" opcode="31"> - <field type="WINDOW" name="destination" /> - <field type="CARD8" name="device_id" /> - <field type="BOOL" name="propagate" /> - <field type="CARD16" name="num_classes" /> - <field type="CARD8" name="num_events" /> - <pad bytes="3" /> - <list type="char" name="events"> - <op op="*"> - <fieldref>num_events</fieldref> - <value>32</value> - </op> - </list> - <list type="EventClass" name="classes"> - <fieldref>num_classes</fieldref> - </list> + <field type="WINDOW" name="destination" /> + <field type="CARD8" name="device_id" /> + <field type="BOOL" name="propagate" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD8" name="num_events" /> + <pad bytes="3" /> + <list type="CARD8" name="events"> + <op op="*"> + <fieldref>num_events</fieldref> + <value>32</value> + </op> + </list> + <list type="EventClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> </request> <!-- DeviceBell --> <request name="DeviceBell" opcode="32"> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="feedback_id" /> - <field type="CARD8" name="feedback_class" /> - <field type="INT8" name="percent" /> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="feedback_id" /> + <field type="CARD8" name="feedback_class" /> + <field type="INT8" name="percent" /> </request> <!-- SetDeviceValuators --> <request name="SetDeviceValuators" opcode="33"> - <field type="CARD8" name="device_id" /> - <field type="CARD8" name="first_valuator" /> - <field type="CARD8" name="num_valuators" /> - <pad bytes="1" /> - <list type="INT32" name="valuators"> - <fieldref>num_valuators</fieldref> - </list> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" enum="GrabStatus" /> - <pad bytes="23" /> - </reply> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="first_valuator" /> + <field type="CARD8" name="num_valuators" /> + <pad bytes="1" /> + <list type="INT32" name="valuators"> + <fieldref>num_valuators</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" enum="GrabStatus" /> + <pad bytes="23" /> + </reply> </request> <!-- GetDeviceControl --> - <request name="GetDeviceControl" opcode="34"> - <field type="CARD16" name="control_id" /> - <field type="CARD8" name="device_id" /> - <pad bytes="1" /> - <reply> - <pad bytes="1" /> - <field type="CARD8" name="status" altenum="GrabStatus" /> - <pad bytes="23" /> - <!-- Uninterpreted: list of DeviceState structures --> - </reply> - </request> - - <struct name="DeviceState"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - </struct> + <enum name="DeviceControl"> + <item name="resolution"> <value>1</value> </item> + <item name="abs_calib"> <value>2</value> </item> + <item name="core"> <value>3</value> </item> + <item name="enable"> <value>4</value> </item> + <item name="abs_area"> <value>5</value> </item> + </enum> <struct name="DeviceResolutionState"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD32" name="num_valuators" /> - <list type="CARD32" name="resolution_values"> - <fieldref>num_valuators</fieldref> - </list> - <list type="CARD32" name="resolution_min"> - <fieldref>num_valuators</fieldref> - </list> - <list type="CARD32" name="resolution_max"> - <fieldref>num_valuators</fieldref> - </list> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD32" name="num_valuators" /> + <list type="CARD32" name="resolution_values"> + <fieldref>num_valuators</fieldref> + </list> + <list type="CARD32" name="resolution_min"> + <fieldref>num_valuators</fieldref> + </list> + <list type="CARD32" name="resolution_max"> + <fieldref>num_valuators</fieldref> + </list> </struct> <struct name="DeviceAbsCalibState"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="INT32" name="min_x" /> - <field type="INT32" name="max_x" /> - <field type="INT32" name="min_y" /> - <field type="INT32" name="max_y" /> - <field type="CARD32" name="flip_x" /> - <field type="CARD32" name="flip_y" /> - <field type="CARD32" name="rotation" /> - <field type="CARD32" name="button_threshold" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="INT32" name="min_x" /> + <field type="INT32" name="max_x" /> + <field type="INT32" name="min_y" /> + <field type="INT32" name="max_y" /> + <field type="CARD32" name="flip_x" /> + <field type="CARD32" name="flip_y" /> + <field type="CARD32" name="rotation" /> + <field type="CARD32" name="button_threshold" /> </struct> <struct name="DeviceAbsAreaState"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD32" name="offset_x" /> - <field type="CARD32" name="offset_y" /> - <field type="CARD32" name="width" /> - <field type="CARD32" name="height" /> - <field type="CARD32" name="screen" /> - <field type="CARD32" name="following" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD32" name="offset_x" /> + <field type="CARD32" name="offset_y" /> + <field type="CARD32" name="width" /> + <field type="CARD32" name="height" /> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="following" /> </struct> <struct name="DeviceCoreState"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD8" name="status" /> - <field type="CARD8" name="iscore" /> - <pad bytes="2" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD8" name="status" /> + <field type="CARD8" name="iscore" /> + <pad bytes="2" /> </struct> <struct name="DeviceEnableState"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD8" name="enable" /> - <pad bytes="3" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD8" name="enable" /> + <pad bytes="3" /> </struct> - <!-- ChangeDeviceControl + <struct name="DeviceState"> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <fieldref>len</fieldref> + <value>4</value> + </op> + </list> + </struct> - <request name="ChangeDeviceControl" opcode="35"> - <field type="CARD16" name="control_id" /> - <field type="CARD8" name="device_id" /> - <pad bytes="1" /> - Uninterpreted: list of DeviceCtl structures - <reply> - <pad byte="1" /> + <request name="GetDeviceControl" opcode="34"> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD8" name="device_id" /> + <pad bytes="1" /> + <reply> + <pad bytes="1" /> <field type="CARD8" name="status" altenum="GrabStatus" /> <pad bytes="23" /> - </reply> + <field type="DeviceState" name="control" /> + </reply> </request> - --> - - <struct name="DeviceCtl"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - </struct> + <!-- ChangeDeviceControl --> <struct name="DeviceResolutionCtl"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD8" name="first_valuator" /> - <field type="CARD8" name="num_valuators" /> - <list type="CARD32" name="resolution_values"> - <fieldref>num_valuators</fieldref> - </list> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD8" name="first_valuator" /> + <field type="CARD8" name="num_valuators" /> + <list type="CARD32" name="resolution_values"> + <fieldref>num_valuators</fieldref> + </list> </struct> <struct name="DeviceAbsCalibCtl"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="INT32" name="min_x" /> - <field type="INT32" name="max_x" /> - <field type="INT32" name="min_y" /> - <field type="INT32" name="max_y" /> - <field type="CARD32" name="flip_x" /> - <field type="CARD32" name="flip_y" /> - <field type="CARD32" name="rotation" /> - <field type="CARD32" name="button_threshold" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="INT32" name="min_x" /> + <field type="INT32" name="max_x" /> + <field type="INT32" name="min_y" /> + <field type="INT32" name="max_y" /> + <field type="CARD32" name="flip_x" /> + <field type="CARD32" name="flip_y" /> + <field type="CARD32" name="rotation" /> + <field type="CARD32" name="button_threshold" /> </struct> <struct name="DeviceAbsAreaCtrl"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD32" name="offset_x" /> - <field type="CARD32" name="offset_y" /> - <field type="INT32" name="width" /> - <field type="INT32" name="height" /> - <field type="INT32" name="screen" /> - <field type="CARD32" name="following" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD32" name="offset_x" /> + <field type="CARD32" name="offset_y" /> + <field type="INT32" name="width" /> + <field type="INT32" name="height" /> + <field type="INT32" name="screen" /> + <field type="CARD32" name="following" /> </struct> <struct name="DeviceCoreCtrl"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD8" name="status" /> - <pad bytes="3" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD8" name="status" /> + <pad bytes="3" /> </struct> <struct name="DeviceEnableCtrl"> - <field type="CARD16" name="control_id" /> - <field type="CARD16" name="len" /> - <field type="CARD8" name="enable" /> - <pad bytes="3" /> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <field type="CARD8" name="enable" /> + <pad bytes="3" /> + </struct> + + <struct name="DeviceCtl"> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD16" name="len" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <fieldref>len</fieldref> + <value>4</value> + </op> + </list> + </struct> + + <request name="ChangeDeviceControl" opcode="35"> + <field type="CARD16" name="control_id" enum="DeviceControl" /> + <field type="CARD8" name="device_id" /> + <pad bytes="1" /> + <field type="DeviceCtl" name="control" /> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" altenum="GrabStatus" /> + <pad bytes="23" /> + </reply> + </request> + + <!-- ⋅⋅⋅ Requests (v1.5) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <!-- ListDeviceProperties --> + + <request name="ListDeviceProperties" opcode="36"> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_atoms" /> + <pad bytes="22" /> + <list type="ATOM" name="atoms"> + <fieldref>num_atoms</fieldref> + </list> + </reply> + </request> + + <!-- ChangeDeviceProperty --> + + <enum name="PropertyFormat"> + <item name="8Bits"> <value> 8</value> </item> + <item name="16Bits"> <value>16</value> </item> + <item name="32Bits"> <value>32</value> </item> + </enum> + + <request name="ChangeDeviceProperty" opcode="37"> + <field type="ATOM" name="property" /> + <field type="ATOM" name="type" /> + <field type="CARD8" name="device_id" /> + <field type="CARD8" name="format" enum="PropertyFormat" /> + <field type="CARD8" name="mode" enum="PropMode" /> + <pad bytes="1" /> + <field type="CARD32" name="num_items" /> + <switch name="items"> + <fieldref>format</fieldref> + <!-- <bitcase> is not correct, this would need <cases>s. + It works in that case, because PropertyFormat items can be + distinguished exactly as their values don't have equal bits. + --> + <bitcase> + <enumref ref="PropertyFormat">8Bits</enumref> + <list type="CARD8" name="data8"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">16Bits</enumref> + <list type="CARD16" name="data16"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">32Bits</enumref> + <list type="CARD32" name="data32"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + </switch> + </request> + + <!-- DeleteDeviceProperty --> + + <request name="DeleteDeviceProperty" opcode="38"> + <field type="ATOM" name="property" /> + <field type="CARD8" name="device_id" /> + <pad bytes="3" /> + </request> + + <!-- GetDeviceProperty --> + + <request name="GetDeviceProperty" opcode="39"> + <field type="ATOM" name="property" /> + <field type="ATOM" name="type" /> + <field type="CARD32" name="offset" /> + <field type="CARD32" name="len" /> + <field type="CARD8" name="device_id" /> + <field type="BOOL" name="delete" /> + <pad bytes="2" /> + <reply> + <pad bytes="1" /> + <field type="ATOM" name="type" /> + <field type="CARD32" name="bytes_after" /> + <field type="CARD32" name="num_items" /> + <field type="CARD8" name="format" enum="PropertyFormat" /> + <field type="CARD8" name="device_id" /> + <pad bytes="10" /> + <switch name="items"> + <fieldref>format</fieldref> + <!-- <bitcase> is not correct, this would need <cases>s. + It works in that case, because PropertyFormat items can be + distinguished exactly as their values don't have equal bits. + --> + <bitcase> + <enumref ref="PropertyFormat">8Bits</enumref> + <list type="CARD8" name="data8"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">16Bits</enumref> + <list type="CARD16" name="data16"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">32Bits</enumref> + <list type="CARD32" name="data32"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + </switch> + </reply> + </request> + + <!-- ⋅⋅⋅ Requests (v2.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <!-- XIQueryPointer --> + + <enum name="Device"> + <item name="All"> <value>0</value> </item> + <item name="AllMaster"> <value>1</value> </item> + </enum> + + <struct name="GroupInfo"> + <field type="CARD8" name="base" /> + <field type="CARD8" name="latched" /> + <field type="CARD8" name="locked" /> + <field type="CARD8" name="effective" /> + </struct> + + <struct name="ModifierInfo"> + <field type="CARD32" name="base" /> + <field type="CARD32" name="latched" /> + <field type="CARD32" name="locked" /> + <field type="CARD32" name="effective" /> + </struct> + + <request name="XIQueryPointer" opcode="40"> + <field type="WINDOW" name="window" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + <reply> + <pad bytes="1" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="child" /> + <field type="FP1616" name="root_x" /> + <field type="FP1616" name="root_y" /> + <field type="FP1616" name="win_x" /> + <field type="FP1616" name="win_y" /> + <field type="CARD8" name="same_screen" /> + <pad bytes="1" /> + <field type="CARD16" name="buttons_len" /> + <field type="ModifierInfo" name="mods" /> + <field type="GroupInfo" name="group" /> + <list type="CARD32" name="buttons"> + <fieldref>buttons_len</fieldref> + </list> + </reply> + </request> + + <!-- XIWarpPointer --> + + <request name="XIWarpPointer" opcode="41"> + <field type="WINDOW" name="src_win" /> + <field type="WINDOW" name="dst_win" /> + <field type="FP1616" name="src_x" /> + <field type="FP1616" name="src_y" /> + <field type="CARD16" name="src_width" /> + <field type="CARD16" name="src_height" /> + <field type="FP1616" name="dst_x" /> + <field type="FP1616" name="dst_y" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + </request> + + <!-- XIChangeCursor --> + + <request name="XIChangeCursor" opcode="42"> + <field type="WINDOW" name="window" /> + <field type="CURSOR" name="cursor" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + </request> + + <!-- XIChangeHierarchy --> + + <enum name="HierarchyChangeType"> + <item name="AddMaster"> <value>1</value> </item> + <item name="RemoveMaster"> <value>2</value> </item> + <item name="AttachSlave"> <value>3</value> </item> + <item name="DetachSlave"> <value>4</value> </item> + </enum> + + <enum name="ChangeMode"> + <item name="Attach"> <value>1</value> </item> + <item name="Float"> <value>2</value> </item> + </enum> + + <struct name="AddMaster"> + <field type="CARD16" name="type" enum="HierarchyChangeType" /> + <field type="CARD16" name="len" /> + <field type="CARD16" name="name_len" /> + <field type="CARD8" name="send_core" /> + <field type="CARD8" name="enable" /> + <list type="char" name="name"> + <fieldref>name_len</fieldref> + </list> + </struct> + + <struct name="RemoveMaster"> + <field type="CARD16" name="type" enum="HierarchyChangeType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD8" name="return_mode" enum="ChangeMode" /> + <pad bytes="1" /> + <field type="DeviceId" name="return_pointer" altenum="Device" /> + <field type="DeviceId" name="return_keyboard" altenum="Device" /> + </struct> + + <struct name="AttachSlave"> + <field type="CARD16" name="type" enum="HierarchyChangeType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="DeviceId" name="master" altenum="Device" /> + </struct> + + <struct name="DetachSlave"> + <field type="CARD16" name="type" enum="HierarchyChangeType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + </struct> + + <struct name="HierarchyChange"> + <field type="CARD16" name="type" enum="HierarchyChangeType" /> + <field type="CARD16" name="len" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <op op="*"> + <fieldref>len</fieldref> + <value>4</value> + </op> + <value>4</value> + </op> + </list> + </struct> + + <request name="XIChangeHierarchy" opcode="43"> + <field type="CARD8" name="num_changes" /> + <list type="HierarchyChange" name="changes"> + <fieldref>num_changes</fieldref> + </list> + </request> + + <!-- XISetClientPointer --> + + <request name="XISetClientPointer" opcode="44"> + <field type="WINDOW" name="window" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + </request> + + <!-- XIGetClientPointer --> + + <request name="XIGetClientPointer" opcode="45"> + <field type="WINDOW" name="window" /> + <reply> + <pad bytes="1" /> + <field type="BOOL" name="set" /> + <pad bytes="1" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="20" /> + </reply> + </request> + + <!-- XISelectEvents --> + + <enum name="XIEventMask"> + <item name="DeviceChanged"> <bit>1</bit> </item> + <item name="KeyPress"> <bit>2</bit> </item> + <item name="KeyRelease"> <bit>3</bit> </item> + <item name="ButtonPress"> <bit>4</bit> </item> + <item name="ButtonRelease"> <bit>5</bit> </item> + <item name="Motion"> <bit>6</bit> </item> + <item name="Enter"> <bit>7</bit> </item> + <item name="Leave"> <bit>8</bit> </item> + <item name="FocusIn"> <bit>9</bit> </item> + <item name="FocusOut"> <bit>10</bit> </item> + <item name="Hierarchy"> <bit>11</bit> </item> + <item name="Property"> <bit>12</bit> </item> + <!-- ⋅⋅⋅ Events (v2.1) ⋅⋅⋅ --> + <item name="RawKeyPress"> <bit>13</bit> </item> + <item name="RawKeyRelease"> <bit>14</bit> </item> + <item name="RawButtonPress"> <bit>15</bit> </item> + <item name="RawButtonRelease"> <bit>16</bit> </item> + <item name="RawMotion"> <bit>17</bit> </item> + <!-- ⋅⋅⋅ Events (v2.2) ⋅⋅⋅ --> + <item name="TouchBegin"> <bit>18</bit> </item> + <item name="TouchUpdate"> <bit>19</bit> </item> + <item name="TouchEnd"> <bit>20</bit> </item> + <item name="TouchOwnership"> <bit>21</bit> </item> + <item name="RawTouchBegin"> <bit>22</bit> </item> + <item name="RawTouchUpdate"> <bit>23</bit> </item> + <item name="RawTouchEnd"> <bit>24</bit> </item> + <!-- ⋅⋅⋅ Events (v2.3) ⋅⋅⋅ --> + <item name="BarrierHit"> <bit>25</bit> </item> + <item name="BarrierLeave"> <bit>26</bit> </item> + </enum> + + <struct name="EventMask"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD16" name="mask_len" /> + <list type="CARD32" name="mask" mask="XIEventMask"> + <fieldref>mask_len</fieldref> + </list> + </struct> + + <request name="XISelectEvents" opcode="46"> + <field type="WINDOW" name="window" /> + <field type="CARD16" name="num_mask" /> + <pad bytes="2" /> + <list type="EventMask" name="masks"> + <fieldref>num_mask</fieldref> + </list> + </request> + + <!-- XIQueryVersion --> + + <request name="XIQueryVersion" opcode="47"> + <field type="CARD16" name="major_version" /> + <field type="CARD16" name="minor_version" /> + + <reply> + <pad bytes="1" /> + <field type="CARD16" name="major_version" /> + <field type="CARD16" name="minor_version" /> + <pad bytes="20" /> + </reply> + </request> + + <!-- XIQueryDevice --> + + <enum name="DeviceClassType"> + <item name="Key"> <value>0</value> </item> + <item name="Button"> <value>1</value> </item> + <item name="Valuator"> <value>2</value> </item> + <item name="Scroll"> <value>3</value> </item> + <item name="Touch"> <value>8</value> </item> + </enum> + + <enum name="DeviceType"> + <item name="MasterPointer"> <value>1</value> </item> + <item name="MasterKeyboard"> <value>2</value> </item> + <item name="SlavePointer"> <value>3</value> </item> + <item name="SlaveKeyboard"> <value>4</value> </item> + <item name="FloatingSlave"> <value>5</value> </item> + </enum> + + <enum name="ScrollFlags"> + <item name="NoEmulation"> <bit>0</bit> </item> + <item name="Preferred"> <bit>1</bit> </item> + </enum> + + <enum name="ScrollType"> + <item name="Vertical"> <value>1</value> </item> + <item name="Horizontal"> <value>2</value> </item> + </enum> + + <enum name="TouchMode"> + <item name="Direct"> <value>1</value> </item> + <item name="Dependent"> <value>2</value> </item> + </enum> + + <struct name="ButtonClass"> + <field type="CARD16" name="type" enum="DeviceClassType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="num_buttons" /> + <list type="CARD32" name="state"> + <op op="/"> + <op op="+"> + <fieldref>num_buttons</fieldref> + <value>31</value> + </op> + <value>32</value> + </op> + </list> + <list type="ATOM" name="labels"> + <fieldref>num_buttons</fieldref> + </list> + </struct> + + <struct name="KeyClass"> + <field type="CARD16" name="type" enum="DeviceClassType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="num_keys" /> + <list type="CARD32" name="keys"> + <fieldref>num_keys</fieldref> + </list> + </struct> + + <struct name="ScrollClass"> + <field type="CARD16" name="type" enum="DeviceClassType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="number" /> + <field type="CARD16" name="scroll_type" enum="ScrollType" /> + <pad bytes="2" /> + <field type="CARD32" name="flags" enum="ScrollFlags" /> + <field type="FP3232" name="increment" /> + </struct> + + <struct name="TouchClass"> + <field type="CARD16" name="type" enum="DeviceClassType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD8" name="mode" enum="TouchMode" /> + <field type="CARD8" name="num_touches" /> + </struct> + + <struct name="ValuatorClass"> + <field type="CARD16" name="type" enum="DeviceClassType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="number" /> + <field type="ATOM" name="label" /> + <field type="FP3232" name="min" /> + <field type="FP3232" name="max" /> + <field type="FP3232" name="value" /> + <field type="CARD32" name="resolution" /> + <field type="CARD8" name="mode" enum="ValuatorMode" /> + <pad bytes="3" /> + </struct> + + <struct name="DeviceClass"> + <field type="CARD16" name="type" enum="DeviceClassType" /> + <field type="CARD16" name="len" /> + <field type="DeviceId" name="sourceid" /> + <pad bytes="2" /> + <list type="CARD8" name="uninterpreted_data"> + <op op="-"> + <op op="*"> + <fieldref>len</fieldref> + <value>4</value> + </op> + <value>8</value> + </op> + </list> + </struct> + + <struct name="XIDeviceInfo"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD16" name="type" altenum="DeviceType" /> + <field type="DeviceId" name="attachment" altenum="Device" /> + <field type="CARD16" name="num_classes" /> + <field type="CARD16" name="name_len" /> + <field type="BOOL" name="enabled" /> + <pad bytes="1" /> + <list type="char" name="name"> + <!-- name_len is without padding, so we've to pad on our own, + auto align pad after the list would be helpfull --> + <op op="*"> + <op op="/"> + <op op="+"> + <fieldref>name_len</fieldref> + <value>3</value> + </op> + <value>4</value> + </op> + <value>4</value> + </op> + </list> + <list type="DeviceClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> + </struct> + + <request name="XIQueryDevice" opcode="48"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_infos" /> + <pad bytes="22" /> + <list type="XIDeviceInfo" name="infos"> + <fieldref>num_infos</fieldref> + </list> + </reply> + </request> + + <!-- XISetFocus --> + + <request name="XISetFocus" opcode="49"> + <field type="WINDOW" name="window" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + </request> + + <!-- XIGetFocus --> + + <request name="XIGetFocus" opcode="50"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + <reply> + <pad bytes="1" /> + <field type="WINDOW" name="focus" /> + <pad bytes="20" /> + </reply> + </request> + + <!-- XIGrabDevice --> + + <enum name="GrabOwner"> + <item name="NoOwner"> <value>0</value> </item> + <item name="Owner"> <value>1</value> </item> + </enum> + + <request name="XIGrabDevice" opcode="51"> + <field type="WINDOW" name="window" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="CURSOR" name="cursor" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD8" name="mode" enum="GrabMode" /> + <field type="CARD8" name="paired_device_mode" enum="GrabMode" /> + <field type="BOOL" name="owner_events" enum="GrabOwner" /> + <pad bytes="1" /> + <field type="CARD16" name="mask_len" /> + <list type="CARD32" name="mask"> + <fieldref>mask_len</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD8" name="status" enum="GrabStatus" /> + <pad bytes="23" /> + </reply> + </request> + + <!-- XIUngrabDevice --> + + <request name="XIUngrabDevice" opcode="52"> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + </request> + + <!-- XIAllowEvents --> + + <enum name="EventMode"> + <item name="AsyncDevice"> <value>0</value> </item> + <item name="SyncDevice"> <value>1</value> </item> + <item name="ReplayDevice"> <value>2</value> </item> + <item name="AsyncPairedDevice"> <value>3</value> </item> + <item name="AsyncPair"> <value>4</value> </item> + <item name="SyncPair"> <value>5</value> </item> + <item name="AcceptTouch"> <value>6</value> </item> + <item name="RejectTouch"> <value>7</value> </item> + </enum> + + <request name="XIAllowEvents" opcode="53"> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD8" name="event_mode" enum="EventMode" /> + <pad bytes="1" /> + <field type="CARD32" name="touchid" /> + <field type="WINDOW" name="grab_window" /> + </request> + + <!-- XIPassiveGrabDevice --> + + <enum name="GrabMode22"> + <item name="Sync"> <value>0</value> </item> + <item name="Async"> <value>1</value> </item> + <item name="Touch"> <value>2</value> </item> + </enum> + + <enum name="GrabType"> + <item name="Button"> <value>0</value> </item> + <item name="Keycode"> <value>1</value> </item> + <item name="Enter"> <value>2</value> </item> + <item name="FocusIn"> <value>3</value> </item> + <item name="TouchBegin"> <value>4</value> </item> + </enum> + + <enum name="ModifierMask"> + <item name="Any"> <bit>31</bit> </item> + </enum> + + <struct name="GrabModifierInfo"> + <field type="CARD32" name="modifiers" altenum="ModifierMask" /> + <field type="CARD8" name="status" enum="GrabStatus" /> + <pad bytes="3" /> + </struct> + + <request name="XIPassiveGrabDevice" opcode="54"> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <field type="WINDOW" name="grab_window" /> + <field type="CURSOR" name="cursor" /> + <field type="CARD32" name="detail" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD16" name="num_modifiers" /> + <field type="CARD16" name="mask_len" /> + <field type="CARD8" name="grab_type" enum="GrabType" /> + <field type="CARD8" name="grab_mode" enum="GrabMode22" /> + <field type="CARD8" name="paired_device_mode" enum="GrabMode" /> + <field type="BOOL" name="owner_events" enum="GrabOwner" /> + <pad bytes="2" /> + <list type="CARD32" name="mask"> + <fieldref>mask_len</fieldref> + </list> + <list type="CARD32" name="modifiers"> + <fieldref>num_modifiers</fieldref> + </list> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_modifiers" /> + <pad bytes="22" /> + <list type="GrabModifierInfo" name="modifiers"> + <fieldref>num_modifiers</fieldref> + </list> + </reply> + </request> + + <!-- XIPassiveUngrabDevice --> + + <request name="XIPassiveUngrabDevice" opcode="55"> + <field type="WINDOW" name="grab_window" /> + <field type="CARD32" name="detail" /> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD16" name="num_modifiers" /> + <field type="CARD8" name="grab_type" enum="GrabType" /> + <pad bytes="3" /> + <list type="CARD32" name="modifiers"> + <fieldref>num_modifiers</fieldref> + </list> + </request> + + <!-- XIListProperties --> + + <request name="XIListProperties" opcode="56"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_properties" /> + <pad bytes="22" /> + <list type="ATOM" name="properties"> + <fieldref>num_properties</fieldref> + </list> + </reply> + </request> + + <!-- XIChangeProperty --> + + <request name="XIChangeProperty" opcode="57"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="CARD8" name="mode" enum="PropMode" /> + <field type="CARD8" name="format" enum="PropertyFormat" /> + <field type="ATOM" name="property" /> + <field type="ATOM" name="type" /> + <field type="CARD32" name="num_items" /> + <switch name="items"> + <fieldref>format</fieldref> + <!-- <bitcase> is not correct, this would need <cases>s. + It works in that case, because PropertyFormat items can be + distinguished exactly as their values don't have equal bits. + --> + <bitcase> + <enumref ref="PropertyFormat">8Bits</enumref> + <list type="CARD8" name="data8"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">16Bits</enumref> + <list type="CARD16" name="data16"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">32Bits</enumref> + <list type="CARD32" name="data32"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + </switch> + </request> + + <!-- XIDeleteProperty --> + + <request name="XIDeleteProperty" opcode="58"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <pad bytes="2" /> + <field type="ATOM" name="property" /> + </request> + + <!-- XIGetProperty --> + + <request name="XIGetProperty" opcode="59"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="BOOL" name="delete" /> + <pad bytes="1" /> + <field type="ATOM" name="property" /> + <field type="ATOM" name="type" /> + <field type="CARD32" name="offset" /> + <field type="CARD32" name="len" /> + <reply> + <pad bytes="1" /> + <field type="ATOM" name="type" /> + <field type="CARD32" name="bytes_after" /> + <field type="CARD32" name="num_items" /> + <field type="CARD8" name="format" enum="PropertyFormat" /> + <pad bytes="11" /> + <switch name="items"> + <fieldref>format</fieldref> + <!-- <bitcase> is not correct, this would need <cases>s. + It works in that case, because PropertyFormat items can be + distinguished exactly as their values don't have equal bits. + --> + <bitcase> + <enumref ref="PropertyFormat">8Bits</enumref> + <list type="CARD8" name="data8"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">16Bits</enumref> + <list type="CARD16" name="data16"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + <bitcase> + <enumref ref="PropertyFormat">32Bits</enumref> + <list type="CARD32" name="data32"> + <fieldref>num_items</fieldref> + </list> + </bitcase> + </switch> + </reply> + </request> + + <!-- XIGetSelectedEvents --> + + <request name="XIGetSelectedEvents" opcode="60"> + <field type="WINDOW" name="window" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="num_masks" /> + <pad bytes="22" /> + <list type="EventMask" name="masks"> + <fieldref>num_masks</fieldref> + </list> + </reply> + </request> + + <!-- ⋅⋅⋅ Requests (v2.3) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <!-- XIBarrierReleasePointer --> + + <struct name="BarrierReleasePointerInfo"> + <field type="DeviceId" name="deviceid" /> + <pad bytes="2" /> + <field type="BARRIER" name="barrier" /> + <field type="CARD32" name="eventid" /> </struct> - <!-- EVENTS --> + <request name="XIBarrierReleasePointer" opcode="61"> + <field type="CARD32" name="num_barriers" /> + <list type="BarrierReleasePointerInfo" name="barriers"> + <fieldref>num_barriers</fieldref> + </list> + </request> + + <!-- ⋅⋅⋅ Events (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + <!-- Notes: + - A 'len' field in a v1++ structure is in bytes. + --> <event name="DeviceValuator" number="0"> - <field type="CARD8" name="device_id" /> - <field type="CARD16" name="device_state" /> - <field type="CARD8" name="num_valuators" /> - <field type="CARD8" name="first_valuator" /> - <list type="INT32" name="valuators"><value>6</value></list> + <field type="CARD8" name="device_id" /> + <field type="CARD16" name="device_state" /> + <field type="CARD8" name="num_valuators" /> + <field type="CARD8" name="first_valuator" /> + <list type="INT32" name="valuators"> + <value>6</value> + </list> </event> <event name="DeviceKeyPress" number="1"> - <field type="BYTE" name="detail" /> - <field type="TIMESTAMP" name="time" /> - <field type="WINDOW" name="root" /> - <field type="WINDOW" name="event" /> - <field type="WINDOW" name="child" altenum="Window" /> - <field type="INT16" name="root_x" /> - <field type="INT16" name="root_y" /> - <field type="INT16" name="event_x" /> - <field type="INT16" name="event_y" /> - <field type="CARD16" name="state" /> - <field type="BOOL" name="same_screen" /> - <field type="CARD8" name="device_id" /> + <field type="BYTE" name="detail" /> + <field type="TIMESTAMP" name="time" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="WINDOW" name="child" altenum="Window" /> + <field type="INT16" name="root_x" /> + <field type="INT16" name="root_y" /> + <field type="INT16" name="event_x" /> + <field type="INT16" name="event_y" /> + <field type="CARD16" name="state" /> + <field type="BOOL" name="same_screen" /> + <field type="CARD8" name="device_id" /> </event> - <eventcopy name="DeviceKeyRelease" number="2" ref="DeviceKeyPress" /> - <eventcopy name="DeviceButtonPress" number="3" ref="DeviceKeyPress" /> + <eventcopy name="DeviceKeyRelease" number="2" ref="DeviceKeyPress" /> + <eventcopy name="DeviceButtonPress" number="3" ref="DeviceKeyPress" /> <eventcopy name="DeviceButtonRelease" number="4" ref="DeviceKeyPress" /> - <eventcopy name="DeviceMotionNotify" number="5" ref="DeviceKeyPress" /> - <eventcopy name="ProximityIn" number="8" ref="DeviceKeyPress" /> - <eventcopy name="ProximityOut" number="9" ref="DeviceKeyPress" /> - - <event name="FocusIn" number="6"> - <field type="BYTE" name="detail" enum="NotifyDetail" /> - <field type="TIMESTAMP" name="time" /> - <field type="WINDOW" name="window" /> - <field type="BYTE" name="mode" enum="NotifyMode" /> - <field type="CARD8" name="device_id" /> - <pad bytes="18" /> + <eventcopy name="DeviceMotionNotify" number="5" ref="DeviceKeyPress" /> + + <event name="DeviceFocusIn" number="6"> + <field type="BYTE" name="detail" enum="xproto:NotifyDetail" /> + <field type="TIMESTAMP" name="time" /> + <field type="WINDOW" name="window" /> + <field type="BYTE" name="mode" enum="xproto:NotifyMode" /> + <field type="CARD8" name="device_id" /> + <pad bytes="18" /> </event> - <eventcopy name="FocusOut" number="7" ref="FocusIn" /> + <eventcopy name="DeviceFocusOut" number="7" ref="DeviceFocusIn" /> + <eventcopy name="ProximityIn" number="8" ref="DeviceKeyPress" /> + <eventcopy name="ProximityOut" number="9" ref="DeviceKeyPress" /> <event name="DeviceStateNotify" number="10"> - <field type="BYTE" name="device_id" /> - <field type="TIMESTAMP" name="time" /> - <field type="CARD8" name="num_keys" /> - <field type="CARD8" name="num_buttons" /> - <field type="CARD8" name="num_valuators" /> - <field type="CARD8" name="classes_reported" /> - <list type="CARD8" name="buttons"> + <field type="BYTE" name="device_id" /> + <field type="TIMESTAMP" name="time" /> + <field type="CARD8" name="num_keys" /> + <field type="CARD8" name="num_buttons" /> + <field type="CARD8" name="num_valuators" /> + <field type="CARD8" name="classes_reported" /> + <list type="CARD8" name="buttons"> <value>4</value> - </list> - <list type="CARD8" name="keys"> + </list> + <list type="CARD8" name="keys"> <value>4</value> - </list> - <list type="CARD32" name="valuators"> - <value>3</value> - </list> + </list> + <list type="CARD32" name="valuators"> + <value>3</value> + </list> </event> <event name="DeviceMappingNotify" number="11"> - <field type="BYTE" name="device_id" /> - <field type="CARD8" name="request" /> - <field type="KeyCode" name="first_keycode" /> - <field type="CARD8" name="count" /> - <pad bytes="1" /> - <field type="TIMESTAMP" name="time" /> - <pad bytes="20" /> + <field type="BYTE" name="device_id" /> + <field type="CARD8" name="request" /> + <field type="KeyCode" name="first_keycode" /> + <field type="CARD8" name="count" /> + <pad bytes="1" /> + <field type="TIMESTAMP" name="time" /> + <pad bytes="20" /> </event> <event name="ChangeDeviceNotify" number="12"> - <field type="BYTE" name="device_id" /> - <field type="TIMESTAMP" name="time" /> - <field type="CARD8" name="request" /> - <pad bytes="23" /> + <field type="BYTE" name="device_id" /> + <field type="TIMESTAMP" name="time" /> + <field type="CARD8" name="request" /> + <pad bytes="23" /> </event> <event name="DeviceKeyStateNotify" number="13"> - <field type="BYTE" name="device_id" /> - <list type="CARD8" name="keys"> + <field type="BYTE" name="device_id" /> + <list type="CARD8" name="keys"> <value>28</value> - </list> + </list> </event> <event name="DeviceButtonStateNotify" number="14"> - <field type="BYTE" name="device_id" /> - <list type="CARD8" name="buttons"> + <field type="BYTE" name="device_id" /> + <list type="CARD8" name="buttons"> <value>28</value> - </list> + </list> </event> + <!-- ⋅⋅⋅ Events (v1.4) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <enum name="DeviceChange"> + <item name="Added"> <value>0</value> </item> + <item name="Removed"> <value>1</value> </item> + <item name="Enabled"> <value>2</value> </item> + <item name="Disabled"> <value>3</value> </item> + <item name="Unrecoverable"> <value>4</value> </item> + <item name="ControlChanged"> <value>5</value> </item> + </enum> + <event name="DevicePresenceNotify" number="15"> <pad bytes="1" /> <field type="TIMESTAMP" name="time" /> - <field type="BYTE" name="devchange" /> - <field type="BYTE" name="device_id" /> - <field type="CARD16" name="control" /> - <pad bytes="20" /> + <field type="BYTE" name="devchange" enum="DeviceChange" /> + <field type="BYTE" name="device_id" /> + <field type="CARD16" name="control" /> + <pad bytes="20" /> </event> - <!-- ERRORS --> - <error name="Device" number="0" /> - <error name="Event" number="1" /> - <error name="Mode" number="2" /> + <!-- ⋅⋅⋅ Events (v1.5) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <event name="DevicePropertyNotify" number="16"> + <field type="BYTE" name="state" enum="Property" /> + <field type="TIMESTAMP" name="time" /> + <field type="ATOM" name="property" /> + <pad bytes="19" /> + <field type="CARD8" name="device_id" /> + </event> + + <!-- ⋅⋅⋅ Events (v2.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + <!-- Notes: + - A 'len' field in a v2++ structure is in 4 byte units. + --> + + <enum name="ChangeReason"> + <item name="SlaveSwitch"> <value>1</value> </item> + <item name="DeviceChange"> <value>2</value> </item> + </enum> + + <event name="DeviceChanged" number="1" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD16" name="num_classes" /> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <field type="CARD8" name="reason" enum="ChangeReason" /> + <pad bytes="11" /> + <!-- 32 byte boundary --> + <list type="DeviceClass" name="classes"> + <fieldref>num_classes</fieldref> + </list> + </event> + + <enum name="KeyEventFlags"> + <item name="KeyRepeat"> <bit>16</bit> </item> + </enum> + + <event name="KeyPress" number="2" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="detail" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="WINDOW" name="child" /> + <!-- 32 byte boundary --> + <field type="FP1616" name="root_x" /> + <field type="FP1616" name="root_y" /> + <field type="FP1616" name="event_x" /> + <field type="FP1616" name="event_y" /> + <field type="CARD16" name="buttons_len" /> + <field type="CARD16" name="valuators_len" /> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <pad bytes="2" /> + <field type="CARD32" name="flags" mask="KeyEventFlags" /> + <field type="ModifierInfo" name="mods" /> + <field type="GroupInfo" name="group" /> + <list type="CARD32" name="button_mask"> + <fieldref>buttons_len</fieldref> + </list> + <list type="CARD32" name="valuator_mask"> + <fieldref>valuators_len</fieldref> + </list> + <!-- Uninterpreted: list (axisvalues) of FP3232, + length is <popcount> on valuator_mask list --> + </event> + + <eventcopy name="KeyRelease" number="3" ref="KeyPress" /> + + <enum name="PointerEventFlags"> + <item name="PointerEmulated"> <bit>16</bit> </item> + </enum> + + <event name="ButtonPress" number="4" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="detail" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="WINDOW" name="child" /> + <!-- 32 byte boundary --> + <field type="FP1616" name="root_x" /> + <field type="FP1616" name="root_y" /> + <field type="FP1616" name="event_x" /> + <field type="FP1616" name="event_y" /> + <field type="CARD16" name="buttons_len" /> + <field type="CARD16" name="valuators_len" /> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <pad bytes="2" /> + <field type="CARD32" name="flags" mask="PointerEventFlags" /> + <field type="ModifierInfo" name="mods" /> + <field type="GroupInfo" name="group" /> + <list type="CARD32" name="button_mask"> + <fieldref>buttons_len</fieldref> + </list> + <list type="CARD32" name="valuator_mask"> + <fieldref>valuators_len</fieldref> + </list> + <!-- Uninterpreted: list (axisvalues) of FP3232, + length is <popcount> on valuator_mask list --> + </event> + + <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" /> + <eventcopy name="Motion" number="6" ref="ButtonPress" /> + + <enum name="NotifyMode"> + <item name="Normal"> <value>0</value> </item> + <item name="Grab"> <value>1</value> </item> + <item name="Ungrab"> <value>2</value> </item> + <item name="WhileGrabbed"> <value>3</value> </item> + <item name="PassiveGrab"> <value>4</value> </item> + <item name="PassiveUngrab"> <value>5</value> </item> + </enum> + + <enum name="NotifyDetail"> + <item name="Ancestor"> <value>0</value> </item> + <item name="Virtual"> <value>1</value> </item> + <item name="Inferior"> <value>2</value> </item> + <item name="Nonlinear"> <value>3</value> </item> + <item name="NonlinearVirtual"> <value>4</value> </item> + <item name="Pointer"> <value>5</value> </item> + <item name="PointerRoot"> <value>6</value> </item> + <item name="None"> <value>7</value> </item> + </enum> + + <event name="Enter" number="7" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <field type="CARD8" name="mode" enum="xinput:NotifyMode" /> + <field type="CARD8" name="detail" enum="xinput:NotifyDetail" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="WINDOW" name="child" /> + <!-- 32 byte boundary --> + <field type="FP1616" name="root_x" /> + <field type="FP1616" name="root_y" /> + <field type="FP1616" name="event_x" /> + <field type="FP1616" name="event_y" /> + <field type="CARD8" name="same_screen" /> + <field type="CARD8" name="focus" /> + <field type="CARD16" name="buttons_len" /> + <field type="ModifierInfo" name="mods" /> + <field type="GroupInfo" name="group" /> + <list type="CARD32" name="buttons"> + <fieldref>buttons_len</fieldref> + </list> + </event> + + <eventcopy name="Leave" number="8" ref="Enter" /> + <eventcopy name="FocusIn" number="9" ref="Enter" /> + <eventcopy name="FocusOut" number="10" ref="Enter" /> + + <enum name="HierarchyMask"> + <item name="MasterAdded"> <bit>0</bit> </item> + <item name="MasterRemoved"> <bit>1</bit> </item> + <item name="SlaveAdded"> <bit>2</bit> </item> + <item name="SlaveRemoved"> <bit>3</bit> </item> + <item name="SlaveAttached"> <bit>4</bit> </item> + <item name="SlaveDetached"> <bit>5</bit> </item> + <item name="DeviceEnabled"> <bit>6</bit> </item> + <item name="DeviceDisabled"> <bit>7</bit> </item> + </enum> + + <struct name="HierarchyInfo"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="DeviceId" name="attachment" altenum="Device" /> + <field type="CARD8" name="type" enum="DeviceType"/> + <field type="BOOL" name="enabled" /> + <pad bytes="2" /> + <field type="CARD32" name="flags" mask="HierarchyMask" /> + </struct> + + <event name="Hierarchy" number="11" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="flags" mask="HierarchyMask" /> + <field type="CARD16" name="num_infos" /> + <pad bytes="10" /> + <!-- 32 byte boundary --> + <list type="HierarchyInfo" name="infos"> + <fieldref>num_infos</fieldref> + </list> + </event> + + <enum name="PropertyFlag"> + <item name="Deleted"> <value>0</value> </item> + <item name="Created"> <value>1</value> </item> + <item name="Modified"> <value>2</value> </item> + </enum> + + <event name="Property" number="12" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="ATOM" name="property" /> + <field type="CARD8" name="what" enum="PropertyFlag" /> + <pad bytes="11" /> + <!-- 32 byte boundary --> + </event> + + <!-- ⋅⋅⋅ Events (v2.1) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <event name="RawKeyPress" number="13" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="detail" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="valuators_len" /> + <field type="CARD32" name="flags" mask="KeyEventFlags"/> + <pad bytes="4" /> + <!-- 32 byte boundary --> + <list type="CARD32" name="valuator_mask"> + <fieldref>valuators_len</fieldref> + </list> + <!-- Uninterpreted: list (axisvalues) of FP3232, + length is <popcount> on valuator_mask list --> + <!-- Uninterpreted: list (axisvalues_raw) of FP3232, + length is <popcount> on valuator_mask list --> + </event> + + <eventcopy name="RawKeyRelease" number="14" ref="RawKeyPress" /> + + <event name="RawButtonPress" number="15" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="detail" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="valuators_len" /> + <field type="CARD32" name="flags" mask="PointerEventFlags"/> + <pad bytes="4" /> + <!-- 32 byte boundary --> + <list type="CARD32" name="valuator_mask"> + <fieldref>valuators_len</fieldref> + </list> + <!-- Uninterpreted: list (axisvalues) of FP3232, + length is <popcount> on valuator_mask list --> + <!-- Uninterpreted: list (axisvalues_raw) of FP3232, + length is <popcount> on valuator_mask list --> + </event> + + <eventcopy name="RawButtonRelease" number="16" ref="RawButtonPress" /> + <eventcopy name="RawMotion" number="17" ref="RawButtonPress" /> + + <!-- ⋅⋅⋅ Events (v2.2) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <enum name="TouchEventFlags"> + <item name="TouchPendingEnd"> <bit>16</bit> </item> + <item name="TouchEmulatingPointer"> <bit>17</bit> </item> + </enum> + + <event name="TouchBegin" number="18" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="detail" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="WINDOW" name="child" /> + <!-- 32 byte boundary --> + <field type="FP1616" name="root_x" /> + <field type="FP1616" name="root_y" /> + <field type="FP1616" name="event_x" /> + <field type="FP1616" name="event_y" /> + <field type="CARD16" name="buttons_len" /> + <field type="CARD16" name="valuators_len" /> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <pad bytes="2" /> + <field type="CARD32" name="flags" mask="TouchEventFlags" /> + <field type="ModifierInfo" name="mods" /> + <field type="GroupInfo" name="group" /> + <list type="CARD32" name="button_mask"> + <fieldref>buttons_len</fieldref> + </list> + <list type="CARD32" name="valuator_mask"> + <fieldref>valuators_len</fieldref> + </list> + <!-- Uninterpreted: list (axisvalues) of FP3232, + length is <popcount> on valuator_mask list --> + </event> + + <eventcopy name="TouchUpdate" number="19" ref="TouchBegin" /> + <eventcopy name="TouchEnd" number="20" ref="TouchBegin" /> + + <enum name="TouchOwnershipFlags"> + <!-- XXX: Remove this enum? Currently, no flag is defined. --> + <item name="None"> <value>0</value> </item> + </enum> + + <event name="TouchOwnership" number="21" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="touchid" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="WINDOW" name="child" /> + <!-- 32 byte boundary --> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <pad bytes="2" /> + <field type="CARD32" name="flags" enum="TouchOwnershipFlags" /> + <pad bytes="8" /> + </event> + + <event name="RawTouchBegin" number="22" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="detail" /> + <field type="DeviceId" name="sourceid" /> + <field type="CARD16" name="valuators_len" /> + <field type="CARD32" name="flags" mask="TouchEventFlags"/> + <pad bytes="4" /> + <!-- 32 byte boundary --> + <list type="CARD32" name="valuator_mask"> + <fieldref>valuators_len</fieldref> + </list> + <!-- Uninterpreted: list (axisvalues) of FP3232, + length is <popcount> on valuator_mask list --> + <!-- Uninterpreted: list (axisvalues_raw) of FP3232, + length is <popcount> on valuator_mask list --> + </event> + + <eventcopy name="RawTouchUpdate" number="23" ref="RawTouchBegin" /> + <eventcopy name="RawTouchEnd" number="24" ref="RawTouchBegin" /> + + <!-- ⋅⋅⋅ Events (v2.3) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <event name="BarrierHit" number="25" xge="true"> + <field type="DeviceId" name="deviceid" altenum="Device" /> + <field type="TIMESTAMP" name="time" altenum="Time" /> + <!-- event specific fields --> + <field type="CARD32" name="eventid" /> + <field type="WINDOW" name="root" /> + <field type="WINDOW" name="event" /> + <field type="BARRIER" name="barrier" /> + <!-- 32 byte boundary --> + <field type="CARD32" name="dtime" /> + <field type="CARD32" name="flags" /> + <field type="DeviceId" name="sourceid" altenum="Device" /> + <pad bytes="2" /> + <field type="FP1616" name="root_x" /> + <field type="FP1616" name="root_y" /> + <field type="FP3232" name="dx" /> + <field type="FP3232" name="dy" /> + </event> + + <eventcopy name="BarrierLeave" number="26" ref="BarrierHit" /> + + <!-- ⋅⋅⋅ Errors (v1.0) ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ --> + + <error name="Device" number="0" /> + <error name="Event" number="1" /> + <error name="Mode" number="2" /> <error name="DeviceBusy" number="3" /> - <error name="Class" number="4" /> + <error name="Class" number="4" /> </xcb> diff --git a/src/xkb.xml b/src/xkb.xml index a6ef374..1df0771 100644 --- a/src/xkb.xml +++ b/src/xkb.xml @@ -130,29 +130,21 @@ authorization from the authors. <item name="ControlsEnabled"> <bit>31</bit> </item> </enum> - <enum name="AXFBOpt"> + <enum name="AXOption"> <item name="SKPressFB"> <bit>0</bit> </item> <item name="SKAcceptFB"> <bit>1</bit> </item> <item name="FeatureFB"> <bit>2</bit> </item> <item name="SlowWarnFB"> <bit>3</bit> </item> <item name="IndicatorFB"> <bit>4</bit> </item> <item name="StickyKeysFB"> <bit>5</bit> </item> - <item name="SKReleaseFB"> <bit>6</bit> </item> - <item name="SKRejectFB"> <bit>7</bit> </item> - <item name="BKRejectFB"> <bit>8</bit> </item> - <item name="DumbBell"> <bit>9</bit> </item> + <item name="TwoKeys"> <bit>6</bit> </item> + <item name="LatchToLock"> <bit>7</bit> </item> + <item name="SKReleaseFB"> <bit>8</bit> </item> + <item name="SKRejectFB"> <bit>9</bit> </item> + <item name="BKRejectFB"> <bit>10</bit> </item> + <item name="DumbBell"> <bit>11</bit> </item> </enum> - <enum name="AXSKOpt"> - <item name="TwoKeys"> <bit>6</bit> </item> - <item name="LatchToLock"> <bit>7</bit> </item> - </enum> - - <union name="AXOption"> - <field name="fbopt" type="CARD16" enum="AXFBOpt" /> - <field name="skopt" type="CARD16" enum="AXSKOpt" /> - </union> - <typedef oldname="CARD16" newname="DeviceSpec" /> <enum name="LedClassResult"> @@ -161,8 +153,10 @@ authorization from the authors. </enum> <enum name="LedClass"> - <item name="DfltXIClass"> <value>768</value> </item> <!--0x300--> - <item name="AllXIClasses"> <value>1280</value> </item> <!--0x500--> + <item name="KbdFeedbackClass"> <value>0</value> </item> + <item name="LedFeedbackClass"> <value>4</value> </item> + <item name="DfltXIClass"> <value>768</value> </item> <!--0x300--> + <item name="AllXIClasses"> <value>1280</value> </item> <!--0x500--> </enum> <typedef oldname="CARD16" newname="LedClassSpec" /> @@ -172,7 +166,9 @@ authorization from the authors. </enum> <enum name="BellClass"> - <item name="DfltXIClass"> <value>768</value> </item> <!--0x300--> + <item name="KbdFeedbackClass"> <value>0</value> </item> + <item name="BellFeedbackClass"> <value>5</value> </item> + <item name="DfltXIClass"> <value>768</value> </item> <!--0x300--> </enum> <typedef oldname="CARD16" newname="BellClassSpec" /> @@ -268,7 +264,7 @@ authorization from the authors. <item name="KeyType1"> <bit>0</bit> </item> </enum> - <enum name="SymInterpret"> + <enum name="SymInterpretMatch"> <item name="NoneOf"> <value>0</value> </item> <item name="AnyOfOrNone"> <value>1</value> </item> <item name="AnyOf"> <value>2</value> </item> @@ -311,7 +307,7 @@ authorization from the authors. <field name="mods" type="CARD8" mask="ModMask" /> <field name="realMods" type="CARD8" mask="ModMask" /> <field name="vmods" type="CARD16" mask="VMod" /> - <field name="ctrls" type="CARD32" enum="BoolCtrl" /> + <field name="ctrls" type="CARD32" mask="BoolCtrl" /> </struct> <enum name="CMDetail"> @@ -370,43 +366,48 @@ authorization from the authors. </struct> <struct name="KeyName"> - <list name="name" type="CARD8"> + <list name="name" type="char"> <value>4</value> </list> </struct> <struct name="KeyAlias"> - <list name="real" type="CARD8"> + <list name="real" type="char"> <value>4</value> </list> - <list name="alias" type="CARD8"> + <list name="alias" type="char"> <value>4</value> </list> </struct> - <struct name="CountedString8"> - <field name="length" type="CARD8" /> - <list name="string" type="CARD8"> - <fieldref>length</fieldref> - </list> - </struct> - <struct name="CountedString16"> <field name="length" type="CARD16" /> - <list name="string" type="CARD8"> + <list name="string" type="char"> <fieldref>length</fieldref> </list> - <pad bytes="1" /> + <list type="void" name="alignment_pad"> + <op op="-"> + <op op="&"> + <op op="+"> + <fieldref>length</fieldref> + <value>5</value> + </op> + <unop op="~"> + <value>3</value> + </unop> + </op> + <op op="+"> + <fieldref>length</fieldref> + <value>2</value> + </op> + </op> + </list> </struct> <struct name="KTMapEntry"> <field name="active" type="BOOL" /> - <!-- Xlib uses a different arrangement of fields <field name="mods_mask" type="CARD8" mask="ModMask" /> <field name="level" type="CARD8" /> - --> - <field name="level" type="CARD8" /> - <field name="mods_mask" type="CARD8" mask="ModMask" /> <field name="mods_mods" type="CARD8" mask="ModMask" /> <field name="mods_vmods" type="CARD16" mask="VMod" /> <pad bytes="2" /> @@ -462,32 +463,26 @@ authorization from the authors. <field name="group" type="CARD8" /> </struct> - <struct name="Overlay1Behavior"> + <struct name="OverlayBehavior"> <field name="type" type="CARD8" /> <field name="key" type="KEYCODE" /> </struct> - <struct name="Overlay2Behavior"> - <field name="type" type="CARD8" /> - <field name="key" type="CARD8" /> - </struct> - <typedef oldname="LockBehavior" newname="PermamentLockBehavior" /> <typedef oldname="RadioGroupBehavior" newname="PermamentRadioGroupBehavior" /> - <typedef oldname="Overlay1Behavior" newname="PermamentOverlay1Behavior" /> - <typedef oldname="Overlay2Behavior" newname="PermamentOverlay2Behavior" /> + <typedef oldname="OverlayBehavior" newname="PermamentOverlayBehavior" /> <union name="Behavior"> <field name="common" type="CommonBehavior" /> <field name="default" type="DefaultBehavior" /> <field name="lock" type="LockBehavior" /> <field name="radioGroup" type="RadioGroupBehavior" /> - <field name="overlay1" type="Overlay1Behavior" /> - <field name="overlay2" type="Overlay2Behavior" /> + <field name="overlay1" type="OverlayBehavior" /> + <field name="overlay2" type="OverlayBehavior" /> <field name="permamentLock" type="PermamentLockBehavior" /> <field name="permamentRadioGroup" type="PermamentRadioGroupBehavior" /> - <field name="permamentOverlay1" type="PermamentOverlay1Behavior" /> - <field name="permamentOverlay2" type="PermamentOverlay2Behavior" /> + <field name="permamentOverlay1" type="PermamentOverlayBehavior" /> + <field name="permamentOverlay2" type="PermamentOverlayBehavior" /> <field name="type" type="CARD8" /> </union> @@ -552,6 +547,7 @@ authorization from the authors. <typedef oldname="char" newname="STRING8" /> + <!-- XXX: Property is broken <struct name="Property"> <field name="nameLength" type="CARD16" /> <list name="name" type="STRING8"> @@ -562,6 +558,15 @@ authorization from the authors. <fieldref>valueLength</fieldref> </list> </struct> + --> + <!-- XXX: This would be the correct Property structure as per spec., + but it's broken atm. too. Add it anyway here, so we don't + loose that information. + <struct name="Property"> + <field name="name" type="CountedString16" /> + <field name="value" type="CountedString16" /> + </struct> + --> <struct name="Outline"> <field name="nPoints" type="CARD8" /> @@ -638,6 +643,7 @@ authorization from the authors. <item name="Logo"> <value>5</value> </item> </enum> + <!-- XXX: doodads are broken <struct name="CommonDoodad"> <field name="name" type="ATOM" /> <field name="type" type="CARD8" enum="DoodadType" /> @@ -645,6 +651,7 @@ authorization from the authors. <field name="top" type="INT16" /> <field name="left" type="INT16" /> <field name="angle" type="INT16" /> + <pad bytes="8" /> </struct> <struct name="ShapeDoodad"> @@ -730,6 +737,7 @@ authorization from the authors. <fieldref>nOverlays</fieldref> </list> </struct> + --> <struct name="Listing"> <field name="flags" type="CARD16" /> @@ -869,7 +877,8 @@ authorization from the authors. </struct> <enum name="SASetPtrDfltFlag"> - <item name="DfltBtnAbsolute"> <bit>1</bit> </item> + <!-- The spec says 0x02 but Xlib uses 0x04. --> + <item name="DfltBtnAbsolute"> <bit>2</bit> </item> <item name="AffectDfltButton"> <bit>0</bit> </item> </enum> @@ -998,6 +1007,7 @@ authorization from the authors. <pad bytes="1" /> <field name="button" type="CARD8" /> <field name="device" type="CARD8" /> + <pad bytes="3" /> </struct> <enum name="SAValWhat"> @@ -1020,6 +1030,23 @@ authorization from the authors. <field name="val2value" type="CARD8" /> </struct> + <struct name="SIAction"> + <field name="type" type="CARD8" enum="SAType" /> + <list name="data" type="CARD8"> + <value>7</value> + </list> + </struct> + + <struct name="SymInterpret"> + <field name="sym" type="KEYSYM" /> + <field name="mods" type="CARD8" mask="ModMask" /> + <!-- "match" may also have XkbSI_LevelOneOnly (0x80) or'd into it --> + <field name="match" type="CARD8" altenum="SymInterpretMatch" /> + <field name="virtualMod" type="CARD8" mask="VModsLow" /> + <field name="flags" type="CARD8" /> + <field name="action" type="SIAction" /> + </struct> + <union name="Action"> <field name="noaction" type="SANoAction" /> <field name="setmods" type="SASetMods" /> @@ -1060,11 +1087,11 @@ authorization from the authors. <request name="SelectEvents" opcode="1"> <field name="deviceSpec" type="DeviceSpec" /> - <field name="affectWhich" type="CARD16" enum="EventType" /> - <field name="clear" type="CARD16" enum="EventType" /> - <field name="selectAll" type="CARD16" enum="EventType" /> - <field name="affectMap" type="CARD16" enum="MapPart" /> - <field name="map" type="CARD16" enum="MapPart" /> + <field name="affectWhich" type="CARD16" mask="EventType" /> + <field name="clear" type="CARD16" mask="EventType" /> + <field name="selectAll" type="CARD16" mask="EventType" /> + <field name="affectMap" type="CARD16" mask="MapPart" /> + <field name="map" type="CARD16" mask="MapPart" /> <switch name="details"> <op op="&"> <fieldref>affectWhich</fieldref> @@ -1206,14 +1233,14 @@ authorization from the authors. <field name="mouseKeysTimeToMax" type="CARD16" /> <field name="mouseKeysMaxSpeed" type="CARD16" /> <field name="mouseKeysCurve" type="INT16" /> - <field name="accessXOption" type="AXOption" /> + <field name="accessXOption" type="CARD16" mask="AXOption" /> <field name="accessXTimeout" type="CARD16" /> - <field name="accessXTimeoutOptionsMask" type="AXOption" /> - <field name="accessXTimeoutOptionsValues" type="AXOption" /> + <field name="accessXTimeoutOptionsMask" type="CARD16" mask="AXOption" /> + <field name="accessXTimeoutOptionsValues" type="CARD16" mask="AXOption" /> <pad bytes="2" /> - <field name="accessXTimeoutMask" type="CARD32" enum="BoolCtrl" /> - <field name="accessXTimeoutValues" type="CARD32" enum="BoolCtrl" /> - <field name="enabledControls" type="CARD32" enum="BoolCtrl" /> + <field name="accessXTimeoutMask" type="CARD32" mask="BoolCtrl" /> + <field name="accessXTimeoutValues" type="CARD32" mask="BoolCtrl" /> + <field name="enabledControls" type="CARD32" mask="BoolCtrl" /> <list name="perKeyRepeat" type="CARD8"> <value>32</value> </list> @@ -1232,10 +1259,10 @@ authorization from the authors. <field name="ignoreLockVirtualMods" type="CARD16" mask="VMod" /> <field name="mouseKeysDfltBtn" type="CARD8" /> <field name="groupsWrap" type="CARD8" /> - <field name="accessXOptions" type="AXOption" /> + <field name="accessXOptions" type="CARD16" mask="AXOption" /> <pad bytes="2" /> - <field name="affectEnabledControls" type="CARD32" enum="BoolCtrl" /> - <field name="enabledControls" type="CARD32" enum="BoolCtrl" /> + <field name="affectEnabledControls" type="CARD32" mask="BoolCtrl" /> + <field name="enabledControls" type="CARD32" mask="BoolCtrl" /> <field name="changeControls" type="CARD32" mask="Control" /> <field name="repeatDelay" type="CARD16" /> <field name="repeatInterval" type="CARD16" /> @@ -1247,10 +1274,10 @@ authorization from the authors. <field name="mouseKeysMaxSpeed" type="CARD16" /> <field name="mouseKeysCurve" type="INT16" /> <field name="accessXTimeout" type="CARD16" /> - <field name="accessXTimeoutMask" type="CARD32" enum="BoolCtrl" /> - <field name="accessXTimeoutValues" type="CARD32" enum="BoolCtrl" /> - <field name="accessXTimeoutOptionsMask" type="AXOption" /> - <field name="accessXTimeoutOptionsValues" type="AXOption" /> + <field name="accessXTimeoutMask" type="CARD32" mask="BoolCtrl" /> + <field name="accessXTimeoutValues" type="CARD32" mask="BoolCtrl" /> + <field name="accessXTimeoutOptionsMask" type="CARD16" mask="AXOption" /> + <field name="accessXTimeoutOptionsValues" type="CARD16" mask="AXOption" /> <list name="perKeyRepeat" type="CARD8"> <value>32</value> </list> @@ -1258,8 +1285,8 @@ authorization from the authors. <request name="GetMap" opcode="8"> <field name="deviceSpec" type="DeviceSpec" /> - <field name="full" type="CARD16" enum="MapPart" /> - <field name="partial" type="CARD16" enum="MapPart" /> + <field name="full" type="CARD16" mask="MapPart" /> + <field name="partial" type="CARD16" mask="MapPart" /> <field name="firstType" type="CARD8" /> <field name="nTypes" type="CARD8" /> <field name="firstKeySym" type="KEYCODE" /> @@ -1281,7 +1308,7 @@ authorization from the authors. <pad bytes="2" /> <field name="minKeyCode" type="KEYCODE" /> <field name="maxKeyCode" type="KEYCODE" /> - <field name="present" type="CARD16" enum="MapPart" /> + <field name="present" type="CARD16" mask="MapPart" /> <field name="firstType" type="CARD8" /> <field name="nTypes" type="CARD8" /> <field name="totalTypes" type="CARD8" /> @@ -1324,6 +1351,20 @@ authorization from the authors. <list name="acts_rtrn_count" type="CARD8"> <fieldref>nKeyActions</fieldref> </list> + <list type="CARD8" name="alignment_pad"> + <op op="-"> + <op op="&"> + <op op="+"> + <fieldref>nKeyActions</fieldref> + <value>3</value> + </op> + <unop op="~"> + <value>3</value> + </unop> + </op> + <fieldref>nKeyActions</fieldref> + </op> + </list> <list name="acts_rtrn_acts" type="Action"> <fieldref>totalActions</fieldref> </list> @@ -1337,7 +1378,21 @@ authorization from the authors. <bitcase> <enumref ref="MapPart">VirtualMods</enumref> <list name="vmods_rtrn" type="CARD8" mask="ModMask"> - <fieldref>nVModMapKeys</fieldref> + <popcount><fieldref>virtualMods</fieldref></popcount> + </list> + <list type="CARD8" name="alignment_pad2"> + <op op="-"> + <op op="&"> + <op op="+"> + <popcount><fieldref>virtualMods</fieldref></popcount> + <value>3</value> + </op> + <unop op="~"> + <value>3</value> + </unop> + </op> + <popcount><fieldref>virtualMods</fieldref></popcount> + </op> </list> </bitcase> <bitcase> @@ -1345,12 +1400,40 @@ authorization from the authors. <list name="explicit_rtrn" type="SetExplicit"> <fieldref>totalKeyExplicit</fieldref> </list> + <list type="CARD16" name="alignment_pad3"> + <op op="-"> + <op op="&"> + <op op="+"> + <fieldref>totalKeyExplicit</fieldref> + <value>1</value> + </op> + <unop op="~"> + <value>1</value> + </unop> + </op> + <fieldref>totalKeyExplicit</fieldref> + </op> + </list> </bitcase> <bitcase> <enumref ref="MapPart">ModifierMap</enumref> <list name="modmap_rtrn" type="KeyModMap"> <fieldref>totalModMapKeys</fieldref> </list> + <list type="CARD16" name="alignment_pad4"> + <op op="-"> + <op op="&"> + <op op="+"> + <fieldref>totalModMapKeys</fieldref> + <value>1</value> + </op> + <unop op="~"> + <value>1</value> + </unop> + </op> + <fieldref>totalModMapKeys</fieldref> + </op> + </list> </bitcase> <bitcase> <enumref ref="MapPart">VirtualModMap</enumref> @@ -1364,7 +1447,7 @@ authorization from the authors. <request name="SetMap" opcode="9"> <field name="deviceSpec" type="DeviceSpec" /> - <field name="present" type="CARD16" enum="MapPart" /> + <field name="present" type="CARD16" mask="MapPart" /> <field name="flags" type="CARD16" mask="SetMapFlags" /> <field name="minKeyCode" type="KEYCODE" /> <field name="maxKeyCode" type="KEYCODE" /> @@ -1421,7 +1504,7 @@ authorization from the authors. <bitcase> <enumref ref="MapPart">VirtualMods</enumref> <list name="vmods" type="CARD8"> - <fieldref>nVModMapKeys</fieldref> + <popcount><fieldref>virtualMods</fieldref></popcount> </list> </bitcase> <bitcase> @@ -1459,11 +1542,8 @@ authorization from the authors. <field name="nSIRtrn" type="CARD16" /> <field name="nTotalSI" type="CARD16" /> <pad bytes="16" /> - <list name="si_rtrn" type="CARD8" mask="SymInterpret"> - <op op="*"> - <value>16</value> - <fieldref>nSIRtrn</fieldref> - </op> + <list name="si_rtrn" type="SymInterpret"> + <fieldref>nSIRtrn</fieldref> </list> <list name="group_rtrn" type="ModDef"> <popcount> @@ -1482,11 +1562,8 @@ authorization from the authors. <field name="firstSI" type="CARD16" /> <field name="nSI" type="CARD16" /> <pad bytes="2"/> - <list name="si" type="CARD8" mask="SymInterpret"> - <op op="*"> - <value>16</value> - <fieldref>nSI</fieldref> - </op> + <list name="si" type="SymInterpret"> + <fieldref>nSI</fieldref> </list> <list name="groupMaps" type="ModDef"> <popcount> @@ -1516,7 +1593,7 @@ authorization from the authors. <field name="nIndicators" type="CARD8" /> <pad bytes="15" /> <list name="maps" type="IndicatorMap"> - <fieldref>nIndicators</fieldref> + <popcount><fieldref>which</fieldref></popcount> </list> </reply> </request> @@ -1553,6 +1630,7 @@ authorization from the authors. <field name="map_realMods" type="CARD8" mask="ModMask" /> <field name="map_vmod" type="CARD16" mask="VMod" /> <field name="map_ctrls" type="CARD32" mask="BoolCtrl" /> + <field name="supported" type="BOOL" /> <pad bytes="3" /> </reply> </request> @@ -1637,6 +1715,20 @@ authorization from the authors. <fieldref>nKTLevels</fieldref> --> <fieldref>nTypes</fieldref> </list> + <list type="CARD8" name="alignment_pad"> + <op op="-"> + <op op="&"> + <op op="+"> + <fieldref>nTypes</fieldref> + <value>3</value> + </op> + <unop op="~"> + <value>3</value> + </unop> + </op> + <fieldref>nTypes</fieldref> + </op> + </list> <list name="ktLevelNames" type="ATOM"> <sumof ref="nLevelsPerType" /> </list> @@ -1789,6 +1881,7 @@ authorization from the authors. </switch> </request> + <!-- XXX: Property and doodads are broken, which renders GetGeometry useless <request name="GetGeometry" opcode="19"> <field name="deviceSpec" type="DeviceSpec" /> <pad bytes="2" /> @@ -1829,7 +1922,9 @@ authorization from the authors. </list> </reply> </request> + --> + <!-- XXX: Property and doodads are broken, which renders SetGeometry useless <request name="SetGeometry" opcode="20"> <field name="deviceSpec" type="DeviceSpec" /> <field name="nShapes" type="CARD8" /> @@ -1864,6 +1959,7 @@ authorization from the authors. <fieldref>nKeyAliases</fieldref> </list> </request> + --> <request name="PerClientFlags" opcode="21"> <field name="deviceSpec" type="DeviceSpec" /> @@ -1886,6 +1982,7 @@ authorization from the authors. <request name="ListComponents" opcode="22"> <field name="deviceSpec" type="DeviceSpec" /> <field name="maxNames" type="CARD16" /> + <!-- XXX: Intermixed fixed size fields and lists are broken <field name="keymapsSpecLen" type="CARD8" /> <list name="keymapsSpec" type="STRING8"> <fieldref>keymapsSpecLen</fieldref> @@ -1910,6 +2007,7 @@ authorization from the authors. <list name="geometrySpec" type="STRING8"> <fieldref>geometrySpecLen</fieldref> </list> + --> <reply> <field name="deviceID" type="CARD8" /> <field name="nKeymaps" type="CARD16" /> @@ -1947,6 +2045,7 @@ authorization from the authors. <field name="want" type="CARD16" mask="GBNDetail" /> <field name="load" type="BOOL" /> <pad bytes="1" /> + <!-- XXX: Intermixed fixed size fields and lists are broken <field name="keymapsSpecLen" type="CARD8" /> <list name="keymapsSpec" type="STRING8"> <fieldref>keymapsSpecLen</fieldref> @@ -1971,6 +2070,7 @@ authorization from the authors. <list name="geometrySpec" type="STRING8"> <fieldref>geometrySpecLen</fieldref> </list> + --> <reply> <field name="deviceID" type="CARD8" /> <field name="minKeyCode" type="KEYCODE" /> @@ -1984,6 +2084,8 @@ authorization from the authors. <fieldref>reported</fieldref> <bitcase name="types"> <enumref ref="GBNDetail">Types</enumref> + <enumref ref="GBNDetail">ClientSymbols</enumref> + <enumref ref="GBNDetail">ServerSymbols</enumref> <!-- from the spec, this has to be a GetMap reply --> <field name="getmap_type" type="CARD8" /> <!-- done 'emulating' GetMap reply header--> @@ -1995,7 +2097,7 @@ authorization from the authors. <pad bytes="2" /> <field name="typeMinKeyCode" type="KEYCODE" /> <field name="typeMaxKeyCode" type="KEYCODE" /> - <field name="present" type="CARD16" enum="MapPart" /> + <field name="present" type="CARD16" mask="MapPart" /> <field name="firstType" type="CARD8" /> <field name="nTypes" type="CARD8" /> <field name="totalTypes" type="CARD8" /> @@ -2051,7 +2153,7 @@ authorization from the authors. <bitcase> <enumref ref="MapPart">VirtualMods</enumref> <list name="vmods_rtrn" type="CARD8" mask="ModMask"> - <fieldref>nVModMapKeys</fieldref> + <popcount><fieldref>virtualMods</fieldref></popcount> </list> </bitcase> <bitcase> @@ -2076,18 +2178,20 @@ authorization from the authors. </bitcase> <bitcase name="compat_map"> <enumref ref="GBNDetail">CompatMap</enumref> + <!-- from the spec, this has to include a reply header --> + <field name="compatmap_type" type="CARD8" /> <field name="compatDeviceID" type="CARD8" /> + <field name="compatmap_sequence" type="CARD16" /> + <field name="compatmap_length" type="CARD32" /> + <!-- done 'emulating' reply header --> <field name="groupsRtrn" type="CARD8" mask="SetOfGroup" /> <pad bytes="1" /> <field name="firstSIRtrn" type="CARD16" /> <field name="nSIRtrn" type="CARD16" /> <field name="nTotalSI" type="CARD16" /> <pad bytes="16" /> - <list name="si_rtrn" type="CARD8" mask="SymInterpret"> - <op op="*"> - <value>16</value> - <fieldref>nSIRtrn</fieldref> - </op> + <list name="si_rtrn" type="SymInterpret"> + <fieldref>nSIRtrn</fieldref> </list> <list name="group_rtrn" type="ModDef"> <popcount> @@ -2095,179 +2199,14 @@ authorization from the authors. </popcount> </list> </bitcase> - <bitcase name="client_symbols"> - <enumref ref="GBNDetail">ClientSymbols</enumref> - <field name="clientDeviceID" type="CARD8" /> - <pad bytes="2" /> - <field name="clientMinKeyCode" type="KEYCODE" /> - <field name="clientMaxKeyCode" type="KEYCODE" /> - <field name="present" type="CARD16" enum="MapPart" /> - <field name="firstType" type="CARD8" /> - <field name="nTypes" type="CARD8" /> - <field name="totalTypes" type="CARD8" /> - <field name="firstKeySym" type="KEYCODE" /> - <field name="totalSyms" type="CARD16" /> - <field name="nKeySyms" type="CARD8" /> - <field name="firstKeyAction" type="KEYCODE" /> - <field name="totalActions" type="CARD16" /> - <field name="nKeyActions" type="CARD8" /> - <field name="firstKeyBehavior" type="KEYCODE" /> - <field name="nKeyBehaviors" type="CARD8" /> - <field name="totalKeyBehaviors" type="CARD8" /> - <field name="firstKeyExplicit" type="KEYCODE" /> - <field name="nKeyExplicit" type="CARD8" /> - <field name="totalKeyExplicit" type="CARD8" /> - <field name="firstModMapKey" type="KEYCODE" /> - <field name="nModMapKeys" type="CARD8" /> - <field name="totalModMapKeys" type="CARD8" /> - <field name="firstVModMapKey" type="KEYCODE" /> - <field name="nVModMapKeys" type="CARD8" /> - <field name="totalVModMapKeys" type="CARD8" /> - <pad bytes="1" /> - <field name="virtualMods" type="CARD16" mask="VMod" /> - <switch name="map"> - <fieldref>present</fieldref> - <bitcase> - <enumref ref="MapPart">KeyTypes</enumref> - <list name="types_rtrn" type="KeyType"> - <fieldref>nTypes</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">KeySyms</enumref> - <list name="syms_rtrn" type="KeySymMap"> - <fieldref>nKeySyms</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">KeyActions</enumref> - <list name="acts_rtrn_count" type="CARD8"> - <fieldref>nKeyActions</fieldref> - </list> - <list name="acts_rtrn_acts" type="Action"> - <fieldref>totalActions</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">KeyBehaviors</enumref> - <list name="behaviors_rtrn" type="SetBehavior"> - <fieldref>totalKeyBehaviors</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">VirtualMods</enumref> - <list name="vmods_rtrn" type="CARD8" mask="ModMask"> - <fieldref>nVModMapKeys</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">ExplicitComponents</enumref> - <list name="explicit_rtrn" type="SetExplicit"> - <fieldref>totalKeyExplicit</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">ModifierMap</enumref> - <list name="modmap_rtrn" type="KeyModMap"> - <fieldref>totalModMapKeys</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">VirtualModMap</enumref> - <list name="vmodmap_rtrn" type="KeyVModMap"> - <fieldref>totalVModMapKeys</fieldref> - </list> - </bitcase> - </switch> - </bitcase> - <bitcase name="server_symbols"> - <enumref ref="GBNDetail">ServerSymbols</enumref> - <field name="serverDeviceID" type="CARD8" /> - <pad bytes="2" /> - <field name="serverMinKeyCode" type="KEYCODE" /> - <field name="serverMaxKeyCode" type="KEYCODE" /> - <field name="present" type="CARD16" enum="MapPart" /> - <field name="firstType" type="CARD8" /> - <field name="nTypes" type="CARD8" /> - <field name="totalTypes" type="CARD8" /> - <field name="firstKeySym" type="KEYCODE" /> - <field name="totalSyms" type="CARD16" /> - <field name="nKeySyms" type="CARD8" /> - <field name="firstKeyAction" type="KEYCODE" /> - <field name="totalActions" type="CARD16" /> - <field name="nKeyActions" type="CARD8" /> - <field name="firstKeyBehavior" type="KEYCODE" /> - <field name="nKeyBehaviors" type="CARD8" /> - <field name="totalKeyBehaviors" type="CARD8" /> - <field name="firstKeyExplicit" type="KEYCODE" /> - <field name="nKeyExplicit" type="CARD8" /> - <field name="totalKeyExplicit" type="CARD8" /> - <field name="firstModMapKey" type="KEYCODE" /> - <field name="nModMapKeys" type="CARD8" /> - <field name="totalModMapKeys" type="CARD8" /> - <field name="firstVModMapKey" type="KEYCODE" /> - <field name="nVModMapKeys" type="CARD8" /> - <field name="totalVModMapKeys" type="CARD8" /> - <pad bytes="1" /> - <field name="virtualMods" type="CARD16" mask="VMod" /> - <switch name="map"> - <fieldref>present</fieldref> - <bitcase> - <enumref ref="MapPart">KeyTypes</enumref> - <list name="types_rtrn" type="KeyType"> - <fieldref>nTypes</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">KeySyms</enumref> - <list name="syms_rtrn" type="KeySymMap"> - <fieldref>nKeySyms</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">KeyActions</enumref> - <list name="acts_rtrn_count" type="CARD8"> - <fieldref>nKeyActions</fieldref> - </list> - <list name="acts_rtrn_acts" type="Action"> - <fieldref>totalActions</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">KeyBehaviors</enumref> - <list name="behaviors_rtrn" type="SetBehavior"> - <fieldref>totalKeyBehaviors</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">VirtualMods</enumref> - <list name="vmods_rtrn" type="CARD8" mask="ModMask"> - <fieldref>nVModMapKeys</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">ExplicitComponents</enumref> - <list name="explicit_rtrn" type="SetExplicit"> - <fieldref>totalKeyExplicit</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">ModifierMap</enumref> - <list name="modmap_rtrn" type="KeyModMap"> - <fieldref>totalModMapKeys</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="MapPart">VirtualModMap</enumref> - <list name="vmodmap_rtrn" type="KeyVModMap"> - <fieldref>totalVModMapKeys</fieldref> - </list> - </bitcase> - </switch> - </bitcase> <bitcase name="indicator_maps"> <enumref ref="GBNDetail">IndicatorMaps</enumref> + <!-- from the spec, this has to include a reply header --> + <field name="indicatormap_type" type="CARD8" /> <field name="indicatorDeviceID" type="CARD8" /> + <field name="indicatormap_sequence" type="CARD16" /> + <field name="indicatormap_length" type="CARD32" /> + <!-- done 'emulating' reply header --> <field name="which" type="CARD32" /> <field name="realIndicators" type="CARD32" /> <field name="nIndicators" type="CARD8" /> @@ -2278,7 +2217,13 @@ authorization from the authors. </bitcase> <bitcase name="key_names"> <enumref ref="GBNDetail">KeyNames</enumref> + <enumref ref="GBNDetail">OtherNames</enumref> + <!-- from the spec, this has to include a reply header --> + <field name="keyname_type" type="CARD8" /> <field name="keyDeviceID" type="CARD8" /> + <field name="keyname_sequence" type="CARD16" /> + <field name="keyname_length" type="CARD32" /> + <!-- done 'emulating' reply header --> <field name="which" type="CARD32" mask="NameDetail" /> <field name="keyMinKeyCode" type="KEYCODE" /> <field name="keyMaxKeyCode" type="KEYCODE" /> @@ -2377,110 +2322,14 @@ authorization from the authors. </bitcase> </switch> </bitcase> - <bitcase name="other_names"> - <enumref ref="GBNDetail">OtherNames</enumref> - <field name="otherDeviceID" type="CARD8" /> - <field name="which" type="CARD32" mask="NameDetail" /> - <field name="otherMinKeyCode" type="KEYCODE" /> - <field name="otherMaxKeyCode" type="KEYCODE" /> - <field name="nTypes" type="CARD8" /> - <field name="groupNames" type="CARD8" mask="SetOfGroup" /> - <field name="virtualMods" type="CARD16" mask="VMod" /> - <field name="firstKey" type="KEYCODE" /> - <field name="nKeys" type="CARD8" /> - <field name="indicators" type="CARD32" /> - <field name="nRadioGroups" type="CARD8" /> - <field name="nKeyAliases" type="CARD8" /> - <field name="nKTLevels" type="CARD16" /> - <pad bytes="4" /> - <switch name="valueList"> - <fieldref>which</fieldref> - <bitcase> - <enumref ref="NameDetail">Keycodes</enumref> - <field name="keycodesName" type="ATOM" /> - </bitcase> - <bitcase> - <enumref ref="NameDetail">Geometry</enumref> - <field name="geometryName" type="ATOM" /> - </bitcase> - <bitcase> - <enumref ref="NameDetail">Symbols</enumref> - <field name="symbolsName" type="ATOM" /> - </bitcase> - <bitcase> - <enumref ref="NameDetail">PhysSymbols</enumref> - <field name="physSymbolsName" type="ATOM" /> - </bitcase> - <bitcase> - <enumref ref="NameDetail">Types</enumref> - <field name="typesName" type="ATOM" /> - </bitcase> - <bitcase> - <enumref ref="NameDetail">Compat</enumref> - <field name="compatName" type="ATOM" /> - </bitcase> - <bitcase> - <enumref ref="NameDetail">KeyTypeNames</enumref> - <list name="typeNames" type="ATOM"> - <fieldref>nTypes</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">KTLevelNames</enumref> - <list name="nLevelsPerType" type="CARD8"> - <fieldref>nKTLevels</fieldref> - </list> - <list name="ktLevelNames" type="ATOM"> - <sumof ref="nLevelsPerType" /> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">IndicatorNames</enumref> - <list name="indicatorNames" type="ATOM"> - <popcount> - <fieldref>indicators</fieldref> - </popcount> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">VirtualModNames</enumref> - <list name="virtualModNames" type="ATOM"> - <popcount> - <fieldref>virtualMods</fieldref> - </popcount> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">GroupNames</enumref> - <list name="groups" type="ATOM"> - <popcount> - <fieldref>groupNames</fieldref> - </popcount> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">KeyNames</enumref> - <list name="keyNames" type="KeyName"> - <fieldref>nKeys</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">KeyAliases</enumref> - <list name="keyAliases" type="KeyAlias"> - <fieldref>nKeyAliases</fieldref> - </list> - </bitcase> - <bitcase> - <enumref ref="NameDetail">RGNames</enumref> - <list name="radioGroupNames" type="ATOM"> - <fieldref>nRadioGroups</fieldref> - </list> - </bitcase> - </switch> - </bitcase> <bitcase name="geometry"> <enumref ref="GBNDetail">Geometry</enumref> + <!-- from the spec, this has to include a reply header --> + <field name="geometry_type" type="CARD8" /> <field name="geometryDeviceID" type="CARD8" /> + <field name="geometry_sequence" type="CARD16" /> + <field name="geometry_length" type="CARD32" /> + <!-- done 'emulating' reply header --> <field name="name" type="ATOM" /> <field name="geometryFound" type="BOOL" /> <pad bytes="1" /> @@ -2495,6 +2344,7 @@ authorization from the authors. <field name="baseColorNdx" type="CARD8" /> <field name="labelColorNdx" type="CARD8" /> <field name="labelFont" type="CountedString16" /> + <!-- XXX: Property is broken <list name="properties" type="Property"> <fieldref>nProperties</fieldref> </list> @@ -2504,6 +2354,8 @@ authorization from the authors. <list name="shapes" type="Shape"> <fieldref>nShapes</fieldref> </list> + --> + <!-- XXX: doodads are broken <list name="sections" type="Section"> <fieldref>nSections</fieldref> </list> @@ -2513,6 +2365,7 @@ authorization from the authors. <list name="keyAliases" type="KeyAlias"> <fieldref>nKeyAliases</fieldref> </list> + --> </bitcase> </switch> </reply> @@ -2593,9 +2446,8 @@ authorization from the authors. <!-- Events --> - <event name="NewKeyboardNotify" number="0" no-sequence-number="true"> + <event name="NewKeyboardNotify" number="0"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="oldDeviceID" type="CARD8" /> @@ -2609,9 +2461,8 @@ authorization from the authors. <pad bytes="14" /> </event> - <event name="MapNotify" number="1" no-sequence-number="true"> + <event name="MapNotify" number="1"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="ptrBtnActions" type="CARD8" /> @@ -2636,9 +2487,8 @@ authorization from the authors. <pad bytes="2" /> </event> - <event name="StateNotify" number="2" no-sequence-number="true"> + <event name="StateNotify" number="2"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="mods" type="CARD8" mask="ModMask" /> @@ -2662,9 +2512,8 @@ authorization from the authors. <field name="requestMinor" type="CARD8" /> </event> - <event name="ControlsNotify" number="3" no-sequence-number="true"> + <event name="ControlsNotify" number="3"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="numGroups" type="CARD8" /> @@ -2679,9 +2528,8 @@ authorization from the authors. <pad bytes="4" /> </event> - <event name="IndicatorStateNotify" number="4" no-sequence-number="true"> + <event name="IndicatorStateNotify" number="4"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <pad bytes="3" /> @@ -2690,9 +2538,8 @@ authorization from the authors. <pad bytes="12" /> </event> - <event name="IndicatorMapNotify" number="5" no-sequence-number="true"> + <event name="IndicatorMapNotify" number="5"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <pad bytes="3" /> @@ -2701,9 +2548,8 @@ authorization from the authors. <pad bytes="12" /> </event> - <event name="NamesNotify" number="6" no-sequence-number="true"> + <event name="NamesNotify" number="6"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <pad bytes="1" /> @@ -2723,9 +2569,8 @@ authorization from the authors. <pad bytes="4" /> </event> - <event name="CompatMapNotify" number="7" no-sequence-number="true"> + <event name="CompatMapNotify" number="7"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="changedGroups" type="CARD8" mask="SetOfGroup" /> @@ -2735,9 +2580,8 @@ authorization from the authors. <pad bytes="16" /> </event> - <event name="BellNotify" number="8" no-sequence-number="true"> + <event name="BellNotify" number="8"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="bellClass" type="CARD8" enum="BellClassResult" /> @@ -2751,9 +2595,8 @@ authorization from the authors. <pad bytes="7" /> </event> - <event name="ActionMessage" number="9" no-sequence-number="true"> + <event name="ActionMessage" number="9"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="keycode" type="KEYCODE" /> @@ -2767,9 +2610,8 @@ authorization from the authors. <pad bytes="10" /> </event> - <event name="AccessXNotify" number="10" no-sequence-number="true"> + <event name="AccessXNotify" number="10"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <field name="keycode" type="KEYCODE" /> @@ -2779,15 +2621,14 @@ authorization from the authors. <pad bytes="16" /> </event> - <event name="ExtensionDeviceNotify" number="11" no-sequence-number="true"> + <event name="ExtensionDeviceNotify" number="11"> <field name="xkbType" type="CARD8" /> - <field name="sequence" type="CARD16" /> <field name="time" type="TIMESTAMP" /> <field name="deviceID" type="CARD8" /> <pad bytes="1" /> <field name="reason" type="CARD16" mask="XIFeature" /> <field name="ledClass" type="CARD16" enum="LedClassResult" /> - <field name="ledID" type="CARD8" /> + <field name="ledID" type="CARD16" /> <field name="ledsDefined" type="CARD32" /> <field name="ledState" type="CARD32" /> <field name="firstButton" type="CARD8" /> diff --git a/src/xproto.xml b/src/xproto.xml index bf4dcbf..0779568 100644 --- a/src/xproto.xml +++ b/src/xproto.xml @@ -889,74 +889,74 @@ A timestamp of the server time when the property was changed. <enum name="Atom"> <item name="None"> <value>0</value></item> <item name="Any"> <value>0</value></item> - <item name="PRIMARY" /> - <item name="SECONDARY" /> - <item name="ARC" /> - <item name="ATOM" /> - <item name="BITMAP" /> - <item name="CARDINAL" /> - <item name="COLORMAP" /> - <item name="CURSOR" /> - <item name="CUT_BUFFER0" /> - <item name="CUT_BUFFER1" /> - <item name="CUT_BUFFER2" /> - <item name="CUT_BUFFER3" /> - <item name="CUT_BUFFER4" /> - <item name="CUT_BUFFER5" /> - <item name="CUT_BUFFER6" /> - <item name="CUT_BUFFER7" /> - <item name="DRAWABLE" /> - <item name="FONT" /> - <item name="INTEGER" /> - <item name="PIXMAP" /> - <item name="POINT" /> - <item name="RECTANGLE" /> - <item name="RESOURCE_MANAGER" /> - <item name="RGB_COLOR_MAP" /> - <item name="RGB_BEST_MAP" /> - <item name="RGB_BLUE_MAP" /> - <item name="RGB_DEFAULT_MAP" /> - <item name="RGB_GRAY_MAP" /> - <item name="RGB_GREEN_MAP" /> - <item name="RGB_RED_MAP" /> - <item name="STRING" /> - <item name="VISUALID" /> - <item name="WINDOW" /> - <item name="WM_COMMAND" /> - <item name="WM_HINTS" /> - <item name="WM_CLIENT_MACHINE" /> - <item name="WM_ICON_NAME" /> - <item name="WM_ICON_SIZE" /> - <item name="WM_NAME" /> - <item name="WM_NORMAL_HINTS" /> - <item name="WM_SIZE_HINTS" /> - <item name="WM_ZOOM_HINTS" /> - <item name="MIN_SPACE" /> - <item name="NORM_SPACE" /> - <item name="MAX_SPACE" /> - <item name="END_SPACE" /> - <item name="SUPERSCRIPT_X" /> - <item name="SUPERSCRIPT_Y" /> - <item name="SUBSCRIPT_X" /> - <item name="SUBSCRIPT_Y" /> - <item name="UNDERLINE_POSITION" /> - <item name="UNDERLINE_THICKNESS" /> - <item name="STRIKEOUT_ASCENT" /> - <item name="STRIKEOUT_DESCENT" /> - <item name="ITALIC_ANGLE" /> - <item name="X_HEIGHT" /> - <item name="QUAD_WIDTH" /> - <item name="WEIGHT" /> - <item name="POINT_SIZE" /> - <item name="RESOLUTION" /> - <item name="COPYRIGHT" /> - <item name="NOTICE" /> - <item name="FONT_NAME" /> - <item name="FAMILY_NAME" /> - <item name="FULL_NAME" /> - <item name="CAP_HEIGHT" /> - <item name="WM_CLASS" /> - <item name="WM_TRANSIENT_FOR" /> + <item name="PRIMARY"> <value>1</value> </item> + <item name="SECONDARY"> <value>2</value> </item> + <item name="ARC"> <value>3</value> </item> + <item name="ATOM"> <value>4</value> </item> + <item name="BITMAP"> <value>5</value> </item> + <item name="CARDINAL"> <value>6</value> </item> + <item name="COLORMAP"> <value>7</value> </item> + <item name="CURSOR"> <value>8</value> </item> + <item name="CUT_BUFFER0"> <value>9</value> </item> + <item name="CUT_BUFFER1"> <value>10</value> </item> + <item name="CUT_BUFFER2"> <value>11</value> </item> + <item name="CUT_BUFFER3"> <value>12</value> </item> + <item name="CUT_BUFFER4"> <value>13</value> </item> + <item name="CUT_BUFFER5"> <value>14</value> </item> + <item name="CUT_BUFFER6"> <value>15</value> </item> + <item name="CUT_BUFFER7"> <value>16</value> </item> + <item name="DRAWABLE"> <value>17</value> </item> + <item name="FONT"> <value>18</value> </item> + <item name="INTEGER"> <value>19</value> </item> + <item name="PIXMAP"> <value>20</value> </item> + <item name="POINT"> <value>21</value> </item> + <item name="RECTANGLE"> <value>22</value> </item> + <item name="RESOURCE_MANAGER"> <value>23</value> </item> + <item name="RGB_COLOR_MAP"> <value>24</value> </item> + <item name="RGB_BEST_MAP"> <value>25</value> </item> + <item name="RGB_BLUE_MAP"> <value>26</value> </item> + <item name="RGB_DEFAULT_MAP"> <value>27</value> </item> + <item name="RGB_GRAY_MAP"> <value>28</value> </item> + <item name="RGB_GREEN_MAP"> <value>29</value> </item> + <item name="RGB_RED_MAP"> <value>30</value> </item> + <item name="STRING"> <value>31</value> </item> + <item name="VISUALID"> <value>32</value> </item> + <item name="WINDOW"> <value>33</value> </item> + <item name="WM_COMMAND"> <value>34</value> </item> + <item name="WM_HINTS"> <value>35</value> </item> + <item name="WM_CLIENT_MACHINE"> <value>36</value> </item> + <item name="WM_ICON_NAME"> <value>37</value> </item> + <item name="WM_ICON_SIZE"> <value>38</value> </item> + <item name="WM_NAME"> <value>39</value> </item> + <item name="WM_NORMAL_HINTS"> <value>40</value> </item> + <item name="WM_SIZE_HINTS"> <value>41</value> </item> + <item name="WM_ZOOM_HINTS"> <value>42</value> </item> + <item name="MIN_SPACE"> <value>43</value> </item> + <item name="NORM_SPACE"> <value>44</value> </item> + <item name="MAX_SPACE"> <value>45</value> </item> + <item name="END_SPACE"> <value>46</value> </item> + <item name="SUPERSCRIPT_X"> <value>47</value> </item> + <item name="SUPERSCRIPT_Y"> <value>48</value> </item> + <item name="SUBSCRIPT_X"> <value>49</value> </item> + <item name="SUBSCRIPT_Y"> <value>50</value> </item> + <item name="UNDERLINE_POSITION"> <value>51</value> </item> + <item name="UNDERLINE_THICKNESS"> <value>52</value> </item> + <item name="STRIKEOUT_ASCENT"> <value>53</value> </item> + <item name="STRIKEOUT_DESCENT"> <value>54</value> </item> + <item name="ITALIC_ANGLE"> <value>55</value> </item> + <item name="X_HEIGHT"> <value>56</value> </item> + <item name="QUAD_WIDTH"> <value>57</value> </item> + <item name="WEIGHT"> <value>58</value> </item> + <item name="POINT_SIZE"> <value>59</value> </item> + <item name="RESOLUTION"> <value>60</value> </item> + <item name="COPYRIGHT"> <value>61</value> </item> + <item name="NOTICE"> <value>62</value> </item> + <item name="FONT_NAME"> <value>63</value> </item> + <item name="FAMILY_NAME"> <value>64</value> </item> + <item name="FULL_NAME"> <value>65</value> </item> + <item name="CAP_HEIGHT"> <value>66</value> </item> + <item name="WM_CLASS"> <value>67</value> </item> + <item name="WM_TRANSIENT_FOR"> <value>68</value> </item> </enum> <event name="SelectionRequest" number="30"> @@ -1080,7 +1080,21 @@ The number of keycodes altered. </doc> </event> - + <event name="GeGeneric" number="35" xge="true"> + <pad bytes="22" /> + <doc> + <brief>generic event (with length)</brief> + <field name="extension"><![CDATA[ +The major opcode of the extension creating this event + ]]></field> + <field name="length"><![CDATA[ +The amount (in 4-byte units) of data beyond 32 bytes + ]]></field> + <field name="evtype"><![CDATA[ +The extension-specific event type + ]]></field> + </doc> + </event> <!-- Core error types --> @@ -3404,7 +3418,7 @@ The number of characters in `string`. <field name="string"><![CDATA[ The text to get text extents for. ]]></field> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified graphics context does not exist. ]]></error> <error type="Font"><![CDATA[ @@ -3953,7 +3967,7 @@ example. <error type="Font"><![CDATA[ TODO: reasons? ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ TODO: reasons? ]]></error> <error type="Match"><![CDATA[ @@ -4012,7 +4026,7 @@ The X server could not allocate the requested resources (no memory?). Destroys the specified `gc` and all associated storage. ]]></description> <field name="gc"><![CDATA[The graphics context to destroy.]]></field> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified graphics context does not exist. ]]></error> </doc> @@ -4073,7 +4087,7 @@ The height of the area to copy (in pixels). <error type="Drawable"><![CDATA[ The specified `drawable` (Window or Pixmap) does not exist. ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified graphics context does not exist. ]]></error> <error type="Match"><![CDATA[ @@ -4162,7 +4176,7 @@ An array of points. <error type="Drawable"><![CDATA[ TODO: reasons? ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ TODO: reasons? ]]></error> <error type="Match"><![CDATA[ @@ -4216,7 +4230,7 @@ An array of `xcb_segment_t` structures. <error type="Drawable"><![CDATA[ The specified `drawable` does not exist. ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified `gc` does not exist. ]]></error> <error type="Match"><![CDATA[ @@ -4294,7 +4308,7 @@ The rectangles to fill. <error type="Drawable"><![CDATA[ The specified `drawable` (Window or Pixmap) does not exist. ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified graphics context does not exist. ]]></error> <error type="Match"><![CDATA[ @@ -4417,7 +4431,7 @@ background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask. <error type="Drawable"><![CDATA[ The specified `drawable` (Window or Pixmap) does not exist. ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified graphics context does not exist. ]]></error> <error type="Match"><![CDATA[ @@ -4475,7 +4489,7 @@ background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask. <error type="Drawable"><![CDATA[ The specified `drawable` (Window or Pixmap) does not exist. ]]></error> - <error type="GC"><![CDATA[ + <error type="GContext"><![CDATA[ The specified graphics context does not exist. ]]></error> <error type="Match"><![CDATA[ diff --git a/src/xtest.xml b/src/xtest.xml index 7f0b262..085d3a3 100644 --- a/src/xtest.xml +++ b/src/xtest.xml @@ -27,8 +27,7 @@ authorization from the authors. --> <xcb header="xtest" extension-xname="XTEST" extension-name="Test" - major-version="2" minor-version="1"> - <!-- Conforms to XTEST 2.1 --> + major-version="2" minor-version="2"> <import>xproto</import> @@ -44,13 +44,13 @@ authorization from the authors. </enum> <enum name="ImageFormatInfoType"> - <item name="RGB" /> - <item name="YUV" /> + <item name="RGB"> <value>0</value> </item> + <item name="YUV"> <value>1</value> </item> </enum> <enum name="ImageFormatInfoFormat"> - <item name="Packed" /> - <item name="Planar" /> + <item name="Packed"> <value>0</value> </item> + <item name="Planar"> <value>1</value> </item> </enum> <enum name="AttributeFlag"> @@ -59,25 +59,25 @@ authorization from the authors. </enum> <enum name="VideoNotifyReason"> - <item name="Started" /> - <item name="Stopped" /> - <item name="Busy" /> - <item name="Preempted" /> - <item name="HardError" /> + <item name="Started"> <value>0</value> </item> + <item name="Stopped"> <value>1</value> </item> + <item name="Busy"> <value>2</value> </item> + <item name="Preempted"> <value>3</value> </item> + <item name="HardError"> <value>4</value> </item> </enum> <enum name="ScanlineOrder"> - <item name="TopToBottom" /> - <item name="BottomToTop" /> + <item name="TopToBottom"> <value>0</value> </item> + <item name="BottomToTop"> <value>1</value> </item> </enum> <enum name="GrabPortStatus"> - <item name="Success" /> - <item name="BadExtension" /> - <item name="AlreadyGrabbed" /> - <item name="InvalidTime" /> - <item name="BadReply" /> - <item name="BadAlloc" /> + <item name="Success"> <value>0</value> </item> + <item name="BadExtension"> <value>1</value> </item> + <item name="AlreadyGrabbed"> <value>2</value> </item> + <item name="InvalidTime"> <value>3</value> </item> + <item name="BadReply"> <value>4</value> </item> + <item name="BadAlloc"> <value>5</value> </item> </enum> <struct name="Rational"> @@ -112,10 +112,6 @@ authorization from the authors. <field type="CARD16" name="name_size" /> <field type="CARD16" name="width" /> <field type="CARD16" name="height" /> - <!-- - Some versions of Xvproto.h incorrectly have - this padding after "rate". - --> <pad bytes="2" /> <field type="Rational" name="rate" /> <list type="char" name="name"> @@ -234,10 +230,6 @@ authorization from the authors. <reply> <pad bytes="1" /> <field type="CARD16" name="num_encodings" /> - <!-- - In Xvproto.h this padding is 24 bytes - in actuality it is 22 bytes - --> <pad bytes="22" /> <list type="EncodingInfo" name="info"> <fieldref>num_encodings</fieldref> |