diff --git a/Makefile.in b/Makefile.in index 15bb7acfc3646369bb737b8bf17eae3e081e062a..903b556afd0b77dd0f9cc3895c000638f9000d00 100644 --- a/Makefile.in +++ b/Makefile.in @@ -322,7 +322,6 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -VALGRIND = @VALGRIND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ diff --git a/README.OpenSource b/README.OpenSource index 6d04882383756c426906ab172318ae81f191765c..4ad4bb8b2297014c372e0d04bf2aa09fbc2f20cb 100755 --- a/README.OpenSource +++ b/README.OpenSource @@ -1,11 +1,11 @@ [ { - "Name":"openEuler:libevdev", + "Name":"libevdev", "License":"MIT License", "License File":"COPYING", - "Version Number":"1.13.0-1.oe2203sp3", + "Version Number":"1.13.1", "Owner":"gaoshangqi1@huawei.com", - "Upstream URL":"https://repo.openeuler.org/openEuler-22.03-LTS-SP3/source/Packages/libevdev-1.13.0-1.oe2203sp3.src.rpm", + "Upstream URL":"https://gitlab.freedesktop.org/libevdev/libevdev", "Description": "libevdev is a wrapper library for evdev devices. it moves the common tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, et" } ] diff --git a/configure b/configure index ea3299634d3a707eeec22d8fa5003cc26db0eb01..16e89e4da6431cc1bcb1f8fb52544a8c1f9189e7 100755 --- a/configure +++ b/configure @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libevdev 1.13.0. +# Generated by GNU Autoconf 2.71 for libevdev 1.13.1. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -276,7 +276,7 @@ then : printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev +$0: https://gitlab.freedesktop.org/libevdev/libevdev/issues/ $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do @@ -622,9 +622,9 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libevdev' PACKAGE_TARNAME='libevdev' -PACKAGE_VERSION='1.13.0' -PACKAGE_STRING='libevdev 1.13.0' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev' +PACKAGE_VERSION='1.13.1' +PACKAGE_STRING='libevdev 1.13.1' +PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/libevdev/libevdev/issues/' PACKAGE_URL='http://freedesktop.org/wiki/Software/libevdev/' ac_unique_file="libevdev/libevdev.c" @@ -689,9 +689,6 @@ ENABLE_STATIC_LINK_TEST_FALSE ENABLE_STATIC_LINK_TEST_TRUE ENABLE_RUNTIME_TESTS_FALSE ENABLE_RUNTIME_TESTS_TRUE -HAVE_VALGRIND_FALSE -HAVE_VALGRIND_TRUE -VALGRIND CHECK_LIBS CHECK_CFLAGS PKG_CONFIG_LIBDIR @@ -1399,7 +1396,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libevdev 1.13.0 to adapt to many kinds of systems. +\`configure' configures libevdev 1.13.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1470,7 +1467,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libevdev 1.13.0:";; + short | recursive ) echo "Configuration of libevdev 1.13.1:";; esac cat <<\_ACEOF @@ -1534,7 +1531,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . libevdev home page: . _ACEOF ac_status=$? @@ -1599,7 +1596,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libevdev configure 1.13.0 +libevdev configure 1.13.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1817,7 +1814,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libevdev $as_me 1.13.0, which was +It was created by libevdev $as_me 1.13.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4386,7 +4383,7 @@ fi # Define the identity of the package. PACKAGE='libevdev' - VERSION='1.13.0' + VERSION='1.13.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -13226,64 +13223,10 @@ else printf "%s\n" "yes" >&6; } HAVE_CHECK="yes" fi -if test "x$HAVE_CHECK" = "xyes"; then - # Extract the first word of "valgrind", so it can be a program name with args. -set dummy valgrind; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_VALGRIND+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $VALGRIND in - [\\/]* | ?:[\\/]*) - ac_cv_path_VALGRIND="$VALGRIND" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_VALGRIND="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -VALGRIND=$ac_cv_path_VALGRIND -if test -n "$VALGRIND"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5 -printf "%s\n" "$VALGRIND" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -else +if test "x$HAVE_CHECK" != "xyes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: check not found - skipping building unit tests" >&5 printf "%s\n" "$as_me: WARNING: check not found - skipping building unit tests" >&2;} fi - if test "x$VALGRIND" != "x"; then - HAVE_VALGRIND_TRUE= - HAVE_VALGRIND_FALSE='#' -else - HAVE_VALGRIND_TRUE='#' - HAVE_VALGRIND_FALSE= -fi - if test "x$HAVE_CHECK" = "xyes"; then ENABLE_RUNTIME_TESTS_TRUE= ENABLE_RUNTIME_TESTS_FALSE='#' @@ -14092,10 +14035,6 @@ else am__EXEEXT_FALSE= fi -if test -z "${HAVE_VALGRIND_TRUE}" && test -z "${HAVE_VALGRIND_FALSE}"; then - as_fn_error $? "conditional \"HAVE_VALGRIND\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${ENABLE_RUNTIME_TESTS_TRUE}" && test -z "${ENABLE_RUNTIME_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_RUNTIME_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -14510,7 +14449,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libevdev $as_me 1.13.0, which was +This file was extended by libevdev $as_me 1.13.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14570,7 +14509,7 @@ $config_headers Configuration commands: $config_commands -Report bugs to . +Report bugs to . libevdev home page: ." _ACEOF @@ -14579,7 +14518,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libevdev config.status 1.13.0 +libevdev config.status 1.13.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 64f0911cbe068acc9203253e9c464a8318b12aae..96695b761c8e4c749554c5840de174aae731ceec 100644 --- a/configure.ac +++ b/configure.ac @@ -7,8 +7,8 @@ AC_PREREQ([2.62]) # change meson version too AC_INIT([libevdev], - [1.13.0], - [https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev], + [1.13.1], + [https://gitlab.freedesktop.org/libevdev/libevdev/issues/], [libevdev], [http://freedesktop.org/wiki/Software/libevdev/]) @@ -59,12 +59,9 @@ AC_CHECK_LIB([m], [round]) PKG_PROG_PKG_CONFIG() PKG_CHECK_MODULES(CHECK, [check >= 0.9.9], [HAVE_CHECK="yes"], [HAVE_CHECK="no"]) -if test "x$HAVE_CHECK" = "xyes"; then - AC_PATH_PROG(VALGRIND, [valgrind]) -else +if test "x$HAVE_CHECK" != "xyes"; then AC_MSG_WARN([check not found - skipping building unit tests]) fi -AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"]) AM_CONDITIONAL(ENABLE_RUNTIME_TESTS, [test "x$HAVE_CHECK" = "xyes"]) AM_CONDITIONAL(ENABLE_STATIC_LINK_TEST, [test "x$enable_static" = "xyes"]) diff --git a/doc/Makefile.in b/doc/Makefile.in index 3311be097a54d79dbe587d933cba58d93f1fefea..37617704ba78b04a72ae9a7e8785ffb5f6904e26 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -238,7 +238,6 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -VALGRIND = @VALGRIND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ diff --git a/doc/html/backwardscompatibility.html b/doc/html/backwardscompatibility.html index 0e827980114445c0bc07c767fb0cb74f4fa4e3b3..3ae16205f91421e585dc392beb132caee2cabb71 100644 --- a/doc/html/backwardscompatibility.html +++ b/doc/html/backwardscompatibility.html @@ -6,7 +6,7 @@ - + libevdev: Compatibility and Behavior across kernel versions @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
-
Compatibility and Behavior across kernel versions
+
+
Compatibility and Behavior across kernel versions

This page describes libevdev's behavior when the build-time kernel and the run-time kernel differ in their feature set.

@@ -79,7 +86,7 @@ Minimum requirements

libevdev requires a 2.6.36 kernel as minimum. Specifically, it requires kernel-support for ABS_MT_SLOT.

Event and input property names

-

Event names and input property names are defined at build-time by the linux/input.h shipped with libevdev. The list of event names is compiled at build-time, any events not defined at build time will not resolve. Specifically, libevdev_event_code_get_name() for an undefined type or code will always return NULL. Likewise, libevdev_property_get_name() will return NULL for properties undefined at build-time.

+

Event names and input property names are defined at build-time by the linux/input.h shipped with libevdev. The list of event names is compiled at build-time, any events not defined at build time will not resolve. Specifically, libevdev_event_code_get_name() for an undefined type or code will always return NULL. Likewise, libevdev_property_get_name() will return NULL for properties undefined at build-time.

Input properties

If the kernel does not support input properties, specifically the EVIOCGPROPS ioctl, libevdev does not expose input properties to the caller. Specifically, libevdev_has_property() will always return 0 unless the property has been manually set with libevdev_enable_property().

@@ -102,7 +109,7 @@ SYN_DROPPED behavior diff --git a/doc/html/bc_sd.png b/doc/html/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 Binary files /dev/null and b/doc/html/bc_sd.png differ diff --git a/doc/html/deprecated.html b/doc/html/deprecated.html index c09f03d0861ddb48f256a4de4d718e549ac81604..73ce9be47d4e6ad37ebb3a16b7ed5ff1ddeee427 100644 --- a/doc/html/deprecated.html +++ b/doc/html/deprecated.html @@ -6,7 +6,7 @@ - + libevdev: Deprecated List @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
-
Deprecated List
+
+
Deprecated List
@@ -92,7 +99,7 @@ $(function() { diff --git a/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html b/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html index 1a9715446661deb144a1b77a58d41dcf0b3d0f5b..dbd0a87d08fc6f4f2150124b4123c8c696125a29 100644 --- a/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html +++ b/doc/html/dir_237a012ffe1a208b10d31c74b4ef545e.html @@ -6,9 +6,9 @@ - + - libevdev: /home/whot/code/libevdev/release/libevdev/build.kshdg2gGMS/libevdev Directory Reference + libevdev: /home/whot/code/libevdev/release/libevdev/build.yMRB87g7MV/libevdev Directory Reference @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
libevdev Directory Reference
+
libevdev Directory Reference
- - + - +

+

Files

file  libevdev-uinput.h [code]
file  libevdev-uinput.h [code]
 
file  libevdev.h [code]
file  libevdev.h [code]
 
@@ -95,7 +102,7 @@ Files diff --git a/doc/html/docd.png b/doc/html/docd.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c94fda9bf08ecc02c7190d968452b7a2dbf04b Binary files /dev/null and b/doc/html/docd.png differ diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css index ffbff0224931d970bd6092ba0ca5fe5b9b2bc2ea..8fee6182e10a075aafabfdc3a87862297d40d9c9 100644 --- a/doc/html/doxygen.css +++ b/doc/html/doxygen.css @@ -1,29 +1,360 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; +/* The standard CSS for doxygen 1.9.6*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.png'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.png'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); } -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; } /* @group Heading Levels */ -h1.groupheader { - font-size: 150%; -} - .title { - font: 400 14px/28px Roboto,sans-serif; + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; font-size: 150%; font-weight: bold; margin: 10px 2px; } +h1.groupheader { + font-size: 150%; +} + h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); font-size: 150%; font-weight: normal; margin-top: 1.75em; @@ -46,22 +377,13 @@ h1, h2, h3, h4, h5, h6 { } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + text-shadow: 0 0 15px var(--glow-color); } dt { font-weight: bold; } -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - p.startli, p.startdd { margin-top: 2px; } @@ -113,7 +435,6 @@ h3.version { } div.navtab { - border-right: 1px solid #A3B4D7; padding-right: 15px; text-align: right; line-height: 110%; @@ -127,16 +448,17 @@ td.navtab { padding-right: 6px; padding-left: 6px; } + td.navtabHL { - background-image: url('tab_a.png'); + background-image: var(--nav-gradient-active-image); background-repeat:repeat-x; padding-right: 6px; padding-left: 6px; } td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } a.navtab { @@ -148,7 +470,7 @@ div.qindex{ width: 100%; line-height: 140%; font-size: 130%; - color: #A0A0A0; + color: var(--index-separator-color); } dt.alphachar{ @@ -157,7 +479,7 @@ dt.alphachar{ } .alphachar a{ - color: black; + color: var(--index-header-color); } .alphachar a:hover, .alphachar a:visited{ @@ -176,8 +498,12 @@ dt.alphachar{ line-height: 1.15em; } +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + .classindex dl.odd { - background-color: #F8F9FC; + background-color: var(--index-odd-item-bg-color); } @media(min-width: 1120px) { @@ -196,23 +522,19 @@ dt.alphachar{ /* @group Link Styling */ a { - color: #3D578C; + color: var(--page-link-color); font-weight: normal; text-decoration: none; } .contents a:visited { - color: #4665A2; + color: var(--page-visited-link-color); } a:hover { text-decoration: underline; } -.contents a.qindexHL:visited { - color: #FFFFFF; -} - a.el { font-weight: bold; } @@ -221,12 +543,39 @@ a.elRef { } a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; + color: var(--code-link-color); } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } /* @end */ @@ -235,7 +584,17 @@ dl.el { } ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; } #side-nav ul { @@ -254,27 +613,29 @@ ul { } pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; - font-family: monospace, fixed; + font-family: var(--font-family-monospace); font-size: 105%; } div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); } div.line { - font-family: monospace, fixed; + font-family: var(--font-family-monospace); font-size: 13px; min-height: 13px; line-height: 1.0; @@ -306,24 +667,28 @@ div.line:after { } div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); } span.lineno { padding-right: 4px; + margin-right: 9px; text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); white-space: pre; } -span.lineno a { - background-color: #D8D8D8; +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); } span.lineno a:hover { - background-color: #C8C8C8; + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); } .lineno { @@ -335,24 +700,6 @@ span.lineno a:hover { user-select: none; } -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - div.classindex ul { list-style: none; padding-left: 0; @@ -374,8 +721,7 @@ div.groupText { } body { - background-color: white; - color: black; + color: var(--page-foreground-color); margin: 0; } @@ -385,29 +731,15 @@ div.contents { margin-right: 8px; } -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; +p.formulaDsp { + text-align: center; } -tr.memlist { - background-color: #EEF1F7; +img.dark-mode-visible { + display: none; } - -p.formulaDsp { - text-align: center; +img.light-mode-visible { + display: none; } img.formulaDsp { @@ -437,89 +769,70 @@ address.footer { img.footer { border: 0px; vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; } /* @group Code Colorization */ span.keyword { - color: #008000 + color: var(--code-keyword-color); } span.keywordtype { - color: #604020 + color: var(--code-type-keyword-color); } span.keywordflow { - color: #e08000 + color: var(--code-flow-keyword-color); } span.comment { - color: #800000 + color: var(--code-comment-color); } span.preprocessor { - color: #806020 + color: var(--code-preprocessor-color); } span.stringliteral { - color: #002080 + color: var(--code-string-literal-color); } span.charliteral { - color: #008080 + color: var(--code-char-literal-color); } span.vhdldigit { - color: #ff00ff + color: var(--code-vhdl-digit-color); } span.vhdlchar { - color: #000000 + color: var(--code-vhdl-char-color); } span.vhdlkeyword { - color: #700070 + color: var(--code-vhdl-keyword-color); } span.vhdllogic { - color: #ff0000 + color: var(--code-vhdl-logic-color); } blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); margin: 0 24px 0 4px; padding: 0 12px 0 16px; } -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - /* @end */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - td.tiny { font-size: 75%; } @@ -527,18 +840,19 @@ td.tiny { .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #A3B4D7; + border: 1px solid var(--table-cell-border-color); } th.dirtab { - background: #EBEFF6; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-weight: bold; } hr { height: 0px; border: none; - border-top: 1px solid #4A6AAA; + border-top: 1px solid var(--separator-color); } hr.footer { @@ -566,14 +880,14 @@ table.memberdecls { } .memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; + background-color: var(--memdecl-background-color); border: none; margin: 4px; padding: 1px 0 0 8px; @@ -581,11 +895,11 @@ table.memberdecls { .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; - color: #555; + color: var(--memdecl-foreground-color); } .memSeparator { - border-bottom: 1px solid #DEE4F0; + border-bottom: 1px solid var(--memdecl-separator-color); line-height: 1px; margin: 0px; padding: 0px; @@ -600,7 +914,7 @@ table.memberdecls { } .memTemplParams { - color: #4665A2; + color: var(--memdecl-template-color); white-space: nowrap; font-size: 80%; } @@ -613,15 +927,15 @@ table.memberdecls { .memtitle { padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; - background-image: url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat: repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); line-height: 1.25; font-weight: 300; float:left; @@ -636,20 +950,11 @@ table.memberdecls { .memtemplate { font-size: 80%; - color: #4665A2; + color: var(--memdef-template-color); font-weight: normal; margin-left: 9px; } -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - .mempage { width: 100%; } @@ -668,7 +973,7 @@ table.memberdecls { } .memitem.glow { - box-shadow: 0 0 15px cyan; + box-shadow: 0 0 15px var(--glow-color); } .memname { @@ -681,41 +986,32 @@ table.memberdecls { } .memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 0px 6px 0px; - color: #253555; + color: var(--memdef-proto-text-color); font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - } .overload { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 10px 2px 10px; - background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; - background-color: #FFFFFF; + background-color: var(--memdef-doc-background-color); /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; @@ -748,7 +1044,7 @@ dl.reflist dd { } .paramname { - color: #602020; + color: var(--memdef-param-name-color); white-space: nowrap; } .paramname em { @@ -761,20 +1057,20 @@ dl.reflist dd { .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; -} +} .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); vertical-align: top; } @@ -798,13 +1094,13 @@ span.mlabels { } span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); text-shadow: none; - color: white; + color: var(--label-foreground-color); margin-right: 4px; padding: 2px 3px; border-radius: 3px; @@ -821,8 +1117,8 @@ span.mlabel { div.directory { margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); width: 100%; } @@ -858,9 +1154,14 @@ div.directory { border-left: 1px solid rgba(0,0,0,0.05); } +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + .directory tr.even { padding-left: 6px; - background-color: #F7F8FB; + background-color: var(--index-even-item-bg-color); } .directory img { @@ -878,11 +1179,11 @@ div.directory { cursor: pointer; padding-left: 2px; padding-right: 2px; - color: #3D578C; + color: var(--page-link-color); } .arrow { - color: #9CAFD4; + color: var(--nav-arrow-color); -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; @@ -896,14 +1197,15 @@ div.directory { } .icon { - font-family: Arial, Helvetica; + font-family: var(--font-family-icon); + line-height: normal; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; - background-color: #728DC1; - color: white; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); text-align: center; border-radius: 4px; margin-left: 2px; @@ -942,17 +1244,13 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('doc.png'); + background-image:var(--icon-doc-image); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } -table.directory { - font: 400 14px Roboto,sans-serif; -} - /* @end */ div.dynheader { @@ -967,7 +1265,7 @@ div.dynheader { address { font-style: normal; - color: #2A3D61; + color: var(--footer-foreground-color); } table.doxtable caption { @@ -981,28 +1279,23 @@ table.doxtable { } table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { - /*width: 100%;*/ margin-bottom: 10px; - border: 1px solid #A8B8D9; + border: 1px solid var(--memdef-border-color); border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } @@ -1012,8 +1305,8 @@ table.fieldtable { .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); vertical-align: top; } @@ -1022,14 +1315,13 @@ table.fieldtable { } .fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ + border-bottom: 1px solid var(--memdef-border-color); } .fieldtable td.fielddoc p:first-child { margin-top: 0px; -} - +} + .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } @@ -1039,22 +1331,18 @@ table.fieldtable { } .fieldtable th { - background-image:url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); font-size: 90%; - color: #253555; + color: var(--memdef-proto-text-color); padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); } @@ -1062,7 +1350,7 @@ table.fieldtable { top: 0px; left: 10px; height: 36px; - background-image: url('tab_b.png'); + background-image: var(--nav-gradient-image); z-index: 101; overflow: hidden; font-size: 13px; @@ -1071,13 +1359,13 @@ table.fieldtable { .navpath ul { font-size: 11px; - background-image:url('tab_b.png'); + background-image: var(--nav-gradient-image); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); overflow:hidden; margin:0px; padding:0px; @@ -1089,10 +1377,10 @@ table.fieldtable { float:left; padding-left:10px; padding-right:15px; - background-image:url('bc_s.png'); + background-image:var(--nav-breadcrumb-image); background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--nav-foreground-color); } .navpath li.navelem a @@ -1101,15 +1389,16 @@ table.fieldtable { display:block; text-decoration: none; outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; } .navpath li.navelem a:hover { - color:#6884BD; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } .navpath li.footer @@ -1121,7 +1410,7 @@ table.fieldtable { background-image:none; background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--footer-foreground-color); font-size: 8pt; } @@ -1133,7 +1422,7 @@ div.summary padding-right: 5px; width: 50%; text-align: right; -} +} div.summary a { @@ -1148,7 +1437,7 @@ table.classindex margin-right: 3%; width: 94%; border: 0; - border-spacing: 0; + border-spacing: 0; padding: 0; } @@ -1166,11 +1455,11 @@ div.ingroups a div.header { - background-image:url('nav_h.png'); + background-image: var(--header-gradient-image); background-repeat:repeat-x; - background-color: #F9FAFC; + background-color: var(--header-background-color); margin: 0px; - border-bottom: 1px solid #C4CFE5; + border-bottom: 1px solid var(--header-separator-color); } div.headertitle @@ -1193,11 +1482,6 @@ dl.section { padding-left: 0px; } -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - dl.note { margin-left: -7px; padding-left: 3px; @@ -1205,16 +1489,6 @@ dl.note { border-color: #D0C000; } -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - dl.warning, dl.attention { margin-left: -7px; padding-left: 3px; @@ -1222,16 +1496,6 @@ dl.warning, dl.attention { border-color: #FF0000; } -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - dl.pre, dl.post, dl.invariant { margin-left: -7px; padding-left: 3px; @@ -1239,16 +1503,6 @@ dl.pre, dl.post, dl.invariant { border-color: #00D000; } -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - dl.deprecated { margin-left: -7px; padding-left: 3px; @@ -1256,16 +1510,6 @@ dl.deprecated { border-color: #505050; } -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - dl.todo { margin-left: -7px; padding-left: 3px; @@ -1273,16 +1517,6 @@ dl.todo { border-color: #00C0E0; } -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - dl.test { margin-left: -7px; padding-left: 3px; @@ -1290,16 +1524,6 @@ dl.test { border-color: #3030E0; } -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - dl.bug { margin-left: -7px; padding-left: 3px; @@ -1307,21 +1531,16 @@ dl.bug { border-color: #C08050; } -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - dl.section dd { margin-bottom: 6px; } +#projectrow +{ + height: 56px; +} + #projectlogo { text-align: center; @@ -1337,25 +1556,29 @@ dl.section dd { #projectalign { vertical-align: middle; + padding-left: 0.5em; } #projectname { - font: 300% Tahoma, Arial,sans-serif; + font-size: 200%; + font-family: var(--font-family-title); margin: 0px; padding: 2px 0px; } - + #projectbrief { - font: 120% Tahoma, Arial,sans-serif; + font-size: 90%; + font-family: var(--font-family-title); margin: 0px; padding: 0px; } #projectnumber { - font: 50% Tahoma, Arial,sans-serif; + font-size: 50%; + font-family: 50% var(--font-family-title); margin: 0px; padding: 0px; } @@ -1365,7 +1588,8 @@ dl.section dd { padding: 0px; margin: 0px; width: 100%; - border-bottom: 1px solid #5373B4; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); } .image @@ -1398,17 +1622,12 @@ dl.section dd { font-weight: bold; } -div.zoom -{ - border: 1px solid #90A5CE; -} - dl.citelist { margin-bottom:50px; } dl.citelist dt { - color:#334975; + color:var(--citation-label-color); float:left; font-weight:bold; margin-right:10px; @@ -1424,8 +1643,8 @@ dl.citelist dd { div.toc { padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); border-radius: 7px 7px 7px 7px; float: right; height: auto; @@ -1433,28 +1652,17 @@ div.toc { width: 200px; } -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + font: 10px/1.2 var(--font-family-toc); margin-top: 5px; padding-left: 10px; padding-top: 2px; } -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); border-bottom: 0 none; margin: 0; } @@ -1463,7 +1671,7 @@ div.toc ul { list-style: none outside none; border: medium none; padding: 0px; -} +} div.toc li.level1 { margin-left: 0px; @@ -1487,29 +1695,13 @@ span.emoji { */ } -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; +span.obfuscator { + display: none; } .inherit_header { font-weight: bold; - color: gray; + color: var(--inherit-header-color); cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; @@ -1541,11 +1733,12 @@ tr.heading h2 { #powerTip { cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; + box-shadow: var(--tooltip-shadow); display: none; font-size: smaller; max-width: 80%; @@ -1556,7 +1749,7 @@ tr.heading h2 { } #powerTip div.ttdoc { - color: grey; + color: var(--tooltip-doc-color); font-style: italic; } @@ -1564,18 +1757,24 @@ tr.heading h2 { font-weight: bold; } +#powerTip a { + color: var(--tooltip-link-color); +} + #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { - color: #006318; + color: var(--tooltip-declaration-color); } #powerTip div { margin: 0px; padding: 0px; - font: 12px/16px Roboto,sans-serif; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; } #powerTip:before, #powerTip:after { @@ -1620,12 +1819,12 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; + border-top-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } -#powerTip.n:before { - border-top-color: #808080; +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1648,13 +1847,13 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; + border-bottom-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; + border-bottom-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1675,13 +1874,13 @@ tr.heading h2 { left: 100%; } #powerTip.e:after { - border-left-color: #FFFFFF; + border-left-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { - border-left-color: #808080; + border-left-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1691,13 +1890,13 @@ tr.heading h2 { right: 100%; } #powerTip.w:after { - border-right-color: #FFFFFF; + border-right-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { - border-right-color: #808080; + border-right-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1731,7 +1930,7 @@ table.markdownTable { } table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } @@ -1739,8 +1938,8 @@ table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; @@ -1758,36 +1957,33 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -.DocNodeRTL { - text-align: right; - direction: rtl; +tt, code, kbd, samp +{ + display: inline-block; } +/* @end */ -.DocNodeLTR { - text-align: left; - direction: ltr; +u { + text-decoration: underline; } -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; +details>summary { + list-style-type: none; } -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; +details > summary::-webkit-details-marker { + display: none; } -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; } -/* @end */ -u { - text-decoration: underline; +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; } diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js index 3174bd7bebbfd7f0d536023e43f8bebf4f40faad..f579fbf3e2bb52ac037f1304107e2b43526e08c5 100644 --- a/doc/html/dynsections.js +++ b/doc/html/dynsections.js @@ -47,6 +47,8 @@ function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); } function toggleLevel(level) diff --git a/doc/html/files.html b/doc/html/files.html index 7a13e507faf3fc9fa13861ad8130dfcddb0db738..01580133478748dc2da73f696aac625b0474e7b7 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -6,7 +6,7 @@ - + libevdev: File List @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,20 +63,26 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
File List
+
File List
Here is a list of all files with brief descriptions:
[detail level 12]
- +
  libevdev
 libevdev-uinput.h
 libevdev-uinput.h
 libevdev.h
@@ -90,7 +97,7 @@ $(function() { diff --git a/doc/html/globals.html b/doc/html/globals.html index 23e6c8bd332ba394e81d954f4ebe8c9e2bddf59d..76a2978603bc8bad6887c48a58e2cb4cfe9d06c9 100644 --- a/doc/html/globals.html +++ b/doc/html/globals.html @@ -6,7 +6,7 @@ - + libevdev: Globals @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,348 +63,133 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
-

- l -

@@ -416,7 +202,7 @@ $(function() { diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html index c767211a8c025008701e5aaf2583de8a5105c751..fea5074f25bfdd41ee0201e10c796b1ed9e3a818 100644 --- a/doc/html/globals_defs.html +++ b/doc/html/globals_defs.html @@ -6,7 +6,7 @@ - + libevdev: Globals @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,19 +63,22 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
 
@@ -87,7 +91,7 @@ $(function() { diff --git a/doc/html/globals_enum.html b/doc/html/globals_enum.html index eb1b24a280b9a952e8bd0343563a443805fa5ecf..4baa40c8e43f8a810136330726539e1ac641d46c 100644 --- a/doc/html/globals_enum.html +++ b/doc/html/globals_enum.html @@ -6,7 +6,7 @@ - + libevdev: Globals @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,31 +63,26 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
 
@@ -99,7 +95,7 @@ $(function() { diff --git a/doc/html/globals_eval.html b/doc/html/globals_eval.html index aa6d5d3bf82e2d146dbe50bb78b64948302ffe65..63c1c8df37d2f33c143ecac8d5997b518c1df9e7 100644 --- a/doc/html/globals_eval.html +++ b/doc/html/globals_eval.html @@ -6,7 +6,7 @@ - + libevdev: Globals @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,55 +63,34 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
 
@@ -123,7 +103,7 @@ $(function() { diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html index 100ea4b840dcf99b6e624c453f007a359586c3c0..9dd0339574c84941d722c1dee413ce84735cabe6 100644 --- a/doc/html/globals_func.html +++ b/doc/html/globals_func.html @@ -6,7 +6,7 @@ - + libevdev: Globals @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,276 +63,109 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
  -

- l -

@@ -344,7 +178,7 @@ $(function() { diff --git a/doc/html/globals_type.html b/doc/html/globals_type.html index 07546a8c0d19015bf639153faa5de9bb3a0068c7..0aa7c90665123e733a68f3ea631888bf5742903e 100644 --- a/doc/html/globals_type.html +++ b/doc/html/globals_type.html @@ -6,7 +6,7 @@ - + libevdev: Globals @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,19 +63,22 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
 
@@ -87,7 +91,7 @@ $(function() { diff --git a/doc/html/group__bits.html b/doc/html/group__bits.html index fee63c548af8a2eeec3b6103bb5581ce8152585a..6457f1c543b7664ccced401e9373b53228adc093 100644 --- a/doc/html/group__bits.html +++ b/doc/html/group__bits.html @@ -6,7 +6,7 @@ - + libevdev: Querying device capabilities @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,33 +63,39 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
Querying device capabilities
+
Querying device capabilities

Abstraction functions to handle device capabilities, specifically device properties such as the name of the device and the bits representing the events supported by this device. More...

- - - - - - - - - - + + + + + + + + + @@ -106,39 +113,39 @@ Functions - + - + - + - + - + - - - + + + - + - + - +

+

Functions

const char * libevdev_get_name (const struct libevdev *dev)
 Retrieve the device's name, either as set by the caller or as read from the kernel. More...
 
const char * libevdev_get_phys (const struct libevdev *dev)
 Retrieve the device's physical location, either as set by the caller or as read from the kernel. More...
 
const char * libevdev_get_uniq (const struct libevdev *dev)
 Retrieve the device's unique identifier, either as set by the caller or as read from the kernel. More...
 
const char * libevdev_get_name (const struct libevdev *dev)
 Retrieve the device's name, either as set by the caller or as read from the kernel.
 
const char * libevdev_get_phys (const struct libevdev *dev)
 Retrieve the device's physical location, either as set by the caller or as read from the kernel.
 
const char * libevdev_get_uniq (const struct libevdev *dev)
 Retrieve the device's unique identifier, either as set by the caller or as read from the kernel.
 
int libevdev_get_id_product (const struct libevdev *dev)
 
int libevdev_get_id_vendor (const struct libevdev *dev)
int libevdev_has_event_code (const struct libevdev *dev, unsigned int type, unsigned int code)
 
int libevdev_get_abs_minimum (const struct libevdev *dev, unsigned int code)
 Get the minimum axis value for the given axis, as advertised by the kernel. More...
 Get the minimum axis value for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_maximum (const struct libevdev *dev, unsigned int code)
 Get the maximum axis value for the given axis, as advertised by the kernel. More...
 Get the maximum axis value for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_fuzz (const struct libevdev *dev, unsigned int code)
 Get the axis fuzz for the given axis, as advertised by the kernel. More...
 Get the axis fuzz for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_flat (const struct libevdev *dev, unsigned int code)
 Get the axis flat for the given axis, as advertised by the kernel. More...
 Get the axis flat for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_resolution (const struct libevdev *dev, unsigned int code)
 Get the axis resolution for the given axis, as advertised by the kernel. More...
 Get the axis resolution for the given axis, as advertised by the kernel.
 
const struct input_absinfo * libevdev_get_abs_info (const struct libevdev *dev, unsigned int code)
 Get the axis info for the given axis, as advertised by the kernel. More...
 
const struct input_absinfo * libevdev_get_abs_info (const struct libevdev *dev, unsigned int code)
 Get the axis info for the given axis, as advertised by the kernel.
 
int libevdev_get_event_value (const struct libevdev *dev, unsigned int type, unsigned int code)
 Behaviour of this function is undefined if the device does not provide the event. More...
 Behaviour of this function is undefined if the device does not provide the event.
 
int libevdev_fetch_event_value (const struct libevdev *dev, unsigned int type, unsigned int code, int *value)
 Fetch the current value of the event type. More...
 Fetch the current value of the event type.
 
int libevdev_get_repeat (const struct libevdev *dev, int *delay, int *period)
 Get the repeat delay and repeat period values for this device. More...
 Get the repeat delay and repeat period values for this device.
 

Detailed Description

Abstraction functions to handle device capabilities, specifically device properties such as the name of the device and the bits representing the events supported by this device.

The logical state returned may lag behind the physical state of the device. libevdev queries the device state on libevdev_set_fd() and then relies on the caller to parse events through libevdev_next_event(). If a caller does not use libevdev_next_event(), libevdev will not update the internal state of the device and thus returns outdated values.

Function Documentation

- -

◆ libevdev_fetch_event_value()

+ +

◆ libevdev_fetch_event_value()

@@ -177,8 +184,8 @@ Functions

Fetch the current value of the event type.

This is a shortcut for

-
-
val = libevdev_get_event_value(dev, t, c);
+
+
val = libevdev_get_event_value(dev, t, c);
int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)
int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)
Behaviour of this function is undefined if the device does not provide the event.
int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)
@@ -199,8 +206,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_abs_flat()

+ +

◆ libevdev_get_abs_flat()

@@ -238,8 +245,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_abs_fuzz()

+ +

◆ libevdev_get_abs_fuzz()

@@ -277,14 +284,14 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_abs_info()

+ +

◆ libevdev_get_abs_info()

- + @@ -316,8 +323,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_abs_maximum()

+ +

◆ libevdev_get_abs_maximum()

@@ -355,8 +362,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_abs_minimum()

+ +

◆ libevdev_get_abs_minimum()

@@ -394,8 +401,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_abs_resolution()

+ +

◆ libevdev_get_abs_resolution()

@@ -433,8 +440,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_driver_version()

+ +

◆ libevdev_get_driver_version()

@@ -459,8 +466,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_event_value()

+ +

◆ libevdev_get_event_value()

@@ -509,8 +516,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_id_bustype()

+ +

◆ libevdev_get_id_bustype()

@@ -535,8 +542,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_id_product()

+ +

◆ libevdev_get_id_product()

@@ -561,8 +568,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_id_vendor()

+ +

◆ libevdev_get_id_vendor()

@@ -587,8 +594,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_id_version()

+ +

◆ libevdev_get_id_version()

@@ -613,14 +620,14 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_name()

+ +

◆ libevdev_get_name()

const struct input_absinfo* libevdev_get_abs_info const struct input_absinfo * libevdev_get_abs_info ( const struct libevdev *  dev,
- + @@ -642,14 +649,14 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_phys()

+ +

◆ libevdev_get_phys()

const char* libevdev_get_name const char * libevdev_get_name ( const struct libevdev *  dev)
- + @@ -672,8 +679,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_repeat()

+ +

◆ libevdev_get_repeat()

@@ -720,14 +727,14 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_get_uniq()

+ +

◆ libevdev_get_uniq()

const char* libevdev_get_phys const char * libevdev_get_phys ( const struct libevdev *  dev)
- + @@ -749,8 +756,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_has_event_code()

+ +

◆ libevdev_has_event_code()

@@ -793,8 +800,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_has_event_type()

+ +

◆ libevdev_has_event_type()

@@ -830,8 +837,8 @@ The value for ABS_MT_ events is undefined, use -

◆ libevdev_has_property()

+ +

◆ libevdev_has_property()

@@ -878,7 +885,7 @@ The value for ABS_MT_ events is undefined, use diff --git a/doc/html/group__events.html b/doc/html/group__events.html index 85a48456e5ee0d046e2099d9e4c6f5c3f92453cc..74ac01b3d2bb3141a2759800db1f1df5538b5a8a 100644 --- a/doc/html/group__events.html +++ b/doc/html/group__events.html @@ -6,7 +6,7 @@ - + libevdev: Event handling @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,24 +63,30 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
Event handling
+
Event handling

Functions to handle events and fetch the current state of the event. More...

const char* libevdev_get_uniq const char * libevdev_get_uniq ( const struct libevdev *  dev)
- }

+

Enumerations

enum  libevdev_read_flag { LIBEVDEV_READ_FLAG_SYNC , LIBEVDEV_READ_FLAG_NORMAL @@ -92,21 +99,21 @@ Enumerations
 
- - + - +

+

Functions

int libevdev_next_event (struct libevdev *dev, unsigned int flags, struct input_event *ev)
 Get the next event from the device. More...
 Get the next event from the device.
 
int libevdev_has_event_pending (struct libevdev *dev)
 Check if there are events waiting for us. More...
 Check if there are events waiting for us.
 

Detailed Description

Functions to handle events and fetch the current state of the event.

libevdev updates its internal state as the event is processed and forwarded to the caller. Thus, the libevdev state of the device should always be identical to the caller's state. It may however lag behind the actual state of the device.

Enumeration Type Documentation

- -

◆ libevdev_read_flag

+ +

◆ libevdev_read_flag

@@ -117,20 +124,20 @@ Functions
- - - -
Enumerator
LIBEVDEV_READ_FLAG_SYNC 

Process data in sync mode.

+
Enumerator
LIBEVDEV_READ_FLAG_SYNC 

Process data in sync mode.

LIBEVDEV_READ_FLAG_NORMAL 

Process data in normal mode.

+
LIBEVDEV_READ_FLAG_NORMAL 

Process data in normal mode.

LIBEVDEV_READ_FLAG_FORCE_SYNC 

Pretend the next event is a SYN_DROPPED and require the caller to sync.

+
LIBEVDEV_READ_FLAG_FORCE_SYNC 

Pretend the next event is a SYN_DROPPED and require the caller to sync.

LIBEVDEV_READ_FLAG_BLOCKING 

The fd is not in O_NONBLOCK and a read may block.

+
LIBEVDEV_READ_FLAG_BLOCKING 

The fd is not in O_NONBLOCK and a read may block.

- -

◆ libevdev_read_status

+ +

◆ libevdev_read_status

@@ -141,10 +148,10 @@ Functions
- -

Function Documentation

- -

◆ libevdev_has_event_pending()

+ +

◆ libevdev_has_event_pending()

@@ -174,7 +181,8 @@ Functions

Check if there are events waiting for us.

This function does not read an event off the fd and may not access the fd at all. If there are events queued internally this function will return non-zero. If the internal queue is empty, this function will poll the file descriptor for data.

-

This is a convenience function for simple processes, most complex programs are expected to use select(2) or poll(2) on the file descriptor. The kernel guarantees that if data is available, it is a multiple of sizeof(struct input_event), and thus calling libevdev_next_event() when select(2) or poll(2) return is safe. You do not need libevdev_has_event_pending() if you're using select(2) or poll(2).

+

This is a convenience function for simple processes, most complex programs are expected to use select(2) or poll(2) on the file descriptor. The kernel guarantees that if data is available, it is a multiple of sizeof(struct +input_event), and thus calling libevdev_next_event() when select(2) or poll(2) return is safe. You do not need libevdev_has_event_pending() if you're using select(2) or poll(2).

Parameters
Enumerator
LIBEVDEV_READ_STATUS_SUCCESS 

libevdev_next_event() has finished without an error and an event is available for processing.

+
Enumerator
LIBEVDEV_READ_STATUS_SUCCESS 

libevdev_next_event() has finished without an error and an event is available for processing.

See also
libevdev_next_event
LIBEVDEV_READ_STATUS_SYNC 

Depending on the libevdev_next_event() read flag:

+
LIBEVDEV_READ_STATUS_SYNC 

Depending on the libevdev_next_event() read flag:

  • libevdev received a SYN_DROPPED from the device, and the caller should now resync the device, or,
  • an event has been read in sync mode.
  • @@ -156,8 +163,8 @@ Functions
@@ -193,8 +201,8 @@ Functions - -

◆ libevdev_next_event()

+ +

◆ libevdev_next_event()

@@ -263,7 +271,7 @@ Functions diff --git a/doc/html/group__init.html b/doc/html/group__init.html index c56b8045b40097b74442120f241bf31a39c52750..ade0daedc4565271df5e1036b91ca82ce11d896b 100644 --- a/doc/html/group__init.html +++ b/doc/html/group__init.html @@ -6,7 +6,7 @@ - + libevdev: Initialization and setup @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,49 +63,55 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
Initialization and setup
+
Initialization and setup

Initialization, initial setup and file descriptor handling. More...

devThe evdev device, already initialized with libevdev_set_fd()
-

+

Enumerations

enum  libevdev_grab_mode { LIBEVDEV_GRAB , LIBEVDEV_UNGRAB }
 
- - - - + + + - + - + - + - + - + @@ -115,22 +122,22 @@ Functions
struct libevdev *dev;
int err;
-
dev = libevdev_new();
+
dev = libevdev_new();
if (!dev)
return ENOMEM;
-
err = libevdev_set_fd(dev, fd);
+
err = libevdev_set_fd(dev, fd);
if (err < 0)
printf("Failed (errno %d): %s\n", -err, strerror(-err));
- -
struct libevdev * libevdev_new(void)
Initialize a new libevdev device.
+
int libevdev_set_fd(struct libevdev *dev, int fd)
Set the fd for this struct and initialize internal data.
+
struct libevdev * libevdev_new(void)
Initialize a new libevdev device.
void libevdev_free(struct libevdev *dev)
Clean up and free the libevdev struct.

libevdev_set_fd() is the central call and initializes the internal structs for the device at the given fd. libevdev functions will fail if called before libevdev_set_fd() unless documented otherwise.

Enumeration Type Documentation

- -

◆ libevdev_grab_mode

+ +

◆ libevdev_grab_mode

@@ -141,17 +148,17 @@ Functions

+

Functions

struct libevdev * libevdev_new (void)
 Initialize a new libevdev device. More...
 
struct libevdev * libevdev_new (void)
 Initialize a new libevdev device.
 
int libevdev_new_from_fd (int fd, struct libevdev **dev)
 Initialize a new libevdev device from the given fd. More...
 Initialize a new libevdev device from the given fd.
 
void libevdev_free (struct libevdev *dev)
 Clean up and free the libevdev struct. More...
 Clean up and free the libevdev struct.
 
int libevdev_grab (struct libevdev *dev, enum libevdev_grab_mode grab)
 Grab or ungrab the device through a kernel EVIOCGRAB. More...
 Grab or ungrab the device through a kernel EVIOCGRAB.
 
int libevdev_set_fd (struct libevdev *dev, int fd)
 Set the fd for this struct and initialize internal data. More...
 Set the fd for this struct and initialize internal data.
 
int libevdev_change_fd (struct libevdev *dev, int fd)
 Change the fd for this device, without re-reading the actual device. More...
 Change the fd for this device, without re-reading the actual device.
 
int libevdev_get_fd (const struct libevdev *dev)
 
- -
Enumerator
LIBEVDEV_GRAB 

Grab the device if not currently grabbed.

+
Enumerator
LIBEVDEV_GRAB 

Grab the device if not currently grabbed.

LIBEVDEV_UNGRAB 

Ungrab the device if currently grabbed.

+
LIBEVDEV_UNGRAB 

Ungrab the device if currently grabbed.

Function Documentation

- -

◆ libevdev_change_fd()

+ +

◆ libevdev_change_fd()

@@ -180,9 +187,9 @@ Functions

If the fd changes after initializing the device, for example after a VT-switch in the X.org X server, this function updates the internal fd to the newly opened. No check is made that new fd points to the same device. If the device has changed, libevdev's behavior is undefined.

libevdev does not sync itself after changing the fd and keeps the current device state. Use libevdev_next_event with the LIBEVDEV_READ_FLAG_FORCE_SYNC flag to force a re-sync.

The example code below illustrates how to force a re-sync of the library-internal state. Note that this code doesn't handle the events in the caller, it merely forces an update of the internal library state.

struct input_event ev;
-
libevdev_change_fd(dev, new_fd);
- - +
libevdev_change_fd(dev, new_fd);
+ +
; // noop
int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)
Get the next event from the device.
@ LIBEVDEV_READ_STATUS_SYNC
Depending on the libevdev_next_event() read flag:
Definition: libevdev.h:1090
@@ -204,8 +211,8 @@ Functions
- -

◆ libevdev_free()

+ +

◆ libevdev_free()

@@ -233,8 +240,8 @@ Functions
- -

◆ libevdev_get_fd()

+ +

◆ libevdev_get_fd()

@@ -259,8 +266,8 @@ Functions
- -

◆ libevdev_grab()

+ +

◆ libevdev_grab()

@@ -301,14 +308,14 @@ Functions
- -

◆ libevdev_new()

+ +

◆ libevdev_new()

- + @@ -319,15 +326,15 @@ Functions

Initialize a new libevdev device.

This function only allocates the required memory and initializes the struct to sane default values. To actually hook up the device to a kernel device, use libevdev_set_fd().

-

Memory allocated through libevdev_new() must be released by the caller with libevdev_free().

+

Memory allocated through libevdev_new() must be released by the caller with libevdev_free().

See also
libevdev_set_fd
libevdev_free
- -

◆ libevdev_new_from_fd()

+ +

◆ libevdev_new_from_fd()

@@ -355,8 +362,8 @@ Functions

Initialize a new libevdev device from the given fd.

This is a shortcut for

int err;
-
struct libevdev *dev = libevdev_new();
-
err = libevdev_set_fd(dev, fd);
+
struct libevdev *dev = libevdev_new();
+
err = libevdev_set_fd(dev, fd);
Parameters
struct libevdev* libevdev_new struct libevdev * libevdev_new ( void  )
@@ -369,8 +376,8 @@ Functions - -

◆ libevdev_set_fd()

+ +

◆ libevdev_set_fd()

@@ -397,7 +404,7 @@ Functions

Set the fd for this struct and initialize internal data.

The fd must be in O_RDONLY or O_RDWR mode.

-

This function may only be called once per device. If the device changed and you need to re-read a device, use libevdev_free() and libevdev_new(). If you need to change the fd after closing and re-opening the same device, use libevdev_change_fd().

+

This function may only be called once per device. If the device changed and you need to re-read a device, use libevdev_free() and libevdev_new(). If you need to change the fd after closing and re-opening the same device, use libevdev_change_fd().

A caller should ensure that any events currently pending on the fd are drained before the file descriptor is passed to libevdev for initialization. Due to how the kernel's ioctl handling works, the initial device state will reflect the current device state after applying all events currently pending on the fd. Thus, if the fd is not drained, the state visible to the caller will be inconsistent with the events immediately available on the device. This does not affect state-less events like EV_REL.

Unless otherwise specified, libevdev function behavior is undefined until a successful call to libevdev_set_fd().

Parameters
@@ -410,7 +417,7 @@ Functions
Returns
0 on success, or a negative errno on failure
See also
libevdev_change_fd
-libevdev_new
+libevdev_new
libevdev_free
@@ -427,7 +434,7 @@ Functions diff --git a/doc/html/group__kernel.html b/doc/html/group__kernel.html index 8e0c3b2fa729a02486e79c0d4e5d678afb5531da..73d944b7d03cc853e40f485ca977ff59bf17f018 100644 --- a/doc/html/group__kernel.html +++ b/doc/html/group__kernel.html @@ -6,7 +6,7 @@ - + libevdev: Modifying the appearance or capabilities of the device @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,40 +63,46 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
Modifying the appearance or capabilities of the device
+
Modifying the appearance or capabilities of the device

Modifying the set of events reported by this device. More...

fdA file descriptor to the device in O_RDWR or O_RDONLY mode.
-

+

Enumerations

enum  libevdev_led_value { LIBEVDEV_LED_ON , LIBEVDEV_LED_OFF }
 
- - + - + - + @@ -110,52 +117,52 @@ Functions - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

+

Functions

void libevdev_set_name (struct libevdev *dev, const char *name)
 Change the device's name as returned by libevdev_get_name(). More...
 Change the device's name as returned by libevdev_get_name().
 
void libevdev_set_phys (struct libevdev *dev, const char *phys)
 Change the device's physical location as returned by libevdev_get_phys(). More...
 Change the device's physical location as returned by libevdev_get_phys().
 
void libevdev_set_uniq (struct libevdev *dev, const char *uniq)
 Change the device's unique identifier as returned by libevdev_get_uniq(). More...
 Change the device's unique identifier as returned by libevdev_get_uniq().
 
void libevdev_set_id_product (struct libevdev *dev, int product_id)
 
int libevdev_disable_property (struct libevdev *dev, unsigned int prop)
 
int libevdev_set_event_value (struct libevdev *dev, unsigned int type, unsigned int code, int value)
 Set the value for a given event type and code. More...
 Set the value for a given event type and code.
 
int libevdev_set_slot_value (struct libevdev *dev, unsigned int slot, unsigned int code, int value)
 Set the value for a given code for the given slot. More...
 Set the value for a given code for the given slot.
 
void libevdev_set_abs_minimum (struct libevdev *dev, unsigned int code, int val)
 Change the minimum for the given EV_ABS event code, if the code exists. More...
 Change the minimum for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_maximum (struct libevdev *dev, unsigned int code, int val)
 Change the maximum for the given EV_ABS event code, if the code exists. More...
 Change the maximum for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_fuzz (struct libevdev *dev, unsigned int code, int val)
 Change the fuzz for the given EV_ABS event code, if the code exists. More...
 Change the fuzz for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_flat (struct libevdev *dev, unsigned int code, int val)
 Change the flat for the given EV_ABS event code, if the code exists. More...
 Change the flat for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_resolution (struct libevdev *dev, unsigned int code, int val)
 Change the resolution for the given EV_ABS event code, if the code exists. More...
 Change the resolution for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_info (struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)
 Change the abs info for the given EV_ABS event code, if the code exists. More...
 Change the abs info for the given EV_ABS event code, if the code exists.
 
int libevdev_enable_event_type (struct libevdev *dev, unsigned int type)
 Forcibly enable an event type on this device, even if the underlying device does not support it. More...
 Forcibly enable an event type on this device, even if the underlying device does not support it.
 
int libevdev_disable_event_type (struct libevdev *dev, unsigned int type)
 Forcibly disable an event type on this device, even if the underlying device provides it. More...
 Forcibly disable an event type on this device, even if the underlying device provides it.
 
int libevdev_enable_event_code (struct libevdev *dev, unsigned int type, unsigned int code, const void *data)
 Forcibly enable an event code on this device, even if the underlying device does not support it. More...
 Forcibly enable an event code on this device, even if the underlying device does not support it.
 
int libevdev_disable_event_code (struct libevdev *dev, unsigned int type, unsigned int code)
 Forcibly disable an event code on this device, even if the underlying device provides it. More...
 Forcibly disable an event code on this device, even if the underlying device provides it.
 
int libevdev_kernel_set_abs_info (struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)
 Set the device's EV_ABS axis to the value defined in the abs parameter. More...
 Set the device's EV_ABS axis to the value defined in the abs parameter.
 
int libevdev_kernel_set_led_value (struct libevdev *dev, unsigned int code, enum libevdev_led_value value)
 Turn an LED on or off. More...
 Turn an LED on or off.
 
int libevdev_kernel_set_led_values (struct libevdev *dev,...)
 Turn multiple LEDs on or off simultaneously. More...
 Turn multiple LEDs on or off simultaneously.
 
int libevdev_set_clock_id (struct libevdev *dev, int clockid)
 Set the clock ID to be used for timestamps. More...
 Set the clock ID to be used for timestamps.
 

Detailed Description

@@ -164,8 +171,8 @@ Functions

Enabling an event type or code does not affect event reporting - a software-enabled event will not be generated by the physical hardware. Disabling an event will prevent libevdev from routing such events to the caller. Enabling and disabling event types and codes is at the library level and thus only affects the caller.

If an event type or code is enabled at kernel-level, future users of this device will see this event enabled. Currently there is no option of disabling an event type or code at kernel-level.

Enumeration Type Documentation

- -

◆ libevdev_led_value

+ +

◆ libevdev_led_value

@@ -176,17 +183,17 @@ Functions
- -
Enumerator
LIBEVDEV_LED_ON 

Turn the LED on.

+
Enumerator
LIBEVDEV_LED_ON 

Turn the LED on.

LIBEVDEV_LED_OFF 

Turn the LED off.

+
LIBEVDEV_LED_OFF 

Turn the LED off.

Function Documentation

- -

◆ libevdev_disable_event_code()

+ +

◆ libevdev_disable_event_code()

@@ -237,8 +244,8 @@ Functions
- -

◆ libevdev_disable_event_type()

+ +

◆ libevdev_disable_event_type()

@@ -282,8 +289,8 @@ Functions
- -

◆ libevdev_disable_property()

+ +

◆ libevdev_disable_property()

@@ -318,8 +325,8 @@ Functions
- -

◆ libevdev_enable_event_code()

+ +

◆ libevdev_enable_event_code()

@@ -380,8 +387,8 @@ Functions
- -

◆ libevdev_enable_event_type()

+ +

◆ libevdev_enable_event_type()

@@ -421,8 +428,8 @@ Functions
- -

◆ libevdev_enable_property()

+ +

◆ libevdev_enable_property()

@@ -458,8 +465,8 @@ Functions
- -

◆ libevdev_kernel_set_abs_info()

+ +

◆ libevdev_kernel_set_abs_info()

@@ -505,8 +512,8 @@ Functions
- -

◆ libevdev_kernel_set_led_value()

+ +

◆ libevdev_kernel_set_led_value()

@@ -552,8 +559,8 @@ Functions
- -

◆ libevdev_kernel_set_led_values()

+ +

◆ libevdev_kernel_set_led_values()

@@ -580,8 +587,8 @@ Functions

Turn multiple LEDs on or off simultaneously.

This function expects a pair of LED codes and values to set them to, terminated by a -1. For example, to switch the NumLock LED on but the CapsLock LED off, use:

-
-
LED_CAPSL, LIBEVDEV_LED_OFF,
+
+
LED_CAPSL, LIBEVDEV_LED_OFF,
-1);
int libevdev_kernel_set_led_values(struct libevdev *dev,...)
Turn multiple LEDs on or off simultaneously.
@ LIBEVDEV_LED_OFF
Turn the LED off.
Definition: libevdev.h:1921
@@ -599,8 +606,8 @@ Functions
- -

◆ libevdev_set_abs_flat()

+ +

◆ libevdev_set_abs_flat()

@@ -644,8 +651,8 @@ Functions
- -

◆ libevdev_set_abs_fuzz()

+ +

◆ libevdev_set_abs_fuzz()

@@ -689,8 +696,8 @@ Functions
- -

◆ libevdev_set_abs_info()

+ +

◆ libevdev_set_abs_info()

@@ -734,8 +741,8 @@ Functions
- -

◆ libevdev_set_abs_maximum()

+ +

◆ libevdev_set_abs_maximum()

@@ -779,8 +786,8 @@ Functions
- -

◆ libevdev_set_abs_minimum()

+ +

◆ libevdev_set_abs_minimum()

@@ -824,8 +831,8 @@ Functions
- -

◆ libevdev_set_abs_resolution()

+ +

◆ libevdev_set_abs_resolution()

@@ -869,8 +876,8 @@ Functions
- -

◆ libevdev_set_clock_id()

+ +

◆ libevdev_set_clock_id()

@@ -909,8 +916,8 @@ Functions
- -

◆ libevdev_set_event_value()

+ +

◆ libevdev_set_event_value()

@@ -981,8 +988,8 @@ Functions
- -

◆ libevdev_set_id_bustype()

+ +

◆ libevdev_set_id_bustype()

@@ -1017,8 +1024,8 @@ Functions
- -

◆ libevdev_set_id_product()

+ +

◆ libevdev_set_id_product()

@@ -1053,8 +1060,8 @@ Functions
- -

◆ libevdev_set_id_vendor()

+ +

◆ libevdev_set_id_vendor()

@@ -1089,8 +1096,8 @@ Functions
- -

◆ libevdev_set_id_version()

+ +

◆ libevdev_set_id_version()

@@ -1125,8 +1132,8 @@ Functions
- -

◆ libevdev_set_name()

+ +

◆ libevdev_set_name()

@@ -1151,8 +1158,8 @@ Functions
-

Change the device's name as returned by libevdev_get_name().

-

This function destroys the string previously returned by libevdev_get_name(), a caller must take care that no references are kept.

+

Change the device's name as returned by libevdev_get_name().

+

This function destroys the string previously returned by libevdev_get_name(), a caller must take care that no references are kept.

Parameters
@@ -1164,8 +1171,8 @@ Functions - -

◆ libevdev_set_phys()

+ +

◆ libevdev_set_phys()

@@ -1190,8 +1197,8 @@ Functions
devThe evdev device
-

Change the device's physical location as returned by libevdev_get_phys().

-

This function destroys the string previously returned by libevdev_get_phys(), a caller must take care that no references are kept.

+

Change the device's physical location as returned by libevdev_get_phys().

+

This function destroys the string previously returned by libevdev_get_phys(), a caller must take care that no references are kept.

Parameters
@@ -1203,8 +1210,8 @@ Functions - -

◆ libevdev_set_slot_value()

+ +

◆ libevdev_set_slot_value()

@@ -1272,8 +1279,8 @@ Functions
- -

◆ libevdev_set_uniq()

+ +

◆ libevdev_set_uniq()

@@ -1298,8 +1305,8 @@ Functions
devThe evdev device
-

Change the device's unique identifier as returned by libevdev_get_uniq().

-

This function destroys the string previously returned by libevdev_get_uniq(), a caller must take care that no references are kept.

+

Change the device's unique identifier as returned by libevdev_get_uniq().

+

This function destroys the string previously returned by libevdev_get_uniq(), a caller must take care that no references are kept.

Parameters
@@ -1322,7 +1329,7 @@ Functions diff --git a/doc/html/group__logging.html b/doc/html/group__logging.html index 74ee1c52110f8e5a2c4cb0752fa953c23f0e94b5..210a32002b5808dc767888a2f23a93e1a5a7299e 100644 --- a/doc/html/group__logging.html +++ b/doc/html/group__logging.html @@ -6,7 +6,7 @@ - + libevdev: Library logging facilities @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,9 +63,16 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -72,24 +80,23 @@ $(function() { Typedefs | Enumerations | Functions
-
-
Library logging facilities
+
Library logging facilities

libevdev provides two methods of logging library-internal messages. More...

devThe evdev device
- - + - +

+

Typedefs

typedef void(* libevdev_log_func_t) (enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)
 Logging function called by library-internal logging. More...
 Logging function called by library-internal logging.
 
typedef void(* libevdev_device_log_func_t) (const struct libevdev *dev, enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)
 Logging function called by library-internal logging for a specific libevdev context. More...
 Logging function called by library-internal logging for a specific libevdev context.
 
- }

+

Enumerations

enum  libevdev_log_priority { LIBEVDEV_LOG_ERROR , LIBEVDEV_LOG_INFO @@ -97,19 +104,19 @@ Enumerations
 
- - + - + - + - +

+

Functions

void libevdev_set_log_function (libevdev_log_func_t logfunc, void *data)
 Set a printf-style logging handler for library-internal logging. More...
 Set a printf-style logging handler for library-internal logging.
 
void libevdev_set_log_priority (enum libevdev_log_priority priority)
 Define the minimum level to be printed to the log handler. More...
 Define the minimum level to be printed to the log handler.
 
enum libevdev_log_priority libevdev_get_log_priority (void)
 Return the current log priority level. More...
 Return the current log priority level.
 
void libevdev_set_device_log_function (struct libevdev *dev, libevdev_device_log_func_t logfunc, enum libevdev_log_priority priority, void *data)
 Set a printf-style logging handler for library-internal logging for this device context. More...
 Set a printf-style logging handler for library-internal logging for this device context.
 

Detailed Description

@@ -120,8 +127,8 @@ Functions
A context-specific handler cannot be used for libevdev's uinput devices. uinput device creation must use the global log handler.

Typedef Documentation

- -

◆ libevdev_device_log_func_t

+ +

◆ libevdev_device_log_func_t

@@ -152,8 +159,8 @@ A context-specific handler cannot be used for libevdev's uinput devices.
- -

◆ libevdev_log_func_t

+ +

◆ libevdev_log_func_t

@@ -183,8 +190,8 @@ A context-specific handler cannot be used for libevdev's uinput devices.

Enumeration Type Documentation

-
-

◆ libevdev_log_priority

+ +

◆ libevdev_log_priority

Function Documentation

-
-

◆ libevdev_get_log_priority()

+ +

◆ libevdev_get_log_priority()

@@ -229,8 +236,8 @@ A context-specific handler cannot be used for libevdev's uinput devices.
- -

◆ libevdev_set_device_log_function()

+ +

◆ libevdev_set_device_log_function()

@@ -284,8 +291,8 @@ A context-specific handler cannot be used for libevdev's uinput devices.
- -

◆ libevdev_set_log_function()

+ +

◆ libevdev_set_log_function()

@@ -325,8 +332,8 @@ A context-specific handler cannot be used for libevdev's uinput devices.
- -

◆ libevdev_set_log_priority()

+ +

◆ libevdev_set_log_priority()

@@ -364,7 +371,7 @@ A context-specific handler cannot be used for libevdev's uinput devices. diff --git a/doc/html/group__misc.html b/doc/html/group__misc.html index 0b0541b16062f37ed3603394b2d91a82c70acba7..512764888927f9b62c08c2f5ce07748c019f070c 100644 --- a/doc/html/group__misc.html +++ b/doc/html/group__misc.html @@ -6,7 +6,7 @@ - + libevdev: Miscellaneous helper functions @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,84 +63,90 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
Miscellaneous helper functions
+
Miscellaneous helper functions

Functions for printing or querying event ranges. More...

- - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - +

+

Functions

int libevdev_event_is_type (const struct input_event *ev, unsigned int type)
 Helper function to check if an event is of a specific type. More...
 Helper function to check if an event is of a specific type.
 
int libevdev_event_is_code (const struct input_event *ev, unsigned int type, unsigned int code)
 Helper function to check if an event is of a specific type and code. More...
 Helper function to check if an event is of a specific type and code.
 
const char * libevdev_event_type_get_name (unsigned int type)
 
const char * libevdev_event_code_get_name (unsigned int type, unsigned int code)
 
const char * libevdev_event_value_get_name (unsigned int type, unsigned int code, int value)
 This function resolves the event value for a code. More...
 
const char * libevdev_property_get_name (unsigned int prop)
 
const char * libevdev_event_type_get_name (unsigned int type)
 
const char * libevdev_event_code_get_name (unsigned int type, unsigned int code)
 
const char * libevdev_event_value_get_name (unsigned int type, unsigned int code, int value)
 This function resolves the event value for a code.
 
const char * libevdev_property_get_name (unsigned int prop)
 
int libevdev_event_type_get_max (unsigned int type)
 
int libevdev_event_type_from_name (const char *name)
 Look up an event-type by its name. More...
 Look up an event-type by its name.
 
int libevdev_event_type_from_name_n (const char *name, size_t len)
 Look up an event-type by its name. More...
 Look up an event-type by its name.
 
int libevdev_event_code_from_name (unsigned int type, const char *name)
 Look up an event code by its type and name. More...
 Look up an event code by its type and name.
 
int libevdev_event_code_from_name_n (unsigned int type, const char *name, size_t len)
 Look up an event code by its type and name. More...
 Look up an event code by its type and name.
 
int libevdev_event_value_from_name (unsigned int type, unsigned int code, const char *name)
 Look up an event value by its type, code and name. More...
 Look up an event value by its type, code and name.
 
int libevdev_event_type_from_code_name (const char *name)
 Look up an event type for a event code name. More...
 Look up an event type for a event code name.
 
int libevdev_event_type_from_code_name_n (const char *name, size_t len)
 Look up an event type for a event code name. More...
 Look up an event type for a event code name.
 
int libevdev_event_code_from_code_name (const char *name)
 Look up an event code by its name. More...
 Look up an event code by its name.
 
int libevdev_event_code_from_code_name_n (const char *name, size_t len)
 Look up an event code by its name. More...
 Look up an event code by its name.
 
int libevdev_event_value_from_name_n (unsigned int type, unsigned int code, const char *name, size_t len)
 Look up an event value by its type, code and name. More...
 Look up an event value by its type, code and name.
 
int libevdev_property_from_name (const char *name)
 Look up an input property by its name. More...
 Look up an input property by its name.
 
int libevdev_property_from_name_n (const char *name, size_t len)
 Look up an input property by its name. More...
 Look up an input property by its name.
 

Detailed Description

Functions for printing or querying event ranges.

The list of names is compiled into libevdev and is independent of the run-time kernel. Likewise, the max for each event type is compiled in and does not check the kernel at run-time.

Function Documentation

- -

◆ libevdev_event_code_from_code_name()

+ +

◆ libevdev_event_code_from_code_name()

@@ -167,8 +174,8 @@ Functions
- -

◆ libevdev_event_code_from_code_name_n()

+ +

◆ libevdev_event_code_from_code_name_n()

@@ -207,8 +214,8 @@ Functions
- -

◆ libevdev_event_code_from_name()

+ +

◆ libevdev_event_code_from_name()

@@ -247,8 +254,8 @@ Functions
- -

◆ libevdev_event_code_from_name_n()

+ +

◆ libevdev_event_code_from_name_n()

@@ -294,14 +301,14 @@ Functions
- -

◆ libevdev_event_code_get_name()

+ +

◆ libevdev_event_code_get_name()

- + @@ -331,8 +338,8 @@ Functions - -

◆ libevdev_event_is_code()

+ +

◆ libevdev_event_is_code()

@@ -379,8 +386,8 @@ Functions
- -

◆ libevdev_event_is_type()

+ +

◆ libevdev_event_is_type()

@@ -420,8 +427,8 @@ Functions
- -

◆ libevdev_event_type_from_code_name()

+ +

◆ libevdev_event_type_from_code_name()

@@ -449,8 +456,8 @@ Functions
- -

◆ libevdev_event_type_from_code_name_n()

+ +

◆ libevdev_event_type_from_code_name_n()

@@ -489,8 +496,8 @@ Functions
- -

◆ libevdev_event_type_from_name()

+ +

◆ libevdev_event_type_from_name()

@@ -518,8 +525,8 @@ Functions
- -

◆ libevdev_event_type_from_name_n()

+ +

◆ libevdev_event_type_from_name_n()

@@ -558,8 +565,8 @@ Functions
- -

◆ libevdev_event_type_get_max()

+ +

◆ libevdev_event_type_get_max()

@@ -584,14 +591,14 @@ Functions
- -

◆ libevdev_event_type_get_name()

+ +

◆ libevdev_event_type_get_name()

const char* libevdev_event_code_get_name const char * libevdev_event_code_get_name ( unsigned int  type,
- + @@ -610,8 +617,8 @@ Functions - -

◆ libevdev_event_value_from_name()

+ +

◆ libevdev_event_value_from_name()

@@ -658,8 +665,8 @@ Functions
- -

◆ libevdev_event_value_from_name_n()

+ +

◆ libevdev_event_value_from_name_n()

@@ -713,14 +720,14 @@ Functions
- -

◆ libevdev_event_value_get_name()

+ +

◆ libevdev_event_value_get_name()

const char* libevdev_event_type_get_name const char * libevdev_event_type_get_name ( unsigned int  type)
- + @@ -760,8 +767,8 @@ Functions - -

◆ libevdev_property_from_name()

+ +

◆ libevdev_property_from_name()

@@ -788,8 +795,8 @@ Functions
- -

◆ libevdev_property_from_name_n()

+ +

◆ libevdev_property_from_name_n()

@@ -827,14 +834,14 @@ Functions
- -

◆ libevdev_property_get_name()

+ +

◆ libevdev_property_get_name()

const char* libevdev_event_value_get_name const char * libevdev_event_value_get_name ( unsigned int  type,
- + @@ -851,7 +858,7 @@ Functions
Returns
The name of the given input prop (e.g. INPUT_PROP_BUTTONPAD) or NULL for an invalid property
Note
The list of names is compiled into libevdev. If the kernel adds new defines for new properties libevdev will not automatically pick these up.
-On older kernels input properties may not be defined and libevdev_property_get_name() will always return NULL
+On older kernels input properties may not be defined and libevdev_property_get_name() will always return NULL @@ -866,7 +873,7 @@ On older kernels input properties may not be defined and diff --git a/doc/html/group__mt.html b/doc/html/group__mt.html index f9a6cd23a55746bd7f8b52eb2c7dd152e7989a12..3febadf4df44e8c7003b533475bc524031a61f2c 100644 --- a/doc/html/group__mt.html +++ b/doc/html/group__mt.html @@ -6,7 +6,7 @@ - + libevdev: Multi-touch related functions @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,35 +63,41 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
Multi-touch related functions
+
Multi-touch related functions

Functions for querying multi-touch-related capabilities. More...

const char* libevdev_property_get_name const char * libevdev_property_get_name ( unsigned int  prop)
- - + - + - + - +

+

Functions

int libevdev_get_slot_value (const struct libevdev *dev, unsigned int slot, unsigned int code)
 Return the current value of the code for the given slot. More...
 Return the current value of the code for the given slot.
 
int libevdev_fetch_slot_value (const struct libevdev *dev, unsigned int slot, unsigned int code, int *value)
 Fetch the current value of the code for the given slot. More...
 Fetch the current value of the code for the given slot.
 
int libevdev_get_num_slots (const struct libevdev *dev)
 Get the number of slots supported by this device. More...
 Get the number of slots supported by this device.
 
int libevdev_get_current_slot (const struct libevdev *dev)
 Get the currently active slot. More...
 Get the currently active slot.
 

Detailed Description

@@ -100,8 +107,8 @@ Functions

The Linux kernel requires all axes on a device to have a semantic meaning, matching the axis names in linux/input.h. Some devices merely export a number of axes beyond the available axis list. For those devices, the multitouch information is invalid. Specifically, if a device provides the ABS_MT_SLOT axis AND also the ABS_RESERVED axis, the device is not treated as multitouch device. No slot information is available and the ABS_MT axis range for these devices is treated as all other EV_ABS axes.

Note that because of limitations in the kernel API, such fake multitouch devices can not be reliably synced after a SYN_DROPPED event. libevdev ignores all ABS_MT axis values during the sync process and instead relies on the device to send the current axis value with the first event after SYN_DROPPED.

Function Documentation

- -

◆ libevdev_fetch_slot_value()

+ +

◆ libevdev_fetch_slot_value()

@@ -140,10 +147,10 @@ Functions

Fetch the current value of the code for the given slot.

This is a shortcut for

-
if (libevdev_has_event_type(dev, EV_ABS) &&
-
libevdev_has_event_code(dev, EV_ABS, c) &&
+
if (libevdev_has_event_type(dev, EV_ABS) &&
+
libevdev_has_event_code(dev, EV_ABS, c) &&
slot < device->number_of_slots)
-
val = libevdev_get_slot_value(dev, slot, c);
+
val = libevdev_get_slot_value(dev, slot, c);
int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)
int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)
int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code)
Return the current value of the code for the given slot.
@@ -161,8 +168,8 @@ Functions
- -

◆ libevdev_get_current_slot()

+ +

◆ libevdev_get_current_slot()

@@ -190,8 +197,8 @@ Functions
- -

◆ libevdev_get_num_slots()

+ +

◆ libevdev_get_num_slots()

@@ -218,8 +225,8 @@ Functions
- -

◆ libevdev_get_slot_value()

+ +

◆ libevdev_get_slot_value()

@@ -278,7 +285,7 @@ The value for events other than ABS_MT_ is undefined, use libevdev_fetch_value() diff --git a/doc/html/group__uinput.html b/doc/html/group__uinput.html index 31c27ce2db43e9c369cc5a09743dc1ef7c0f589a..60f560fe27dc93a63377e2067b11e6c9ddc2d41b 100644 --- a/doc/html/group__uinput.html +++ b/doc/html/group__uinput.html @@ -6,7 +6,7 @@ - + libevdev: uinput device creation @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,41 +63,47 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
uinput device creation
+
uinput device creation

Creation of uinput devices based on existing libevdev devices. More...

- - + - + - + - - - - - - + + + + + + - +

+

Functions

int libevdev_uinput_create_from_device (const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)
 Create a uinput device based on the given libevdev device. More...
 Create a uinput device based on the given libevdev device.
 
void libevdev_uinput_destroy (struct libevdev_uinput *uinput_dev)
 Destroy a previously created uinput device and free associated memory. More...
 Destroy a previously created uinput device and free associated memory.
 
int libevdev_uinput_get_fd (const struct libevdev_uinput *uinput_dev)
 Return the file descriptor used to create this uinput device. More...
 Return the file descriptor used to create this uinput device.
 
const char * libevdev_uinput_get_syspath (struct libevdev_uinput *uinput_dev)
 Return the syspath representing this uinput device. More...
 
const char * libevdev_uinput_get_devnode (struct libevdev_uinput *uinput_dev)
 Return the device node representing this uinput device. More...
 
const char * libevdev_uinput_get_syspath (struct libevdev_uinput *uinput_dev)
 Return the syspath representing this uinput device.
 
const char * libevdev_uinput_get_devnode (struct libevdev_uinput *uinput_dev)
 Return the device node representing this uinput device.
 
int libevdev_uinput_write_event (const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)
 Post an event through the uinput device. More...
 Post an event through the uinput device.
 

Detailed Description

@@ -111,7 +118,7 @@ Functions
if (fd < 0)
return -errno;
-
err = libevdev_new_from_fd(fd, &dev);
+
err = libevdev_new_from_fd(fd, &dev);
if (err != 0)
return err;
@@ -119,20 +126,20 @@ Functions
if (uifd < 0)
return -errno;
-
err = libevdev_uinput_create_from_device(dev, uifd, &uidev);
+
err = libevdev_uinput_create_from_device(dev, uifd, &uidev);
if (err != 0)
return err;
// post a REL_X event
-
err = libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
+
err = libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1);
if (err != 0)
return err;
-
err = libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
+
err = libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0);
if (err != 0)
return err;
- - + +
close(uifd);
close(fd);
int libevdev_new_from_fd(int fd, struct libevdev **dev)
Initialize a new libevdev device from the given fd.
@@ -145,33 +152,33 @@ Functions
struct libevdev *dev;
struct libevdev_uinput *uidev;
-
dev = libevdev_new();
-
libevdev_set_name(dev, "test device");
- -
libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
-
libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
- -
libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL);
-
libevdev_enable_event_code(dev, EV_KEY, BTN_MIDDLE, NULL);
-
libevdev_enable_event_code(dev, EV_KEY, BTN_RIGHT, NULL);
+
dev = libevdev_new();
+
libevdev_set_name(dev, "test device");
+ +
libevdev_enable_event_code(dev, EV_REL, REL_X, NULL);
+
libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL);
+ +
libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL);
+
libevdev_enable_event_code(dev, EV_KEY, BTN_MIDDLE, NULL);
+
libevdev_enable_event_code(dev, EV_KEY, BTN_RIGHT, NULL);
- - + +
&uidev);
if (err != 0)
return err;
// ... do something ...
- -
struct libevdev * libevdev_new(void)
Initialize a new libevdev device.
+ +
struct libevdev * libevdev_new(void)
Initialize a new libevdev device.
int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data)
Forcibly enable an event code on this device, even if the underlying device does not support it.
int libevdev_enable_event_type(struct libevdev *dev, unsigned int type)
Forcibly enable an event type on this device, even if the underlying device does not support it.
void libevdev_set_name(struct libevdev *dev, const char *name)
Change the device's name as returned by libevdev_get_name().
@ LIBEVDEV_UINPUT_OPEN_MANAGED
let libevdev open and close /dev/uinput
Definition: libevdev-uinput.h:114

Function Documentation

- -

◆ libevdev_uinput_create_from_device()

+ +

◆ libevdev_uinput_create_from_device()

@@ -223,8 +230,8 @@ On FreeBSD, if the UI_GET_SYSNAME ioctl() fails, there is no other way to get a
- -

◆ libevdev_uinput_destroy()

+ +

◆ libevdev_uinput_destroy()

@@ -250,14 +257,14 @@ On FreeBSD, if the UI_GET_SYSNAME ioctl() fails, there is no other way to get a
- -

◆ libevdev_uinput_get_devnode()

+ +

◆ libevdev_uinput_get_devnode()

- + @@ -267,8 +274,8 @@ On FreeBSD, if the UI_GET_SYSNAME ioctl() fails, there is no other way to get a

Return the device node representing this uinput device.

-

This relies on libevdev_uinput_get_syspath() to provide a valid syspath. See libevdev_uinput_get_syspath() for more details.

-
Note
This function may return NULL. libevdev may have to guess the syspath and the device node. See libevdev_uinput_get_syspath() for details.
+

This relies on libevdev_uinput_get_syspath() to provide a valid syspath. See libevdev_uinput_get_syspath() for more details.

+
Note
This function may return NULL. libevdev may have to guess the syspath and the device node. See libevdev_uinput_get_syspath() for details.
On FreeBSD, this function can not return NULL. libudev uses the UI_GET_SYSNAME ioctl to get the device node on this platform and if that fails, the call to libevdev_uinput_create_from_device() fails.
Parameters
@@ -278,12 +285,12 @@ On FreeBSD, this function can not return NULL. libudev uses the UI_GET_SYSNAME i
Returns
The device node for this device, in the form of /dev/input/eventN
-
See also
libevdev_uinput_get_syspath
+
See also
libevdev_uinput_get_syspath
- -

◆ libevdev_uinput_get_fd()

+ +

◆ libevdev_uinput_get_fd()

@@ -310,14 +317,14 @@ On FreeBSD, this function can not return NULL. libudev uses the UI_GET_SYSNAME i
- -

◆ libevdev_uinput_get_syspath()

+ +

◆ libevdev_uinput_get_syspath()

const char* libevdev_uinput_get_devnode const char * libevdev_uinput_get_devnode ( struct libevdev_uinput *  uinput_dev)
- + @@ -328,7 +335,7 @@ On FreeBSD, this function can not return NULL. libudev uses the UI_GET_SYSNAME i

Return the syspath representing this uinput device.

If the UI_GET_SYSNAME ioctl is not available, libevdev makes an educated guess. The UI_GET_SYSNAME ioctl is available since Linux 3.15.

-

The syspath returned is the one of the input node itself (e.g. /sys/devices/virtual/input/input123), not the syspath of the device node returned with libevdev_uinput_get_devnode().

+

The syspath returned is the one of the input node itself (e.g. /sys/devices/virtual/input/input123), not the syspath of the device node returned with libevdev_uinput_get_devnode().

Note
This function may return NULL if UI_GET_SYSNAME is not available. In that case, libevdev uses ctime and the device name to guess devices. To avoid false positives, wait at least 1.5s between creating devices that have the same name.
FreeBSD does not have sysfs, on FreeBSD this function always returns NULL.
@@ -339,12 +346,12 @@ FreeBSD does not have sysfs, on FreeBSD this function always returns NULL.<
Returns
The syspath for this device, including the preceding /sys
-
See also
libevdev_uinput_get_devnode
+
See also
libevdev_uinput_get_devnode
- -

◆ libevdev_uinput_write_event()

+ +

◆ libevdev_uinput_write_event()

@@ -407,7 +414,7 @@ FreeBSD does not have sysfs, on FreeBSD this function always returns NULL.< diff --git a/doc/html/index.html b/doc/html/index.html index e73cb4fc91dce64e562dd3d7e990773cd0f1e4ab..ac17c2a7124e6a31c53bc1465010dd2038b0cd87 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -6,9 +6,9 @@ - + - libevdev: Main Page + libevdev: libevdev @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
@@ -62,14 +63,20 @@ $(function() {
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
-
libevdev Documentation
+
+
libevdev

libevdev is a library for handling evdev kernel devices. It abstracts the evdev ioctls through type-safe interfaces and provides functions to change the appearance of the device.

@@ -105,49 +112,49 @@ Example
int rc = 1;
fd = open("/dev/input/event0", O_RDONLY|O_NONBLOCK);
-
rc = libevdev_new_from_fd(fd, &dev);
+
rc = libevdev_new_from_fd(fd, &dev);
if (rc < 0) {
fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc));
exit(1);
}
-
printf("Input device name: \"%s\"\n", libevdev_get_name(dev));
+
printf("Input device name: \"%s\"\n", libevdev_get_name(dev));
printf("Input device ID: bus %#x vendor %#x product %#x\n",
- - - -
if (!libevdev_has_event_type(dev, EV_REL) ||
-
!libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) {
+ + + +
if (!libevdev_has_event_type(dev, EV_REL) ||
+
!libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) {
printf("This device does not look like a mouse\n");
exit(1);
}
do {
struct input_event ev;
- +
if (rc == 0)
printf("Event: %s %s %d\n",
- -
libevdev_event_code_get_name(ev.type, ev.code),
+ +
libevdev_event_code_get_name(ev.type, ev.code),
ev.value);
} while (rc == 1 || rc == 0 || rc == -EAGAIN);
int libevdev_get_id_vendor(const struct libevdev *dev)
int libevdev_get_id_product(const struct libevdev *dev)
int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)
+
const char * libevdev_get_name(const struct libevdev *dev)
Retrieve the device's name, either as set by the caller or as read from the kernel.
int libevdev_get_id_bustype(const struct libevdev *dev)
int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)
-
const char * libevdev_get_name(const struct libevdev *dev)
Retrieve the device's name, either as set by the caller or as read from the kernel.
int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev)
Get the next event from the device.
@ LIBEVDEV_READ_FLAG_NORMAL
Process data in normal mode.
Definition: libevdev.h:762
int libevdev_new_from_fd(int fd, struct libevdev **dev)
Initialize a new libevdev device from the given fd.
-
const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)
-
const char * libevdev_event_type_get_name(unsigned int type)
+
const char * libevdev_event_type_get_name(unsigned int type)
+
const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)

A more complete example is available with the libevdev-events tool here: https://gitlab.freedesktop.org/libevdev/libevdev/blob/master/tools/libevdev-events.c

Backwards compatibility with older kernel

libevdev attempts to build and run correctly on a number of kernel versions. If features required are not available, libevdev attempts to work around them in the most reasonable way. For more details see Compatibility and Behavior across kernel versions.

License information

-

libevdev is licensed under the X11 license.

+

libevdev is licensed under the MIT license.

Bindings

    @@ -170,7 +177,7 @@ Reporting bugs diff --git a/doc/html/ioctls.html b/doc/html/ioctls.html index a918117bfe0159741fb23c37f93cd691ce76db22..de4091b77e64973741565b0cd23db730af7a13df 100644 --- a/doc/html/ioctls.html +++ b/doc/html/ioctls.html @@ -6,7 +6,7 @@ - + libevdev: evdev ioctls @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    evdev ioctls
    +
    +
    evdev ioctls

    This page lists the status of the evdev-specific ioctls in libevdev.

    @@ -91,11 +98,11 @@ $(function() {
    EVIOCSKEYCODE:
    currently not supported
    EVIOCGNAME:
    -
    supported, see libevdev_get_name()
    +
    supported, see libevdev_get_name()
    EVIOCGPHYS:
    -
    supported, see libevdev_get_phys()
    +
    supported, see libevdev_get_phys()
    EVIOCGUNIQ:
    -
    supported, see libevdev_get_uniq()
    +
    supported, see libevdev_get_uniq()
    EVIOCGPROP:
    supported, see libevdev_has_property()
    EVIOCGMTSLOTS:
    @@ -111,7 +118,7 @@ $(function() {
    EVIOCGBIT:
    supported, see libevdev_has_event_code(), libevdev_get_event_value()
    EVIOCGABS:
    -
    supported, see libevdev_has_event_code(), libevdev_get_event_value(), libevdev_get_abs_info()
    +
    supported, see libevdev_has_event_code(), libevdev_get_event_value(), libevdev_get_abs_info()
    EVIOCSABS:
    supported, see libevdev_kernel_set_abs_info()
    EVIOCSFF:
    @@ -139,7 +146,7 @@ $(function() { diff --git a/doc/html/jquery.js b/doc/html/jquery.js index 103c32d79b749c24101fba7ff19fd17ee1a59724..1dffb65b58c82b5827744a7fd9cd8ce5ab6e4005 100644 --- a/doc/html/jquery.js +++ b/doc/html/jquery.js @@ -1,12 +1,11 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"
const char* libevdev_uinput_get_syspath const char * libevdev_uinput_get_syspath ( struct libevdev_uinput *  uinput_dev)
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(y){"use strict";y.ui=y.ui||{};y.ui.version="1.13.2";var n,i=0,h=Array.prototype.hasOwnProperty,a=Array.prototype.slice;y.cleanData=(n=y.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=y._data(i,"events"))&&e.remove&&y(i).triggerHandler("remove");n(t)}),y.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=y.Widget),Array.isArray(e)&&(e=y.extend.apply(null,[{}].concat(e))),y.expr.pseudos[r.toLowerCase()]=function(t){return!!y.data(t,r)},y[a]=y[a]||{},s=y[a][t],n=y[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},y.extend(n,s,{version:e.version,_proto:y.extend({},e),_childConstructors:[]}),(o=new i).options=y.widget.extend({},o.options),y.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}h[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=y.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(y.each(s._childConstructors,function(t,e){var i=e.prototype;y.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),y.widget.bridge(t,n),n},y.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0 - + libevdev: Kernel header @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
-
Kernel header
+
+
Kernel header

libevdev provides its own copy of the Linux kernel header file and compiles against the definitions define here.

@@ -90,7 +97,7 @@ $(function() { diff --git a/doc/html/libevdev-uinput_8h.html b/doc/html/libevdev-uinput_8h.html index e5d31ca179aa96cea163dc9d9db3d4ddbd23c48f..05b8f317f3f82949a4544091e566e78899a42c3d 100644 --- a/doc/html/libevdev-uinput_8h.html +++ b/doc/html/libevdev-uinput_8h.html @@ -6,9 +6,9 @@ - + - libevdev: /home/whot/code/libevdev/release/libevdev/build.kshdg2gGMS/libevdev/libevdev-uinput.h File Reference + libevdev: /home/whot/code/libevdev/release/libevdev/build.yMRB87g7MV/libevdev/libevdev-uinput.h File Reference @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+

Go to the source code of this file.

-

+

Enumerations

enum  libevdev_uinput_open_mode { LIBEVDEV_UINPUT_OPEN_MANAGED }
 
- - + - + - + - - - - - - + + + + + + - +

+

Functions

int libevdev_uinput_create_from_device (const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)
 Create a uinput device based on the given libevdev device. More...
 Create a uinput device based on the given libevdev device.
 
void libevdev_uinput_destroy (struct libevdev_uinput *uinput_dev)
 Destroy a previously created uinput device and free associated memory. More...
 Destroy a previously created uinput device and free associated memory.
 
int libevdev_uinput_get_fd (const struct libevdev_uinput *uinput_dev)
 Return the file descriptor used to create this uinput device. More...
 Return the file descriptor used to create this uinput device.
 
const char * libevdev_uinput_get_syspath (struct libevdev_uinput *uinput_dev)
 Return the syspath representing this uinput device. More...
 
const char * libevdev_uinput_get_devnode (struct libevdev_uinput *uinput_dev)
 Return the device node representing this uinput device. More...
 
const char * libevdev_uinput_get_syspath (struct libevdev_uinput *uinput_dev)
 Return the syspath representing this uinput device.
 
const char * libevdev_uinput_get_devnode (struct libevdev_uinput *uinput_dev)
 Return the device node representing this uinput device.
 
int libevdev_uinput_write_event (const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)
 Post an event through the uinput device. More...
 Post an event through the uinput device.
 

Enumeration Type Documentation

- -

◆ libevdev_uinput_open_mode

+ +

◆ libevdev_uinput_open_mode

@@ -123,7 +130,7 @@ Functions
-
Enumerator
LIBEVDEV_UINPUT_OPEN_MANAGED 

let libevdev open and close /dev/uinput

+
Enumerator
LIBEVDEV_UINPUT_OPEN_MANAGED 

let libevdev open and close /dev/uinput

@@ -140,7 +147,7 @@ Functions diff --git a/doc/html/libevdev-uinput_8h_source.html b/doc/html/libevdev-uinput_8h_source.html index 92f68d08ed929eeae1e91c2bebf3e7a821d65020..f80f2728e1d2fc5f8ab693ce5acd3d39cc7cbaac 100644 --- a/doc/html/libevdev-uinput_8h_source.html +++ b/doc/html/libevdev-uinput_8h_source.html @@ -6,9 +6,9 @@ - + - libevdev: /home/whot/code/libevdev/release/libevdev/build.kshdg2gGMS/libevdev/libevdev-uinput.h Source File + libevdev: /home/whot/code/libevdev/release/libevdev/build.yMRB87g7MV/libevdev/libevdev-uinput.h Source File @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
libevdev-uinput.h
+
libevdev-uinput.h
-Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
-
2 /*
-
3  * Copyright © 2013 Red Hat, Inc.
-
4  *
-
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
-
6  * of this software and associated documentation files (the "Software"), to
-
7  * deal in the Software without restriction, including without limitation the
-
8  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-
9  * sell copies of the Software, and to permit persons to whom the Software is
-
10  * furnished to do so, subject to the following conditions:
-
11  *
-
12  * The above copyright notice and this permission notice (including the next
-
13  * paragraph) shall be included in all copies or substantial portions of the
-
14  * Software.
-
15  *
-
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-
22  * IN THE SOFTWARE.
-
23  */
-
24 
-
25 #ifndef LIBEVDEV_UINPUT_H
-
26 #define LIBEVDEV_UINPUT_H
-
27 
-
28 #ifdef __cplusplus
-
29 extern "C" {
-
30 #endif
-
31 
-
32 #include <libevdev/libevdev.h>
-
33 
-
34 struct libevdev_uinput;
-
35 
- -
111  /* intentionally -2 to avoid code like below from accidentally working:
-
112  fd = open("/dev/uinput", O_RDWR); // fails, fd is -1
-
113  libevdev_uinput_create_from_device(dev, fd, &uidev); // may hide the error */
- -
115 };
-
116 
-
154 int libevdev_uinput_create_from_device(const struct libevdev *dev,
-
155  int uinput_fd,
-
156  struct libevdev_uinput **uinput_dev);
-
157 
-
169 void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev);
-
170 
-
184 int libevdev_uinput_get_fd(const struct libevdev_uinput *uinput_dev);
-
185 
-
210 const char* libevdev_uinput_get_syspath(struct libevdev_uinput *uinput_dev);
-
211 
-
232 const char* libevdev_uinput_get_devnode(struct libevdev_uinput *uinput_dev);
-
233 
-
248 int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev,
-
249  unsigned int type,
-
250  unsigned int code,
-
251  int value);
-
252 #ifdef __cplusplus
-
253 }
-
254 #endif
-
255 
-
256 #endif /* LIBEVDEV_UINPUT_H */
+Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
+
2/*
+
3 * Copyright © 2013 Red Hat, Inc.
+
4 *
+
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
+
6 * of this software and associated documentation files (the "Software"), to
+
7 * deal in the Software without restriction, including without limitation the
+
8 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+
9 * sell copies of the Software, and to permit persons to whom the Software is
+
10 * furnished to do so, subject to the following conditions:
+
11 *
+
12 * The above copyright notice and this permission notice (including the next
+
13 * paragraph) shall be included in all copies or substantial portions of the
+
14 * Software.
+
15 *
+
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+
22 * IN THE SOFTWARE.
+
23 */
+
24
+
25#ifndef LIBEVDEV_UINPUT_H
+
26#define LIBEVDEV_UINPUT_H
+
27
+
28#ifdef __cplusplus
+
29extern "C" {
+
30#endif
+
31
+
32#include <libevdev/libevdev.h>
+
33
+
34struct libevdev_uinput;
+
35
+ +
111 /* intentionally -2 to avoid code like below from accidentally working:
+
112 fd = open("/dev/uinput", O_RDWR); // fails, fd is -1
+
113 libevdev_uinput_create_from_device(dev, fd, &uidev); // may hide the error */
+ + +
116
+
154int libevdev_uinput_create_from_device(const struct libevdev *dev,
+
155 int uinput_fd,
+
156 struct libevdev_uinput **uinput_dev);
+
157
+
169void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev);
+
170
+
184int libevdev_uinput_get_fd(const struct libevdev_uinput *uinput_dev);
+
185
+
210const char* libevdev_uinput_get_syspath(struct libevdev_uinput *uinput_dev);
+
211
+
232const char* libevdev_uinput_get_devnode(struct libevdev_uinput *uinput_dev);
+
233
+
248int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev,
+
249 unsigned int type,
+
250 unsigned int code,
+
251 int value);
+
252#ifdef __cplusplus
+
253}
+
254#endif
+
255
+
256#endif /* LIBEVDEV_UINPUT_H */
int libevdev_uinput_write_event(const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)
Post an event through the uinput device.
-
const char * libevdev_uinput_get_devnode(struct libevdev_uinput *uinput_dev)
Return the device node representing this uinput device.
+
const char * libevdev_uinput_get_syspath(struct libevdev_uinput *uinput_dev)
Return the syspath representing this uinput device.
int libevdev_uinput_get_fd(const struct libevdev_uinput *uinput_dev)
Return the file descriptor used to create this uinput device.
void libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev)
Destroy a previously created uinput device and free associated memory.
-
const char * libevdev_uinput_get_syspath(struct libevdev_uinput *uinput_dev)
Return the syspath representing this uinput device.
+
const char * libevdev_uinput_get_devnode(struct libevdev_uinput *uinput_dev)
Return the device node representing this uinput device.
int libevdev_uinput_create_from_device(const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)
Create a uinput device based on the given libevdev device.
libevdev_uinput_open_mode
Definition: libevdev-uinput.h:110
@ LIBEVDEV_UINPUT_OPEN_MANAGED
let libevdev open and close /dev/uinput
Definition: libevdev-uinput.h:114
@@ -159,7 +166,7 @@ $(function() { diff --git a/doc/html/libevdev_8h.html b/doc/html/libevdev_8h.html index 005fb0dcda5e882586d35da0f0acbded4292f1af..fb83e163d0b2370fd1f6714811dac504da9648e1 100644 --- a/doc/html/libevdev_8h.html +++ b/doc/html/libevdev_8h.html @@ -6,9 +6,9 @@ - + - libevdev: /home/whot/code/libevdev/release/libevdev/build.kshdg2gGMS/libevdev/libevdev.h File Reference + libevdev: /home/whot/code/libevdev/release/libevdev/build.yMRB87g7MV/libevdev/libevdev.h File Reference @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
libevdev.h File Reference
+
libevdev.h File Reference
#include <linux/input.h>
@@ -86,23 +93,23 @@ $(function() {

Go to the source code of this file.

-

+

Macros

#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args)
 
#define LIBEVDEV_DEPRECATED
 
- - + - +

+

Typedefs

typedef void(* libevdev_log_func_t) (enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)
 Logging function called by library-internal logging. More...
 Logging function called by library-internal logging.
 
typedef void(* libevdev_device_log_func_t) (const struct libevdev *dev, enum libevdev_log_priority priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)
 Logging function called by library-internal logging for a specific libevdev context. More...
 Logging function called by library-internal logging for a specific libevdev context.
 
- }

+

Enumerations

enum  libevdev_read_flag { LIBEVDEV_READ_FLAG_SYNC , LIBEVDEV_READ_FLAG_NORMAL @@ -128,63 +135,63 @@ Enumerations
 
- - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - - - + + + - + @@ -215,149 +222,149 @@ Functions - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - +

+

Functions

struct libevdev * libevdev_new (void)
 Initialize a new libevdev device. More...
 
struct libevdev * libevdev_new (void)
 Initialize a new libevdev device.
 
int libevdev_new_from_fd (int fd, struct libevdev **dev)
 Initialize a new libevdev device from the given fd. More...
 Initialize a new libevdev device from the given fd.
 
void libevdev_free (struct libevdev *dev)
 Clean up and free the libevdev struct. More...
 Clean up and free the libevdev struct.
 
void libevdev_set_log_function (libevdev_log_func_t logfunc, void *data)
 Set a printf-style logging handler for library-internal logging. More...
 Set a printf-style logging handler for library-internal logging.
 
void libevdev_set_log_priority (enum libevdev_log_priority priority)
 Define the minimum level to be printed to the log handler. More...
 Define the minimum level to be printed to the log handler.
 
enum libevdev_log_priority libevdev_get_log_priority (void)
 Return the current log priority level. More...
 Return the current log priority level.
 
void libevdev_set_device_log_function (struct libevdev *dev, libevdev_device_log_func_t logfunc, enum libevdev_log_priority priority, void *data)
 Set a printf-style logging handler for library-internal logging for this device context. More...
 Set a printf-style logging handler for library-internal logging for this device context.
 
int libevdev_grab (struct libevdev *dev, enum libevdev_grab_mode grab)
 Grab or ungrab the device through a kernel EVIOCGRAB. More...
 Grab or ungrab the device through a kernel EVIOCGRAB.
 
int libevdev_set_fd (struct libevdev *dev, int fd)
 Set the fd for this struct and initialize internal data. More...
 Set the fd for this struct and initialize internal data.
 
int libevdev_change_fd (struct libevdev *dev, int fd)
 Change the fd for this device, without re-reading the actual device. More...
 Change the fd for this device, without re-reading the actual device.
 
int libevdev_get_fd (const struct libevdev *dev)
 
int libevdev_next_event (struct libevdev *dev, unsigned int flags, struct input_event *ev)
 Get the next event from the device. More...
 Get the next event from the device.
 
int libevdev_has_event_pending (struct libevdev *dev)
 Check if there are events waiting for us. More...
 Check if there are events waiting for us.
 
const char * libevdev_get_name (const struct libevdev *dev)
 Retrieve the device's name, either as set by the caller or as read from the kernel. More...
 
const char * libevdev_get_name (const struct libevdev *dev)
 Retrieve the device's name, either as set by the caller or as read from the kernel.
 
void libevdev_set_name (struct libevdev *dev, const char *name)
 Change the device's name as returned by libevdev_get_name(). More...
 Change the device's name as returned by libevdev_get_name().
 
const char * libevdev_get_phys (const struct libevdev *dev)
 Retrieve the device's physical location, either as set by the caller or as read from the kernel. More...
 
const char * libevdev_get_phys (const struct libevdev *dev)
 Retrieve the device's physical location, either as set by the caller or as read from the kernel.
 
void libevdev_set_phys (struct libevdev *dev, const char *phys)
 Change the device's physical location as returned by libevdev_get_phys(). More...
 Change the device's physical location as returned by libevdev_get_phys().
 
const char * libevdev_get_uniq (const struct libevdev *dev)
 Retrieve the device's unique identifier, either as set by the caller or as read from the kernel. More...
 
const char * libevdev_get_uniq (const struct libevdev *dev)
 Retrieve the device's unique identifier, either as set by the caller or as read from the kernel.
 
void libevdev_set_uniq (struct libevdev *dev, const char *uniq)
 Change the device's unique identifier as returned by libevdev_get_uniq(). More...
 Change the device's unique identifier as returned by libevdev_get_uniq().
 
int libevdev_get_id_product (const struct libevdev *dev)
 
int libevdev_has_event_code (const struct libevdev *dev, unsigned int type, unsigned int code)
 
int libevdev_get_abs_minimum (const struct libevdev *dev, unsigned int code)
 Get the minimum axis value for the given axis, as advertised by the kernel. More...
 Get the minimum axis value for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_maximum (const struct libevdev *dev, unsigned int code)
 Get the maximum axis value for the given axis, as advertised by the kernel. More...
 Get the maximum axis value for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_fuzz (const struct libevdev *dev, unsigned int code)
 Get the axis fuzz for the given axis, as advertised by the kernel. More...
 Get the axis fuzz for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_flat (const struct libevdev *dev, unsigned int code)
 Get the axis flat for the given axis, as advertised by the kernel. More...
 Get the axis flat for the given axis, as advertised by the kernel.
 
int libevdev_get_abs_resolution (const struct libevdev *dev, unsigned int code)
 Get the axis resolution for the given axis, as advertised by the kernel. More...
 Get the axis resolution for the given axis, as advertised by the kernel.
 
const struct input_absinfo * libevdev_get_abs_info (const struct libevdev *dev, unsigned int code)
 Get the axis info for the given axis, as advertised by the kernel. More...
 
const struct input_absinfo * libevdev_get_abs_info (const struct libevdev *dev, unsigned int code)
 Get the axis info for the given axis, as advertised by the kernel.
 
int libevdev_get_event_value (const struct libevdev *dev, unsigned int type, unsigned int code)
 Behaviour of this function is undefined if the device does not provide the event. More...
 Behaviour of this function is undefined if the device does not provide the event.
 
int libevdev_set_event_value (struct libevdev *dev, unsigned int type, unsigned int code, int value)
 Set the value for a given event type and code. More...
 Set the value for a given event type and code.
 
int libevdev_fetch_event_value (const struct libevdev *dev, unsigned int type, unsigned int code, int *value)
 Fetch the current value of the event type. More...
 Fetch the current value of the event type.
 
int libevdev_get_slot_value (const struct libevdev *dev, unsigned int slot, unsigned int code)
 Return the current value of the code for the given slot. More...
 Return the current value of the code for the given slot.
 
int libevdev_set_slot_value (struct libevdev *dev, unsigned int slot, unsigned int code, int value)
 Set the value for a given code for the given slot. More...
 Set the value for a given code for the given slot.
 
int libevdev_fetch_slot_value (const struct libevdev *dev, unsigned int slot, unsigned int code, int *value)
 Fetch the current value of the code for the given slot. More...
 Fetch the current value of the code for the given slot.
 
int libevdev_get_num_slots (const struct libevdev *dev)
 Get the number of slots supported by this device. More...
 Get the number of slots supported by this device.
 
int libevdev_get_current_slot (const struct libevdev *dev)
 Get the currently active slot. More...
 Get the currently active slot.
 
void libevdev_set_abs_minimum (struct libevdev *dev, unsigned int code, int val)
 Change the minimum for the given EV_ABS event code, if the code exists. More...
 Change the minimum for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_maximum (struct libevdev *dev, unsigned int code, int val)
 Change the maximum for the given EV_ABS event code, if the code exists. More...
 Change the maximum for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_fuzz (struct libevdev *dev, unsigned int code, int val)
 Change the fuzz for the given EV_ABS event code, if the code exists. More...
 Change the fuzz for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_flat (struct libevdev *dev, unsigned int code, int val)
 Change the flat for the given EV_ABS event code, if the code exists. More...
 Change the flat for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_resolution (struct libevdev *dev, unsigned int code, int val)
 Change the resolution for the given EV_ABS event code, if the code exists. More...
 Change the resolution for the given EV_ABS event code, if the code exists.
 
void libevdev_set_abs_info (struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)
 Change the abs info for the given EV_ABS event code, if the code exists. More...
 Change the abs info for the given EV_ABS event code, if the code exists.
 
int libevdev_enable_event_type (struct libevdev *dev, unsigned int type)
 Forcibly enable an event type on this device, even if the underlying device does not support it. More...
 Forcibly enable an event type on this device, even if the underlying device does not support it.
 
int libevdev_disable_event_type (struct libevdev *dev, unsigned int type)
 Forcibly disable an event type on this device, even if the underlying device provides it. More...
 Forcibly disable an event type on this device, even if the underlying device provides it.
 
int libevdev_enable_event_code (struct libevdev *dev, unsigned int type, unsigned int code, const void *data)
 Forcibly enable an event code on this device, even if the underlying device does not support it. More...
 Forcibly enable an event code on this device, even if the underlying device does not support it.
 
int libevdev_disable_event_code (struct libevdev *dev, unsigned int type, unsigned int code)
 Forcibly disable an event code on this device, even if the underlying device provides it. More...
 Forcibly disable an event code on this device, even if the underlying device provides it.
 
int libevdev_kernel_set_abs_info (struct libevdev *dev, unsigned int code, const struct input_absinfo *abs)
 Set the device's EV_ABS axis to the value defined in the abs parameter. More...
 Set the device's EV_ABS axis to the value defined in the abs parameter.
 
int libevdev_kernel_set_led_value (struct libevdev *dev, unsigned int code, enum libevdev_led_value value)
 Turn an LED on or off. More...
 Turn an LED on or off.
 
int libevdev_kernel_set_led_values (struct libevdev *dev,...)
 Turn multiple LEDs on or off simultaneously. More...
 Turn multiple LEDs on or off simultaneously.
 
int libevdev_set_clock_id (struct libevdev *dev, int clockid)
 Set the clock ID to be used for timestamps. More...
 Set the clock ID to be used for timestamps.
 
int libevdev_event_is_type (const struct input_event *ev, unsigned int type)
 Helper function to check if an event is of a specific type. More...
 Helper function to check if an event is of a specific type.
 
int libevdev_event_is_code (const struct input_event *ev, unsigned int type, unsigned int code)
 Helper function to check if an event is of a specific type and code. More...
 Helper function to check if an event is of a specific type and code.
 
const char * libevdev_event_type_get_name (unsigned int type)
 
const char * libevdev_event_code_get_name (unsigned int type, unsigned int code)
 
const char * libevdev_event_value_get_name (unsigned int type, unsigned int code, int value)
 This function resolves the event value for a code. More...
 
const char * libevdev_property_get_name (unsigned int prop)
 
const char * libevdev_event_type_get_name (unsigned int type)
 
const char * libevdev_event_code_get_name (unsigned int type, unsigned int code)
 
const char * libevdev_event_value_get_name (unsigned int type, unsigned int code, int value)
 This function resolves the event value for a code.
 
const char * libevdev_property_get_name (unsigned int prop)
 
int libevdev_event_type_get_max (unsigned int type)
 
int libevdev_event_type_from_name (const char *name)
 Look up an event-type by its name. More...
 Look up an event-type by its name.
 
int libevdev_event_type_from_name_n (const char *name, size_t len)
 Look up an event-type by its name. More...
 Look up an event-type by its name.
 
int libevdev_event_code_from_name (unsigned int type, const char *name)
 Look up an event code by its type and name. More...
 Look up an event code by its type and name.
 
int libevdev_event_code_from_name_n (unsigned int type, const char *name, size_t len)
 Look up an event code by its type and name. More...
 Look up an event code by its type and name.
 
int libevdev_event_value_from_name (unsigned int type, unsigned int code, const char *name)
 Look up an event value by its type, code and name. More...
 Look up an event value by its type, code and name.
 
int libevdev_event_type_from_code_name (const char *name)
 Look up an event type for a event code name. More...
 Look up an event type for a event code name.
 
int libevdev_event_type_from_code_name_n (const char *name, size_t len)
 Look up an event type for a event code name. More...
 Look up an event type for a event code name.
 
int libevdev_event_code_from_code_name (const char *name)
 Look up an event code by its name. More...
 Look up an event code by its name.
 
int libevdev_event_code_from_code_name_n (const char *name, size_t len)
 Look up an event code by its name. More...
 Look up an event code by its name.
 
int libevdev_event_value_from_name_n (unsigned int type, unsigned int code, const char *name, size_t len)
 Look up an event value by its type, code and name. More...
 Look up an event value by its type, code and name.
 
int libevdev_property_from_name (const char *name)
 Look up an input property by its name. More...
 Look up an input property by its name.
 
int libevdev_property_from_name_n (const char *name, size_t len)
 Look up an input property by its name. More...
 Look up an input property by its name.
 
int libevdev_get_repeat (const struct libevdev *dev, int *delay, int *period)
 Get the repeat delay and repeat period values for this device. More...
 Get the repeat delay and repeat period values for this device.
 

Macro Definition Documentation

- -

◆ LIBEVDEV_ATTRIBUTE_PRINTF

+ +

◆ LIBEVDEV_ATTRIBUTE_PRINTF

@@ -384,8 +391,8 @@ Functions
- -

◆ LIBEVDEV_DEPRECATED

+ +

◆ LIBEVDEV_DEPRECATED

@@ -409,7 +416,7 @@ Functions diff --git a/doc/html/libevdev_8h_source.html b/doc/html/libevdev_8h_source.html index 0c1ef4f777606c9f09b4d2e1670a3509ccd5a254..52b7861cbbab210ba66706c69bed0dc3267d0d92 100644 --- a/doc/html/libevdev_8h_source.html +++ b/doc/html/libevdev_8h_source.html @@ -6,9 +6,9 @@ - + - libevdev: /home/whot/code/libevdev/release/libevdev/build.kshdg2gGMS/libevdev/libevdev.h Source File + libevdev: /home/whot/code/libevdev/release/libevdev/build.yMRB87g7MV/libevdev/libevdev.h Source File @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
- + +/* @license-end */ +
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-
-
libevdev.h
+
libevdev.h
-Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
-
2 /*
-
3  * Copyright © 2013 Red Hat, Inc.
-
4  *
-
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
-
6  * of this software and associated documentation files (the "Software"), to
-
7  * deal in the Software without restriction, including without limitation the
-
8  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-
9  * sell copies of the Software, and to permit persons to whom the Software is
-
10  * furnished to do so, subject to the following conditions:
-
11  *
-
12  * The above copyright notice and this permission notice (including the next
-
13  * paragraph) shall be included in all copies or substantial portions of the
-
14  * Software.
-
15  *
-
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-
22  * IN THE SOFTWARE.
-
23  *
-
24  */
-
25 
-
26 #ifndef LIBEVDEV_H
-
27 #define LIBEVDEV_H
-
28 
-
29 #ifdef __cplusplus
-
30 extern "C" {
-
31 #endif
-
32 
-
33 #include <linux/input.h>
-
34 #include <stdarg.h>
-
35 
-
36 #define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))
-
37 
-
755 struct libevdev;
-
756 
- - - - - -
766 };
-
767 
-
782 struct libevdev* libevdev_new(void);
-
783 
-
806 int libevdev_new_from_fd(int fd, struct libevdev **dev);
-
807 
-
821 void libevdev_free(struct libevdev *dev);
-
822 
- - - -
829  LIBEVDEV_LOG_DEBUG = 30
-
830 };
-
831 
-
848 typedef void (*libevdev_log_func_t)(enum libevdev_log_priority priority,
-
849  void *data,
-
850  const char *file, int line,
-
851  const char *func,
-
852  const char *format, va_list args)
- -
854 
- -
874 
- -
888 
- -
901 
-
921 typedef void (*libevdev_device_log_func_t)(const struct libevdev *dev,
-
922  enum libevdev_log_priority priority,
-
923  void *data,
-
924  const char *file, int line,
-
925  const char *func,
-
926  const char *format, va_list args)
- -
928 
-
950 void libevdev_set_device_log_function(struct libevdev *dev,
- -
952  enum libevdev_log_priority priority,
-
953  void *data);
-
954 
- - -
960  LIBEVDEV_UNGRAB = 4
-
961 };
-
962 
-
985 int libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab);
-
986 
-
1019 int libevdev_set_fd(struct libevdev* dev, int fd);
-
1020 
-
1059 int libevdev_change_fd(struct libevdev* dev, int fd);
-
1060 
-
1069 int libevdev_get_fd(const struct libevdev* dev);
-
1070 
- - - -
1091 };
-
1092 
-
1143 int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev);
-
1144 
-
1167 int libevdev_has_event_pending(struct libevdev *dev);
-
1168 
-
1183 const char* libevdev_get_name(const struct libevdev *dev);
-
1184 
-
1198 void libevdev_set_name(struct libevdev *dev, const char *name);
-
1199 
-
1215 const char * libevdev_get_phys(const struct libevdev *dev);
-
1216 
-
1230 void libevdev_set_phys(struct libevdev *dev, const char *phys);
-
1231 
-
1245 const char * libevdev_get_uniq(const struct libevdev *dev);
-
1246 
-
1260 void libevdev_set_uniq(struct libevdev *dev, const char *uniq);
-
1261 
-
1271 int libevdev_get_id_product(const struct libevdev *dev);
-
1272 
-
1284 void libevdev_set_id_product(struct libevdev *dev, int product_id);
-
1285 
-
1295 int libevdev_get_id_vendor(const struct libevdev *dev);
-
1296 
-
1308 void libevdev_set_id_vendor(struct libevdev *dev, int vendor_id);
-
1309 
-
1319 int libevdev_get_id_bustype(const struct libevdev *dev);
-
1320 
-
1332 void libevdev_set_id_bustype(struct libevdev *dev, int bustype);
-
1333 
-
1343 int libevdev_get_id_version(const struct libevdev *dev);
-
1344 
-
1356 void libevdev_set_id_version(struct libevdev *dev, int version);
-
1357 
-
1367 int libevdev_get_driver_version(const struct libevdev *dev);
-
1368 
-
1379 int libevdev_has_property(const struct libevdev *dev, unsigned int prop);
-
1380 
-
1392 int libevdev_enable_property(struct libevdev *dev, unsigned int prop);
-
1393 
-
1402 int libevdev_disable_property(struct libevdev *dev, unsigned int prop);
-
1403 
-
1414 int libevdev_has_event_type(const struct libevdev *dev, unsigned int type);
-
1415 
-
1427 int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code);
-
1428 
-
1441 int libevdev_get_abs_minimum(const struct libevdev *dev, unsigned int code);
-
1442 
-
1455 int libevdev_get_abs_maximum(const struct libevdev *dev, unsigned int code);
-
1456 
-
1469 int libevdev_get_abs_fuzz(const struct libevdev *dev, unsigned int code);
-
1470 
-
1483 int libevdev_get_abs_flat(const struct libevdev *dev, unsigned int code);
-
1484 
-
1497 int libevdev_get_abs_resolution(const struct libevdev *dev, unsigned int code);
-
1498 
-
1512 const struct input_absinfo* libevdev_get_abs_info(const struct libevdev *dev, unsigned int code);
-
1513 
-
1535 int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code);
-
1536 
-
1571 int libevdev_set_event_value(struct libevdev *dev, unsigned int type, unsigned int code, int value);
-
1572 
-
1598 int libevdev_fetch_event_value(const struct libevdev *dev, unsigned int type, unsigned int code, int *value);
-
1599 
-
1620 int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code);
-
1621 
-
1650 int libevdev_set_slot_value(struct libevdev *dev, unsigned int slot, unsigned int code, int value);
-
1651 
-
1677 int libevdev_fetch_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code, int *value);
-
1678 
-
1692 int libevdev_get_num_slots(const struct libevdev *dev);
-
1693 
-
1709 int libevdev_get_current_slot(const struct libevdev *dev);
-
1710 
-
1722 void libevdev_set_abs_minimum(struct libevdev *dev, unsigned int code, int val);
-
1723 
-
1735 void libevdev_set_abs_maximum(struct libevdev *dev, unsigned int code, int val);
-
1736 
-
1748 void libevdev_set_abs_fuzz(struct libevdev *dev, unsigned int code, int val);
-
1749 
-
1761 void libevdev_set_abs_flat(struct libevdev *dev, unsigned int code, int val);
-
1762 
-
1774 void libevdev_set_abs_resolution(struct libevdev *dev, unsigned int code, int val);
-
1775 
-
1787 void libevdev_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs);
-
1788 
-
1806 int libevdev_enable_event_type(struct libevdev *dev, unsigned int type);
-
1807 
-
1834 int libevdev_disable_event_type(struct libevdev *dev, unsigned int type);
-
1835 
-
1869 int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data);
-
1870 
-
1898 int libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigned int code);
-
1899 
-
1914 int libevdev_kernel_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs);
-
1915 
- - -
1921  LIBEVDEV_LED_OFF = 4
-
1922 };
-
1923 
-
1937 int libevdev_kernel_set_led_value(struct libevdev *dev, unsigned int code, enum libevdev_led_value value);
-
1938 
-
1962 int libevdev_kernel_set_led_values(struct libevdev *dev, ...);
-
1963 
-
1978 int libevdev_set_clock_id(struct libevdev *dev, int clockid);
-
1979 
-
2001 int libevdev_event_is_type(const struct input_event *ev, unsigned int type);
-
2002 
-
2026 int libevdev_event_is_code(const struct input_event *ev, unsigned int type, unsigned int code);
-
2027 
-
2039 const char * libevdev_event_type_get_name(unsigned int type);
-
2052 const char * libevdev_event_code_get_name(unsigned int type, unsigned int code);
-
2053 
-
2074 const char * libevdev_event_value_get_name(unsigned int type,
-
2075  unsigned int code,
-
2076  int value);
-
2090 const char* libevdev_property_get_name(unsigned int prop);
-
2091 
-
2104 int libevdev_event_type_get_max(unsigned int type);
-
2105 
-
2120 int libevdev_event_type_from_name(const char *name);
-
2121 
-
2138 int libevdev_event_type_from_name_n(const char *name, size_t len);
-
2139 
-
2159 int libevdev_event_code_from_name(unsigned int type, const char *name);
-
2160 
-
2182 int libevdev_event_code_from_name_n(unsigned int type, const char *name,
-
2183  size_t len);
-
2184 
-
2206 int libevdev_event_value_from_name(unsigned int type, unsigned int code,
-
2207  const char *name);
-
2208 
-
2225 int
- -
2227 
-
2246 int
-
2247 libevdev_event_type_from_code_name_n(const char *name, size_t len);
-
2248 
-
2265 int
- -
2267 
-
2286 int
-
2287 libevdev_event_code_from_code_name_n(const char *name, size_t len);
-
2288 
-
2312 int libevdev_event_value_from_name_n(unsigned int type, unsigned int code,
-
2313  const char *name, size_t len);
-
2314 
-
2327 int libevdev_property_from_name(const char *name);
-
2328 
-
2343 int libevdev_property_from_name_n(const char *name, size_t len);
-
2344 
-
2362 int libevdev_get_repeat(const struct libevdev *dev, int *delay, int *period);
-
2363 
-
2364 /********* DEPRECATED SECTION *********/
-
2365 #if defined(__GNUC__) && __GNUC__ >= 4
-
2366 #define LIBEVDEV_DEPRECATED __attribute__ ((deprecated))
-
2367 #else
-
2368 #define LIBEVDEV_DEPRECATED
-
2369 #endif
-
2370 
-
2371 #ifdef __cplusplus
-
2372 }
-
2373 #endif
-
2374 
-
2375 #endif /* LIBEVDEV_H */
+Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
+
2/*
+
3 * Copyright © 2013 Red Hat, Inc.
+
4 *
+
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
+
6 * of this software and associated documentation files (the "Software"), to
+
7 * deal in the Software without restriction, including without limitation the
+
8 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+
9 * sell copies of the Software, and to permit persons to whom the Software is
+
10 * furnished to do so, subject to the following conditions:
+
11 *
+
12 * The above copyright notice and this permission notice (including the next
+
13 * paragraph) shall be included in all copies or substantial portions of the
+
14 * Software.
+
15 *
+
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+
22 * IN THE SOFTWARE.
+
23 *
+
24 */
+
25
+
26#ifndef LIBEVDEV_H
+
27#define LIBEVDEV_H
+
28
+
29#ifdef __cplusplus
+
30extern "C" {
+
31#endif
+
32
+
33#include <linux/input.h>
+
34#include <stdarg.h>
+
35
+
36#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))
+
37
+
755struct libevdev;
+
756
+ + + + + + +
767
+
782struct libevdev* libevdev_new(void);
+
783
+
806int libevdev_new_from_fd(int fd, struct libevdev **dev);
+
807
+
821void libevdev_free(struct libevdev *dev);
+
822
+ + + + + +
831
+
848typedef void (*libevdev_log_func_t)(enum libevdev_log_priority priority,
+
849 void *data,
+
850 const char *file, int line,
+
851 const char *func,
+
852 const char *format, va_list args)
+ +
854
+ +
874
+ +
888
+ +
901
+
921typedef void (*libevdev_device_log_func_t)(const struct libevdev *dev,
+
922 enum libevdev_log_priority priority,
+
923 void *data,
+
924 const char *file, int line,
+
925 const char *func,
+
926 const char *format, va_list args)
+ +
928
+
950void libevdev_set_device_log_function(struct libevdev *dev,
+ +
952 enum libevdev_log_priority priority,
+
953 void *data);
+
954
+ + +
960 LIBEVDEV_UNGRAB = 4
+ +
962
+
985int libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab);
+
986
+
1019int libevdev_set_fd(struct libevdev* dev, int fd);
+
1020
+
1059int libevdev_change_fd(struct libevdev* dev, int fd);
+
1060
+
1069int libevdev_get_fd(const struct libevdev* dev);
+
1070
+ + + + +
1092
+
1143int libevdev_next_event(struct libevdev *dev, unsigned int flags, struct input_event *ev);
+
1144
+
1167int libevdev_has_event_pending(struct libevdev *dev);
+
1168
+
1183const char* libevdev_get_name(const struct libevdev *dev);
+
1184
+
1198void libevdev_set_name(struct libevdev *dev, const char *name);
+
1199
+
1215const char * libevdev_get_phys(const struct libevdev *dev);
+
1216
+
1230void libevdev_set_phys(struct libevdev *dev, const char *phys);
+
1231
+
1245const char * libevdev_get_uniq(const struct libevdev *dev);
+
1246
+
1260void libevdev_set_uniq(struct libevdev *dev, const char *uniq);
+
1261
+
1271int libevdev_get_id_product(const struct libevdev *dev);
+
1272
+
1284void libevdev_set_id_product(struct libevdev *dev, int product_id);
+
1285
+
1295int libevdev_get_id_vendor(const struct libevdev *dev);
+
1296
+
1308void libevdev_set_id_vendor(struct libevdev *dev, int vendor_id);
+
1309
+
1319int libevdev_get_id_bustype(const struct libevdev *dev);
+
1320
+
1332void libevdev_set_id_bustype(struct libevdev *dev, int bustype);
+
1333
+
1343int libevdev_get_id_version(const struct libevdev *dev);
+
1344
+
1356void libevdev_set_id_version(struct libevdev *dev, int version);
+
1357
+
1367int libevdev_get_driver_version(const struct libevdev *dev);
+
1368
+
1379int libevdev_has_property(const struct libevdev *dev, unsigned int prop);
+
1380
+
1392int libevdev_enable_property(struct libevdev *dev, unsigned int prop);
+
1393
+
1402int libevdev_disable_property(struct libevdev *dev, unsigned int prop);
+
1403
+
1414int libevdev_has_event_type(const struct libevdev *dev, unsigned int type);
+
1415
+
1427int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code);
+
1428
+
1441int libevdev_get_abs_minimum(const struct libevdev *dev, unsigned int code);
+
1442
+
1455int libevdev_get_abs_maximum(const struct libevdev *dev, unsigned int code);
+
1456
+
1469int libevdev_get_abs_fuzz(const struct libevdev *dev, unsigned int code);
+
1470
+
1483int libevdev_get_abs_flat(const struct libevdev *dev, unsigned int code);
+
1484
+
1497int libevdev_get_abs_resolution(const struct libevdev *dev, unsigned int code);
+
1498
+
1512const struct input_absinfo* libevdev_get_abs_info(const struct libevdev *dev, unsigned int code);
+
1513
+
1535int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code);
+
1536
+
1571int libevdev_set_event_value(struct libevdev *dev, unsigned int type, unsigned int code, int value);
+
1572
+
1598int libevdev_fetch_event_value(const struct libevdev *dev, unsigned int type, unsigned int code, int *value);
+
1599
+
1620int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code);
+
1621
+
1650int libevdev_set_slot_value(struct libevdev *dev, unsigned int slot, unsigned int code, int value);
+
1651
+
1677int libevdev_fetch_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code, int *value);
+
1678
+
1692int libevdev_get_num_slots(const struct libevdev *dev);
+
1693
+
1709int libevdev_get_current_slot(const struct libevdev *dev);
+
1710
+
1722void libevdev_set_abs_minimum(struct libevdev *dev, unsigned int code, int val);
+
1723
+
1735void libevdev_set_abs_maximum(struct libevdev *dev, unsigned int code, int val);
+
1736
+
1748void libevdev_set_abs_fuzz(struct libevdev *dev, unsigned int code, int val);
+
1749
+
1761void libevdev_set_abs_flat(struct libevdev *dev, unsigned int code, int val);
+
1762
+
1774void libevdev_set_abs_resolution(struct libevdev *dev, unsigned int code, int val);
+
1775
+
1787void libevdev_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs);
+
1788
+
1806int libevdev_enable_event_type(struct libevdev *dev, unsigned int type);
+
1807
+
1834int libevdev_disable_event_type(struct libevdev *dev, unsigned int type);
+
1835
+
1869int libevdev_enable_event_code(struct libevdev *dev, unsigned int type, unsigned int code, const void *data);
+
1870
+
1898int libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigned int code);
+
1899
+
1914int libevdev_kernel_set_abs_info(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs);
+
1915
+ + +
1921 LIBEVDEV_LED_OFF = 4
+ +
1923
+
1937int libevdev_kernel_set_led_value(struct libevdev *dev, unsigned int code, enum libevdev_led_value value);
+
1938
+
1962int libevdev_kernel_set_led_values(struct libevdev *dev, ...);
+
1963
+
1978int libevdev_set_clock_id(struct libevdev *dev, int clockid);
+
1979
+
2001int libevdev_event_is_type(const struct input_event *ev, unsigned int type);
+
2002
+
2026int libevdev_event_is_code(const struct input_event *ev, unsigned int type, unsigned int code);
+
2027
+
2039const char * libevdev_event_type_get_name(unsigned int type);
+
2052const char * libevdev_event_code_get_name(unsigned int type, unsigned int code);
+
2053
+
2074const char * libevdev_event_value_get_name(unsigned int type,
+
2075 unsigned int code,
+
2076 int value);
+
2090const char* libevdev_property_get_name(unsigned int prop);
+
2091
+
2104int libevdev_event_type_get_max(unsigned int type);
+
2105
+
2120int libevdev_event_type_from_name(const char *name);
+
2121
+
2138int libevdev_event_type_from_name_n(const char *name, size_t len);
+
2139
+
2159int libevdev_event_code_from_name(unsigned int type, const char *name);
+
2160
+
2182int libevdev_event_code_from_name_n(unsigned int type, const char *name,
+
2183 size_t len);
+
2184
+
2206int libevdev_event_value_from_name(unsigned int type, unsigned int code,
+
2207 const char *name);
+
2208
+
2225int
+ +
2227
+
2246int
+
2247libevdev_event_type_from_code_name_n(const char *name, size_t len);
+
2248
+
2265int
+ +
2267
+
2286int
+
2287libevdev_event_code_from_code_name_n(const char *name, size_t len);
+
2288
+
2312int libevdev_event_value_from_name_n(unsigned int type, unsigned int code,
+
2313 const char *name, size_t len);
+
2314
+
2327int libevdev_property_from_name(const char *name);
+
2328
+
2343int libevdev_property_from_name_n(const char *name, size_t len);
+
2344
+
2362int libevdev_get_repeat(const struct libevdev *dev, int *delay, int *period);
+
2363
+
2364/********* DEPRECATED SECTION *********/
+
2365#if defined(__GNUC__) && __GNUC__ >= 4
+
2366#define LIBEVDEV_DEPRECATED __attribute__ ((deprecated))
+
2367#else
+
2368#define LIBEVDEV_DEPRECATED
+
2369#endif
+
2370
+
2371#ifdef __cplusplus
+
2372}
+
2373#endif
+
2374
+
2375#endif /* LIBEVDEV_H */
int libevdev_get_id_vendor(const struct libevdev *dev)
int libevdev_fetch_event_value(const struct libevdev *dev, unsigned int type, unsigned int code, int *value)
Fetch the current value of the event type.
int libevdev_get_abs_fuzz(const struct libevdev *dev, unsigned int code)
Get the axis fuzz for the given axis, as advertised by the kernel.
@@ -349,18 +356,18 @@ $(function() {
int libevdev_get_driver_version(const struct libevdev *dev)
int libevdev_has_property(const struct libevdev *dev, unsigned int prop)
int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)
+
const char * libevdev_get_phys(const struct libevdev *dev)
Retrieve the device's physical location, either as set by the caller or as read from the kernel.
+
const char * libevdev_get_uniq(const struct libevdev *dev)
Retrieve the device's unique identifier, either as set by the caller or as read from the kernel.
int libevdev_get_abs_minimum(const struct libevdev *dev, unsigned int code)
Get the minimum axis value for the given axis, as advertised by the kernel.
-
const char * libevdev_get_phys(const struct libevdev *dev)
Retrieve the device's physical location, either as set by the caller or as read from the kernel.
int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)
Behaviour of this function is undefined if the device does not provide the event.
int libevdev_get_abs_flat(const struct libevdev *dev, unsigned int code)
Get the axis flat for the given axis, as advertised by the kernel.
-
const struct input_absinfo * libevdev_get_abs_info(const struct libevdev *dev, unsigned int code)
Get the axis info for the given axis, as advertised by the kernel.
-
const char * libevdev_get_uniq(const struct libevdev *dev)
Retrieve the device's unique identifier, either as set by the caller or as read from the kernel.
int libevdev_get_abs_resolution(const struct libevdev *dev, unsigned int code)
Get the axis resolution for the given axis, as advertised by the kernel.
int libevdev_get_id_version(const struct libevdev *dev)
+
const char * libevdev_get_name(const struct libevdev *dev)
Retrieve the device's name, either as set by the caller or as read from the kernel.
int libevdev_get_abs_maximum(const struct libevdev *dev, unsigned int code)
Get the maximum axis value for the given axis, as advertised by the kernel.
int libevdev_get_id_bustype(const struct libevdev *dev)
int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)
-
const char * libevdev_get_name(const struct libevdev *dev)
Retrieve the device's name, either as set by the caller or as read from the kernel.
+
const struct input_absinfo * libevdev_get_abs_info(const struct libevdev *dev, unsigned int code)
Get the axis info for the given axis, as advertised by the kernel.
int libevdev_get_repeat(const struct libevdev *dev, int *delay, int *period)
Get the repeat delay and repeat period values for this device.
libevdev_read_status
Definition: libevdev.h:1074
libevdev_read_flag
Definition: libevdev.h:760
@@ -372,11 +379,11 @@ $(function() {
@ LIBEVDEV_READ_FLAG_SYNC
Process data in sync mode.
Definition: libevdev.h:761
@ LIBEVDEV_READ_FLAG_FORCE_SYNC
Pretend the next event is a SYN_DROPPED and require the caller to sync.
Definition: libevdev.h:763
@ LIBEVDEV_READ_FLAG_NORMAL
Process data in normal mode.
Definition: libevdev.h:762
-
struct libevdev * libevdev_new(void)
Initialize a new libevdev device.
int libevdev_grab(struct libevdev *dev, enum libevdev_grab_mode grab)
Grab or ungrab the device through a kernel EVIOCGRAB.
int libevdev_set_fd(struct libevdev *dev, int fd)
Set the fd for this struct and initialize internal data.
int libevdev_new_from_fd(int fd, struct libevdev **dev)
Initialize a new libevdev device from the given fd.
libevdev_grab_mode
Definition: libevdev.h:958
+
struct libevdev * libevdev_new(void)
Initialize a new libevdev device.
int libevdev_get_fd(const struct libevdev *dev)
int libevdev_change_fd(struct libevdev *dev, int fd)
Change the fd for this device, without re-reading the actual device.
void libevdev_free(struct libevdev *dev)
Clean up and free the libevdev struct.
@@ -420,23 +427,23 @@ $(function() {
@ LIBEVDEV_LOG_ERROR
critical errors and application bugs
Definition: libevdev.h:827
@ LIBEVDEV_LOG_INFO
informational messages
Definition: libevdev.h:828
@ LIBEVDEV_LOG_DEBUG
debug information
Definition: libevdev.h:829
+
const char * libevdev_event_value_get_name(unsigned int type, unsigned int code, int value)
This function resolves the event value for a code.
int libevdev_event_code_from_name_n(unsigned int type, const char *name, size_t len)
Look up an event code by its type and name.
int libevdev_event_value_from_name(unsigned int type, unsigned int code, const char *name)
Look up an event value by its type, code and name.
int libevdev_event_is_code(const struct input_event *ev, unsigned int type, unsigned int code)
Helper function to check if an event is of a specific type and code.
+
const char * libevdev_event_type_get_name(unsigned int type)
int libevdev_event_type_from_name_n(const char *name, size_t len)
Look up an event-type by its name.
+
const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)
int libevdev_event_code_from_code_name_n(const char *name, size_t len)
Look up an event code by its name.
int libevdev_event_type_from_name(const char *name)
Look up an event-type by its name.
int libevdev_event_code_from_name(unsigned int type, const char *name)
Look up an event code by its type and name.
int libevdev_property_from_name(const char *name)
Look up an input property by its name.
+
const char * libevdev_property_get_name(unsigned int prop)
int libevdev_property_from_name_n(const char *name, size_t len)
Look up an input property by its name.
int libevdev_event_type_from_code_name_n(const char *name, size_t len)
Look up an event type for a event code name.
-
const char * libevdev_event_code_get_name(unsigned int type, unsigned int code)
int libevdev_event_is_type(const struct input_event *ev, unsigned int type)
Helper function to check if an event is of a specific type.
int libevdev_event_code_from_code_name(const char *name)
Look up an event code by its name.
-
const char * libevdev_event_value_get_name(unsigned int type, unsigned int code, int value)
This function resolves the event value for a code.
int libevdev_event_type_get_max(unsigned int type)
-
const char * libevdev_event_type_get_name(unsigned int type)
-
const char * libevdev_property_get_name(unsigned int prop)
int libevdev_event_type_from_code_name(const char *name)
Look up an event type for a event code name.
int libevdev_event_value_from_name_n(unsigned int type, unsigned int code, const char *name, size_t len)
Look up an event value by its type, code and name.
int libevdev_get_slot_value(const struct libevdev *dev, unsigned int slot, unsigned int code)
Return the current value of the code for the given slot.
@@ -455,7 +462,7 @@ $(function() { diff --git a/doc/html/menu.js b/doc/html/menu.js index 2fe2214f26aafa79ae0a11cecc6f127d13ff9eb9..b0b26936a0d12aeb410725baa8c29cfe7e6d1e1e 100644 --- a/doc/html/menu.js +++ b/doc/html/menu.js @@ -28,7 +28,15 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { if ('children' in data) { result+='
    '; for (var i in data.children) { - result+='
  • '+ + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ data.children[i].text+''+ makeTree(data.children[i],relPath)+'
  • '; } @@ -36,15 +44,92 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } return result; } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + var searchBoxHtml; if (searchEnabled) { if (serverSide) { - $('#main-menu').append('
  • '); + searchBoxHtml='
    '+ + '
    '+ + '
     '+ + ''+ + '
    '+ + '
    '+ + '
    '+ + '
    '; } else { - $('#main-menu').append('
  • '); + searchBoxHtml='
    '+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '; + } + } + + $('#main-nav').before('
    '+ + ''+ + ''+ + '
    '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); } $('#main-menu').smartmenus(); } diff --git a/doc/html/modules.html b/doc/html/modules.html index 7144ae5ca25b12b1df9187d0c6e7305cf2c47b4c..27968e32696de4c8187abfc91014ecdeea88acd9 100644 --- a/doc/html/modules.html +++ b/doc/html/modules.html @@ -6,7 +6,7 @@ - + libevdev: Modules @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
    - + +/* @license-end */ +
    @@ -62,26 +63,32 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    Modules
    +
    Modules
    Here is a list of all modules:
    - + - + - + - +
     Initialization and setupInitialization, initial setup and file descriptor handling
     Library logging facilitiesLibevdev provides two methods of logging library-internal messages
     Library logging facilitiesLibevdev provides two methods of logging library-internal messages
     Querying device capabilitiesAbstraction functions to handle device capabilities, specifically device properties such as the name of the device and the bits representing the events supported by this device
     Multi-touch related functionsFunctions for querying multi-touch-related capabilities
     Multi-touch related functionsFunctions for querying multi-touch-related capabilities
     Modifying the appearance or capabilities of the deviceModifying the set of events reported by this device
     Miscellaneous helper functionsFunctions for printing or querying event ranges
     Miscellaneous helper functionsFunctions for printing or querying event ranges
     Event handlingFunctions to handle events and fetch the current state of the event
     uinput device creationCreation of uinput devices based on existing libevdev devices
     uinput device creationCreation of uinput devices based on existing libevdev devices
    @@ -95,7 +102,7 @@ $(function() { diff --git a/doc/html/nav_fd.png b/doc/html/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb Binary files /dev/null and b/doc/html/nav_fd.png differ diff --git a/doc/html/nav_hd.png b/doc/html/nav_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..de80f18ad6488b9990303f267a76fdc83f0ffd80 Binary files /dev/null and b/doc/html/nav_hd.png differ diff --git a/doc/html/pages.html b/doc/html/pages.html index 61e7c570ece5348a3f413065615ccddb3d15550e..f6e1f1122d74fab631070f69a4e4b9f71a1c879d 100644 --- a/doc/html/pages.html +++ b/doc/html/pages.html @@ -6,7 +6,7 @@ - + libevdev: Related Pages @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
    - + +/* @license-end */ +
    @@ -62,24 +63,30 @@ $(function() {
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    Related Pages
    +
    Related Pages
    Here is a list of all related documentation pages:
    - - + + - + - +
     SYN_DROPPED handlingThis page describes how libevdev handles SYN_DROPPED events
     Compatibility and Behavior across kernel versionsThis page describes libevdev's behavior when the build-time kernel and the run-time kernel differ in their feature set
     SYN_DROPPED handlingThis page describes how libevdev handles SYN_DROPPED events
     Compatibility and Behavior across kernel versionsThis page describes libevdev's behavior when the build-time kernel and the run-time kernel differ in their feature set
     evdev ioctlsThis page lists the status of the evdev-specific ioctls in libevdev
     Kernel headerLibevdev provides its own copy of the Linux kernel header file and compiles against the definitions define here
     Kernel headerLibevdev provides its own copy of the Linux kernel header file and compiles against the definitions define here
     Statically linking libevdevStatically linking libevdev.a is not recommended
     libevdev-internal test suiteLibevdev's internal test suite uses the Check unit testing framework
     libevdev-internal test suiteLibevdev's internal test suite uses the Check unit testing framework
     Deprecated List
    @@ -94,7 +101,7 @@ $(function() { diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js index b76ad63719f2aa1a6a30b1d69813c8e4f119dfa9..4d858458c36cba7ea72d8d20c7083cfd5af23118 100644 --- a/doc/html/search/all_1.js +++ b/doc/html/search/all_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['deprecated_20list_1',['Deprecated List',['../deprecated.html',1,'']]] + ['deprecated_20list_0',['Deprecated List',['../deprecated.html',1,'']]] ]; diff --git a/doc/html/search/all_2.js b/doc/html/search/all_2.js index 65423be6fe3466c377986ea063603613be3cb8db..52b1b96e4ba4859f52376d09dcb40d2e192dbcc2 100644 --- a/doc/html/search/all_2.js +++ b/doc/html/search/all_2.js @@ -1,5 +1,5 @@ var searchData= [ - ['evdev_20ioctls_2',['evdev ioctls',['../ioctls.html',1,'']]], - ['event_20handling_3',['Event handling',['../group__events.html',1,'']]] + ['evdev_20ioctls_0',['evdev ioctls',['../ioctls.html',1,'']]], + ['event_20handling_1',['Event handling',['../group__events.html',1,'']]] ]; diff --git a/doc/html/search/all_3.js b/doc/html/search/all_3.js index b39e736ad2f31f2dd837de047280209f8a98ee30..01bc1a18a59133a931db6029e424bfb3d0b6574b 100644 --- a/doc/html/search/all_3.js +++ b/doc/html/search/all_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['initialization_20and_20setup_4',['Initialization and setup',['../group__init.html',1,'']]] + ['initialization_20and_20setup_0',['Initialization and setup',['../group__init.html',1,'']]] ]; diff --git a/doc/html/search/all_4.js b/doc/html/search/all_4.js index 2996baa9772c03d1250a8764cb2c5b5187ee0323..7ab0749149c88aed00bb31b8eb2485061c664b42 100644 --- a/doc/html/search/all_4.js +++ b/doc/html/search/all_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['kernel_20header_5',['Kernel header',['../kernel_header.html',1,'']]] + ['kernel_20header_0',['Kernel header',['../kernel_header.html',1,'']]] ]; diff --git a/doc/html/search/all_5.js b/doc/html/search/all_5.js index 6d46f25af01ff9d51b7804932c35a4ce4271f29a..5a2f766876a590b57f7dd10c13bdadb3c35aca59 100644 --- a/doc/html/search/all_5.js +++ b/doc/html/search/all_5.js @@ -1,118 +1,119 @@ var searchData= [ - ['libevdev_2dinternal_20test_20suite_6',['libevdev-internal test suite',['../testing.html',1,'']]], - ['libevdev_2duinput_2eh_7',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]], - ['libevdev_2eh_8',['libevdev.h',['../libevdev_8h.html',1,'']]], - ['libevdev_5fattribute_5fprintf_9',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]], - ['libevdev_5fchange_5ffd_10',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]], - ['libevdev_5fdeprecated_11',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]], - ['libevdev_5fdevice_5flog_5ffunc_5ft_12',['libevdev_device_log_func_t',['../group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269',1,'libevdev.h']]], - ['libevdev_5fdisable_5fevent_5fcode_13',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]], - ['libevdev_5fdisable_5fevent_5ftype_14',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]], - ['libevdev_5fdisable_5fproperty_15',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]], - ['libevdev_5fenable_5fevent_5fcode_16',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]], - ['libevdev_5fenable_5fevent_5ftype_17',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]], - ['libevdev_5fenable_5fproperty_18',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_19',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_20',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fname_21',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_22',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5fget_5fname_23',['libevdev_event_code_get_name',['../group__misc.html#gab407b3c2caaae502859c28460cad17bb',1,'libevdev.h']]], - ['libevdev_5fevent_5fis_5fcode_24',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]], - ['libevdev_5fevent_5fis_5ftype_25',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_26',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_27',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fname_28',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_29',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5fget_5fmax_30',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5fget_5fname_31',['libevdev_event_type_get_name',['../group__misc.html#gac99720fd926bf288764f9a81bf37ed09',1,'libevdev.h']]], - ['libevdev_5fevent_5fvalue_5ffrom_5fname_32',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]], - ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_33',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]], - ['libevdev_5fevent_5fvalue_5fget_5fname_34',['libevdev_event_value_get_name',['../group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3',1,'libevdev.h']]], - ['libevdev_5ffetch_5fevent_5fvalue_35',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]], - ['libevdev_5ffetch_5fslot_5fvalue_36',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]], - ['libevdev_5ffree_37',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fflat_38',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5ffuzz_39',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5finfo_40',['libevdev_get_abs_info',['../group__bits.html#ga6d8e2caf87fa536fad979346671838d7',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fmaximum_41',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fminimum_42',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fresolution_43',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]], - ['libevdev_5fget_5fcurrent_5fslot_44',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]], - ['libevdev_5fget_5fdriver_5fversion_45',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]], - ['libevdev_5fget_5fevent_5fvalue_46',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]], - ['libevdev_5fget_5ffd_47',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fbustype_48',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fproduct_49',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fvendor_50',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fversion_51',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]], - ['libevdev_5fget_5flog_5fpriority_52',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]], - ['libevdev_5fget_5fname_53',['libevdev_get_name',['../group__bits.html#gaed0328c67b7a78422636d9fe09a73f12',1,'libevdev.h']]], - ['libevdev_5fget_5fnum_5fslots_54',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]], - ['libevdev_5fget_5fphys_55',['libevdev_get_phys',['../group__bits.html#ga5df483b0b24d7b96ea1181808fab851d',1,'libevdev.h']]], - ['libevdev_5fget_5frepeat_56',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]], - ['libevdev_5fget_5fslot_5fvalue_57',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]], - ['libevdev_5fget_5funiq_58',['libevdev_get_uniq',['../group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4',1,'libevdev.h']]], - ['libevdev_5fgrab_59',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]], - ['libevdev_5fgrab_60',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]], - ['libevdev_5fgrab_5fmode_61',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]], - ['libevdev_5fhas_5fevent_5fcode_62',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]], - ['libevdev_5fhas_5fevent_5fpending_63',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]], - ['libevdev_5fhas_5fevent_5ftype_64',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]], - ['libevdev_5fhas_5fproperty_65',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]], - ['libevdev_5fkernel_5fset_5fabs_5finfo_66',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]], - ['libevdev_5fkernel_5fset_5fled_5fvalue_67',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]], - ['libevdev_5fkernel_5fset_5fled_5fvalues_68',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]], - ['libevdev_5fled_5foff_69',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]], - ['libevdev_5fled_5fon_70',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]], - ['libevdev_5fled_5fvalue_71',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]], - ['libevdev_5flog_5fdebug_72',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]], - ['libevdev_5flog_5ferror_73',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]], - ['libevdev_5flog_5ffunc_5ft_74',['libevdev_log_func_t',['../group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4',1,'libevdev.h']]], - ['libevdev_5flog_5finfo_75',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]], - ['libevdev_5flog_5fpriority_76',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]], - ['libevdev_5fnew_77',['libevdev_new',['../group__init.html#ga332c8ee260b4ef864345abe5d04e820c',1,'libevdev.h']]], - ['libevdev_5fnew_5ffrom_5ffd_78',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]], - ['libevdev_5fnext_5fevent_79',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]], - ['libevdev_5fproperty_5ffrom_5fname_80',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]], - ['libevdev_5fproperty_5ffrom_5fname_5fn_81',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]], - ['libevdev_5fproperty_5fget_5fname_82',['libevdev_property_get_name',['../group__misc.html#gacc12bdb7b912070ac9c375428f2c9892',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_83',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fblocking_84',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fforce_5fsync_85',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fnormal_86',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fsync_87',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]], - ['libevdev_5fread_5fstatus_88',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]], - ['libevdev_5fread_5fstatus_5fsuccess_89',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]], - ['libevdev_5fread_5fstatus_5fsync_90',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fflat_91',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5ffuzz_92',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5finfo_93',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fmaximum_94',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fminimum_95',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fresolution_96',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]], - ['libevdev_5fset_5fclock_5fid_97',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]], - ['libevdev_5fset_5fdevice_5flog_5ffunction_98',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]], - ['libevdev_5fset_5fevent_5fvalue_99',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]], - ['libevdev_5fset_5ffd_100',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fbustype_101',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fproduct_102',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fvendor_103',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fversion_104',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]], - ['libevdev_5fset_5flog_5ffunction_105',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]], - ['libevdev_5fset_5flog_5fpriority_106',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]], - ['libevdev_5fset_5fname_107',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]], - ['libevdev_5fset_5fphys_108',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]], - ['libevdev_5fset_5fslot_5fvalue_109',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]], - ['libevdev_5fset_5funiq_110',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]], - ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_111',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fdestroy_112',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fget_5fdevnode_113',['libevdev_uinput_get_devnode',['../group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fget_5ffd_114',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fget_5fsyspath_115',['libevdev_uinput_get_syspath',['../group__uinput.html#gaacca93061fce57cec0ce3c52e443a427',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fopen_5fmanaged_116',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fopen_5fmode_117',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fwrite_5fevent_118',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]], - ['libevdev_5fungrab_119',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]], - ['library_20logging_20facilities_120',['Library logging facilities',['../group__logging.html',1,'']]] + ['libevdev_0',['libevdev',['../index.html',1,'']]], + ['libevdev_2dinternal_20test_20suite_1',['libevdev-internal test suite',['../testing.html',1,'']]], + ['libevdev_2duinput_2eh_2',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]], + ['libevdev_2eh_3',['libevdev.h',['../libevdev_8h.html',1,'']]], + ['libevdev_5fattribute_5fprintf_4',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]], + ['libevdev_5fchange_5ffd_5',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]], + ['libevdev_5fdeprecated_6',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]], + ['libevdev_5fdevice_5flog_5ffunc_5ft_7',['libevdev_device_log_func_t',['../group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269',1,'libevdev.h']]], + ['libevdev_5fdisable_5fevent_5fcode_8',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]], + ['libevdev_5fdisable_5fevent_5ftype_9',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]], + ['libevdev_5fdisable_5fproperty_10',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]], + ['libevdev_5fenable_5fevent_5fcode_11',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]], + ['libevdev_5fenable_5fevent_5ftype_12',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]], + ['libevdev_5fenable_5fproperty_13',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_14',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_15',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fname_16',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_17',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5fget_5fname_18',['libevdev_event_code_get_name',['../group__misc.html#ga50a218262738b97044bbffde74c73391',1,'libevdev.h']]], + ['libevdev_5fevent_5fis_5fcode_19',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]], + ['libevdev_5fevent_5fis_5ftype_20',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_21',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_22',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fname_23',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_24',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5fget_5fmax_25',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5fget_5fname_26',['libevdev_event_type_get_name',['../group__misc.html#ga3812c0acaba081da88532cdb08b10a03',1,'libevdev.h']]], + ['libevdev_5fevent_5fvalue_5ffrom_5fname_27',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]], + ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_28',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]], + ['libevdev_5fevent_5fvalue_5fget_5fname_29',['libevdev_event_value_get_name',['../group__misc.html#ga12a7ece2969e162f29b5a5811c49ec9c',1,'libevdev.h']]], + ['libevdev_5ffetch_5fevent_5fvalue_30',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]], + ['libevdev_5ffetch_5fslot_5fvalue_31',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]], + ['libevdev_5ffree_32',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fflat_33',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5ffuzz_34',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5finfo_35',['libevdev_get_abs_info',['../group__bits.html#gab6393c2d73997b052471a03c8fb05fec',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fmaximum_36',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fminimum_37',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fresolution_38',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]], + ['libevdev_5fget_5fcurrent_5fslot_39',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]], + ['libevdev_5fget_5fdriver_5fversion_40',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]], + ['libevdev_5fget_5fevent_5fvalue_41',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]], + ['libevdev_5fget_5ffd_42',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fbustype_43',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fproduct_44',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fvendor_45',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fversion_46',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]], + ['libevdev_5fget_5flog_5fpriority_47',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]], + ['libevdev_5fget_5fname_48',['libevdev_get_name',['../group__bits.html#ga94d6d9259ccfbb89e683270ba0534808',1,'libevdev.h']]], + ['libevdev_5fget_5fnum_5fslots_49',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]], + ['libevdev_5fget_5fphys_50',['libevdev_get_phys',['../group__bits.html#ga3f96ca249a293aa12a7a1703f6bbee86',1,'libevdev.h']]], + ['libevdev_5fget_5frepeat_51',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]], + ['libevdev_5fget_5fslot_5fvalue_52',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]], + ['libevdev_5fget_5funiq_53',['libevdev_get_uniq',['../group__bits.html#ga431af41e8a73ec664d50f956167db965',1,'libevdev.h']]], + ['libevdev_5fgrab_54',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]], + ['libevdev_5fgrab_55',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]], + ['libevdev_5fgrab_5fmode_56',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]], + ['libevdev_5fhas_5fevent_5fcode_57',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]], + ['libevdev_5fhas_5fevent_5fpending_58',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]], + ['libevdev_5fhas_5fevent_5ftype_59',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]], + ['libevdev_5fhas_5fproperty_60',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]], + ['libevdev_5fkernel_5fset_5fabs_5finfo_61',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]], + ['libevdev_5fkernel_5fset_5fled_5fvalue_62',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]], + ['libevdev_5fkernel_5fset_5fled_5fvalues_63',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]], + ['libevdev_5fled_5foff_64',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]], + ['libevdev_5fled_5fon_65',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]], + ['libevdev_5fled_5fvalue_66',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]], + ['libevdev_5flog_5fdebug_67',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]], + ['libevdev_5flog_5ferror_68',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]], + ['libevdev_5flog_5ffunc_5ft_69',['libevdev_log_func_t',['../group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4',1,'libevdev.h']]], + ['libevdev_5flog_5finfo_70',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]], + ['libevdev_5flog_5fpriority_71',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]], + ['libevdev_5fnew_72',['libevdev_new',['../group__init.html#gab1f26f9d52e5df93bd4d892f6c042675',1,'libevdev.h']]], + ['libevdev_5fnew_5ffrom_5ffd_73',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]], + ['libevdev_5fnext_5fevent_74',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]], + ['libevdev_5fproperty_5ffrom_5fname_75',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]], + ['libevdev_5fproperty_5ffrom_5fname_5fn_76',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]], + ['libevdev_5fproperty_5fget_5fname_77',['libevdev_property_get_name',['../group__misc.html#ga78b0893d99b79fe5c92c9e0018ef56be',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_78',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fblocking_79',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fforce_5fsync_80',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fnormal_81',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fsync_82',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]], + ['libevdev_5fread_5fstatus_83',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]], + ['libevdev_5fread_5fstatus_5fsuccess_84',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]], + ['libevdev_5fread_5fstatus_5fsync_85',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fflat_86',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5ffuzz_87',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5finfo_88',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fmaximum_89',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fminimum_90',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fresolution_91',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]], + ['libevdev_5fset_5fclock_5fid_92',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]], + ['libevdev_5fset_5fdevice_5flog_5ffunction_93',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]], + ['libevdev_5fset_5fevent_5fvalue_94',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]], + ['libevdev_5fset_5ffd_95',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fbustype_96',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fproduct_97',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fvendor_98',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fversion_99',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]], + ['libevdev_5fset_5flog_5ffunction_100',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]], + ['libevdev_5fset_5flog_5fpriority_101',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]], + ['libevdev_5fset_5fname_102',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]], + ['libevdev_5fset_5fphys_103',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]], + ['libevdev_5fset_5fslot_5fvalue_104',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]], + ['libevdev_5fset_5funiq_105',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]], + ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_106',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fdestroy_107',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fget_5fdevnode_108',['libevdev_uinput_get_devnode',['../group__uinput.html#gaa5948dc9c61303a0d9d3d8c06f616f37',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fget_5ffd_109',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fget_5fsyspath_110',['libevdev_uinput_get_syspath',['../group__uinput.html#ga71c4a2b042378b70ccb82637d5fd8edb',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fopen_5fmanaged_111',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fopen_5fmode_112',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fwrite_5fevent_113',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]], + ['libevdev_5fungrab_114',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]], + ['library_20logging_20facilities_115',['Library logging facilities',['../group__logging.html',1,'']]] ]; diff --git a/doc/html/search/all_6.js b/doc/html/search/all_6.js index 3cea197b668dac2f5ea84c984fa7d0409769c77f..db6da802a72efc461d68538494f8de8a607f864e 100644 --- a/doc/html/search/all_6.js +++ b/doc/html/search/all_6.js @@ -1,6 +1,6 @@ var searchData= [ - ['miscellaneous_20helper_20functions_121',['Miscellaneous helper functions',['../group__misc.html',1,'']]], - ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_122',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]], - ['multi_2dtouch_20related_20functions_123',['Multi-touch related functions',['../group__mt.html',1,'']]] + ['miscellaneous_20helper_20functions_0',['Miscellaneous helper functions',['../group__misc.html',1,'']]], + ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_1',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]], + ['multi_2dtouch_20related_20functions_2',['Multi-touch related functions',['../group__mt.html',1,'']]] ]; diff --git a/doc/html/search/all_7.js b/doc/html/search/all_7.js index 055cb205e31928b7fbc2b301337c138124ba928d..64cc365e9c93477184dafc104609cb33815d0519 100644 --- a/doc/html/search/all_7.js +++ b/doc/html/search/all_7.js @@ -1,4 +1,4 @@ var searchData= [ - ['querying_20device_20capabilities_124',['Querying device capabilities',['../group__bits.html',1,'']]] + ['querying_20device_20capabilities_0',['Querying device capabilities',['../group__bits.html',1,'']]] ]; diff --git a/doc/html/search/all_8.js b/doc/html/search/all_8.js index 94ce2e19c36a4b027895082e1b550a2eb69a89d1..f7c2f2f97167979de746206b7a94757591108715 100644 --- a/doc/html/search/all_8.js +++ b/doc/html/search/all_8.js @@ -1,5 +1,5 @@ var searchData= [ - ['statically_20linking_20libevdev_125',['Statically linking libevdev',['../static_linking.html',1,'']]], - ['syn_5fdropped_20handling_126',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]] + ['statically_20linking_20libevdev_0',['Statically linking libevdev',['../static_linking.html',1,'']]], + ['syn_5fdropped_20handling_1',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]] ]; diff --git a/doc/html/search/all_9.js b/doc/html/search/all_9.js index 04ddd4b423c8f930d2e158896b2ec34d94e94be6..71e678238986ccf847f9d526f25ca0f1609ddc3a 100644 --- a/doc/html/search/all_9.js +++ b/doc/html/search/all_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['uinput_20device_20creation_127',['uinput device creation',['../group__uinput.html',1,'']]] + ['uinput_20device_20creation_0',['uinput device creation',['../group__uinput.html',1,'']]] ]; diff --git a/doc/html/search/defines_0.js b/doc/html/search/defines_0.js index aeccf3bad18de52fe4998ee55f5feea84064f1dc..4926ba384a7b11062bd60323569ffc4977ba63cf 100644 --- a/doc/html/search/defines_0.js +++ b/doc/html/search/defines_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['libevdev_5fattribute_5fprintf_239',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]], - ['libevdev_5fdeprecated_240',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]] + ['libevdev_5fattribute_5fprintf_0',['LIBEVDEV_ATTRIBUTE_PRINTF',['../libevdev_8h.html#a64a0f325e88e1be50eb806e1ff75aec8',1,'libevdev.h']]], + ['libevdev_5fdeprecated_1',['LIBEVDEV_DEPRECATED',['../libevdev_8h.html#aa136bf4638abda28de7cd9f48af534ae',1,'libevdev.h']]] ]; diff --git a/doc/html/search/enums_0.js b/doc/html/search/enums_0.js index 20fa8f87f1d8d5e078f26639d9d5ae7db092fd42..a931b6ddc2a4445e51d224d51aeedb7a4ed825ad 100644 --- a/doc/html/search/enums_0.js +++ b/doc/html/search/enums_0.js @@ -1,9 +1,9 @@ var searchData= [ - ['libevdev_5fgrab_5fmode_219',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]], - ['libevdev_5fled_5fvalue_220',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]], - ['libevdev_5flog_5fpriority_221',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_222',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]], - ['libevdev_5fread_5fstatus_223',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]], - ['libevdev_5fuinput_5fopen_5fmode_224',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]] + ['libevdev_5fgrab_5fmode_0',['libevdev_grab_mode',['../group__init.html#gaa282ec9badaa6bc11b1dc5bb124dbd5b',1,'libevdev.h']]], + ['libevdev_5fled_5fvalue_1',['libevdev_led_value',['../group__kernel.html#ga8cddf7779debef0067665671e911ec41',1,'libevdev.h']]], + ['libevdev_5flog_5fpriority_2',['libevdev_log_priority',['../group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_3',['libevdev_read_flag',['../group__events.html#ga56c288d9f2e4c1632986c4e218c494e9',1,'libevdev.h']]], + ['libevdev_5fread_5fstatus_4',['libevdev_read_status',['../group__events.html#ga4a96221b3c7f54dfb86035d952154e3a',1,'libevdev.h']]], + ['libevdev_5fuinput_5fopen_5fmode_5',['libevdev_uinput_open_mode',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03',1,'libevdev-uinput.h']]] ]; diff --git a/doc/html/search/enumvalues_0.js b/doc/html/search/enumvalues_0.js index 918c5b489f5f2af8befe479ef50550104ac30640..cf42894f1596d9e836484960683166c62326afdb 100644 --- a/doc/html/search/enumvalues_0.js +++ b/doc/html/search/enumvalues_0.js @@ -1,17 +1,17 @@ var searchData= [ - ['libevdev_5fgrab_225',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]], - ['libevdev_5fled_5foff_226',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]], - ['libevdev_5fled_5fon_227',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]], - ['libevdev_5flog_5fdebug_228',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]], - ['libevdev_5flog_5ferror_229',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]], - ['libevdev_5flog_5finfo_230',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fblocking_231',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fforce_5fsync_232',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fnormal_233',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]], - ['libevdev_5fread_5fflag_5fsync_234',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]], - ['libevdev_5fread_5fstatus_5fsuccess_235',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]], - ['libevdev_5fread_5fstatus_5fsync_236',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]], - ['libevdev_5fuinput_5fopen_5fmanaged_237',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]], - ['libevdev_5fungrab_238',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]] + ['libevdev_5fgrab_0',['LIBEVDEV_GRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5bad3ac6f5f3ebf7d38a6aad74a88396c88',1,'libevdev.h']]], + ['libevdev_5fled_5foff_1',['LIBEVDEV_LED_OFF',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a23e508440306c387ddf89acd2db9e065',1,'libevdev.h']]], + ['libevdev_5fled_5fon_2',['LIBEVDEV_LED_ON',['../group__kernel.html#gga8cddf7779debef0067665671e911ec41a69d5a4cdf2a9357915fff0251a61d2ab',1,'libevdev.h']]], + ['libevdev_5flog_5fdebug_3',['LIBEVDEV_LOG_DEBUG',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793',1,'libevdev.h']]], + ['libevdev_5flog_5ferror_4',['LIBEVDEV_LOG_ERROR',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f',1,'libevdev.h']]], + ['libevdev_5flog_5finfo_5',['LIBEVDEV_LOG_INFO',['../group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fblocking_6',['LIBEVDEV_READ_FLAG_BLOCKING',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a0a348d44362a7e515b40a4ed4d528e19',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fforce_5fsync_7',['LIBEVDEV_READ_FLAG_FORCE_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a5198e5c9cc98b75f73f61b104d6a674c',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fnormal_8',['LIBEVDEV_READ_FLAG_NORMAL',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9ac0d6ee19551eecf76f1ede4f36252418',1,'libevdev.h']]], + ['libevdev_5fread_5fflag_5fsync_9',['LIBEVDEV_READ_FLAG_SYNC',['../group__events.html#gga56c288d9f2e4c1632986c4e218c494e9a1f13a19641d6dafcf01a86a6389800f8',1,'libevdev.h']]], + ['libevdev_5fread_5fstatus_5fsuccess_10',['LIBEVDEV_READ_STATUS_SUCCESS',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aab053221fc1c9630eee7111b75aa0aec7',1,'libevdev.h']]], + ['libevdev_5fread_5fstatus_5fsync_11',['LIBEVDEV_READ_STATUS_SYNC',['../group__events.html#gga4a96221b3c7f54dfb86035d952154e3aa8d70b14a38204fde4ad433023baa545a',1,'libevdev.h']]], + ['libevdev_5fuinput_5fopen_5fmanaged_12',['LIBEVDEV_UINPUT_OPEN_MANAGED',['../libevdev-uinput_8h.html#a6546acd3e4fe75a74d91eebf9bbd3d03adcf2d4de38844ee3a8c830bc3285afad',1,'libevdev-uinput.h']]], + ['libevdev_5fungrab_13',['LIBEVDEV_UNGRAB',['../group__init.html#ggaa282ec9badaa6bc11b1dc5bb124dbd5ba6c0930d0c280753504cd05ebdcda09eb',1,'libevdev.h']]] ]; diff --git a/doc/html/search/files_0.js b/doc/html/search/files_0.js index 3cea379b87921fca0b8bca14ca2707f4e1489000..b0da7fb34e1af61573110f8315f0f876ef45eac3 100644 --- a/doc/html/search/files_0.js +++ b/doc/html/search/files_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['libevdev_2duinput_2eh_128',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]], - ['libevdev_2eh_129',['libevdev.h',['../libevdev_8h.html',1,'']]] + ['libevdev_2duinput_2eh_0',['libevdev-uinput.h',['../libevdev-uinput_8h.html',1,'']]], + ['libevdev_2eh_1',['libevdev.h',['../libevdev_8h.html',1,'']]] ]; diff --git a/doc/html/search/functions_0.js b/doc/html/search/functions_0.js index 530d50dac503854e43c660904d13c6b8dd35819c..1b00074e82da7a6359c35480a36cbddb08999e2a 100644 --- a/doc/html/search/functions_0.js +++ b/doc/html/search/functions_0.js @@ -1,90 +1,90 @@ var searchData= [ - ['libevdev_5fchange_5ffd_130',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]], - ['libevdev_5fdisable_5fevent_5fcode_131',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]], - ['libevdev_5fdisable_5fevent_5ftype_132',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]], - ['libevdev_5fdisable_5fproperty_133',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]], - ['libevdev_5fenable_5fevent_5fcode_134',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]], - ['libevdev_5fenable_5fevent_5ftype_135',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]], - ['libevdev_5fenable_5fproperty_136',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_137',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_138',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fname_139',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_140',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]], - ['libevdev_5fevent_5fcode_5fget_5fname_141',['libevdev_event_code_get_name',['../group__misc.html#gab407b3c2caaae502859c28460cad17bb',1,'libevdev.h']]], - ['libevdev_5fevent_5fis_5fcode_142',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]], - ['libevdev_5fevent_5fis_5ftype_143',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_144',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_145',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fname_146',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_147',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5fget_5fmax_148',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]], - ['libevdev_5fevent_5ftype_5fget_5fname_149',['libevdev_event_type_get_name',['../group__misc.html#gac99720fd926bf288764f9a81bf37ed09',1,'libevdev.h']]], - ['libevdev_5fevent_5fvalue_5ffrom_5fname_150',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]], - ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_151',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]], - ['libevdev_5fevent_5fvalue_5fget_5fname_152',['libevdev_event_value_get_name',['../group__misc.html#gabcd45c5e963cba245e944ea66e72fcc3',1,'libevdev.h']]], - ['libevdev_5ffetch_5fevent_5fvalue_153',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]], - ['libevdev_5ffetch_5fslot_5fvalue_154',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]], - ['libevdev_5ffree_155',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fflat_156',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5ffuzz_157',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5finfo_158',['libevdev_get_abs_info',['../group__bits.html#ga6d8e2caf87fa536fad979346671838d7',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fmaximum_159',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fminimum_160',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]], - ['libevdev_5fget_5fabs_5fresolution_161',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]], - ['libevdev_5fget_5fcurrent_5fslot_162',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]], - ['libevdev_5fget_5fdriver_5fversion_163',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]], - ['libevdev_5fget_5fevent_5fvalue_164',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]], - ['libevdev_5fget_5ffd_165',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fbustype_166',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fproduct_167',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fvendor_168',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]], - ['libevdev_5fget_5fid_5fversion_169',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]], - ['libevdev_5fget_5flog_5fpriority_170',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]], - ['libevdev_5fget_5fname_171',['libevdev_get_name',['../group__bits.html#gaed0328c67b7a78422636d9fe09a73f12',1,'libevdev.h']]], - ['libevdev_5fget_5fnum_5fslots_172',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]], - ['libevdev_5fget_5fphys_173',['libevdev_get_phys',['../group__bits.html#ga5df483b0b24d7b96ea1181808fab851d',1,'libevdev.h']]], - ['libevdev_5fget_5frepeat_174',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]], - ['libevdev_5fget_5fslot_5fvalue_175',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]], - ['libevdev_5fget_5funiq_176',['libevdev_get_uniq',['../group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4',1,'libevdev.h']]], - ['libevdev_5fgrab_177',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]], - ['libevdev_5fhas_5fevent_5fcode_178',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]], - ['libevdev_5fhas_5fevent_5fpending_179',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]], - ['libevdev_5fhas_5fevent_5ftype_180',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]], - ['libevdev_5fhas_5fproperty_181',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]], - ['libevdev_5fkernel_5fset_5fabs_5finfo_182',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]], - ['libevdev_5fkernel_5fset_5fled_5fvalue_183',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]], - ['libevdev_5fkernel_5fset_5fled_5fvalues_184',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]], - ['libevdev_5fnew_185',['libevdev_new',['../group__init.html#ga332c8ee260b4ef864345abe5d04e820c',1,'libevdev.h']]], - ['libevdev_5fnew_5ffrom_5ffd_186',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]], - ['libevdev_5fnext_5fevent_187',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]], - ['libevdev_5fproperty_5ffrom_5fname_188',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]], - ['libevdev_5fproperty_5ffrom_5fname_5fn_189',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]], - ['libevdev_5fproperty_5fget_5fname_190',['libevdev_property_get_name',['../group__misc.html#gacc12bdb7b912070ac9c375428f2c9892',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fflat_191',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5ffuzz_192',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5finfo_193',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fmaximum_194',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fminimum_195',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]], - ['libevdev_5fset_5fabs_5fresolution_196',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]], - ['libevdev_5fset_5fclock_5fid_197',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]], - ['libevdev_5fset_5fdevice_5flog_5ffunction_198',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]], - ['libevdev_5fset_5fevent_5fvalue_199',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]], - ['libevdev_5fset_5ffd_200',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fbustype_201',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fproduct_202',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fvendor_203',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]], - ['libevdev_5fset_5fid_5fversion_204',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]], - ['libevdev_5fset_5flog_5ffunction_205',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]], - ['libevdev_5fset_5flog_5fpriority_206',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]], - ['libevdev_5fset_5fname_207',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]], - ['libevdev_5fset_5fphys_208',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]], - ['libevdev_5fset_5fslot_5fvalue_209',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]], - ['libevdev_5fset_5funiq_210',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]], - ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_211',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fdestroy_212',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fget_5fdevnode_213',['libevdev_uinput_get_devnode',['../group__uinput.html#ga4c595bcda748b08561e2819fe9b7c2d2',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fget_5ffd_214',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fget_5fsyspath_215',['libevdev_uinput_get_syspath',['../group__uinput.html#gaacca93061fce57cec0ce3c52e443a427',1,'libevdev-uinput.h']]], - ['libevdev_5fuinput_5fwrite_5fevent_216',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]] + ['libevdev_5fchange_5ffd_0',['libevdev_change_fd',['../group__init.html#gac71c9cca4c572ed1b1a8c233be70a17c',1,'libevdev.h']]], + ['libevdev_5fdisable_5fevent_5fcode_1',['libevdev_disable_event_code',['../group__kernel.html#ga6199a7c8144f54e092e913c2d2df16de',1,'libevdev.h']]], + ['libevdev_5fdisable_5fevent_5ftype_2',['libevdev_disable_event_type',['../group__kernel.html#gabbacb53b66882b5335055c0fd1f40d9a',1,'libevdev.h']]], + ['libevdev_5fdisable_5fproperty_3',['libevdev_disable_property',['../group__kernel.html#ga8f6367c36331c803ad69b2591e210019',1,'libevdev.h']]], + ['libevdev_5fenable_5fevent_5fcode_4',['libevdev_enable_event_code',['../group__kernel.html#ga51cfda33fd526549046399aadd764fca',1,'libevdev.h']]], + ['libevdev_5fenable_5fevent_5ftype_5',['libevdev_enable_event_type',['../group__kernel.html#ga59ef78b1557f9543d0060ab25b0167ca',1,'libevdev.h']]], + ['libevdev_5fenable_5fproperty_6',['libevdev_enable_property',['../group__kernel.html#gafc552080520c9d886452b05f3a1d75b6',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_7',['libevdev_event_code_from_code_name',['../group__misc.html#gabad00f68481d83747a134c0a37aca003',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fcode_5fname_5fn_8',['libevdev_event_code_from_code_name_n',['../group__misc.html#ga5bf9af4b8c372d87793e8a3c2dbeb466',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fname_9',['libevdev_event_code_from_name',['../group__misc.html#ga6620301a67f467489e4a7f93afe81621',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5ffrom_5fname_5fn_10',['libevdev_event_code_from_name_n',['../group__misc.html#ga17a760a9eea9dc25011f39e1d5c282a0',1,'libevdev.h']]], + ['libevdev_5fevent_5fcode_5fget_5fname_11',['libevdev_event_code_get_name',['../group__misc.html#ga50a218262738b97044bbffde74c73391',1,'libevdev.h']]], + ['libevdev_5fevent_5fis_5fcode_12',['libevdev_event_is_code',['../group__misc.html#ga37766a6a498fef3294d589abcce688bb',1,'libevdev.h']]], + ['libevdev_5fevent_5fis_5ftype_13',['libevdev_event_is_type',['../group__misc.html#gab8b6b80740e028261300b8952b61a596',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_14',['libevdev_event_type_from_code_name',['../group__misc.html#gadd41b7514cca16c8b8920f16e562e08a',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fcode_5fname_5fn_15',['libevdev_event_type_from_code_name_n',['../group__misc.html#gab214498fca7a328f8a712ce15bf21982',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fname_16',['libevdev_event_type_from_name',['../group__misc.html#ga61ce3bf1e66bd172e583b86a11fc41f1',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5ffrom_5fname_5fn_17',['libevdev_event_type_from_name_n',['../group__misc.html#ga4ee03d650200bb04a23233570667fa84',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5fget_5fmax_18',['libevdev_event_type_get_max',['../group__misc.html#gabfad87ea78d034631cf3e5322ac383a1',1,'libevdev.h']]], + ['libevdev_5fevent_5ftype_5fget_5fname_19',['libevdev_event_type_get_name',['../group__misc.html#ga3812c0acaba081da88532cdb08b10a03',1,'libevdev.h']]], + ['libevdev_5fevent_5fvalue_5ffrom_5fname_20',['libevdev_event_value_from_name',['../group__misc.html#ga314903beeafedabe45f879637e7254b0',1,'libevdev.h']]], + ['libevdev_5fevent_5fvalue_5ffrom_5fname_5fn_21',['libevdev_event_value_from_name_n',['../group__misc.html#gaebfc6b0ebb70169c9fec61620f1ea85f',1,'libevdev.h']]], + ['libevdev_5fevent_5fvalue_5fget_5fname_22',['libevdev_event_value_get_name',['../group__misc.html#ga12a7ece2969e162f29b5a5811c49ec9c',1,'libevdev.h']]], + ['libevdev_5ffetch_5fevent_5fvalue_23',['libevdev_fetch_event_value',['../group__bits.html#ga0a7be80d769294bf9758adf79c3c7147',1,'libevdev.h']]], + ['libevdev_5ffetch_5fslot_5fvalue_24',['libevdev_fetch_slot_value',['../group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec',1,'libevdev.h']]], + ['libevdev_5ffree_25',['libevdev_free',['../group__init.html#gacd9fe760d15be25fc99ce469034bd78c',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fflat_26',['libevdev_get_abs_flat',['../group__bits.html#ga6b3f7ebae2324524dc41384acd724b92',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5ffuzz_27',['libevdev_get_abs_fuzz',['../group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5finfo_28',['libevdev_get_abs_info',['../group__bits.html#gab6393c2d73997b052471a03c8fb05fec',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fmaximum_29',['libevdev_get_abs_maximum',['../group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fminimum_30',['libevdev_get_abs_minimum',['../group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e',1,'libevdev.h']]], + ['libevdev_5fget_5fabs_5fresolution_31',['libevdev_get_abs_resolution',['../group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4',1,'libevdev.h']]], + ['libevdev_5fget_5fcurrent_5fslot_32',['libevdev_get_current_slot',['../group__mt.html#gad22e2420be668b56ef486cde2e98c5dd',1,'libevdev.h']]], + ['libevdev_5fget_5fdriver_5fversion_33',['libevdev_get_driver_version',['../group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa',1,'libevdev.h']]], + ['libevdev_5fget_5fevent_5fvalue_34',['libevdev_get_event_value',['../group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3',1,'libevdev.h']]], + ['libevdev_5fget_5ffd_35',['libevdev_get_fd',['../group__init.html#gab9bfc800859ac3aa63f41d58ec4b616c',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fbustype_36',['libevdev_get_id_bustype',['../group__bits.html#ga9bf55d416401642bad0c435735682308',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fproduct_37',['libevdev_get_id_product',['../group__bits.html#ga1dc66cfef646878d58be72f8902a6bac',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fvendor_38',['libevdev_get_id_vendor',['../group__bits.html#ga08891c3285da5b8d26769c9a34f063f3',1,'libevdev.h']]], + ['libevdev_5fget_5fid_5fversion_39',['libevdev_get_id_version',['../group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae',1,'libevdev.h']]], + ['libevdev_5fget_5flog_5fpriority_40',['libevdev_get_log_priority',['../group__logging.html#ga1da07493a798595cf85c127490b98ee8',1,'libevdev.h']]], + ['libevdev_5fget_5fname_41',['libevdev_get_name',['../group__bits.html#ga94d6d9259ccfbb89e683270ba0534808',1,'libevdev.h']]], + ['libevdev_5fget_5fnum_5fslots_42',['libevdev_get_num_slots',['../group__mt.html#gaf272526f0a59d2f61ef7389046cd4088',1,'libevdev.h']]], + ['libevdev_5fget_5fphys_43',['libevdev_get_phys',['../group__bits.html#ga3f96ca249a293aa12a7a1703f6bbee86',1,'libevdev.h']]], + ['libevdev_5fget_5frepeat_44',['libevdev_get_repeat',['../group__bits.html#gaf12fa199bb9497b38358d72e7505d770',1,'libevdev.h']]], + ['libevdev_5fget_5fslot_5fvalue_45',['libevdev_get_slot_value',['../group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8',1,'libevdev.h']]], + ['libevdev_5fget_5funiq_46',['libevdev_get_uniq',['../group__bits.html#ga431af41e8a73ec664d50f956167db965',1,'libevdev.h']]], + ['libevdev_5fgrab_47',['libevdev_grab',['../group__init.html#ga5d434af74fee20f273db568e2cbbd13f',1,'libevdev.h']]], + ['libevdev_5fhas_5fevent_5fcode_48',['libevdev_has_event_code',['../group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b',1,'libevdev.h']]], + ['libevdev_5fhas_5fevent_5fpending_49',['libevdev_has_event_pending',['../group__events.html#gae18fbfb59064c9c4b9d5db2d8cb23784',1,'libevdev.h']]], + ['libevdev_5fhas_5fevent_5ftype_50',['libevdev_has_event_type',['../group__bits.html#ga398bef155fa4a0cfb832de30723ebd14',1,'libevdev.h']]], + ['libevdev_5fhas_5fproperty_51',['libevdev_has_property',['../group__bits.html#ga36d529ea53f4522004bc7d16c051464b',1,'libevdev.h']]], + ['libevdev_5fkernel_5fset_5fabs_5finfo_52',['libevdev_kernel_set_abs_info',['../group__kernel.html#ga41c0321b93349d0ddd1f1c007ccf7de9',1,'libevdev.h']]], + ['libevdev_5fkernel_5fset_5fled_5fvalue_53',['libevdev_kernel_set_led_value',['../group__kernel.html#gaa7d13aeac3c40e16f296467780e67c01',1,'libevdev.h']]], + ['libevdev_5fkernel_5fset_5fled_5fvalues_54',['libevdev_kernel_set_led_values',['../group__kernel.html#ga93a19fa6e5be57903aff7c4a60af2a00',1,'libevdev.h']]], + ['libevdev_5fnew_55',['libevdev_new',['../group__init.html#gab1f26f9d52e5df93bd4d892f6c042675',1,'libevdev.h']]], + ['libevdev_5fnew_5ffrom_5ffd_56',['libevdev_new_from_fd',['../group__init.html#ga89bb5bce1c23e293293484b05b12aaf4',1,'libevdev.h']]], + ['libevdev_5fnext_5fevent_57',['libevdev_next_event',['../group__events.html#gabb96c864e836c0b98788f4ab771c3a76',1,'libevdev.h']]], + ['libevdev_5fproperty_5ffrom_5fname_58',['libevdev_property_from_name',['../group__misc.html#ga6f4418c98aa475a2fc34d58a197f7edd',1,'libevdev.h']]], + ['libevdev_5fproperty_5ffrom_5fname_5fn_59',['libevdev_property_from_name_n',['../group__misc.html#gaaa0bc4c7d0d2aedc84c7dcffee9ce29b',1,'libevdev.h']]], + ['libevdev_5fproperty_5fget_5fname_60',['libevdev_property_get_name',['../group__misc.html#ga78b0893d99b79fe5c92c9e0018ef56be',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fflat_61',['libevdev_set_abs_flat',['../group__kernel.html#gabd309f30744a49e9391250b00ba2d67a',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5ffuzz_62',['libevdev_set_abs_fuzz',['../group__kernel.html#gaa192bf0c68620be819337da6ec361c21',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5finfo_63',['libevdev_set_abs_info',['../group__kernel.html#gafc7a4f5308e2dbf55f875630b8dca049',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fmaximum_64',['libevdev_set_abs_maximum',['../group__kernel.html#ga2302fd9a491d8e27280157d67a703af6',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fminimum_65',['libevdev_set_abs_minimum',['../group__kernel.html#gaca62172c2a823cd02eacf0d2292d917a',1,'libevdev.h']]], + ['libevdev_5fset_5fabs_5fresolution_66',['libevdev_set_abs_resolution',['../group__kernel.html#ga2266b59711cdaa4fc12fa56c9313a038',1,'libevdev.h']]], + ['libevdev_5fset_5fclock_5fid_67',['libevdev_set_clock_id',['../group__kernel.html#ga2925b6fbf8c7991ff2164424b840b82d',1,'libevdev.h']]], + ['libevdev_5fset_5fdevice_5flog_5ffunction_68',['libevdev_set_device_log_function',['../group__logging.html#ga2830ff0aa391d8d1111682d3e762091b',1,'libevdev.h']]], + ['libevdev_5fset_5fevent_5fvalue_69',['libevdev_set_event_value',['../group__kernel.html#ga79e82ee2a95cb08adb4172aabe0c7184',1,'libevdev.h']]], + ['libevdev_5fset_5ffd_70',['libevdev_set_fd',['../group__init.html#ga6658ac490d68c307ff8b8d1536c12b44',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fbustype_71',['libevdev_set_id_bustype',['../group__kernel.html#gaf99139c728ba1bd4b37ede612780b6b0',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fproduct_72',['libevdev_set_id_product',['../group__kernel.html#ga62fbdaac056ab5c3db154a9eeaf33799',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fvendor_73',['libevdev_set_id_vendor',['../group__kernel.html#ga8ce28051ebbb73de1d04d782f4d0d6fe',1,'libevdev.h']]], + ['libevdev_5fset_5fid_5fversion_74',['libevdev_set_id_version',['../group__kernel.html#gaee1d2db88b191ec21d5bf22dd4fe3055',1,'libevdev.h']]], + ['libevdev_5fset_5flog_5ffunction_75',['libevdev_set_log_function',['../group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955',1,'libevdev.h']]], + ['libevdev_5fset_5flog_5fpriority_76',['libevdev_set_log_priority',['../group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89',1,'libevdev.h']]], + ['libevdev_5fset_5fname_77',['libevdev_set_name',['../group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32',1,'libevdev.h']]], + ['libevdev_5fset_5fphys_78',['libevdev_set_phys',['../group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3',1,'libevdev.h']]], + ['libevdev_5fset_5fslot_5fvalue_79',['libevdev_set_slot_value',['../group__kernel.html#ga0c61f4919b03b0850529a50c37a20333',1,'libevdev.h']]], + ['libevdev_5fset_5funiq_80',['libevdev_set_uniq',['../group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7',1,'libevdev.h']]], + ['libevdev_5fuinput_5fcreate_5ffrom_5fdevice_81',['libevdev_uinput_create_from_device',['../group__uinput.html#gaf14b21301bac9d79c20e890172873b96',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fdestroy_82',['libevdev_uinput_destroy',['../group__uinput.html#ga9dfa58a84eb4c6b97107dcf3fa621329',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fget_5fdevnode_83',['libevdev_uinput_get_devnode',['../group__uinput.html#gaa5948dc9c61303a0d9d3d8c06f616f37',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fget_5ffd_84',['libevdev_uinput_get_fd',['../group__uinput.html#ga9cd7fb14a96d4cc14d3dffdcead84c5d',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fget_5fsyspath_85',['libevdev_uinput_get_syspath',['../group__uinput.html#ga71c4a2b042378b70ccb82637d5fd8edb',1,'libevdev-uinput.h']]], + ['libevdev_5fuinput_5fwrite_5fevent_86',['libevdev_uinput_write_event',['../group__uinput.html#ga4c3c2f5fcd315a28a067f53b9f855fe7',1,'libevdev-uinput.h']]] ]; diff --git a/doc/html/search/groups_0.js b/doc/html/search/groups_0.js index c72fa47c6220faa58bbac5a8782d7ce2e4a571c8..1634ddf3b9424a586d14554340ae2d97e991389c 100644 --- a/doc/html/search/groups_0.js +++ b/doc/html/search/groups_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['event_20handling_241',['Event handling',['../group__events.html',1,'']]] + ['event_20handling_0',['Event handling',['../group__events.html',1,'']]] ]; diff --git a/doc/html/search/groups_1.js b/doc/html/search/groups_1.js index 3dda67ad306514c3687055d86b545a8e48d2a58e..01bc1a18a59133a931db6029e424bfb3d0b6574b 100644 --- a/doc/html/search/groups_1.js +++ b/doc/html/search/groups_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['initialization_20and_20setup_242',['Initialization and setup',['../group__init.html',1,'']]] + ['initialization_20and_20setup_0',['Initialization and setup',['../group__init.html',1,'']]] ]; diff --git a/doc/html/search/groups_2.js b/doc/html/search/groups_2.js index 134c20c97d2f839342af2b0342b8d9cd96328eac..f83c7e481514818b70ce6450918732b4f45ac324 100644 --- a/doc/html/search/groups_2.js +++ b/doc/html/search/groups_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['library_20logging_20facilities_243',['Library logging facilities',['../group__logging.html',1,'']]] + ['library_20logging_20facilities_0',['Library logging facilities',['../group__logging.html',1,'']]] ]; diff --git a/doc/html/search/groups_3.js b/doc/html/search/groups_3.js index 22178a7e3ad2d0650960bbb3c8d24cf9cdcc0f10..db6da802a72efc461d68538494f8de8a607f864e 100644 --- a/doc/html/search/groups_3.js +++ b/doc/html/search/groups_3.js @@ -1,6 +1,6 @@ var searchData= [ - ['miscellaneous_20helper_20functions_244',['Miscellaneous helper functions',['../group__misc.html',1,'']]], - ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_245',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]], - ['multi_2dtouch_20related_20functions_246',['Multi-touch related functions',['../group__mt.html',1,'']]] + ['miscellaneous_20helper_20functions_0',['Miscellaneous helper functions',['../group__misc.html',1,'']]], + ['modifying_20the_20appearance_20or_20capabilities_20of_20the_20device_1',['Modifying the appearance or capabilities of the device',['../group__kernel.html',1,'']]], + ['multi_2dtouch_20related_20functions_2',['Multi-touch related functions',['../group__mt.html',1,'']]] ]; diff --git a/doc/html/search/groups_4.js b/doc/html/search/groups_4.js index 421013846cbf462ad45ac55d7889ccb73c25ad38..64cc365e9c93477184dafc104609cb33815d0519 100644 --- a/doc/html/search/groups_4.js +++ b/doc/html/search/groups_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['querying_20device_20capabilities_247',['Querying device capabilities',['../group__bits.html',1,'']]] + ['querying_20device_20capabilities_0',['Querying device capabilities',['../group__bits.html',1,'']]] ]; diff --git a/doc/html/search/groups_5.js b/doc/html/search/groups_5.js index 2b170ac69e87ff7cc137fe0b167205ced7c8ec0d..71e678238986ccf847f9d526f25ca0f1609ddc3a 100644 --- a/doc/html/search/groups_5.js +++ b/doc/html/search/groups_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['uinput_20device_20creation_248',['uinput device creation',['../group__uinput.html',1,'']]] + ['uinput_20device_20creation_0',['uinput device creation',['../group__uinput.html',1,'']]] ]; diff --git a/doc/html/search/mag.svg b/doc/html/search/mag.svg new file mode 100644 index 0000000000000000000000000000000000000000..9f46b301eb71b696161df9024e4bdfef1099a99b --- /dev/null +++ b/doc/html/search/mag.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/doc/html/search/mag_d.svg b/doc/html/search/mag_d.svg new file mode 100644 index 0000000000000000000000000000000000000000..b9a814c78de68c0b90dd723b125b1c796c2154d4 --- /dev/null +++ b/doc/html/search/mag_d.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/doc/html/search/mag_seld.svg b/doc/html/search/mag_seld.svg new file mode 100644 index 0000000000000000000000000000000000000000..6e720dcc91b4365a53ec31b14b2035c679490740 --- /dev/null +++ b/doc/html/search/mag_seld.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/doc/html/search/pages_0.js b/doc/html/search/pages_0.js index e6858affae82205197bcdb8396a6b433971e92f7..400a9a396ddd92834df37ab8b9f8364ec26858d5 100644 --- a/doc/html/search/pages_0.js +++ b/doc/html/search/pages_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['compatibility_20and_20behavior_20across_20kernel_20versions_249',['Compatibility and Behavior across kernel versions',['../backwardscompatibility.html',1,'']]] + ['compatibility_20and_20behavior_20across_20kernel_20versions_0',['Compatibility and Behavior across kernel versions',['../backwardscompatibility.html',1,'']]] ]; diff --git a/doc/html/search/pages_1.js b/doc/html/search/pages_1.js index d6b874b868096af0a51a976336f83cbcef660803..4d858458c36cba7ea72d8d20c7083cfd5af23118 100644 --- a/doc/html/search/pages_1.js +++ b/doc/html/search/pages_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['deprecated_20list_250',['Deprecated List',['../deprecated.html',1,'']]] + ['deprecated_20list_0',['Deprecated List',['../deprecated.html',1,'']]] ]; diff --git a/doc/html/search/pages_2.js b/doc/html/search/pages_2.js index 740b4ef8873c7e0d7e390b91db9ad575135a4051..d74fd89ae27e7f3a8c7dc4d1f720fa17475c0eff 100644 --- a/doc/html/search/pages_2.js +++ b/doc/html/search/pages_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['evdev_20ioctls_251',['evdev ioctls',['../ioctls.html',1,'']]] + ['evdev_20ioctls_0',['evdev ioctls',['../ioctls.html',1,'']]] ]; diff --git a/doc/html/search/pages_3.js b/doc/html/search/pages_3.js index 2ca4e5a07b9639f82eae44a6533160acda4d2a4d..7ab0749149c88aed00bb31b8eb2485061c664b42 100644 --- a/doc/html/search/pages_3.js +++ b/doc/html/search/pages_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['kernel_20header_252',['Kernel header',['../kernel_header.html',1,'']]] + ['kernel_20header_0',['Kernel header',['../kernel_header.html',1,'']]] ]; diff --git a/doc/html/search/pages_4.js b/doc/html/search/pages_4.js index bf72ecd0cab6c87b2ccb0787027c627206760590..a6fd61fc1278355f18dac04120fa871f63736ce1 100644 --- a/doc/html/search/pages_4.js +++ b/doc/html/search/pages_4.js @@ -1,4 +1,5 @@ var searchData= [ - ['libevdev_2dinternal_20test_20suite_253',['libevdev-internal test suite',['../testing.html',1,'']]] + ['libevdev_0',['libevdev',['../index.html',1,'']]], + ['libevdev_2dinternal_20test_20suite_1',['libevdev-internal test suite',['../testing.html',1,'']]] ]; diff --git a/doc/html/search/pages_5.js b/doc/html/search/pages_5.js index be09cca8b3e2bdefb3ca1ca0b8337e769ed89bd5..f7c2f2f97167979de746206b7a94757591108715 100644 --- a/doc/html/search/pages_5.js +++ b/doc/html/search/pages_5.js @@ -1,5 +1,5 @@ var searchData= [ - ['statically_20linking_20libevdev_254',['Statically linking libevdev',['../static_linking.html',1,'']]], - ['syn_5fdropped_20handling_255',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]] + ['statically_20linking_20libevdev_0',['Statically linking libevdev',['../static_linking.html',1,'']]], + ['syn_5fdropped_20handling_1',['SYN_DROPPED handling',['../syn_dropped.html',1,'']]] ]; diff --git a/doc/html/search/search.css b/doc/html/search/search.css index 9074198f81f13dedf965db7bf9ba591fe194eae3..19f76f9d5b96c7be552f7b18e5218e6bf5ac5ceb 100644 --- a/doc/html/search/search.css +++ b/doc/html/search/search.css @@ -1,10 +1,33 @@ -/*---------------- Search Box */ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} #MSearchBox { + display: inline-block; white-space : nowrap; - background: white; + background: var(--search-background-color); border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; + box-shadow: var(--search-box-shadow); z-index: 102; } @@ -17,28 +40,47 @@ #MSearchSelect { display: inline-block; vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; } + #MSearchField { display: inline-block; vertical-align: middle; width: 7.5em; - height: 1.1em; + height: 19px; margin: 0 0.15em; padding: 0; line-height: 1em; border:none; - color: #909090; + color: var(--search-foreground-color); outline: none; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); -webkit-border-radius: 0px; border-radius: 0px; background: none; } +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} #MSearchBox .right { display: inline-block; @@ -59,23 +101,15 @@ } #MSearchCloseImg { - height: 1.4em; padding: 0.3em; margin: 0; } .MSearchBoxActive #MSearchField { - color: #000000; + color: var(--search-active-color); } -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} + /*---------------- Search filter selection */ @@ -83,8 +117,8 @@ display: none; position: absolute; left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); z-index: 10001; padding-top: 4px; padding-bottom: 4px; @@ -97,7 +131,7 @@ } .SelectItem { - font: 8pt Arial, Verdana, sans-serif; + font: 8pt var(--font-family-search); padding-left: 2px; padding-right: 12px; border: 0px; @@ -105,7 +139,7 @@ span.SelectionMark { margin-right: 4px; - font-family: monospace; + font-family: var(--font-family-monospace); outline-style: none; text-decoration: none; } @@ -113,7 +147,7 @@ span.SelectionMark { a.SelectItem { display: block; outline-style: none; - color: #000000; + color: var(--search-filter-foreground-color); text-decoration: none; padding-left: 6px; padding-right: 12px; @@ -121,14 +155,14 @@ a.SelectItem { a.SelectItem:focus, a.SelectItem:active { - color: #000000; + color: var(--search-filter-foreground-color); outline-style: none; text-decoration: none; } a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); outline-style: none; text-decoration: none; cursor: pointer; @@ -138,7 +172,7 @@ a.SelectItem:hover { /*---------------- Search results window */ iframe#MSearchResults { - width: 60ex; + /*width: 60ex;*/ height: 15em; } @@ -146,9 +180,12 @@ iframe#MSearchResults { display: none; position: absolute; left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); z-index:10000; + width: 300px; + height: 400px; + overflow: auto; } /* ----------------------------------- */ @@ -156,7 +193,6 @@ iframe#MSearchResults { #SRIndex { clear:both; - padding-bottom: 15px; } .SREntry { @@ -169,8 +205,9 @@ iframe#MSearchResults { padding: 1px 5px; } -body.SRPage { +div.SRPage { margin: 5px 2px; + background-color: var(--search-results-background-color); } .SRChildren { @@ -182,17 +219,18 @@ body.SRPage { } .SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); text-decoration: none; outline: none; } a.SRScope { display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; text-decoration: none; outline: none; } @@ -204,14 +242,14 @@ a.SRScope:focus, a.SRScope:active { span.SRScope { padding-left: 4px; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); } .SRPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); } .SRResult { @@ -225,14 +263,10 @@ div.searchresults { /*---------------- External search page results */ -.searchresult { - background-color: #F0F3F8; -} - .pages b { color: white; padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); + background-image: var(--nav-gradient-active-image-parent); background-repeat: repeat-x; text-shadow: 0 1px 1px #000000; } diff --git a/doc/html/search/search.js b/doc/html/search/search.js index fb226f734e6daca1cfb5a63012d8563e26677549..e103a262175e2fe58029774dcfacc52f078a4dbc 100644 --- a/doc/html/search/search.js +++ b/doc/html/search/search.js @@ -73,6 +73,8 @@ function getYPos(item) return y; } +var searchResults = new SearchResults("searchResults"); + /* A class handling everything associated with the search panel. Parameters: @@ -80,7 +82,7 @@ function getYPos(item) storing this instance. Is needed to be able to set timeouts. resultPath - path to use for external files */ -function SearchBox(name, resultsPath, inFrame, label, extension) +function SearchBox(name, resultsPath, extension) { if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } if (!extension || extension == "") { extension = ".html"; } @@ -96,8 +98,6 @@ function SearchBox(name, resultsPath, inFrame, label, extension) this.hideTimeout = 0; this.searchIndex = 0; this.searchActive = false; - this.insideFrame = inFrame; - this.searchLabel = label; this.extension = extension; // ----------- DOM Elements @@ -136,30 +136,14 @@ function SearchBox(name, resultsPath, inFrame, label, extension) var searchSelectWindow = this.DOMSearchSelectWindow(); var searchField = this.DOMSearchSelect(); - if (this.insideFrame) - { - var left = getXPos(searchField); - var top = getYPos(searchField); - left += searchField.offsetWidth + 6; - top += searchField.offsetHeight; + var left = getXPos(searchField); + var top = getYPos(searchField); + top += searchField.offsetHeight; - // show search selection popup - searchSelectWindow.style.display='block'; - left -= searchSelectWindow.offsetWidth; - searchSelectWindow.style.left = left + 'px'; - searchSelectWindow.style.top = top + 'px'; - } - else - { - var left = getXPos(searchField); - var top = getYPos(searchField); - top += searchField.offsetHeight; - - // show search selection popup - searchSelectWindow.style.display='block'; - searchSelectWindow.style.left = left + 'px'; - searchSelectWindow.style.top = top + 'px'; - } + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; // stop selection hide timer if (this.hideTimeout) @@ -205,7 +189,8 @@ function SearchBox(name, resultsPath, inFrame, label, extension) } else { - window.frames.MSearchResults.postMessage("take_focus", "*"); + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); } } else if (e.keyCode==27) // Escape out of the search field @@ -341,55 +326,66 @@ function SearchBox(name, resultsPath, inFrame, label, extension) idxChar = searchValue.substr(0, 2); } - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; + var jsFile; var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); if (idx!=-1) { var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); } - window.frames.MSearchResults.location = resultsPageWithSearch; var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); } this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; } // -------- Activation Functions @@ -403,22 +399,15 @@ function SearchBox(name, resultsPath, inFrame, label, extension) ) { this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } + this.searchActive = true; } else if (!isActive) // directly remove the panel { this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; this.searchActive = false; this.lastSearchValue = '' this.lastResultsPage = ''; + this.DOMSearchField().value = ''; } } } @@ -647,7 +636,7 @@ function SearchResults(name) } else // return focus to search field { - parent.document.getElementById("MSearchField").focus(); + document.getElementById("MSearchField").focus(); } } else if (this.lastKey==40) // Down @@ -677,8 +666,8 @@ function SearchResults(name) } else if (this.lastKey==27) // Escape { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); } else if (this.lastKey==13) // Enter { @@ -720,8 +709,8 @@ function SearchResults(name) } else if (this.lastKey==27) // Escape { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); } else if (this.lastKey==13) // Enter { @@ -744,9 +733,10 @@ function setClassAttr(elem,attr) elem.setAttribute('className',attr); } -function createResults() +function createResults(resultsPath) { var results = document.getElementById("SRResults"); + results.innerHTML = ''; for (var e=0; e - + libevdev: Statically linking libevdev @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    Statically linking libevdev
    +
    +
    Statically linking libevdev

    Statically linking libevdev.a is not recommended.

    @@ -87,7 +94,7 @@ $(function() { diff --git a/doc/html/syn_dropped.html b/doc/html/syn_dropped.html index eedaad8d025f00291169fb2cba2ba4958af82c21..1c7b8b8941493f4c9d6eaec6d04d7739dc736afd 100644 --- a/doc/html/syn_dropped.html +++ b/doc/html/syn_dropped.html @@ -6,7 +6,7 @@ - + libevdev: SYN_DROPPED handling @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    SYN_DROPPED handling
    +
    +
    SYN_DROPPED handling

    This page describes how libevdev handles SYN_DROPPED events.

    @@ -170,17 +177,17 @@ Synchronizing ABS_MT_TRACKING_ID
    EV_ABS ABS_MT_POSITION_X 90 | EV_ABS ABS_MT_POSITION_X 90
    EV_ABS ABS_MT_POSITION_Y 10 | EV_ABS ABS_MT_POSITION_Y 10
    EV_SYN SYN_REPORT 0 | EV_SYN SYN_REPORT 0
    -

    If such an event sequence occurs, libevdev will send all updated axes during the sync process. Axis events may thus be generated for devices without a currently valid ABS_MT_TRACKING_ID. Specifically for the above example, the client would receive the following event sequence:

    EV_ABS ABS_MT_SLOT 0 ← LIBEVDEV_READ_FLAG_NORMAL
    +

    If such an event sequence occurs, libevdev will send all updated axes during the sync process. Axis events may thus be generated for devices without a currently valid ABS_MT_TRACKING_ID. Specifically for the above example, the client would receive the following event sequence:

    EV_ABS ABS_MT_SLOT 0 ← LIBEVDEV_READ_FLAG_NORMAL
    EV_ABS ABS_MT_TRACKING_ID -1
    EV_SYN SYN_REPORT 0
    ------------------------
    -
    EV_SYN SYN_DROPPED 0 → LIBEVDEV_READ_STATUS_SYNC
    +
    EV_SYN SYN_DROPPED 0 → LIBEVDEV_READ_STATUS_SYNC
    ------------------------
    -
    EV_ABS ABS_MT_POSITION_X 100 ← LIBEVDEV_READ_FLAG_SYNC
    +
    EV_ABS ABS_MT_POSITION_X 100 ← LIBEVDEV_READ_FLAG_SYNC
    EV_ABS ABS_MT_POSITION_Y 80
    EV_SYN SYN_REPORT 0
    ----------------------------- → -EGAIN
    -
    EV_ABS ABS_MT_SLOT 1 ← LIBEVDEV_READ_FLAG_NORMAL
    +
    EV_ABS ABS_MT_SLOT 1 ← LIBEVDEV_READ_FLAG_NORMAL
    EV_ABS ABS_MT_POSITION_X 90
    EV_ABS ABS_MT_POSITION_Y 10
    EV_SYN SYN_REPORT 0
    @@ -222,7 +229,7 @@ Discarding events before synchronizing diff --git a/doc/html/tab_ad.png b/doc/html/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d Binary files /dev/null and b/doc/html/tab_ad.png differ diff --git a/doc/html/tab_bd.png b/doc/html/tab_bd.png new file mode 100644 index 0000000000000000000000000000000000000000..91c25249869ffe5269c24f8c441e3f1bf75df400 Binary files /dev/null and b/doc/html/tab_bd.png differ diff --git a/doc/html/tab_hd.png b/doc/html/tab_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..2489273d4ce1d11d3f7557335244c02b9959351b Binary files /dev/null and b/doc/html/tab_hd.png differ diff --git a/doc/html/tab_sd.png b/doc/html/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 Binary files /dev/null and b/doc/html/tab_sd.png differ diff --git a/doc/html/tabs.css b/doc/html/tabs.css index 85a0cd5b5857b5fc94039256cd05e133b7e3bd9d..71c8a4704c0e4248120fe7c8e910d4dbbea21841 100644 --- a/doc/html/tabs.css +++ b/doc/html/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/doc/html/testing.html b/doc/html/testing.html index 64808ceec776c7e3140b9050f4a8c848421c8471..e60fec34fc52735e365270154ddd87710361ce4f 100644 --- a/doc/html/testing.html +++ b/doc/html/testing.html @@ -6,7 +6,7 @@ - + libevdev: libevdev-internal test suite @@ -25,7 +25,7 @@ @@ -36,21 +36,22 @@
    - + +/* @license-end */ +
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    -
    -
    libevdev-internal test suite
    +
    +
    libevdev-internal test suite

    libevdev's internal test suite uses the Check unit testing framework.

    @@ -99,7 +106,7 @@ EndSection diff --git a/export_include/libevdev/libevdev.h b/export_include/libevdev/libevdev.h index 30e4d6f88a44c86e4c41682fc3b2fb444a428b11..9cdc89170d47c69ef1c8eb19e94e8b3530085e78 100644 --- a/export_include/libevdev/libevdev.h +++ b/export_include/libevdev/libevdev.h @@ -163,7 +163,7 @@ extern "C" { * License information * =================== * libevdev is licensed under the - * [X11 license](http://cgit.freedesktop.org/libevdev/tree/COPYING). + * [MIT license](http://cgit.freedesktop.org/libevdev/tree/COPYING). * * Bindings * =================== diff --git a/include/config.h b/include/config.h index 1189fafd7e93e157b1da84d18d888e3fa61a4560..dfd423e97060b8a42efd9ca8921ebc54b0e6d284 100644 --- a/include/config.h +++ b/include/config.h @@ -47,13 +47,13 @@ #define PACKAGE "libevdev" /* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev" +#define PACKAGE_BUGREPORT "https://gitlab.freedesktop.org/libevdev/libevdev/issues/" /* Define to the full name of this package. */ #define PACKAGE_NAME "libevdev" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libevdev 1.13.0" +#define PACKAGE_STRING "libevdev 1.13.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libevdev" @@ -62,7 +62,7 @@ #define PACKAGE_URL "http://freedesktop.org/wiki/Software/libevdev/" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.13.0" +#define PACKAGE_VERSION "1.13.1" /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for @@ -158,7 +158,7 @@ /* Version number of package */ -#define VERSION "1.13.0" +#define VERSION "1.13.1" /* Override for coverity */ /* #undef _Float128 */ diff --git a/include/event-names.h b/include/event-names.h index 25fbb787721a2ead0c34e72ae91d1778b97a6767..6b93b7fb7cac86b8673063f0c49e59f4a806acd8 100644 --- a/include/event-names.h +++ b/include/event-names.h @@ -60,9 +60,9 @@ static const char * const abs_map[ABS_MAX + 1] = { [ABS_DISTANCE] = "ABS_DISTANCE", [ABS_TILT_X] = "ABS_TILT_X", [ABS_TILT_Y] = "ABS_TILT_Y", - [ABS_MT_TWIST] = "ABS_MT_TWIST", [ABS_TOOL_WIDTH] = "ABS_TOOL_WIDTH", [ABS_VOLUME] = "ABS_VOLUME", + [ABS_PROFILE] = "ABS_PROFILE", [ABS_HAND_FEATURE] = "ABS_HAND_FEATURE", [ABS_MISC] = "ABS_MISC", [ABS_MT_MOVEFLAG] = "ABS_MT_MOVEFLAG", @@ -75,6 +75,7 @@ static const char * const abs_map[ABS_MAX + 1] = { [ABS_MT_ORIENTATION] = "ABS_MT_ORIENTATION", [ABS_MT_POSITION_X] = "ABS_MT_POSITION_X", [ABS_MT_POSITION_Y] = "ABS_MT_POSITION_Y", + [ABS_MT_TWIST] = "ABS_MT_TWIST", [ABS_MT_TOOL_TYPE] = "ABS_MT_TOOL_TYPE", [ABS_MT_BLOB_ID] = "ABS_MT_BLOB_ID", [ABS_MT_TRACKING_ID] = "ABS_MT_TRACKING_ID", @@ -503,6 +504,9 @@ static const char * const key_map[KEY_MAX + 1] = { [KEY_KBD_LAYOUT_NEXT] = "KEY_KBD_LAYOUT_NEXT", [KEY_EMOJI_PICKER] = "KEY_EMOJI_PICKER", [KEY_DICTATE] = "KEY_DICTATE", + [KEY_CAMERA_ACCESS_ENABLE] = "KEY_CAMERA_ACCESS_ENABLE", + [KEY_CAMERA_ACCESS_DISABLE] = "KEY_CAMERA_ACCESS_DISABLE", + [KEY_CAMERA_ACCESS_TOGGLE] = "KEY_CAMERA_ACCESS_TOGGLE", [KEY_BRIGHTNESS_MIN] = "KEY_BRIGHTNESS_MIN", [KEY_BRIGHTNESS_MAX] = "KEY_BRIGHTNESS_MAX", [KEY_KBDINPUTASSIST_PREV] = "KEY_KBDINPUTASSIST_PREV", @@ -927,6 +931,7 @@ static const struct name_entry code_names[] = { { .name = "ABS_MT_WIDTH_MAJOR", .value = ABS_MT_WIDTH_MAJOR }, { .name = "ABS_MT_WIDTH_MINOR", .value = ABS_MT_WIDTH_MINOR }, { .name = "ABS_PRESSURE", .value = ABS_PRESSURE }, + { .name = "ABS_PROFILE", .value = ABS_PROFILE }, { .name = "ABS_RESERVED", .value = ABS_RESERVED }, { .name = "ABS_RUDDER", .value = ABS_RUDDER }, { .name = "ABS_RX", .value = ABS_RX }, @@ -1139,6 +1144,9 @@ static const struct name_entry code_names[] = { { .name = "KEY_CALC", .value = KEY_CALC }, { .name = "KEY_CALENDAR", .value = KEY_CALENDAR }, { .name = "KEY_CAMERA", .value = KEY_CAMERA }, + { .name = "KEY_CAMERA_ACCESS_DISABLE", .value = KEY_CAMERA_ACCESS_DISABLE }, + { .name = "KEY_CAMERA_ACCESS_ENABLE", .value = KEY_CAMERA_ACCESS_ENABLE }, + { .name = "KEY_CAMERA_ACCESS_TOGGLE", .value = KEY_CAMERA_ACCESS_TOGGLE }, { .name = "KEY_CAMERA_DOWN", .value = KEY_CAMERA_DOWN }, { .name = "KEY_CAMERA_FOCUS", .value = KEY_CAMERA_FOCUS }, { .name = "KEY_CAMERA_LEFT", .value = KEY_CAMERA_LEFT }, diff --git a/include/linux/linux/input-event-codes.h b/include/linux/linux/input-event-codes.h index 7d96680c17adf4c07f002dd3fa638097fb1bcb80..9594c9bb0e56a755e0de246ea5977bbaf328b74f 100644 --- a/include/linux/linux/input-event-codes.h +++ b/include/linux/linux/input-event-codes.h @@ -614,6 +614,9 @@ #define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */ #define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */ #define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */ +#define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ +#define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ +#define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ @@ -862,6 +865,7 @@ #define ABS_TOOL_WIDTH 0x1c #define ABS_VOLUME 0x20 +#define ABS_PROFILE 0x21 #define ABS_HAND_FEATURE 0x27 #define ABS_MISC 0x28 #define ABS_MT_MOVEFLAG 0x29 diff --git a/libevdev/Makefile.am b/libevdev/Makefile.am index 106cc31100116cd16282124e990d815f29929ccb..f577900827e62baeb0d5bd26d51e03f7ffaa8400 100644 --- a/libevdev/Makefile.am +++ b/libevdev/Makefile.am @@ -33,7 +33,7 @@ event-names.h: Makefile make-event-names.py $(PYTHON) $(srcdir)/make-event-names.py $(top_srcdir)/include/linux/@OS@/input.h $(top_srcdir)/include/linux/@OS@/input-event-codes.h > $@ -EXTRA_DIST = make-event-names.py libevdev.sym +EXTRA_DIST = make-event-names.py libevdev.sym ../include CLEANFILES = event-names.h BUILT_SOURCES = event-names.h diff --git a/libevdev/Makefile.in b/libevdev/Makefile.in index e632f0171b065f6f832923a235a8d53ef1336ac9..60c7d629b285642701778fb0a6b0ff38d72054dc 100644 --- a/libevdev/Makefile.in +++ b/libevdev/Makefile.in @@ -291,7 +291,6 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -VALGRIND = @VALGRIND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -377,7 +376,7 @@ libevdev_la_LDFLAGS = \ EXTRA_libevdev_la_DEPENDENCIES = $(srcdir)/libevdev.sym libevdevincludedir = $(includedir)/libevdev-1.0/libevdev libevdevinclude_HEADERS = libevdev.h libevdev-uinput.h -EXTRA_DIST = make-event-names.py libevdev.sym +EXTRA_DIST = make-event-names.py libevdev.sym ../include CLEANFILES = event-names.h $(am__append_1) BUILT_SOURCES = event-names.h all: $(BUILT_SOURCES) diff --git a/libevdev/libevdev.h b/libevdev/libevdev.h index 30e4d6f88a44c86e4c41682fc3b2fb444a428b11..9cdc89170d47c69ef1c8eb19e94e8b3530085e78 100644 --- a/libevdev/libevdev.h +++ b/libevdev/libevdev.h @@ -163,7 +163,7 @@ extern "C" { * License information * =================== * libevdev is licensed under the - * [X11 license](http://cgit.freedesktop.org/libevdev/tree/COPYING). + * [MIT license](http://cgit.freedesktop.org/libevdev/tree/COPYING). * * Bindings * =================== diff --git a/meson.build b/meson.build index dd37c66fcbaa62c36764a28d49ef54a2047f87d1..54bf8d5fc297355ad8a8234ce2f7d89859ab3852 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('libevdev', 'c', - version: '1.13.0', # change autotools version too + version: '1.13.1', # change autotools version too license: 'MIT/Expat', default_options: [ 'c_std=gnu99', 'warning_level=2' ], meson_version: '>= 0.56.0') @@ -162,7 +162,7 @@ if dep_check.found() include_directories: [includes_include], dependencies: [dep_libevdev, dep_check], install: false) - test('test-event-codes', test_event_codes, suite: 'library') + test('test-event-codes', test_event_codes, suite: ['library', 'needs-uinput']) test_internals = executable('test-internals', sources: src_common + [ @@ -171,7 +171,7 @@ if dep_check.found() include_directories: [includes_include], dependencies: [dep_libevdev, dep_check], install: false) - test('test-internals', test_internals, suite: 'library') + test('test-internals', test_internals, suite: ['library', 'needs-uinput']) test_uinput = executable('test-uinput', sources: src_common + [ @@ -180,7 +180,7 @@ if dep_check.found() include_directories: [includes_include], dependencies: [dep_libevdev, dep_check], install: false) - test('test-uinput', test_uinput, suite: 'library') + test('test-uinput', test_uinput, suite: ['library', 'needs-uinput']) test_libevdev = executable('test-libevdev', sources: src_common + [ @@ -191,7 +191,7 @@ if dep_check.found() include_directories: [includes_include], dependencies: [dep_libevdev, dep_check], install: false) - test('test-libevdev', test_libevdev, suite: 'library', env: ['CK_DEFAULT_TIMEOUT=10']) + test('test-libevdev', test_libevdev, suite: ['library', 'needs-uinput'], env: ['CK_DEFAULT_TIMEOUT=10']) test_kernel = executable('test-kernel', sources: src_common + [ @@ -200,7 +200,7 @@ if dep_check.found() include_directories: [includes_include], dependencies: [dep_libevdev, dep_check], install: false) - test('test-kernel', test_kernel, suite: 'kernel') + test('test-kernel', test_kernel, suite: ['kernel', 'needs-uinput']) valgrind = find_program('valgrind', required: false) diff --git a/meson_options.txt b/meson_options.txt index 033791ddef4c8eb2eab1b59dd18d7adcc5cfd42c..e2b75b2c03d8bf6700d52ac9a4c0a6fc63899cd4 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -8,5 +8,5 @@ option('documentation', description: 'Build the documentation') option('coverity', type: 'boolean', - value: 'false', + value: false, description: 'Enable coverity build fixes, see meson.build for details') diff --git a/test/Makefile.am b/test/Makefile.am index 5f0c008d9b899ae7a2806437838e8bf163095078..d6f4fe2dd8fbb4a16b1f2180126459d9d82e63ad 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -89,24 +89,11 @@ test_kernel_SOURCES = \ test_kernel_CFLAGS = -I$(top_srcdir) test_kernel_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la -if HAVE_VALGRIND -VALGRIND_FLAGS=--leak-check=full \ - --quiet \ - --error-exitcode=3 \ - --suppressions=$(srcdir)/valgrind.suppressions - -valgrind: - $(MAKE) check-TESTS CK_TIMEOUT_MULTIPLIER=10 LOG_COMPILER="$(VALGRIND)" LOG_FLAGS="$(VALGRIND_FLAGS)" - -check_local_deps += valgrind - -endif - if GCOV_ENABLED CLEANFILES = gcov-reports/*.gcov gcov-reports/summary.txt *.gcno *.gcda -gcov-report: generate-gcov-report.sh check-TESTS +gcov-report: generate-gcov-report.sh $(AM_V_GEN)$(srcdir)/generate-gcov-report.sh gcov-reports $(top_builddir)/libevdev $(builddir) gcov: gcov-report diff --git a/test/Makefile.in b/test/Makefile.in index 0aa9cc4cbcea27f1bb7fa8fc9da11466bbfe3f55..86c46c9d4139fdbfbe5e58173da55e6319b7934f 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -96,9 +96,8 @@ noinst_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_4) # include builddir for event-names.h @ENABLE_RUNTIME_TESTS_TRUE@am__append_3 = $(CHECK_CFLAGS) $(GCOV_CFLAGS) @ENABLE_RUNTIME_TESTS_TRUE@am__append_4 = $(GCOV_LDFLAGS) -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@am__append_5 = valgrind -@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@am__append_6 = gcov -@ENABLE_STATIC_SYMBOL_LEAKS_TEST_TRUE@am__append_7 = static-symbol-leaks +@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@am__append_5 = gcov +@ENABLE_STATIC_SYMBOL_LEAKS_TEST_TRUE@am__append_6 = static-symbol-leaks subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ @@ -605,7 +604,6 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -VALGRIND = @VALGRIND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -677,7 +675,7 @@ test_static_link_SOURCES = test-link.c test_static_link_CFLAGS = -I$(top_srcdir) test_static_link_LDADD = $(top_builddir)/libevdev/libevdev.la test_static_link_LDFLAGS = $(AM_LDFLAGS) -static -check_local_deps = $(am__append_5) $(am__append_6) $(am__append_7) +check_local_deps = $(am__append_5) $(am__append_6) @ENABLE_RUNTIME_TESTS_TRUE@run_tests = \ @ENABLE_RUNTIME_TESTS_TRUE@ test-libevdev \ @ENABLE_RUNTIME_TESTS_TRUE@ test-kernel \ @@ -731,11 +729,6 @@ check_local_deps = $(am__append_5) $(am__append_6) $(am__append_7) @ENABLE_RUNTIME_TESTS_TRUE@test_kernel_CFLAGS = -I$(top_srcdir) @ENABLE_RUNTIME_TESTS_TRUE@test_kernel_LDADD = $(CHECK_LIBS) $(top_builddir)/libevdev/libevdev.la -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@VALGRIND_FLAGS = --leak-check=full \ -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ --quiet \ -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ --error-exitcode=3 \ -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ --suppressions=$(srcdir)/valgrind.suppressions - @ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@CLEANFILES = gcov-reports/*.gcov gcov-reports/summary.txt *.gcno *.gcda EXTRA_DIST = valgrind.suppressions generate-gcov-report.sh test-static-symbols-leak.sh all: all-am @@ -1413,10 +1406,7 @@ uninstall-am: @ENABLE_RUNTIME_TESTS_TRUE@.NOTPARALLEL: -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@valgrind: -@ENABLE_RUNTIME_TESTS_TRUE@@HAVE_VALGRIND_TRUE@ $(MAKE) check-TESTS CK_TIMEOUT_MULTIPLIER=10 LOG_COMPILER="$(VALGRIND)" LOG_FLAGS="$(VALGRIND_FLAGS)" - -@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@gcov-report: generate-gcov-report.sh check-TESTS +@ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@gcov-report: generate-gcov-report.sh @ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@ $(AM_V_GEN)$(srcdir)/generate-gcov-report.sh gcov-reports $(top_builddir)/libevdev $(builddir) @ENABLE_RUNTIME_TESTS_TRUE@@GCOV_ENABLED_TRUE@gcov: gcov-report diff --git a/test/test-main.c b/test/test-main.c index 95357409a060632590c6045ab580f1ab494695d0..e1fea7138f1d32a5594af8bd07df7a2ed94792dd 100644 --- a/test/test-main.c +++ b/test/test-main.c @@ -108,7 +108,7 @@ int main(void) srunner_add_suite(sr, t->setup()); } - srunner_run_all(sr, CK_NORMAL); + srunner_run_all(sr, CK_ENV); failed = srunner_ntests_failed(sr); srunner_free(sr); diff --git a/tools/Makefile.in b/tools/Makefile.in index 15675bc54de8d36032ba35faa911d350d72655d7..fec18133b86d55161877f5114b17c78b9b090fd6 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -309,7 +309,6 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -VALGRIND = @VALGRIND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@