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: Library logging facilities</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="#typedef-members">Typedefs</a> | 73c0abf9e6Sopenharmony_ci<a href="#enum-members">Enumerations</a> | 74c0abf9e6Sopenharmony_ci<a href="#func-members">Functions</a> </div> 75c0abf9e6Sopenharmony_ci <div class="headertitle"> 76c0abf9e6Sopenharmony_ci<div class="title">Library logging facilities</div> </div> 77c0abf9e6Sopenharmony_ci</div><!--header--> 78c0abf9e6Sopenharmony_ci<div class="contents"> 79c0abf9e6Sopenharmony_ci 80c0abf9e6Sopenharmony_ci<p>libevdev provides two methods of logging library-internal messages. 81c0abf9e6Sopenharmony_ci<a href="#details">More...</a></p> 82c0abf9e6Sopenharmony_ci<table class="memberdecls"> 83c0abf9e6Sopenharmony_ci<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> 84c0abf9e6Sopenharmony_ciTypedefs</h2></td></tr> 85c0abf9e6Sopenharmony_ci<tr class="memitem:gaf36c721d273c0794251eb7dacea2f0a4"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a>) (enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td></tr> 86c0abf9e6Sopenharmony_ci<tr class="memdesc:gaf36c721d273c0794251eb7dacea2f0a4"><td class="mdescLeft"> </td><td class="mdescRight">Logging function called by library-internal logging. <a href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">More...</a><br /></td></tr> 87c0abf9e6Sopenharmony_ci<tr class="separator:gaf36c721d273c0794251eb7dacea2f0a4"><td class="memSeparator" colspan="2"> </td></tr> 88c0abf9e6Sopenharmony_ci<tr class="memitem:gab7eb997be2b701cc6f42e7b4c3478269"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a>) (const struct libevdev *dev, enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td></tr> 89c0abf9e6Sopenharmony_ci<tr class="memdesc:gab7eb997be2b701cc6f42e7b4c3478269"><td class="mdescLeft"> </td><td class="mdescRight">Logging function called by library-internal logging for a specific libevdev context. <a href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">More...</a><br /></td></tr> 90c0abf9e6Sopenharmony_ci<tr class="separator:gab7eb997be2b701cc6f42e7b4c3478269"><td class="memSeparator" colspan="2"> </td></tr> 91c0abf9e6Sopenharmony_ci</table><table class="memberdecls"> 92c0abf9e6Sopenharmony_ci<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> 93c0abf9e6Sopenharmony_ciEnumerations</h2></td></tr> 94c0abf9e6Sopenharmony_ci<tr class="memitem:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> { <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f">LIBEVDEV_LOG_ERROR</a> 95c0abf9e6Sopenharmony_ci, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc">LIBEVDEV_LOG_INFO</a> 96c0abf9e6Sopenharmony_ci, <a class="el" href="group__logging.html#gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793">LIBEVDEV_LOG_DEBUG</a> 97c0abf9e6Sopenharmony_ci }</td></tr> 98c0abf9e6Sopenharmony_ci<tr class="separator:ga0b798d0864f2b1b10e4603f9431b3364"><td class="memSeparator" colspan="2"> </td></tr> 99c0abf9e6Sopenharmony_ci</table><table class="memberdecls"> 100c0abf9e6Sopenharmony_ci<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 101c0abf9e6Sopenharmony_ciFunctions</h2></td></tr> 102c0abf9e6Sopenharmony_ci<tr class="memitem:gaa60be86b83b3a6c82d8e536ba89ff955"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">libevdev_set_log_function</a> (<a class="el" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a> logfunc, void *data)</td></tr> 103c0abf9e6Sopenharmony_ci<tr class="memdesc:gaa60be86b83b3a6c82d8e536ba89ff955"><td class="mdescLeft"> </td><td class="mdescRight">Set a printf-style logging handler for library-internal logging. <a href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955">More...</a><br /></td></tr> 104c0abf9e6Sopenharmony_ci<tr class="separator:gaa60be86b83b3a6c82d8e536ba89ff955"><td class="memSeparator" colspan="2"> </td></tr> 105c0abf9e6Sopenharmony_ci<tr class="memitem:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">libevdev_set_log_priority</a> (enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority)</td></tr> 106c0abf9e6Sopenharmony_ci<tr class="memdesc:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="mdescLeft"> </td><td class="mdescRight">Define the minimum level to be printed to the log handler. <a href="group__logging.html#gaf6b6842a9ed98b61d0abb421e853fd89">More...</a><br /></td></tr> 107c0abf9e6Sopenharmony_ci<tr class="separator:gaf6b6842a9ed98b61d0abb421e853fd89"><td class="memSeparator" colspan="2"> </td></tr> 108c0abf9e6Sopenharmony_ci<tr class="memitem:ga1da07493a798595cf85c127490b98ee8"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">libevdev_get_log_priority</a> (void)</td></tr> 109c0abf9e6Sopenharmony_ci<tr class="memdesc:ga1da07493a798595cf85c127490b98ee8"><td class="mdescLeft"> </td><td class="mdescRight">Return the current log priority level. <a href="group__logging.html#ga1da07493a798595cf85c127490b98ee8">More...</a><br /></td></tr> 110c0abf9e6Sopenharmony_ci<tr class="separator:ga1da07493a798595cf85c127490b98ee8"><td class="memSeparator" colspan="2"> </td></tr> 111c0abf9e6Sopenharmony_ci<tr class="memitem:ga2830ff0aa391d8d1111682d3e762091b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b">libevdev_set_device_log_function</a> (struct libevdev *dev, <a class="el" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a> logfunc, enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data)</td></tr> 112c0abf9e6Sopenharmony_ci<tr class="memdesc:ga2830ff0aa391d8d1111682d3e762091b"><td class="mdescLeft"> </td><td class="mdescRight">Set a printf-style logging handler for library-internal logging for this device context. <a href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b">More...</a><br /></td></tr> 113c0abf9e6Sopenharmony_ci<tr class="separator:ga2830ff0aa391d8d1111682d3e762091b"><td class="memSeparator" colspan="2"> </td></tr> 114c0abf9e6Sopenharmony_ci</table> 115c0abf9e6Sopenharmony_ci<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 116c0abf9e6Sopenharmony_ci<p>libevdev provides two methods of logging library-internal messages. </p> 117c0abf9e6Sopenharmony_ci<p>The old method is to provide a global log handler in <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function()</a>. The new method is to provide a per-context log handler in <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. Developers are encouraged to use the per-context logging facilities over the global log handler as it provides access to the libevdev instance that caused a message, and is more flexible when libevdev is used from within a shared library.</p> 118c0abf9e6Sopenharmony_ci<p>If a caller sets both the global log handler and a per-context log handler, each device with a per-context log handler will only invoke that log handler.</p> 119c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>To set a context-specific log handler, a context is needed. Thus developers are discouraged from using <a class="el" href="group__init.html#ga89bb5bce1c23e293293484b05b12aaf4" title="Initialize a new libevdev device from the given fd.">libevdev_new_from_fd()</a> as important messages from the device initialization process may get lost.</dd> 120c0abf9e6Sopenharmony_ci<dd> 121c0abf9e6Sopenharmony_ciA context-specific handler cannot be used for libevdev's uinput devices. <a class="el" href="group__uinput.html">uinput device creation</a> must use the global log handler. </dd></dl> 122c0abf9e6Sopenharmony_ci<h2 class="groupheader">Typedef Documentation</h2> 123c0abf9e6Sopenharmony_ci<a id="gab7eb997be2b701cc6f42e7b4c3478269"></a> 124c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gab7eb997be2b701cc6f42e7b4c3478269">◆ </a></span>libevdev_device_log_func_t</h2> 125c0abf9e6Sopenharmony_ci 126c0abf9e6Sopenharmony_ci<div class="memitem"> 127c0abf9e6Sopenharmony_ci<div class="memproto"> 128c0abf9e6Sopenharmony_ci <table class="memname"> 129c0abf9e6Sopenharmony_ci <tr> 130c0abf9e6Sopenharmony_ci <td class="memname">typedef void(* libevdev_device_log_func_t) (const struct libevdev *dev, enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td> 131c0abf9e6Sopenharmony_ci </tr> 132c0abf9e6Sopenharmony_ci </table> 133c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 134c0abf9e6Sopenharmony_ci 135c0abf9e6Sopenharmony_ci<p>Logging function called by library-internal logging for a specific libevdev context. </p> 136c0abf9e6Sopenharmony_ci<p>This function is expected to treat its input like printf would.</p> 137c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 138c0abf9e6Sopenharmony_ci <table class="params"> 139c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device </td></tr> 140c0abf9e6Sopenharmony_ci <tr><td class="paramname">priority</td><td>Log priority of this message </td></tr> 141c0abf9e6Sopenharmony_ci <tr><td class="paramname">data</td><td>User-supplied data pointer (see <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function()</a>) </td></tr> 142c0abf9e6Sopenharmony_ci <tr><td class="paramname">file</td><td>libevdev source code file generating this message </td></tr> 143c0abf9e6Sopenharmony_ci <tr><td class="paramname">line</td><td>libevdev source code line generating this message </td></tr> 144c0abf9e6Sopenharmony_ci <tr><td class="paramname">func</td><td>libevdev source code function generating this message </td></tr> 145c0abf9e6Sopenharmony_ci <tr><td class="paramname">format</td><td>printf-style format string </td></tr> 146c0abf9e6Sopenharmony_ci <tr><td class="paramname">args</td><td>List of arguments</td></tr> 147c0abf9e6Sopenharmony_ci </table> 148c0abf9e6Sopenharmony_ci </dd> 149c0abf9e6Sopenharmony_ci</dl> 150c0abf9e6Sopenharmony_ci<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function</a> </dd></dl> 151c0abf9e6Sopenharmony_ci<dl class="section since"><dt>Since</dt><dd>1.3 </dd></dl> 152c0abf9e6Sopenharmony_ci 153c0abf9e6Sopenharmony_ci</div> 154c0abf9e6Sopenharmony_ci</div> 155c0abf9e6Sopenharmony_ci<a id="gaf36c721d273c0794251eb7dacea2f0a4"></a> 156c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gaf36c721d273c0794251eb7dacea2f0a4">◆ </a></span>libevdev_log_func_t</h2> 157c0abf9e6Sopenharmony_ci 158c0abf9e6Sopenharmony_ci<div class="memitem"> 159c0abf9e6Sopenharmony_ci<div class="memproto"> 160c0abf9e6Sopenharmony_ci <table class="memname"> 161c0abf9e6Sopenharmony_ci <tr> 162c0abf9e6Sopenharmony_ci <td class="memname">typedef void(* libevdev_log_func_t) (enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> priority, void *data, const char *file, int line, const char *func, const char *format, va_list args)</td> 163c0abf9e6Sopenharmony_ci </tr> 164c0abf9e6Sopenharmony_ci </table> 165c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 166c0abf9e6Sopenharmony_ci 167c0abf9e6Sopenharmony_ci<p>Logging function called by library-internal logging. </p> 168c0abf9e6Sopenharmony_ci<p>This function is expected to treat its input like printf would.</p> 169c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 170c0abf9e6Sopenharmony_ci <table class="params"> 171c0abf9e6Sopenharmony_ci <tr><td class="paramname">priority</td><td>Log priority of this message </td></tr> 172c0abf9e6Sopenharmony_ci <tr><td class="paramname">data</td><td>User-supplied data pointer (see <a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function()</a>) </td></tr> 173c0abf9e6Sopenharmony_ci <tr><td class="paramname">file</td><td>libevdev source code file generating this message </td></tr> 174c0abf9e6Sopenharmony_ci <tr><td class="paramname">line</td><td>libevdev source code line generating this message </td></tr> 175c0abf9e6Sopenharmony_ci <tr><td class="paramname">func</td><td>libevdev source code function generating this message </td></tr> 176c0abf9e6Sopenharmony_ci <tr><td class="paramname">format</td><td>printf-style format string </td></tr> 177c0abf9e6Sopenharmony_ci <tr><td class="paramname">args</td><td>List of arguments</td></tr> 178c0abf9e6Sopenharmony_ci </table> 179c0abf9e6Sopenharmony_ci </dd> 180c0abf9e6Sopenharmony_ci</dl> 181c0abf9e6Sopenharmony_ci<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__logging.html#gaa60be86b83b3a6c82d8e536ba89ff955" title="Set a printf-style logging handler for library-internal logging.">libevdev_set_log_function</a> </dd></dl> 182c0abf9e6Sopenharmony_ci 183c0abf9e6Sopenharmony_ci</div> 184c0abf9e6Sopenharmony_ci</div> 185c0abf9e6Sopenharmony_ci<h2 class="groupheader">Enumeration Type Documentation</h2> 186c0abf9e6Sopenharmony_ci<a id="ga0b798d0864f2b1b10e4603f9431b3364"></a> 187c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga0b798d0864f2b1b10e4603f9431b3364">◆ </a></span>libevdev_log_priority</h2> 188c0abf9e6Sopenharmony_ci 189c0abf9e6Sopenharmony_ci<div class="memitem"> 190c0abf9e6Sopenharmony_ci<div class="memproto"> 191c0abf9e6Sopenharmony_ci <table class="memname"> 192c0abf9e6Sopenharmony_ci <tr> 193c0abf9e6Sopenharmony_ci <td class="memname">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a></td> 194c0abf9e6Sopenharmony_ci </tr> 195c0abf9e6Sopenharmony_ci </table> 196c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 197c0abf9e6Sopenharmony_ci<table class="fieldtable"> 198c0abf9e6Sopenharmony_ci<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0b798d0864f2b1b10e4603f9431b3364a21fd1083f2ebd0a25f09ee982e365d5f"></a>LIBEVDEV_LOG_ERROR </td><td class="fielddoc"><p>critical errors and application bugs </p> 199c0abf9e6Sopenharmony_ci</td></tr> 200c0abf9e6Sopenharmony_ci<tr><td class="fieldname"><a id="gga0b798d0864f2b1b10e4603f9431b3364a4d13a031b112292ca3e7bab8c6d76abc"></a>LIBEVDEV_LOG_INFO </td><td class="fielddoc"><p>informational messages </p> 201c0abf9e6Sopenharmony_ci</td></tr> 202c0abf9e6Sopenharmony_ci<tr><td class="fieldname"><a id="gga0b798d0864f2b1b10e4603f9431b3364a760d66d422ffcf89b0f1ddb529b95793"></a>LIBEVDEV_LOG_DEBUG </td><td class="fielddoc"><p>debug information </p> 203c0abf9e6Sopenharmony_ci</td></tr> 204c0abf9e6Sopenharmony_ci</table> 205c0abf9e6Sopenharmony_ci 206c0abf9e6Sopenharmony_ci</div> 207c0abf9e6Sopenharmony_ci</div> 208c0abf9e6Sopenharmony_ci<h2 class="groupheader">Function Documentation</h2> 209c0abf9e6Sopenharmony_ci<a id="ga1da07493a798595cf85c127490b98ee8"></a> 210c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga1da07493a798595cf85c127490b98ee8">◆ </a></span>libevdev_get_log_priority()</h2> 211c0abf9e6Sopenharmony_ci 212c0abf9e6Sopenharmony_ci<div class="memitem"> 213c0abf9e6Sopenharmony_ci<div class="memproto"> 214c0abf9e6Sopenharmony_ci <table class="memname"> 215c0abf9e6Sopenharmony_ci <tr> 216c0abf9e6Sopenharmony_ci <td class="memname">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> libevdev_get_log_priority </td> 217c0abf9e6Sopenharmony_ci <td>(</td> 218c0abf9e6Sopenharmony_ci <td class="paramtype">void </td> 219c0abf9e6Sopenharmony_ci <td class="paramname"></td><td>)</td> 220c0abf9e6Sopenharmony_ci <td></td> 221c0abf9e6Sopenharmony_ci </tr> 222c0abf9e6Sopenharmony_ci </table> 223c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 224c0abf9e6Sopenharmony_ci 225c0abf9e6Sopenharmony_ci<p>Return the current log priority level. </p> 226c0abf9e6Sopenharmony_ci<p>Messages higher than this level are printed, others are discarded. This is a global setting.</p> 227c0abf9e6Sopenharmony_ci<dl class="section return"><dt>Returns</dt><dd>the current log level</dd></dl> 228c0abf9e6Sopenharmony_ci<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd></dl> 229c0abf9e6Sopenharmony_ci 230c0abf9e6Sopenharmony_ci</div> 231c0abf9e6Sopenharmony_ci</div> 232c0abf9e6Sopenharmony_ci<a id="ga2830ff0aa391d8d1111682d3e762091b"></a> 233c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#ga2830ff0aa391d8d1111682d3e762091b">◆ </a></span>libevdev_set_device_log_function()</h2> 234c0abf9e6Sopenharmony_ci 235c0abf9e6Sopenharmony_ci<div class="memitem"> 236c0abf9e6Sopenharmony_ci<div class="memproto"> 237c0abf9e6Sopenharmony_ci <table class="memname"> 238c0abf9e6Sopenharmony_ci <tr> 239c0abf9e6Sopenharmony_ci <td class="memname">void libevdev_set_device_log_function </td> 240c0abf9e6Sopenharmony_ci <td>(</td> 241c0abf9e6Sopenharmony_ci <td class="paramtype">struct libevdev * </td> 242c0abf9e6Sopenharmony_ci <td class="paramname"><em>dev</em>, </td> 243c0abf9e6Sopenharmony_ci </tr> 244c0abf9e6Sopenharmony_ci <tr> 245c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 246c0abf9e6Sopenharmony_ci <td></td> 247c0abf9e6Sopenharmony_ci <td class="paramtype"><a class="el" href="group__logging.html#gab7eb997be2b701cc6f42e7b4c3478269">libevdev_device_log_func_t</a> </td> 248c0abf9e6Sopenharmony_ci <td class="paramname"><em>logfunc</em>, </td> 249c0abf9e6Sopenharmony_ci </tr> 250c0abf9e6Sopenharmony_ci <tr> 251c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 252c0abf9e6Sopenharmony_ci <td></td> 253c0abf9e6Sopenharmony_ci <td class="paramtype">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> </td> 254c0abf9e6Sopenharmony_ci <td class="paramname"><em>priority</em>, </td> 255c0abf9e6Sopenharmony_ci </tr> 256c0abf9e6Sopenharmony_ci <tr> 257c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 258c0abf9e6Sopenharmony_ci <td></td> 259c0abf9e6Sopenharmony_ci <td class="paramtype">void * </td> 260c0abf9e6Sopenharmony_ci <td class="paramname"><em>data</em> </td> 261c0abf9e6Sopenharmony_ci </tr> 262c0abf9e6Sopenharmony_ci <tr> 263c0abf9e6Sopenharmony_ci <td></td> 264c0abf9e6Sopenharmony_ci <td>)</td> 265c0abf9e6Sopenharmony_ci <td></td><td></td> 266c0abf9e6Sopenharmony_ci </tr> 267c0abf9e6Sopenharmony_ci </table> 268c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 269c0abf9e6Sopenharmony_ci 270c0abf9e6Sopenharmony_ci<p>Set a printf-style logging handler for library-internal logging for this device context. </p> 271c0abf9e6Sopenharmony_ci<p>The default logging function is NULL, i.e. the global log handler is invoked. If a context-specific log handler is set, the global log handler is not invoked for this device.</p> 272c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This log function applies for this device context only, even if another context exists for the same fd.</dd></dl> 273c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 274c0abf9e6Sopenharmony_ci <table class="params"> 275c0abf9e6Sopenharmony_ci <tr><td class="paramname">dev</td><td>The evdev device </td></tr> 276c0abf9e6Sopenharmony_ci <tr><td class="paramname">logfunc</td><td>The logging function for this device. If NULL, the current logging function is unset and logging falls back to the global log handler, if any. </td></tr> 277c0abf9e6Sopenharmony_ci <tr><td class="paramname">priority</td><td>Minimum priority to be printed to the log. </td></tr> 278c0abf9e6Sopenharmony_ci <tr><td class="paramname">data</td><td>User-specific data passed to the log handler.</td></tr> 279c0abf9e6Sopenharmony_ci </table> 280c0abf9e6Sopenharmony_ci </dd> 281c0abf9e6Sopenharmony_ci</dl> 282c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function may be called before <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a>. </dd></dl> 283c0abf9e6Sopenharmony_ci<dl class="section since"><dt>Since</dt><dd>1.3 </dd></dl> 284c0abf9e6Sopenharmony_ci 285c0abf9e6Sopenharmony_ci</div> 286c0abf9e6Sopenharmony_ci</div> 287c0abf9e6Sopenharmony_ci<a id="gaa60be86b83b3a6c82d8e536ba89ff955"></a> 288c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gaa60be86b83b3a6c82d8e536ba89ff955">◆ </a></span>libevdev_set_log_function()</h2> 289c0abf9e6Sopenharmony_ci 290c0abf9e6Sopenharmony_ci<div class="memitem"> 291c0abf9e6Sopenharmony_ci<div class="memproto"> 292c0abf9e6Sopenharmony_ci <table class="memname"> 293c0abf9e6Sopenharmony_ci <tr> 294c0abf9e6Sopenharmony_ci <td class="memname">void libevdev_set_log_function </td> 295c0abf9e6Sopenharmony_ci <td>(</td> 296c0abf9e6Sopenharmony_ci <td class="paramtype"><a class="el" href="group__logging.html#gaf36c721d273c0794251eb7dacea2f0a4">libevdev_log_func_t</a> </td> 297c0abf9e6Sopenharmony_ci <td class="paramname"><em>logfunc</em>, </td> 298c0abf9e6Sopenharmony_ci </tr> 299c0abf9e6Sopenharmony_ci <tr> 300c0abf9e6Sopenharmony_ci <td class="paramkey"></td> 301c0abf9e6Sopenharmony_ci <td></td> 302c0abf9e6Sopenharmony_ci <td class="paramtype">void * </td> 303c0abf9e6Sopenharmony_ci <td class="paramname"><em>data</em> </td> 304c0abf9e6Sopenharmony_ci </tr> 305c0abf9e6Sopenharmony_ci <tr> 306c0abf9e6Sopenharmony_ci <td></td> 307c0abf9e6Sopenharmony_ci <td>)</td> 308c0abf9e6Sopenharmony_ci <td></td><td></td> 309c0abf9e6Sopenharmony_ci </tr> 310c0abf9e6Sopenharmony_ci </table> 311c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 312c0abf9e6Sopenharmony_ci 313c0abf9e6Sopenharmony_ci<p>Set a printf-style logging handler for library-internal logging. </p> 314c0abf9e6Sopenharmony_ci<p>The default logging function is to stdout.</p> 315c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>The global log handler is only called if no context-specific log handler has been set with <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>.</dd></dl> 316c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 317c0abf9e6Sopenharmony_ci <table class="params"> 318c0abf9e6Sopenharmony_ci <tr><td class="paramname">logfunc</td><td>The logging function for this device. If NULL, the current logging function is unset and no logging is performed. </td></tr> 319c0abf9e6Sopenharmony_ci <tr><td class="paramname">data</td><td>User-specific data passed to the log handler.</td></tr> 320c0abf9e6Sopenharmony_ci </table> 321c0abf9e6Sopenharmony_ci </dd> 322c0abf9e6Sopenharmony_ci</dl> 323c0abf9e6Sopenharmony_ci<dl class="section note"><dt>Note</dt><dd>This function may be called before <a class="el" href="group__init.html#ga6658ac490d68c307ff8b8d1536c12b44" title="Set the fd for this struct and initialize internal data.">libevdev_set_fd()</a>.</dd></dl> 324c0abf9e6Sopenharmony_ci<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd></dl> 325c0abf9e6Sopenharmony_ci 326c0abf9e6Sopenharmony_ci</div> 327c0abf9e6Sopenharmony_ci</div> 328c0abf9e6Sopenharmony_ci<a id="gaf6b6842a9ed98b61d0abb421e853fd89"></a> 329c0abf9e6Sopenharmony_ci<h2 class="memtitle"><span class="permalink"><a href="#gaf6b6842a9ed98b61d0abb421e853fd89">◆ </a></span>libevdev_set_log_priority()</h2> 330c0abf9e6Sopenharmony_ci 331c0abf9e6Sopenharmony_ci<div class="memitem"> 332c0abf9e6Sopenharmony_ci<div class="memproto"> 333c0abf9e6Sopenharmony_ci <table class="memname"> 334c0abf9e6Sopenharmony_ci <tr> 335c0abf9e6Sopenharmony_ci <td class="memname">void libevdev_set_log_priority </td> 336c0abf9e6Sopenharmony_ci <td>(</td> 337c0abf9e6Sopenharmony_ci <td class="paramtype">enum <a class="el" href="group__logging.html#ga0b798d0864f2b1b10e4603f9431b3364">libevdev_log_priority</a> </td> 338c0abf9e6Sopenharmony_ci <td class="paramname"><em>priority</em></td><td>)</td> 339c0abf9e6Sopenharmony_ci <td></td> 340c0abf9e6Sopenharmony_ci </tr> 341c0abf9e6Sopenharmony_ci </table> 342c0abf9e6Sopenharmony_ci</div><div class="memdoc"> 343c0abf9e6Sopenharmony_ci 344c0abf9e6Sopenharmony_ci<p>Define the minimum level to be printed to the log handler. </p> 345c0abf9e6Sopenharmony_ci<p>Messages higher than this level are printed, others are discarded. This is a global setting and applies to any future logging messages.</p> 346c0abf9e6Sopenharmony_ci<dl class="params"><dt>Parameters</dt><dd> 347c0abf9e6Sopenharmony_ci <table class="params"> 348c0abf9e6Sopenharmony_ci <tr><td class="paramname">priority</td><td>Minimum priority to be printed to the log.</td></tr> 349c0abf9e6Sopenharmony_ci </table> 350c0abf9e6Sopenharmony_ci </dd> 351c0abf9e6Sopenharmony_ci</dl> 352c0abf9e6Sopenharmony_ci<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use per-context logging instead, see <a class="el" href="group__logging.html#ga2830ff0aa391d8d1111682d3e762091b" title="Set a printf-style logging handler for library-internal logging for this device context.">libevdev_set_device_log_function()</a>. </dd></dl> 353c0abf9e6Sopenharmony_ci 354c0abf9e6Sopenharmony_ci</div> 355c0abf9e6Sopenharmony_ci</div> 356c0abf9e6Sopenharmony_ci</div><!-- contents --> 357c0abf9e6Sopenharmony_ci<!-- HTML footer for doxygen 1.8.8--> 358c0abf9e6Sopenharmony_ci<!-- start footer part --> 359c0abf9e6Sopenharmony_ci</div> 360c0abf9e6Sopenharmony_ci</div> 361c0abf9e6Sopenharmony_ci</div> 362c0abf9e6Sopenharmony_ci</div> 363c0abf9e6Sopenharmony_ci</div> 364c0abf9e6Sopenharmony_ci<hr class="footer"/><address class="footer"><small> 365c0abf9e6Sopenharmony_ciGenerated by  <a href="http://www.doxygen.org/index.html"> 366c0abf9e6Sopenharmony_ci<img class="footer" src="doxygen.png" alt="doxygen"/> 367c0abf9e6Sopenharmony_ci</a> 1.9.1 368c0abf9e6Sopenharmony_ci</small></address> 369c0abf9e6Sopenharmony_ci</body> 370c0abf9e6Sopenharmony_ci</html> 371