1c0abf9e6Sopenharmony_ci<!-- HTML header for doxygen 1.8.8--> 2c0abf9e6Sopenharmony_ci<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3c0abf9e6Sopenharmony_ci<html xmlns="http://www.w3.org/1999/xhtml"> 4c0abf9e6Sopenharmony_ci <head> 5c0abf9e6Sopenharmony_ci <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6c0abf9e6Sopenharmony_ci <!-- For Mobile Devices --> 7c0abf9e6Sopenharmony_ci <meta name="viewport" content="width=device-width, initial-scale=1"> 8c0abf9e6Sopenharmony_ci <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> 9c0abf9e6Sopenharmony_ci <meta name="generator" content="Doxygen 1.9.1"/> 10c0abf9e6Sopenharmony_ci <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 11c0abf9e6Sopenharmony_ci <title>libevdev: Querying device capabilities</title> 12c0abf9e6Sopenharmony_ci <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>--> 13c0abf9e6Sopenharmony_ci <script type="text/javascript" src="dynsections.js"></script> 14c0abf9e6Sopenharmony_ci <link href="search/search.css" rel="stylesheet" type="text/css"/> 15c0abf9e6Sopenharmony_ci<script type="text/javascript" src="search/searchdata.js"></script> 16c0abf9e6Sopenharmony_ci<script type="text/javascript" src="search/search.js"></script> 17c0abf9e6Sopenharmony_ci <link href="doxygen.css" rel="stylesheet" type="text/css" /> 18c0abf9e6Sopenharmony_ci <link href="bootstrap.css" rel="stylesheet" type="text/css"/> 19c0abf9e6Sopenharmony_ci<link href="customdoxygen.css" rel="stylesheet" type="text/css"/> 20c0abf9e6Sopenharmony_ci<link href="libevdevdoxygen.css" rel="stylesheet" type="text/css"/> 21c0abf9e6Sopenharmony_ci <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> 22c0abf9e6Sopenharmony_ci <script type="text/javascript" src="doxy-boot.js"></script> 23c0abf9e6Sopenharmony_ci </head> 24c0abf9e6Sopenharmony_ci <body> 25c0abf9e6Sopenharmony_ci <nav class="navbar navbar-default" role="navigation"> 26c0abf9e6Sopenharmony_ci <div class="container"> 27c0abf9e6Sopenharmony_ci <div class="navbar-header"> 28c0abf9e6Sopenharmony_ci <a class="navbar-brand">libevdev 1.13.0</a> 29c0abf9e6Sopenharmony_ci </div> 30c0abf9e6Sopenharmony_ci </div> 31c0abf9e6Sopenharmony_ci </nav> 32c0abf9e6Sopenharmony_ci <div id="top"><!-- do not remove this div, it is closed by doxygen! --> 33c0abf9e6Sopenharmony_ci <div class="content" id="content"> 34c0abf9e6Sopenharmony_ci <div class="container"> 35c0abf9e6Sopenharmony_ci <div class="row"> 36c0abf9e6Sopenharmony_ci <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;"> 37c0abf9e6Sopenharmony_ci <div style="margin-bottom: 15px;"> 38c0abf9e6Sopenharmony_ci<!-- end header part --> 39c0abf9e6Sopenharmony_ci<!-- Generated by Doxygen 1.9.1 --> 40c0abf9e6Sopenharmony_ci<script type="text/javascript"> 41c0abf9e6Sopenharmony_ci/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 42c0abf9e6Sopenharmony_civar searchBox = new SearchBox("searchBox", "search",false,'Search','.html'); 43c0abf9e6Sopenharmony_ci/* @license-end */ 44c0abf9e6Sopenharmony_ci</script> 45c0abf9e6Sopenharmony_ci<script type="text/javascript" src="menudata.js"></script> 46c0abf9e6Sopenharmony_ci<script type="text/javascript" src="menu.js"></script> 47c0abf9e6Sopenharmony_ci<script type="text/javascript"> 48c0abf9e6Sopenharmony_ci/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 49c0abf9e6Sopenharmony_ci$(function() { 50c0abf9e6Sopenharmony_ci initMenu('',true,false,'search.php','Search'); 51c0abf9e6Sopenharmony_ci $(document).ready(function() { init_search(); }); 52c0abf9e6Sopenharmony_ci}); 53c0abf9e6Sopenharmony_ci/* @license-end */</script> 54c0abf9e6Sopenharmony_ci<div id="main-nav"></div> 55c0abf9e6Sopenharmony_ci</div><!-- top --> 56c0abf9e6Sopenharmony_ci<!-- window showing the filter options --> 57c0abf9e6Sopenharmony_ci<div id="MSearchSelectWindow" 58c0abf9e6Sopenharmony_ci onmouseover="return searchBox.OnSearchSelectShow()" 59c0abf9e6Sopenharmony_ci onmouseout="return searchBox.OnSearchSelectHide()" 60c0abf9e6Sopenharmony_ci onkeydown="return searchBox.OnSearchSelectKey(event)"> 61c0abf9e6Sopenharmony_ci</div> 62c0abf9e6Sopenharmony_ci 63c0abf9e6Sopenharmony_ci<!-- iframe showing the search results (closed by default) --> 64c0abf9e6Sopenharmony_ci<div id="MSearchResultsWindow"> 65c0abf9e6Sopenharmony_ci<iframe src="javascript:void(0)" frameborder="0" 66c0abf9e6Sopenharmony_ci name="MSearchResults" id="MSearchResults"> 67c0abf9e6Sopenharmony_ci</iframe> 68c0abf9e6Sopenharmony_ci</div> 69c0abf9e6Sopenharmony_ci 70c0abf9e6Sopenharmony_ci<div class="header"> 71c0abf9e6Sopenharmony_ci <div class="summary"> 72c0abf9e6Sopenharmony_ci<a href="#func-members">Functions</a> </div> 73c0abf9e6Sopenharmony_ci <div class="headertitle"> 74c0abf9e6Sopenharmony_ci<div class="title">Querying device capabilities</div> </div> 75c0abf9e6Sopenharmony_ci</div><!--header--> 76c0abf9e6Sopenharmony_ci<div class="contents"> 77c0abf9e6Sopenharmony_ci 78c0abf9e6Sopenharmony_ci<p>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. 79c0abf9e6Sopenharmony_ci<a href="#details">More...</a></p> 80c0abf9e6Sopenharmony_ci<table class="memberdecls"> 81c0abf9e6Sopenharmony_ci<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 82c0abf9e6Sopenharmony_ciFunctions</h2></td></tr> 83c0abf9e6Sopenharmony_ci<tr class="memitem:gaed0328c67b7a78422636d9fe09a73f12"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">libevdev_get_name</a> (const struct libevdev *dev)</td></tr> 84c0abf9e6Sopenharmony_ci<tr class="memdesc:gaed0328c67b7a78422636d9fe09a73f12"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the device's name, either as set by the caller or as read from the kernel. <a href="group__bits.html#gaed0328c67b7a78422636d9fe09a73f12">More...</a><br /></td></tr> 85c0abf9e6Sopenharmony_ci<tr class="separator:gaed0328c67b7a78422636d9fe09a73f12"><td class="memSeparator" colspan="2"> </td></tr> 86c0abf9e6Sopenharmony_ci<tr class="memitem:ga5df483b0b24d7b96ea1181808fab851d"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d">libevdev_get_phys</a> (const struct libevdev *dev)</td></tr> 87c0abf9e6Sopenharmony_ci<tr class="memdesc:ga5df483b0b24d7b96ea1181808fab851d"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the device's physical location, either as set by the caller or as read from the kernel. <a href="group__bits.html#ga5df483b0b24d7b96ea1181808fab851d">More...</a><br /></td></tr> 88c0abf9e6Sopenharmony_ci<tr class="separator:ga5df483b0b24d7b96ea1181808fab851d"><td class="memSeparator" colspan="2"> </td></tr> 89c0abf9e6Sopenharmony_ci<tr class="memitem:ga6d9f7d44bff8828ead3d251177035ca4"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4">libevdev_get_uniq</a> (const struct libevdev *dev)</td></tr> 90c0abf9e6Sopenharmony_ci<tr class="memdesc:ga6d9f7d44bff8828ead3d251177035ca4"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the device's unique identifier, either as set by the caller or as read from the kernel. <a href="group__bits.html#ga6d9f7d44bff8828ead3d251177035ca4">More...</a><br /></td></tr> 91c0abf9e6Sopenharmony_ci<tr class="separator:ga6d9f7d44bff8828ead3d251177035ca4"><td class="memSeparator" colspan="2"> </td></tr> 92c0abf9e6Sopenharmony_ci<tr class="memitem:ga1dc66cfef646878d58be72f8902a6bac"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga1dc66cfef646878d58be72f8902a6bac">libevdev_get_id_product</a> (const struct libevdev *dev)</td></tr> 93c0abf9e6Sopenharmony_ci<tr class="separator:ga1dc66cfef646878d58be72f8902a6bac"><td class="memSeparator" colspan="2"> </td></tr> 94c0abf9e6Sopenharmony_ci<tr class="memitem:ga08891c3285da5b8d26769c9a34f063f3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga08891c3285da5b8d26769c9a34f063f3">libevdev_get_id_vendor</a> (const struct libevdev *dev)</td></tr> 95c0abf9e6Sopenharmony_ci<tr class="separator:ga08891c3285da5b8d26769c9a34f063f3"><td class="memSeparator" colspan="2"> </td></tr> 96c0abf9e6Sopenharmony_ci<tr class="memitem:ga9bf55d416401642bad0c435735682308"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga9bf55d416401642bad0c435735682308">libevdev_get_id_bustype</a> (const struct libevdev *dev)</td></tr> 97c0abf9e6Sopenharmony_ci<tr class="separator:ga9bf55d416401642bad0c435735682308"><td class="memSeparator" colspan="2"> </td></tr> 98c0abf9e6Sopenharmony_ci<tr class="memitem:ga75a07d0c96dfe09d2194c104c429d0ae"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga75a07d0c96dfe09d2194c104c429d0ae">libevdev_get_id_version</a> (const struct libevdev *dev)</td></tr> 99c0abf9e6Sopenharmony_ci<tr class="separator:ga75a07d0c96dfe09d2194c104c429d0ae"><td class="memSeparator" colspan="2"> </td></tr> 100c0abf9e6Sopenharmony_ci<tr class="memitem:ga31e9e7a99215a03bcdc339b53e1be2fa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga31e9e7a99215a03bcdc339b53e1be2fa">libevdev_get_driver_version</a> (const struct libevdev *dev)</td></tr> 101c0abf9e6Sopenharmony_ci<tr class="separator:ga31e9e7a99215a03bcdc339b53e1be2fa"><td class="memSeparator" colspan="2"> </td></tr> 102c0abf9e6Sopenharmony_ci<tr class="memitem:ga36d529ea53f4522004bc7d16c051464b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga36d529ea53f4522004bc7d16c051464b">libevdev_has_property</a> (const struct libevdev *dev, unsigned int prop)</td></tr> 103c0abf9e6Sopenharmony_ci<tr class="separator:ga36d529ea53f4522004bc7d16c051464b"><td class="memSeparator" colspan="2"> </td></tr> 104c0abf9e6Sopenharmony_ci<tr class="memitem:ga398bef155fa4a0cfb832de30723ebd14"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a> (const struct libevdev *dev, unsigned int type)</td></tr> 105c0abf9e6Sopenharmony_ci<tr class="separator:ga398bef155fa4a0cfb832de30723ebd14"><td class="memSeparator" colspan="2"> </td></tr> 106c0abf9e6Sopenharmony_ci<tr class="memitem:gab2ab9dad417f33daa79fa0c3d682df0b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a> (const struct libevdev *dev, unsigned int type, unsigned int code)</td></tr> 107c0abf9e6Sopenharmony_ci<tr class="separator:gab2ab9dad417f33daa79fa0c3d682df0b"><td class="memSeparator" colspan="2"> </td></tr> 108c0abf9e6Sopenharmony_ci<tr class="memitem:ga482ce989a3f62f7e67e4ea7ad534189e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e">libevdev_get_abs_minimum</a> (const struct libevdev *dev, unsigned int code)</td></tr> 109c0abf9e6Sopenharmony_ci<tr class="memdesc:ga482ce989a3f62f7e67e4ea7ad534189e"><td class="mdescLeft"> </td><td class="mdescRight">Get the minimum axis value for the given axis, as advertised by the kernel. <a href="group__bits.html#ga482ce989a3f62f7e67e4ea7ad534189e">More...</a><br /></td></tr> 110c0abf9e6Sopenharmony_ci<tr class="separator:ga482ce989a3f62f7e67e4ea7ad534189e"><td class="memSeparator" colspan="2"> </td></tr> 111c0abf9e6Sopenharmony_ci<tr class="memitem:ga97a3411ae85f1f3b5c5eb1d5351b11ca"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca">libevdev_get_abs_maximum</a> (const struct libevdev *dev, unsigned int code)</td></tr> 112c0abf9e6Sopenharmony_ci<tr class="memdesc:ga97a3411ae85f1f3b5c5eb1d5351b11ca"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum axis value for the given axis, as advertised by the kernel. <a href="group__bits.html#ga97a3411ae85f1f3b5c5eb1d5351b11ca">More...</a><br /></td></tr> 113c0abf9e6Sopenharmony_ci<tr class="separator:ga97a3411ae85f1f3b5c5eb1d5351b11ca"><td class="memSeparator" colspan="2"> </td></tr> 114c0abf9e6Sopenharmony_ci<tr class="memitem:ga1a3dfeb3bb2db0b4323c836c7ab10f1a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">libevdev_get_abs_fuzz</a> (const struct libevdev *dev, unsigned int code)</td></tr> 115c0abf9e6Sopenharmony_ci<tr class="memdesc:ga1a3dfeb3bb2db0b4323c836c7ab10f1a"><td class="mdescLeft"> </td><td class="mdescRight">Get the axis fuzz for the given axis, as advertised by the kernel. <a href="group__bits.html#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">More...</a><br /></td></tr> 116c0abf9e6Sopenharmony_ci<tr class="separator:ga1a3dfeb3bb2db0b4323c836c7ab10f1a"><td class="memSeparator" colspan="2"> </td></tr> 117c0abf9e6Sopenharmony_ci<tr class="memitem:ga6b3f7ebae2324524dc41384acd724b92"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92">libevdev_get_abs_flat</a> (const struct libevdev *dev, unsigned int code)</td></tr> 118c0abf9e6Sopenharmony_ci<tr class="memdesc:ga6b3f7ebae2324524dc41384acd724b92"><td class="mdescLeft"> </td><td class="mdescRight">Get the axis flat for the given axis, as advertised by the kernel. <a href="group__bits.html#ga6b3f7ebae2324524dc41384acd724b92">More...</a><br /></td></tr> 119c0abf9e6Sopenharmony_ci<tr class="separator:ga6b3f7ebae2324524dc41384acd724b92"><td class="memSeparator" colspan="2"> </td></tr> 120c0abf9e6Sopenharmony_ci<tr class="memitem:ga75751e637a845201b6d1c419ecfa6ba4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4">libevdev_get_abs_resolution</a> (const struct libevdev *dev, unsigned int code)</td></tr> 121c0abf9e6Sopenharmony_ci<tr class="memdesc:ga75751e637a845201b6d1c419ecfa6ba4"><td class="mdescLeft"> </td><td class="mdescRight">Get the axis resolution for the given axis, as advertised by the kernel. <a href="group__bits.html#ga75751e637a845201b6d1c419ecfa6ba4">More...</a><br /></td></tr> 122c0abf9e6Sopenharmony_ci<tr class="separator:ga75751e637a845201b6d1c419ecfa6ba4"><td class="memSeparator" colspan="2"> </td></tr> 123c0abf9e6Sopenharmony_ci<tr class="memitem:ga6d8e2caf87fa536fad979346671838d7"><td class="memItemLeft" align="right" valign="top">const struct input_absinfo * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7">libevdev_get_abs_info</a> (const struct libevdev *dev, unsigned int code)</td></tr> 124c0abf9e6Sopenharmony_ci<tr class="memdesc:ga6d8e2caf87fa536fad979346671838d7"><td class="mdescLeft"> </td><td class="mdescRight">Get the axis info for the given axis, as advertised by the kernel. <a href="group__bits.html#ga6d8e2caf87fa536fad979346671838d7">More...</a><br /></td></tr> 125c0abf9e6Sopenharmony_ci<tr class="separator:ga6d8e2caf87fa536fad979346671838d7"><td class="memSeparator" colspan="2"> </td></tr> 126c0abf9e6Sopenharmony_ci<tr class="memitem:ga6259f4c6bdba950329ff9cd48c2ef8a3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a> (const struct libevdev *dev, unsigned int type, unsigned int code)</td></tr> 127c0abf9e6Sopenharmony_ci<tr class="memdesc:ga6259f4c6bdba950329ff9cd48c2ef8a3"><td class="mdescLeft"> </td><td class="mdescRight">Behaviour of this function is undefined if the device does not provide the event. <a href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">More...</a><br /></td></tr> 128c0abf9e6Sopenharmony_ci<tr class="separator:ga6259f4c6bdba950329ff9cd48c2ef8a3"><td class="memSeparator" colspan="2"> </td></tr> 129c0abf9e6Sopenharmony_ci<tr class="memitem:ga0a7be80d769294bf9758adf79c3c7147"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147">libevdev_fetch_event_value</a> (const struct libevdev *dev, unsigned int type, unsigned int code, int *value)</td></tr> 130c0abf9e6Sopenharmony_ci<tr class="memdesc:ga0a7be80d769294bf9758adf79c3c7147"><td class="mdescLeft"> </td><td class="mdescRight">Fetch the current value of the event type. <a href="group__bits.html#ga0a7be80d769294bf9758adf79c3c7147">More...</a><br /></td></tr> 131c0abf9e6Sopenharmony_ci<tr class="separator:ga0a7be80d769294bf9758adf79c3c7147"><td class="memSeparator" colspan="2"> </td></tr> 132c0abf9e6Sopenharmony_ci<tr class="memitem:gaf12fa199bb9497b38358d72e7505d770"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770">libevdev_get_repeat</a> (const struct libevdev *dev, int *delay, int *period)</td></tr> 133c0abf9e6Sopenharmony_ci<tr class="memdesc:gaf12fa199bb9497b38358d72e7505d770"><td class="mdescLeft"> </td><td class="mdescRight">Get the repeat delay and repeat period values for this device. <a href="group__bits.html#gaf12fa199bb9497b38358d72e7505d770">More...</a><br /></td></tr> 134c0abf9e6Sopenharmony_ci<tr class="separator:gaf12fa199bb9497b38358d72e7505d770"><td class="memSeparator" colspan="2"> </td></tr> 135c0abf9e6Sopenharmony_ci</table> 136c0abf9e6Sopenharmony_ci<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 137c0abf9e6Sopenharmony_ci<p>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. </p> 138c0abf9e6Sopenharmony_ci<p>The logical state returned may lag behind the physical state of the device. libevdev queries the device state on <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> and then relies on the caller to parse events through <a class="el" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76" title="Get the next event from the device.">libevdev_next_event()</a>. If a caller does not use <a class="el" href="group__events.html#gabb96c864e836c0b98788f4ab771c3a76" title="Get the next event from the device.">libevdev_next_event()</a>, libevdev will not update the internal state of the device and thus returns outdated values. </p> 139c0abf9e6Sopenharmony_ci<h2 class="groupheader">Function Documentation</h2> 140c0abf9e6Sopenharmony_ci<a id="ga0a7be80d769294bf9758adf79c3c7147"></a> 141c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga0a7be80d769294bf9758adf79c3c7147">◆ </a></span>libevdev_fetch_event_value()</h2> 142c0abf9e6Sopenharmony_ci 143c0abf9e6Sopenharmony_ci<div class="memitem"> 144c0abf9e6Sopenharmony_ci<div class="memproto"> 145c0abf9e6Sopenharmony_ci <table class="memname"> 146c0abf9e6Sopenharmony_ci <tr> 147c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_fetch_event_value </td> 148c0abf9e6Sopenharmony_ci <td>(</td> 149c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 150c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 151c0abf9e6Sopenharmony_ci </tr> 152c0abf9e6Sopenharmony_ci <tr> 153c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 154c0abf9e6Sopenharmony_ci <td></td> 155c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 156c0abf9e6Sopenharmony_ci <td class="paramname"><em>type</em>, </td> 157c0abf9e6Sopenharmony_ci </tr> 158c0abf9e6Sopenharmony_ci <tr> 159c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 160c0abf9e6Sopenharmony_ci <td></td> 161c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 162c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em>, </td> 163c0abf9e6Sopenharmony_ci </tr> 164c0abf9e6Sopenharmony_ci <tr> 165c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 166c0abf9e6Sopenharmony_ci <td></td> 167c0abf9e6Sopenharmony_ci <td class="paramtype">int * </td> 168c0abf9e6Sopenharmony_ci <td class="paramname"><em>value</em> </td> 169c0abf9e6Sopenharmony_ci </tr> 170c0abf9e6Sopenharmony_ci <tr> 171c0abf9e6Sopenharmony_ci <td></td> 172c0abf9e6Sopenharmony_ci <td>)</td> 173c0abf9e6Sopenharmony_ci <td></td><td></td> 174c0abf9e6Sopenharmony_ci </tr> 175c0abf9e6Sopenharmony_ci </table> 176c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 177c0abf9e6Sopenharmony_ci 178c0abf9e6Sopenharmony_ci<p>Fetch the current value of the event type. </p> 179c0abf9e6Sopenharmony_ci<p>This is a shortcut for</p> 180c0abf9e6Sopenharmony_ci<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a>(dev, t) && <a class="code" href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a>(dev, t, c))</div> 181c0abf9e6Sopenharmony_ci<div class="line"> val = <a class="code" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a>(dev, t, c);</div> 182c0abf9e6Sopenharmony_ci<div class="ttc" id="agroup__bits_html_ga398bef155fa4a0cfb832de30723ebd14"><div class="ttname"><a href="group__bits.html#ga398bef155fa4a0cfb832de30723ebd14">libevdev_has_event_type</a></div><div class="ttdeci">int libevdev_has_event_type(const struct libevdev *dev, unsigned int type)</div></div> 183c0abf9e6Sopenharmony_ci<div class="ttc" id="agroup__bits_html_ga6259f4c6bdba950329ff9cd48c2ef8a3"><div class="ttname"><a href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3">libevdev_get_event_value</a></div><div class="ttdeci">int libevdev_get_event_value(const struct libevdev *dev, unsigned int type, unsigned int code)</div><div class="ttdoc">Behaviour of this function is undefined if the device does not provide the event.</div></div> 184c0abf9e6Sopenharmony_ci<div class="ttc" id="agroup__bits_html_gab2ab9dad417f33daa79fa0c3d682df0b"><div class="ttname"><a href="group__bits.html#gab2ab9dad417f33daa79fa0c3d682df0b">libevdev_has_event_code</a></div><div class="ttdeci">int libevdev_has_event_code(const struct libevdev *dev, unsigned int type, unsigned int code)</div></div> 185c0abf9e6Sopenharmony_ci</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd> 186c0abf9e6Sopenharmony_ci <table class="params"> 187c0abf9e6Sopenharmony_ci <tr><td class="paramdir"></td><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 188c0abf9e6Sopenharmony_ci <tr><td class="paramdir"></td><td class="paramname">type</td><td>The event type for the code to query (EV_SYN, EV_REL, etc.) </td></tr> 189c0abf9e6Sopenharmony_ci <tr><td class="paramdir"></td><td class="paramname">code</td><td>The event code to query for, one of ABS_X, REL_X, etc. </td></tr> 190c0abf9e6Sopenharmony_ci <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The current value of this axis returned.</td></tr> 191c0abf9e6Sopenharmony_ci </table> 192c0abf9e6Sopenharmony_ci </dd> 193c0abf9e6Sopenharmony_ci</dl> 194c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>If the device supports this event type and code, the return value is non-zero and value is set to the current value of this axis. Otherwise, 0 is returned and value is unmodified.</dd></dl> 195c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd> 196c0abf9e6Sopenharmony_ci<dd> 197c0abf9e6Sopenharmony_ciThe value for ABS_MT_ events is undefined, use <a class="el" href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec" title="Fetch the current value of the code for the given slot.">libevdev_fetch_slot_value()</a> instead</dd></dl> 198c0abf9e6Sopenharmony_ci<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__mt.html#gaca19dca5aa8f0ea3b210f3fc670384ec" title="Fetch the current value of the code for the given slot.">libevdev_fetch_slot_value</a> </dd></dl> 199c0abf9e6Sopenharmony_ci 200c0abf9e6Sopenharmony_ci</div> 201c0abf9e6Sopenharmony_ci</div> 202c0abf9e6Sopenharmony_ci<a id="ga6b3f7ebae2324524dc41384acd724b92"></a> 203c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga6b3f7ebae2324524dc41384acd724b92">◆ </a></span>libevdev_get_abs_flat()</h2> 204c0abf9e6Sopenharmony_ci 205c0abf9e6Sopenharmony_ci<div class="memitem"> 206c0abf9e6Sopenharmony_ci<div class="memproto"> 207c0abf9e6Sopenharmony_ci <table class="memname"> 208c0abf9e6Sopenharmony_ci <tr> 209c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_abs_flat </td> 210c0abf9e6Sopenharmony_ci <td>(</td> 211c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 212c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 213c0abf9e6Sopenharmony_ci </tr> 214c0abf9e6Sopenharmony_ci <tr> 215c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 216c0abf9e6Sopenharmony_ci <td></td> 217c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 218c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 219c0abf9e6Sopenharmony_ci </tr> 220c0abf9e6Sopenharmony_ci <tr> 221c0abf9e6Sopenharmony_ci <td></td> 222c0abf9e6Sopenharmony_ci <td>)</td> 223c0abf9e6Sopenharmony_ci <td></td><td></td> 224c0abf9e6Sopenharmony_ci </tr> 225c0abf9e6Sopenharmony_ci </table> 226c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 227c0abf9e6Sopenharmony_ci 228c0abf9e6Sopenharmony_ci<p>Get the axis flat for the given axis, as advertised by the kernel. </p> 229c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 230c0abf9e6Sopenharmony_ci <table class="params"> 231c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 232c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The EV_ABS event code to query for, one of ABS_X, ABS_Y, etc.</td></tr> 233c0abf9e6Sopenharmony_ci </table> 234c0abf9e6Sopenharmony_ci </dd> 235c0abf9e6Sopenharmony_ci</dl> 236c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>axis flat for the given axis or 0 if the axis is invalid</dd></dl> 237c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 238c0abf9e6Sopenharmony_ci 239c0abf9e6Sopenharmony_ci</div> 240c0abf9e6Sopenharmony_ci</div> 241c0abf9e6Sopenharmony_ci<a id="ga1a3dfeb3bb2db0b4323c836c7ab10f1a"></a> 242c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga1a3dfeb3bb2db0b4323c836c7ab10f1a">◆ </a></span>libevdev_get_abs_fuzz()</h2> 243c0abf9e6Sopenharmony_ci 244c0abf9e6Sopenharmony_ci<div class="memitem"> 245c0abf9e6Sopenharmony_ci<div class="memproto"> 246c0abf9e6Sopenharmony_ci <table class="memname"> 247c0abf9e6Sopenharmony_ci <tr> 248c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_abs_fuzz </td> 249c0abf9e6Sopenharmony_ci <td>(</td> 250c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 251c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 252c0abf9e6Sopenharmony_ci </tr> 253c0abf9e6Sopenharmony_ci <tr> 254c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 255c0abf9e6Sopenharmony_ci <td></td> 256c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 257c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 258c0abf9e6Sopenharmony_ci </tr> 259c0abf9e6Sopenharmony_ci <tr> 260c0abf9e6Sopenharmony_ci <td></td> 261c0abf9e6Sopenharmony_ci <td>)</td> 262c0abf9e6Sopenharmony_ci <td></td><td></td> 263c0abf9e6Sopenharmony_ci </tr> 264c0abf9e6Sopenharmony_ci </table> 265c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 266c0abf9e6Sopenharmony_ci 267c0abf9e6Sopenharmony_ci<p>Get the axis fuzz for the given axis, as advertised by the kernel. </p> 268c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 269c0abf9e6Sopenharmony_ci <table class="params"> 270c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 271c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The EV_ABS event code to query for, one of ABS_X, ABS_Y, etc.</td></tr> 272c0abf9e6Sopenharmony_ci </table> 273c0abf9e6Sopenharmony_ci </dd> 274c0abf9e6Sopenharmony_ci</dl> 275c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>axis fuzz for the given axis or 0 if the axis is invalid</dd></dl> 276c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 277c0abf9e6Sopenharmony_ci 278c0abf9e6Sopenharmony_ci</div> 279c0abf9e6Sopenharmony_ci</div> 280c0abf9e6Sopenharmony_ci<a id="ga6d8e2caf87fa536fad979346671838d7"></a> 281c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga6d8e2caf87fa536fad979346671838d7">◆ </a></span>libevdev_get_abs_info()</h2> 282c0abf9e6Sopenharmony_ci 283c0abf9e6Sopenharmony_ci<div class="memitem"> 284c0abf9e6Sopenharmony_ci<div class="memproto"> 285c0abf9e6Sopenharmony_ci <table class="memname"> 286c0abf9e6Sopenharmony_ci <tr> 287c0abf9e6Sopenharmony_ci <td class="memname">const struct input_absinfo* libevdev_get_abs_info </td> 288c0abf9e6Sopenharmony_ci <td>(</td> 289c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 290c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 291c0abf9e6Sopenharmony_ci </tr> 292c0abf9e6Sopenharmony_ci <tr> 293c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 294c0abf9e6Sopenharmony_ci <td></td> 295c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 296c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 297c0abf9e6Sopenharmony_ci </tr> 298c0abf9e6Sopenharmony_ci <tr> 299c0abf9e6Sopenharmony_ci <td></td> 300c0abf9e6Sopenharmony_ci <td>)</td> 301c0abf9e6Sopenharmony_ci <td></td><td></td> 302c0abf9e6Sopenharmony_ci </tr> 303c0abf9e6Sopenharmony_ci </table> 304c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 305c0abf9e6Sopenharmony_ci 306c0abf9e6Sopenharmony_ci<p>Get the axis info for the given axis, as advertised by the kernel. </p> 307c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 308c0abf9e6Sopenharmony_ci <table class="params"> 309c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 310c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The EV_ABS event code to query for, one of ABS_X, ABS_Y, etc.</td></tr> 311c0abf9e6Sopenharmony_ci </table> 312c0abf9e6Sopenharmony_ci </dd> 313c0abf9e6Sopenharmony_ci</dl> 314c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The input_absinfo for the given code, or NULL if the device does not support this event code.</dd></dl> 315c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 316c0abf9e6Sopenharmony_ci 317c0abf9e6Sopenharmony_ci</div> 318c0abf9e6Sopenharmony_ci</div> 319c0abf9e6Sopenharmony_ci<a id="ga97a3411ae85f1f3b5c5eb1d5351b11ca"></a> 320c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga97a3411ae85f1f3b5c5eb1d5351b11ca">◆ </a></span>libevdev_get_abs_maximum()</h2> 321c0abf9e6Sopenharmony_ci 322c0abf9e6Sopenharmony_ci<div class="memitem"> 323c0abf9e6Sopenharmony_ci<div class="memproto"> 324c0abf9e6Sopenharmony_ci <table class="memname"> 325c0abf9e6Sopenharmony_ci <tr> 326c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_abs_maximum </td> 327c0abf9e6Sopenharmony_ci <td>(</td> 328c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 329c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 330c0abf9e6Sopenharmony_ci </tr> 331c0abf9e6Sopenharmony_ci <tr> 332c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 333c0abf9e6Sopenharmony_ci <td></td> 334c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 335c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 336c0abf9e6Sopenharmony_ci </tr> 337c0abf9e6Sopenharmony_ci <tr> 338c0abf9e6Sopenharmony_ci <td></td> 339c0abf9e6Sopenharmony_ci <td>)</td> 340c0abf9e6Sopenharmony_ci <td></td><td></td> 341c0abf9e6Sopenharmony_ci </tr> 342c0abf9e6Sopenharmony_ci </table> 343c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 344c0abf9e6Sopenharmony_ci 345c0abf9e6Sopenharmony_ci<p>Get the maximum axis value for the given axis, as advertised by the kernel. </p> 346c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 347c0abf9e6Sopenharmony_ci <table class="params"> 348c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 349c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The EV_ABS event code to query for, one of ABS_X, ABS_Y, etc.</td></tr> 350c0abf9e6Sopenharmony_ci </table> 351c0abf9e6Sopenharmony_ci </dd> 352c0abf9e6Sopenharmony_ci</dl> 353c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>axis maximum for the given axis or 0 if the axis is invalid</dd></dl> 354c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 355c0abf9e6Sopenharmony_ci 356c0abf9e6Sopenharmony_ci</div> 357c0abf9e6Sopenharmony_ci</div> 358c0abf9e6Sopenharmony_ci<a id="ga482ce989a3f62f7e67e4ea7ad534189e"></a> 359c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga482ce989a3f62f7e67e4ea7ad534189e">◆ </a></span>libevdev_get_abs_minimum()</h2> 360c0abf9e6Sopenharmony_ci 361c0abf9e6Sopenharmony_ci<div class="memitem"> 362c0abf9e6Sopenharmony_ci<div class="memproto"> 363c0abf9e6Sopenharmony_ci <table class="memname"> 364c0abf9e6Sopenharmony_ci <tr> 365c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_abs_minimum </td> 366c0abf9e6Sopenharmony_ci <td>(</td> 367c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 368c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 369c0abf9e6Sopenharmony_ci </tr> 370c0abf9e6Sopenharmony_ci <tr> 371c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 372c0abf9e6Sopenharmony_ci <td></td> 373c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 374c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 375c0abf9e6Sopenharmony_ci </tr> 376c0abf9e6Sopenharmony_ci <tr> 377c0abf9e6Sopenharmony_ci <td></td> 378c0abf9e6Sopenharmony_ci <td>)</td> 379c0abf9e6Sopenharmony_ci <td></td><td></td> 380c0abf9e6Sopenharmony_ci </tr> 381c0abf9e6Sopenharmony_ci </table> 382c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 383c0abf9e6Sopenharmony_ci 384c0abf9e6Sopenharmony_ci<p>Get the minimum axis value for the given axis, as advertised by the kernel. </p> 385c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 386c0abf9e6Sopenharmony_ci <table class="params"> 387c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 388c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The EV_ABS event code to query for, one of ABS_X, ABS_Y, etc.</td></tr> 389c0abf9e6Sopenharmony_ci </table> 390c0abf9e6Sopenharmony_ci </dd> 391c0abf9e6Sopenharmony_ci</dl> 392c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>axis minimum for the given axis or 0 if the axis is invalid</dd></dl> 393c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 394c0abf9e6Sopenharmony_ci 395c0abf9e6Sopenharmony_ci</div> 396c0abf9e6Sopenharmony_ci</div> 397c0abf9e6Sopenharmony_ci<a id="ga75751e637a845201b6d1c419ecfa6ba4"></a> 398c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga75751e637a845201b6d1c419ecfa6ba4">◆ </a></span>libevdev_get_abs_resolution()</h2> 399c0abf9e6Sopenharmony_ci 400c0abf9e6Sopenharmony_ci<div class="memitem"> 401c0abf9e6Sopenharmony_ci<div class="memproto"> 402c0abf9e6Sopenharmony_ci <table class="memname"> 403c0abf9e6Sopenharmony_ci <tr> 404c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_abs_resolution </td> 405c0abf9e6Sopenharmony_ci <td>(</td> 406c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 407c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 408c0abf9e6Sopenharmony_ci </tr> 409c0abf9e6Sopenharmony_ci <tr> 410c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 411c0abf9e6Sopenharmony_ci <td></td> 412c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 413c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 414c0abf9e6Sopenharmony_ci </tr> 415c0abf9e6Sopenharmony_ci <tr> 416c0abf9e6Sopenharmony_ci <td></td> 417c0abf9e6Sopenharmony_ci <td>)</td> 418c0abf9e6Sopenharmony_ci <td></td><td></td> 419c0abf9e6Sopenharmony_ci </tr> 420c0abf9e6Sopenharmony_ci </table> 421c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 422c0abf9e6Sopenharmony_ci 423c0abf9e6Sopenharmony_ci<p>Get the axis resolution for the given axis, as advertised by the kernel. </p> 424c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 425c0abf9e6Sopenharmony_ci <table class="params"> 426c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 427c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The EV_ABS event code to query for, one of ABS_X, ABS_Y, etc.</td></tr> 428c0abf9e6Sopenharmony_ci </table> 429c0abf9e6Sopenharmony_ci </dd> 430c0abf9e6Sopenharmony_ci</dl> 431c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>axis resolution for the given axis or 0 if the axis is invalid</dd></dl> 432c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 433c0abf9e6Sopenharmony_ci 434c0abf9e6Sopenharmony_ci</div> 435c0abf9e6Sopenharmony_ci</div> 436c0abf9e6Sopenharmony_ci<a id="ga31e9e7a99215a03bcdc339b53e1be2fa"></a> 437c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga31e9e7a99215a03bcdc339b53e1be2fa">◆ </a></span>libevdev_get_driver_version()</h2> 438c0abf9e6Sopenharmony_ci 439c0abf9e6Sopenharmony_ci<div class="memitem"> 440c0abf9e6Sopenharmony_ci<div class="memproto"> 441c0abf9e6Sopenharmony_ci <table class="memname"> 442c0abf9e6Sopenharmony_ci <tr> 443c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_driver_version </td> 444c0abf9e6Sopenharmony_ci <td>(</td> 445c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 446c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 447c0abf9e6Sopenharmony_ci <td></td> 448c0abf9e6Sopenharmony_ci </tr> 449c0abf9e6Sopenharmony_ci </table> 450c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 451c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 452c0abf9e6Sopenharmony_ci <table class="params"> 453c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 454c0abf9e6Sopenharmony_ci </table> 455c0abf9e6Sopenharmony_ci </dd> 456c0abf9e6Sopenharmony_ci</dl> 457c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The driver version for this device</dd></dl> 458c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 459c0abf9e6Sopenharmony_ci 460c0abf9e6Sopenharmony_ci</div> 461c0abf9e6Sopenharmony_ci</div> 462c0abf9e6Sopenharmony_ci<a id="ga6259f4c6bdba950329ff9cd48c2ef8a3"></a> 463c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga6259f4c6bdba950329ff9cd48c2ef8a3">◆ </a></span>libevdev_get_event_value()</h2> 464c0abf9e6Sopenharmony_ci 465c0abf9e6Sopenharmony_ci<div class="memitem"> 466c0abf9e6Sopenharmony_ci<div class="memproto"> 467c0abf9e6Sopenharmony_ci <table class="memname"> 468c0abf9e6Sopenharmony_ci <tr> 469c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_event_value </td> 470c0abf9e6Sopenharmony_ci <td>(</td> 471c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 472c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 473c0abf9e6Sopenharmony_ci </tr> 474c0abf9e6Sopenharmony_ci <tr> 475c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 476c0abf9e6Sopenharmony_ci <td></td> 477c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 478c0abf9e6Sopenharmony_ci <td class="paramname"><em>type</em>, </td> 479c0abf9e6Sopenharmony_ci </tr> 480c0abf9e6Sopenharmony_ci <tr> 481c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 482c0abf9e6Sopenharmony_ci <td></td> 483c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 484c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 485c0abf9e6Sopenharmony_ci </tr> 486c0abf9e6Sopenharmony_ci <tr> 487c0abf9e6Sopenharmony_ci <td></td> 488c0abf9e6Sopenharmony_ci <td>)</td> 489c0abf9e6Sopenharmony_ci <td></td><td></td> 490c0abf9e6Sopenharmony_ci </tr> 491c0abf9e6Sopenharmony_ci </table> 492c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 493c0abf9e6Sopenharmony_ci 494c0abf9e6Sopenharmony_ci<p>Behaviour of this function is undefined if the device does not provide the event. </p> 495c0abf9e6Sopenharmony_ci<p>If the device supports ABS_MT_SLOT, the value returned for any ABS_MT_* event code is undefined. Use <a class="el" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8" title="Return the current value of the code for the given slot.">libevdev_get_slot_value()</a> instead.</p> 496c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 497c0abf9e6Sopenharmony_ci <table class="params"> 498c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 499c0abf9e6Sopenharmony_ci <tr><td class="paramname">type</td><td>The event type for the code to query (EV_SYN, EV_REL, etc.) </td></tr> 500c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The event code to query for, one of ABS_X, REL_X, etc.</td></tr> 501c0abf9e6Sopenharmony_ci </table> 502c0abf9e6Sopenharmony_ci </dd> 503c0abf9e6Sopenharmony_ci</dl> 504c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The current value of the event.</dd></dl> 505c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd> 506c0abf9e6Sopenharmony_ci<dd> 507c0abf9e6Sopenharmony_ciThe value for ABS_MT_ events is undefined, use <a class="el" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8" title="Return the current value of the code for the given slot.">libevdev_get_slot_value()</a> instead</dd></dl> 508c0abf9e6Sopenharmony_ci<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__mt.html#ga8c6303391cb4f90b2d46763cf4eb8bc8" title="Return the current value of the code for the given slot.">libevdev_get_slot_value</a> </dd></dl> 509c0abf9e6Sopenharmony_ci 510c0abf9e6Sopenharmony_ci</div> 511c0abf9e6Sopenharmony_ci</div> 512c0abf9e6Sopenharmony_ci<a id="ga9bf55d416401642bad0c435735682308"></a> 513c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga9bf55d416401642bad0c435735682308">◆ </a></span>libevdev_get_id_bustype()</h2> 514c0abf9e6Sopenharmony_ci 515c0abf9e6Sopenharmony_ci<div class="memitem"> 516c0abf9e6Sopenharmony_ci<div class="memproto"> 517c0abf9e6Sopenharmony_ci <table class="memname"> 518c0abf9e6Sopenharmony_ci <tr> 519c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_id_bustype </td> 520c0abf9e6Sopenharmony_ci <td>(</td> 521c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 522c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 523c0abf9e6Sopenharmony_ci <td></td> 524c0abf9e6Sopenharmony_ci </tr> 525c0abf9e6Sopenharmony_ci </table> 526c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 527c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 528c0abf9e6Sopenharmony_ci <table class="params"> 529c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 530c0abf9e6Sopenharmony_ci </table> 531c0abf9e6Sopenharmony_ci </dd> 532c0abf9e6Sopenharmony_ci</dl> 533c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The device's bus type</dd></dl> 534c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 535c0abf9e6Sopenharmony_ci 536c0abf9e6Sopenharmony_ci</div> 537c0abf9e6Sopenharmony_ci</div> 538c0abf9e6Sopenharmony_ci<a id="ga1dc66cfef646878d58be72f8902a6bac"></a> 539c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga1dc66cfef646878d58be72f8902a6bac">◆ </a></span>libevdev_get_id_product()</h2> 540c0abf9e6Sopenharmony_ci 541c0abf9e6Sopenharmony_ci<div class="memitem"> 542c0abf9e6Sopenharmony_ci<div class="memproto"> 543c0abf9e6Sopenharmony_ci <table class="memname"> 544c0abf9e6Sopenharmony_ci <tr> 545c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_id_product </td> 546c0abf9e6Sopenharmony_ci <td>(</td> 547c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 548c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 549c0abf9e6Sopenharmony_ci <td></td> 550c0abf9e6Sopenharmony_ci </tr> 551c0abf9e6Sopenharmony_ci </table> 552c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 553c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 554c0abf9e6Sopenharmony_ci <table class="params"> 555c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 556c0abf9e6Sopenharmony_ci </table> 557c0abf9e6Sopenharmony_ci </dd> 558c0abf9e6Sopenharmony_ci</dl> 559c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The device's product ID</dd></dl> 560c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 561c0abf9e6Sopenharmony_ci 562c0abf9e6Sopenharmony_ci</div> 563c0abf9e6Sopenharmony_ci</div> 564c0abf9e6Sopenharmony_ci<a id="ga08891c3285da5b8d26769c9a34f063f3"></a> 565c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga08891c3285da5b8d26769c9a34f063f3">◆ </a></span>libevdev_get_id_vendor()</h2> 566c0abf9e6Sopenharmony_ci 567c0abf9e6Sopenharmony_ci<div class="memitem"> 568c0abf9e6Sopenharmony_ci<div class="memproto"> 569c0abf9e6Sopenharmony_ci <table class="memname"> 570c0abf9e6Sopenharmony_ci <tr> 571c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_id_vendor </td> 572c0abf9e6Sopenharmony_ci <td>(</td> 573c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 574c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 575c0abf9e6Sopenharmony_ci <td></td> 576c0abf9e6Sopenharmony_ci </tr> 577c0abf9e6Sopenharmony_ci </table> 578c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 579c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 580c0abf9e6Sopenharmony_ci <table class="params"> 581c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 582c0abf9e6Sopenharmony_ci </table> 583c0abf9e6Sopenharmony_ci </dd> 584c0abf9e6Sopenharmony_ci</dl> 585c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The device's vendor ID</dd></dl> 586c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 587c0abf9e6Sopenharmony_ci 588c0abf9e6Sopenharmony_ci</div> 589c0abf9e6Sopenharmony_ci</div> 590c0abf9e6Sopenharmony_ci<a id="ga75a07d0c96dfe09d2194c104c429d0ae"></a> 591c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga75a07d0c96dfe09d2194c104c429d0ae">◆ </a></span>libevdev_get_id_version()</h2> 592c0abf9e6Sopenharmony_ci 593c0abf9e6Sopenharmony_ci<div class="memitem"> 594c0abf9e6Sopenharmony_ci<div class="memproto"> 595c0abf9e6Sopenharmony_ci <table class="memname"> 596c0abf9e6Sopenharmony_ci <tr> 597c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_id_version </td> 598c0abf9e6Sopenharmony_ci <td>(</td> 599c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 600c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 601c0abf9e6Sopenharmony_ci <td></td> 602c0abf9e6Sopenharmony_ci </tr> 603c0abf9e6Sopenharmony_ci </table> 604c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 605c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 606c0abf9e6Sopenharmony_ci <table class="params"> 607c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 608c0abf9e6Sopenharmony_ci </table> 609c0abf9e6Sopenharmony_ci </dd> 610c0abf9e6Sopenharmony_ci</dl> 611c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The device's firmware version</dd></dl> 612c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 613c0abf9e6Sopenharmony_ci 614c0abf9e6Sopenharmony_ci</div> 615c0abf9e6Sopenharmony_ci</div> 616c0abf9e6Sopenharmony_ci<a id="gaed0328c67b7a78422636d9fe09a73f12"></a> 617c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gaed0328c67b7a78422636d9fe09a73f12">◆ </a></span>libevdev_get_name()</h2> 618c0abf9e6Sopenharmony_ci 619c0abf9e6Sopenharmony_ci<div class="memitem"> 620c0abf9e6Sopenharmony_ci<div class="memproto"> 621c0abf9e6Sopenharmony_ci <table class="memname"> 622c0abf9e6Sopenharmony_ci <tr> 623c0abf9e6Sopenharmony_ci <td class="memname">const char* libevdev_get_name </td> 624c0abf9e6Sopenharmony_ci <td>(</td> 625c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 626c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 627c0abf9e6Sopenharmony_ci <td></td> 628c0abf9e6Sopenharmony_ci </tr> 629c0abf9e6Sopenharmony_ci </table> 630c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 631c0abf9e6Sopenharmony_ci 632c0abf9e6Sopenharmony_ci<p>Retrieve the device's name, either as set by the caller or as read from the kernel. </p> 633c0abf9e6Sopenharmony_ci<p>The string returned is valid until <a class="el" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c" title="Clean up and free the libevdev struct.">libevdev_free()</a> or until <a class="el" href="group__kernel.html#gae5dcdb7678cdc9be4ab1989725b4ed32" title="Change the device's name as returned by libevdev_get_name().">libevdev_set_name()</a>, whichever comes earlier.</p> 634c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 635c0abf9e6Sopenharmony_ci <table class="params"> 636c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 637c0abf9e6Sopenharmony_ci </table> 638c0abf9e6Sopenharmony_ci </dd> 639c0abf9e6Sopenharmony_ci</dl> 640c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The device name as read off the kernel device. The name is never NULL but it may be the empty string.</dd></dl> 641c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 642c0abf9e6Sopenharmony_ci 643c0abf9e6Sopenharmony_ci</div> 644c0abf9e6Sopenharmony_ci</div> 645c0abf9e6Sopenharmony_ci<a id="ga5df483b0b24d7b96ea1181808fab851d"></a> 646c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga5df483b0b24d7b96ea1181808fab851d">◆ </a></span>libevdev_get_phys()</h2> 647c0abf9e6Sopenharmony_ci 648c0abf9e6Sopenharmony_ci<div class="memitem"> 649c0abf9e6Sopenharmony_ci<div class="memproto"> 650c0abf9e6Sopenharmony_ci <table class="memname"> 651c0abf9e6Sopenharmony_ci <tr> 652c0abf9e6Sopenharmony_ci <td class="memname">const char* libevdev_get_phys </td> 653c0abf9e6Sopenharmony_ci <td>(</td> 654c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 655c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 656c0abf9e6Sopenharmony_ci <td></td> 657c0abf9e6Sopenharmony_ci </tr> 658c0abf9e6Sopenharmony_ci </table> 659c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 660c0abf9e6Sopenharmony_ci 661c0abf9e6Sopenharmony_ci<p>Retrieve the device's physical location, either as set by the caller or as read from the kernel. </p> 662c0abf9e6Sopenharmony_ci<p>The string returned is valid until <a class="el" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c" title="Clean up and free the libevdev struct.">libevdev_free()</a> or until <a class="el" href="group__kernel.html#gacd57c8d6ace8e0b1417809a9c1c67af3" title="Change the device's physical location as returned by libevdev_get_phys().">libevdev_set_phys()</a>, whichever comes earlier.</p> 663c0abf9e6Sopenharmony_ci<p>Virtual devices such as uinput devices have no phys location.</p> 664c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 665c0abf9e6Sopenharmony_ci <table class="params"> 666c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 667c0abf9e6Sopenharmony_ci </table> 668c0abf9e6Sopenharmony_ci </dd> 669c0abf9e6Sopenharmony_ci</dl> 670c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The physical location of this device, or NULL if there is none</dd></dl> 671c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal safe. </dd></dl> 672c0abf9e6Sopenharmony_ci 673c0abf9e6Sopenharmony_ci</div> 674c0abf9e6Sopenharmony_ci</div> 675c0abf9e6Sopenharmony_ci<a id="gaf12fa199bb9497b38358d72e7505d770"></a> 676c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gaf12fa199bb9497b38358d72e7505d770">◆ </a></span>libevdev_get_repeat()</h2> 677c0abf9e6Sopenharmony_ci 678c0abf9e6Sopenharmony_ci<div class="memitem"> 679c0abf9e6Sopenharmony_ci<div class="memproto"> 680c0abf9e6Sopenharmony_ci <table class="memname"> 681c0abf9e6Sopenharmony_ci <tr> 682c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_get_repeat </td> 683c0abf9e6Sopenharmony_ci <td>(</td> 684c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 685c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 686c0abf9e6Sopenharmony_ci </tr> 687c0abf9e6Sopenharmony_ci <tr> 688c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 689c0abf9e6Sopenharmony_ci <td></td> 690c0abf9e6Sopenharmony_ci <td class="paramtype">int * </td> 691c0abf9e6Sopenharmony_ci <td class="paramname"><em>delay</em>, </td> 692c0abf9e6Sopenharmony_ci </tr> 693c0abf9e6Sopenharmony_ci <tr> 694c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 695c0abf9e6Sopenharmony_ci <td></td> 696c0abf9e6Sopenharmony_ci <td class="paramtype">int * </td> 697c0abf9e6Sopenharmony_ci <td class="paramname"><em>period</em> </td> 698c0abf9e6Sopenharmony_ci </tr> 699c0abf9e6Sopenharmony_ci <tr> 700c0abf9e6Sopenharmony_ci <td></td> 701c0abf9e6Sopenharmony_ci <td>)</td> 702c0abf9e6Sopenharmony_ci <td></td><td></td> 703c0abf9e6Sopenharmony_ci </tr> 704c0abf9e6Sopenharmony_ci </table> 705c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 706c0abf9e6Sopenharmony_ci 707c0abf9e6Sopenharmony_ci<p>Get the repeat delay and repeat period values for this device. </p> 708c0abf9e6Sopenharmony_ci<p>This function is a convenience function only, EV_REP is supported by <a class="el" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3" title="Behaviour of this function is undefined if the device does not provide the event.">libevdev_get_event_value()</a>.</p> 709c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 710c0abf9e6Sopenharmony_ci <table class="params"> 711c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 712c0abf9e6Sopenharmony_ci <tr><td class="paramname">delay</td><td>If not null, set to the repeat delay value </td></tr> 713c0abf9e6Sopenharmony_ci <tr><td class="paramname">period</td><td>If not null, set to the repeat period value</td></tr> 714c0abf9e6Sopenharmony_ci </table> 715c0abf9e6Sopenharmony_ci </dd> 716c0abf9e6Sopenharmony_ci</dl> 717c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>0 on success, -1 if this device does not have repeat settings.</dd></dl> 718c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe</dd></dl> 719c0abf9e6Sopenharmony_ci<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__bits.html#ga6259f4c6bdba950329ff9cd48c2ef8a3" title="Behaviour of this function is undefined if the device does not provide the event.">libevdev_get_event_value</a> </dd></dl> 720c0abf9e6Sopenharmony_ci 721c0abf9e6Sopenharmony_ci</div> 722c0abf9e6Sopenharmony_ci</div> 723c0abf9e6Sopenharmony_ci<a id="ga6d9f7d44bff8828ead3d251177035ca4"></a> 724c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga6d9f7d44bff8828ead3d251177035ca4">◆ </a></span>libevdev_get_uniq()</h2> 725c0abf9e6Sopenharmony_ci 726c0abf9e6Sopenharmony_ci<div class="memitem"> 727c0abf9e6Sopenharmony_ci<div class="memproto"> 728c0abf9e6Sopenharmony_ci <table class="memname"> 729c0abf9e6Sopenharmony_ci <tr> 730c0abf9e6Sopenharmony_ci <td class="memname">const char* libevdev_get_uniq </td> 731c0abf9e6Sopenharmony_ci <td>(</td> 732c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 733c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em></td><td>)</td> 734c0abf9e6Sopenharmony_ci <td></td> 735c0abf9e6Sopenharmony_ci </tr> 736c0abf9e6Sopenharmony_ci </table> 737c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 738c0abf9e6Sopenharmony_ci 739c0abf9e6Sopenharmony_ci<p>Retrieve the device's unique identifier, either as set by the caller or as read from the kernel. </p> 740c0abf9e6Sopenharmony_ci<p>The string returned is valid until <a class="el" href="group__init.html#gacd9fe760d15be25fc99ce469034bd78c" title="Clean up and free the libevdev struct.">libevdev_free()</a> or until <a class="el" href="group__kernel.html#ga4e4fd2627744fd5811c50c7403f27ad7" title="Change the device's unique identifier as returned by libevdev_get_uniq().">libevdev_set_uniq()</a>, whichever comes earlier.</p> 741c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 742c0abf9e6Sopenharmony_ci <table class="params"> 743c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a></td></tr> 744c0abf9e6Sopenharmony_ci </table> 745c0abf9e6Sopenharmony_ci </dd> 746c0abf9e6Sopenharmony_ci</dl> 747c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>The unique identifier for this device, or NULL if there is none</dd></dl> 748c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal safe. </dd></dl> 749c0abf9e6Sopenharmony_ci 750c0abf9e6Sopenharmony_ci</div> 751c0abf9e6Sopenharmony_ci</div> 752c0abf9e6Sopenharmony_ci<a id="gab2ab9dad417f33daa79fa0c3d682df0b"></a> 753c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gab2ab9dad417f33daa79fa0c3d682df0b">◆ </a></span>libevdev_has_event_code()</h2> 754c0abf9e6Sopenharmony_ci 755c0abf9e6Sopenharmony_ci<div class="memitem"> 756c0abf9e6Sopenharmony_ci<div class="memproto"> 757c0abf9e6Sopenharmony_ci <table class="memname"> 758c0abf9e6Sopenharmony_ci <tr> 759c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_has_event_code </td> 760c0abf9e6Sopenharmony_ci <td>(</td> 761c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 762c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 763c0abf9e6Sopenharmony_ci </tr> 764c0abf9e6Sopenharmony_ci <tr> 765c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 766c0abf9e6Sopenharmony_ci <td></td> 767c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 768c0abf9e6Sopenharmony_ci <td class="paramname"><em>type</em>, </td> 769c0abf9e6Sopenharmony_ci </tr> 770c0abf9e6Sopenharmony_ci <tr> 771c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 772c0abf9e6Sopenharmony_ci <td></td> 773c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 774c0abf9e6Sopenharmony_ci <td class="paramname"><em>code</em> </td> 775c0abf9e6Sopenharmony_ci </tr> 776c0abf9e6Sopenharmony_ci <tr> 777c0abf9e6Sopenharmony_ci <td></td> 778c0abf9e6Sopenharmony_ci <td>)</td> 779c0abf9e6Sopenharmony_ci <td></td><td></td> 780c0abf9e6Sopenharmony_ci </tr> 781c0abf9e6Sopenharmony_ci </table> 782c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 783c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 784c0abf9e6Sopenharmony_ci <table class="params"> 785c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 786c0abf9e6Sopenharmony_ci <tr><td class="paramname">type</td><td>The event type for the code to query (EV_SYN, EV_REL, etc.) </td></tr> 787c0abf9e6Sopenharmony_ci <tr><td class="paramname">code</td><td>The event code to query for, one of ABS_X, REL_X, etc.</td></tr> 788c0abf9e6Sopenharmony_ci </table> 789c0abf9e6Sopenharmony_ci </dd> 790c0abf9e6Sopenharmony_ci</dl> 791c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>1 if the device supports this event type and code, or 0 otherwise.</dd></dl> 792c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 793c0abf9e6Sopenharmony_ci 794c0abf9e6Sopenharmony_ci</div> 795c0abf9e6Sopenharmony_ci</div> 796c0abf9e6Sopenharmony_ci<a id="ga398bef155fa4a0cfb832de30723ebd14"></a> 797c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga398bef155fa4a0cfb832de30723ebd14">◆ </a></span>libevdev_has_event_type()</h2> 798c0abf9e6Sopenharmony_ci 799c0abf9e6Sopenharmony_ci<div class="memitem"> 800c0abf9e6Sopenharmony_ci<div class="memproto"> 801c0abf9e6Sopenharmony_ci <table class="memname"> 802c0abf9e6Sopenharmony_ci <tr> 803c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_has_event_type </td> 804c0abf9e6Sopenharmony_ci <td>(</td> 805c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 806c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 807c0abf9e6Sopenharmony_ci </tr> 808c0abf9e6Sopenharmony_ci <tr> 809c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 810c0abf9e6Sopenharmony_ci <td></td> 811c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 812c0abf9e6Sopenharmony_ci <td class="paramname"><em>type</em> </td> 813c0abf9e6Sopenharmony_ci </tr> 814c0abf9e6Sopenharmony_ci <tr> 815c0abf9e6Sopenharmony_ci <td></td> 816c0abf9e6Sopenharmony_ci <td>)</td> 817c0abf9e6Sopenharmony_ci <td></td><td></td> 818c0abf9e6Sopenharmony_ci </tr> 819c0abf9e6Sopenharmony_ci </table> 820c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 821c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 822c0abf9e6Sopenharmony_ci <table class="params"> 823c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 824c0abf9e6Sopenharmony_ci <tr><td class="paramname">type</td><td>The event type to query for, one of EV_SYN, EV_REL, etc.</td></tr> 825c0abf9e6Sopenharmony_ci </table> 826c0abf9e6Sopenharmony_ci </dd> 827c0abf9e6Sopenharmony_ci</dl> 828c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>1 if the device supports this event type, or 0 otherwise.</dd></dl> 829c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe. </dd></dl> 830c0abf9e6Sopenharmony_ci 831c0abf9e6Sopenharmony_ci</div> 832c0abf9e6Sopenharmony_ci</div> 833c0abf9e6Sopenharmony_ci<a id="ga36d529ea53f4522004bc7d16c051464b"></a> 834c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga36d529ea53f4522004bc7d16c051464b">◆ </a></span>libevdev_has_property()</h2> 835c0abf9e6Sopenharmony_ci 836c0abf9e6Sopenharmony_ci<div class="memitem"> 837c0abf9e6Sopenharmony_ci<div class="memproto"> 838c0abf9e6Sopenharmony_ci <table class="memname"> 839c0abf9e6Sopenharmony_ci <tr> 840c0abf9e6Sopenharmony_ci <td class="memname">int libevdev_has_property </td> 841c0abf9e6Sopenharmony_ci <td>(</td> 842c0abf9e6Sopenharmony_ci <td class="paramtype">const struct libevdev * </td> 843c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 844c0abf9e6Sopenharmony_ci </tr> 845c0abf9e6Sopenharmony_ci <tr> 846c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 847c0abf9e6Sopenharmony_ci <td></td> 848c0abf9e6Sopenharmony_ci <td class="paramtype">unsigned int </td> 849c0abf9e6Sopenharmony_ci <td class="paramname"><em>prop</em> </td> 850c0abf9e6Sopenharmony_ci </tr> 851c0abf9e6Sopenharmony_ci <tr> 852c0abf9e6Sopenharmony_ci <td></td> 853c0abf9e6Sopenharmony_ci <td>)</td> 854c0abf9e6Sopenharmony_ci <td></td><td></td> 855c0abf9e6Sopenharmony_ci </tr> 856c0abf9e6Sopenharmony_ci </table> 857c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 858c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 859c0abf9e6Sopenharmony_ci <table class="params"> 860c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device, already initialized with <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a> </td></tr> 861c0abf9e6Sopenharmony_ci <tr><td class="paramname">prop</td><td>The input property to query for, one of INPUT_PROP_...</td></tr> 862c0abf9e6Sopenharmony_ci </table> 863c0abf9e6Sopenharmony_ci </dd> 864c0abf9e6Sopenharmony_ci</dl> 865c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>1 if the device provides this input property, or 0 otherwise.</dd></dl> 866c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function is signal-safe </dd></dl> 867c0abf9e6Sopenharmony_ci 868c0abf9e6Sopenharmony_ci</div> 869c0abf9e6Sopenharmony_ci</div> 870c0abf9e6Sopenharmony_ci</div><!-- contents --> 871c0abf9e6Sopenharmony_ci<!-- HTML footer for doxygen 1.8.8--> 872c0abf9e6Sopenharmony_ci<!-- start footer part --> 873c0abf9e6Sopenharmony_ci</div> 874c0abf9e6Sopenharmony_ci</div> 875c0abf9e6Sopenharmony_ci</div> 876c0abf9e6Sopenharmony_ci</div> 877c0abf9e6Sopenharmony_ci</div> 878c0abf9e6Sopenharmony_ci<hr class="footer"/><address class="footer"><small> 879c0abf9e6Sopenharmony_ciGenerated by  <a href="http://www.doxygen.org/index.html"> 880c0abf9e6Sopenharmony_ci<img class="footer" src="doxygen.png" alt="doxygen"/> 881c0abf9e6Sopenharmony_ci</a> 1.9.1 882c0abf9e6Sopenharmony_ci</small></address> 883c0abf9e6Sopenharmony_ci</body> 884c0abf9e6Sopenharmony_ci</html> 885