Sophie

Sophie

distrib > Mageia > 7 > armv7hl > by-pkgid > eb6f01499a5d4428f90019094419e1c5 > files > 309

liblirc-devel-0.10.1-7.mga7.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LIRC libraries: Client API</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="diode-2.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LIRC libraries
   </div>
   <div id="projectbrief">LinuxInfraredRemoteControl</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__lirc__client.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Client API</div>  </div>
</div><!--header-->
<div class="contents">

<p>Basic interface to 3-rd party applications.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:lirc__client_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lirc__client_8h.html">lirc_client.h</a></td></tr>
<tr class="memdesc:lirc__client_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">3-rd party application interface. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The data needed to run a command on remote server.  <a href="structlirc__cmd__ctx.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf92c865f0895259aa40e2aed51c71001"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gaf92c865f0895259aa40e2aed51c71001">lirc_init</a> (const char *prog, int verbose)</td></tr>
<tr class="memdesc:gaf92c865f0895259aa40e2aed51c71001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initial setup: connect to lircd socket.  <a href="#gaf92c865f0895259aa40e2aed51c71001">More...</a><br /></td></tr>
<tr class="separator:gaf92c865f0895259aa40e2aed51c71001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50999022b09857ba43aa2f3f29c72b9e"><td class="memItemLeft" align="right" valign="top"><a id="ga50999022b09857ba43aa2f3f29c72b9e"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga50999022b09857ba43aa2f3f29c72b9e">lirc_deinit</a> (void)</td></tr>
<tr class="memdesc:ga50999022b09857ba43aa2f3f29c72b9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release resources allocated by <a class="el" href="group__lirc__client.html#gaf92c865f0895259aa40e2aed51c71001" title="Initial setup: connect to lircd socket.">lirc_init()</a>, basically disconnect from socket. <br /></td></tr>
<tr class="separator:ga50999022b09857ba43aa2f3f29c72b9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62e50c43a39bd8858d42bc11adf40972"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972">lirc_readconfig</a> (const char *path, struct <a class="el" href="structlirc__config.html">lirc_config</a> **config, int(check)(char *s))</td></tr>
<tr class="memdesc:ga62e50c43a39bd8858d42bc11adf40972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a lircrc configuration file.  <a href="#ga62e50c43a39bd8858d42bc11adf40972">More...</a><br /></td></tr>
<tr class="separator:ga62e50c43a39bd8858d42bc11adf40972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga771f0592a8d378bc2ea314fdf4efa233"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga771f0592a8d378bc2ea314fdf4efa233">lirc_freeconfig</a> (struct <a class="el" href="structlirc__config.html">lirc_config</a> *config)</td></tr>
<tr class="memdesc:ga771f0592a8d378bc2ea314fdf4efa233"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate an object retrieved using <a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a>.  <a href="#ga771f0592a8d378bc2ea314fdf4efa233">More...</a><br /></td></tr>
<tr class="separator:ga771f0592a8d378bc2ea314fdf4efa233"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafab5b5f56fb8bfb65b67d56d8426c2e1"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gafab5b5f56fb8bfb65b67d56d8426c2e1">lirc_nextir</a> (void)</td></tr>
<tr class="separator:gafab5b5f56fb8bfb65b67d56d8426c2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab9031bb1af5f068bacb1fe0d1fc6ca81"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gab9031bb1af5f068bacb1fe0d1fc6ca81">lirc_ir2char</a> (struct <a class="el" href="structlirc__config.html">lirc_config</a> *config, char *code)</td></tr>
<tr class="separator:gab9031bb1af5f068bacb1fe0d1fc6ca81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf352dc9bb17d32c0f867ce5ca8a2f2d3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gaf352dc9bb17d32c0f867ce5ca8a2f2d3">lirc_nextcode</a> (char **code)</td></tr>
<tr class="memdesc:gaf352dc9bb17d32c0f867ce5ca8a2f2d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get next available code from the lircd daemon.  <a href="#gaf352dc9bb17d32c0f867ce5ca8a2f2d3">More...</a><br /></td></tr>
<tr class="separator:gaf352dc9bb17d32c0f867ce5ca8a2f2d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cb15780179dec56adc42559ee964a68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga8cb15780179dec56adc42559ee964a68">lirc_code2char</a> (struct <a class="el" href="structlirc__config.html">lirc_config</a> *config, char *code, char **string)</td></tr>
<tr class="memdesc:ga8cb15780179dec56adc42559ee964a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate a code string to an application string using .lircrc.  <a href="#ga8cb15780179dec56adc42559ee964a68">More...</a><br /></td></tr>
<tr class="separator:ga8cb15780179dec56adc42559ee964a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94642edfbd32527a6a9b9c761be9ad90"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga94642edfbd32527a6a9b9c761be9ad90">lirc_readconfig_only</a> (const char *file, struct <a class="el" href="structlirc__config.html">lirc_config</a> **config, int(check)(char *s))</td></tr>
<tr class="memdesc:ga94642edfbd32527a6a9b9c761be9ad90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a lircrc configuration file without connecting to lircrcd.  <a href="#ga94642edfbd32527a6a9b9c761be9ad90">More...</a><br /></td></tr>
<tr class="separator:ga94642edfbd32527a6a9b9c761be9ad90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d24b619ef689329ae2d085aa2bd412b"><td class="memItemLeft" align="right" valign="top"><a id="ga5d24b619ef689329ae2d085aa2bd412b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>lirc_code2charprog</b> (struct <a class="el" href="structlirc__config.html">lirc_config</a> *config, char *code, char **string, char **prog)</td></tr>
<tr class="separator:ga5d24b619ef689329ae2d085aa2bd412b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac572a64d1d7abbe776957c4fc7273bb7"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gac572a64d1d7abbe776957c4fc7273bb7">lirc_getsocketname</a> (const char *id, char *buf, size_t size)</td></tr>
<tr class="memdesc:gac572a64d1d7abbe776957c4fc7273bb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve default lircrcd socket path.  <a href="#gac572a64d1d7abbe776957c4fc7273bb7">More...</a><br /></td></tr>
<tr class="separator:gac572a64d1d7abbe776957c4fc7273bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5161b44df0f73abbc48db605c98c9279"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga5161b44df0f73abbc48db605c98c9279">lirc_getmode</a> (struct <a class="el" href="structlirc__config.html">lirc_config</a> *config)</td></tr>
<tr class="memdesc:ga5161b44df0f73abbc48db605c98c9279"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get mode defined in lircrc.  <a href="#ga5161b44df0f73abbc48db605c98c9279">More...</a><br /></td></tr>
<tr class="separator:ga5161b44df0f73abbc48db605c98c9279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28252340557d024ff5238c69f3875a38"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga28252340557d024ff5238c69f3875a38">lirc_setmode</a> (struct <a class="el" href="structlirc__config.html">lirc_config</a> *config, const char *mode)</td></tr>
<tr class="memdesc:ga28252340557d024ff5238c69f3875a38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set mode defined in lircrc.  <a href="#ga28252340557d024ff5238c69f3875a38">More...</a><br /></td></tr>
<tr class="separator:ga28252340557d024ff5238c69f3875a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3787c58d32391a5b7c40337fdbee95fc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga3787c58d32391a5b7c40337fdbee95fc">lirc_command_init</a> (<a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a> *ctx, const char *fmt,...)</td></tr>
<tr class="memdesc:ga3787c58d32391a5b7c40337fdbee95fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiate a <a class="el" href="structlirc__cmd__ctx.html" title="The data needed to run a command on remote server.">lirc_cmd_ctx</a> to run a command.  <a href="#ga3787c58d32391a5b7c40337fdbee95fc">More...</a><br /></td></tr>
<tr class="separator:ga3787c58d32391a5b7c40337fdbee95fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga888d275e1b0cf4988e44fb15f24d2a99"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga888d275e1b0cf4988e44fb15f24d2a99">lirc_command_run</a> (<a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a> *ctx, int fd)</td></tr>
<tr class="memdesc:ga888d275e1b0cf4988e44fb15f24d2a99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run a command in non-blocking mode.  <a href="#ga888d275e1b0cf4988e44fb15f24d2a99">More...</a><br /></td></tr>
<tr class="separator:ga888d275e1b0cf4988e44fb15f24d2a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace4d40f00918d8bdf9a4f6df0fb0155d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gace4d40f00918d8bdf9a4f6df0fb0155d">lirc_command_reply_to_stdout</a> (<a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a> *ctx)</td></tr>
<tr class="memdesc:gace4d40f00918d8bdf9a4f6df0fb0155d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set command_ctx write_to_stdout flag.  <a href="#gace4d40f00918d8bdf9a4f6df0fb0155d">More...</a><br /></td></tr>
<tr class="separator:gace4d40f00918d8bdf9a4f6df0fb0155d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e86e3a29c14dc8047651e0bb9c49b31"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga0e86e3a29c14dc8047651e0bb9c49b31">lirc_send_one</a> (int fd, const char *remote, const char *keysym)</td></tr>
<tr class="memdesc:ga0e86e3a29c14dc8047651e0bb9c49b31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send keysym using given remote.  <a href="#ga0e86e3a29c14dc8047651e0bb9c49b31">More...</a><br /></td></tr>
<tr class="separator:ga0e86e3a29c14dc8047651e0bb9c49b31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5d41d33e0c1fc3002cdf8c0d9aa43d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#gad5d41d33e0c1fc3002cdf8c0d9aa43d5">lirc_simulate</a> (int fd, const char *remote, const char *keysym, int scancode, int repeat)</td></tr>
<tr class="memdesc:gad5d41d33e0c1fc3002cdf8c0d9aa43d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a simulated lirc event.This call might block for some time since it involves communication with lircd.  <a href="#gad5d41d33e0c1fc3002cdf8c0d9aa43d5">More...</a><br /></td></tr>
<tr class="separator:gad5d41d33e0c1fc3002cdf8c0d9aa43d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81b8a02fdab2ef6d21930bbefabedf30"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga81b8a02fdab2ef6d21930bbefabedf30">lirc_get_remote_socket</a> (const char *address, int port, int quiet)</td></tr>
<tr class="memdesc:ga81b8a02fdab2ef6d21930bbefabedf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an opened and connected file descriptor to remote lirc socket.  <a href="#ga81b8a02fdab2ef6d21930bbefabedf30">More...</a><br /></td></tr>
<tr class="separator:ga81b8a02fdab2ef6d21930bbefabedf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13cf4c784df60143d2b171645f4e84c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lirc__client.html#ga13cf4c784df60143d2b171645f4e84c1">lirc_get_local_socket</a> (const char *path, int quiet)</td></tr>
<tr class="memdesc:ga13cf4c784df60143d2b171645f4e84c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an opened and connected file descriptor to local lirc socket.  <a href="#ga13cf4c784df60143d2b171645f4e84c1">More...</a><br /></td></tr>
<tr class="separator:ga13cf4c784df60143d2b171645f4e84c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Basic interface to 3-rd party applications. </p>
<p>The lirc_client interface is the basic interface for 3-rd party applications using lirc. It provides functions to retrieve , send and control button events to/from remotes.</p>
<p>Receiving events from remotes could be done according to the following example, a stripped down version of the irexec(1) tool. </p><pre class="fragment">   #include "lirc_client.h"

   int main(int argc, char* argv[])
   {
       const char* lircrc_path;
       struct lirc_config* config;
       char* code;
       char* s;

       // Check arguments... use argv[1] as lircrc config file path.
       lircrc_path = argc == 2 ? argv[1] : NULL;

       if (lirc_init("mythtv", 1) == -1) {
           // Process error and exit
       }
       if (lirc_readconfig(lircrc_path, &amp;config, NULL) != 0) {
           // Process error and exit.
       }
       while (lirc_nextcode(&amp;code) == 0) {
           if (code == NULL) continue;
           while (lirc_code2char(config, code, &amp;s) == 0 &amp;&amp; s != NULL) {
               // Do something with string s.
           }
           free(code);
       }
       lirc_freeconfig(config);
       lirc_deinit();
       exit(0);
   }
</pre><p>Some notes:</p><ul>
<li><a class="el" href="group__lirc__client.html#gaf92c865f0895259aa40e2aed51c71001" title="Initial setup: connect to lircd socket.">lirc_init()</a> connects to the lircd daemon socket. The program given as argument is used when we later call <a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a> to determine what translation(s) to use. Thus it should match the <code>program = ...</code> items in the lircrc config file.</li>
<li><a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a> parses the lircrc config file into &amp;config. Using NULL as path means that the default lircrc file is used.</li>
<li><a class="el" href="group__lirc__client.html#gaf352dc9bb17d32c0f867ce5ca8a2f2d3" title="Get next available code from the lircd daemon.">lirc_nextcode()</a> reads the next button event from lircd. For the purposes here the returned code is just an opaque handle. It will sometimes return on a timeout without any data available, thus the <code>if (code == NULL) continue</code> statement.</li>
<li><a class="el" href="group__lirc__client.html#ga8cb15780179dec56adc42559ee964a68" title="Translate a code string to an application string using .lircrc.">lirc_code2char()</a> translates the code handle to one ore more application specific string as defined in the licrrc file. Since more than one string can be returned <a class="el" href="group__lirc__client.html#ga8cb15780179dec56adc42559ee964a68" title="Translate a code string to an application string using .lircrc.">lirc_code2char()</a> should be called until it returns a NULL string.</li>
<li>The complete source for this example is in <a class="el" href="irexec_8cpp-example.html">irexec.cpp</a></li>
</ul>
<p>Sending (blasting) is done according to following: </p><pre class="fragment">#include "lirc_client.h"

int main(int argc, char** argv)
{
    int fd;

    fd = lirc_get_local_socket(NULL, 0);
    if (fd &lt; 0) {
        // Process error
    }
    if (lirc_send_one(fd, "name of remote", "Key symbol") == -1) {
        // Process errors
    };
}
</pre><p>Notes:</p><ul>
<li>Feeding NULL to <a class="el" href="group__lirc__client.html#ga13cf4c784df60143d2b171645f4e84c1" title="Return an opened and connected file descriptor to local lirc socket.">lirc_get_local_socket()</a> will make it use the default lircd socket. Doing so, it respects the LIRC_SOCKET_PATH environment variable.</li>
<li>"Name of remote" is the mandatory name attribute in the lircd.conf config file.</li>
<li>"Key symbol" is the name of a key definition in the lircd.conf file.</li>
<li><a class="el" href="group__lirc__client.html#ga0e86e3a29c14dc8047651e0bb9c49b31" title="Send keysym using given remote.">lirc_send_one()</a> and <a class="el" href="group__lirc__client.html#gad5d41d33e0c1fc3002cdf8c0d9aa43d5" title="Send a simulated lirc event.This call might block for some time since it involves communication with ...">lirc_simulate()</a> are blocking. If you need to do non-blocking IO and/or access other functionality available you need to use <a class="el" href="group__lirc__client.html#ga3787c58d32391a5b7c40337fdbee95fc" title="Initiate a lirc_cmd_ctx to run a command.">lirc_command_init()</a> and <a class="el" href="group__lirc__client.html#ga888d275e1b0cf4988e44fb15f24d2a99" title="Run a command in non-blocking mode.">lirc_command_run()</a>. Example code is in <a class="el" href="irsend_8cpp-example.html">irsend.cpp</a>. </li>
</ul>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga8cb15780179dec56adc42559ee964a68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8cb15780179dec56adc42559ee964a68">&#9670;&nbsp;</a></span>lirc_code2char()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_code2char </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>string</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Translate a code string to an application string using .lircrc. </p>
<p>An translation might return more than one string so this function should be called several times until *string == NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>Parsed lircrc data from e. g. <a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a>. </td></tr>
    <tr><td class="paramname">code</td><td>Code string e. g., as from <a class="el" href="group__lirc__client.html#gaf352dc9bb17d32c0f867ce5ca8a2f2d3" title="Get next available code from the lircd daemon.">lirc_nextcode()</a>. </td></tr>
    <tr><td class="paramname">string</td><td>On successfull exit points to a static application string, NULL if no more translations are available. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01811">1811</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga3787c58d32391a5b7c40337fdbee95fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3787c58d32391a5b7c40337fdbee95fc">&#9670;&nbsp;</a></span>lirc_command_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_command_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initiate a <a class="el" href="structlirc__cmd__ctx.html" title="The data needed to run a command on remote server.">lirc_cmd_ctx</a> to run a command. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Undefined om input, ready to execute on exit. </td></tr>
    <tr><td class="paramname">fmt,...</td><td>printf-style formatting for command. Don't forget trailing "\n"! </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on OK, else a kernel error code. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Simple example: <code>lirc_command_init(&amp;ctx, "CODE %s\n", code)</code>; </dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l00110">110</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gace4d40f00918d8bdf9a4f6df0fb0155d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace4d40f00918d8bdf9a4f6df0fb0155d">&#9670;&nbsp;</a></span>lirc_command_reply_to_stdout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lirc_command_reply_to_stdout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set command_ctx write_to_stdout flag. </p>
<p>When set, the reply payload is written to stdout instead of the default behavior to store it in ctx-&gt;reply. </p><dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l00127">127</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga888d275e1b0cf4988e44fb15f24d2a99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga888d275e1b0cf4988e44fb15f24d2a99">&#9670;&nbsp;</a></span>lirc_command_run()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_command_run </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structlirc__cmd__ctx.html">lirc_cmd_ctx</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Run a command in non-blocking mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Initiated data on enter, possibly reply payload in ctx-&gt;reply on exit. </td></tr>
    <tr><td class="paramname">fd</td><td>Open file connected to a lircd output socket. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on OK, else a kernel error code (possibly EAGAIN). </dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l00190">190</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga771f0592a8d378bc2ea314fdf4efa233"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga771f0592a8d378bc2ea314fdf4efa233">&#9670;&nbsp;</a></span>lirc_freeconfig()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void lirc_freeconfig </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> *&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deallocate an object retrieved using <a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a>. </p>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01532">1532</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga13cf4c784df60143d2b171645f4e84c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13cf4c784df60143d2b171645f4e84c1">&#9670;&nbsp;</a></span>lirc_get_local_socket()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_get_local_socket </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>quiet</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return an opened and connected file descriptor to local lirc socket. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>Path to socket. If NULL use LIRC_SOCKET_PATH in environment, falling back to a hardcoded lircd default. </td></tr>
    <tr><td class="paramname">quiet</td><td>If true, don't write error messages on stderr. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>positive file descriptor on success, else a negated kernel error code. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l02054">2054</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga81b8a02fdab2ef6d21930bbefabedf30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81b8a02fdab2ef6d21930bbefabedf30">&#9670;&nbsp;</a></span>lirc_get_remote_socket()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_get_remote_socket </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>quiet</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return an opened and connected file descriptor to remote lirc socket. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">address</td><td>Remote host to connect to. </td></tr>
    <tr><td class="paramname">port</td><td>TCP port. If &lt;= 0 uses hardcoded default LIRC_INET_PORT. </td></tr>
    <tr><td class="paramname">quiet</td><td>If true, don't write error messages on stderr. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>positive file descriptor on success, else a negated kernel error code. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l02076">2076</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga5161b44df0f73abbc48db605c98c9279"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5161b44df0f73abbc48db605c98c9279">&#9670;&nbsp;</a></span>lirc_getmode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* lirc_getmode </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> *&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get mode defined in lircrc. </p>
<p>Will use lircrcd if available, else local data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>Parsed lircrc file as obtained from <a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a> or <a class="el" href="group__lirc__client.html#ga94642edfbd32527a6a9b9c761be9ad90" title="Parse a lircrc configuration file without connecting to lircrcd.">lirc_readconfig_only()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Current mode or NULL on errors. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01944">1944</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gac572a64d1d7abbe776957c4fc7273bb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac572a64d1d7abbe776957c4fc7273bb7">&#9670;&nbsp;</a></span>lirc_getsocketname()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t lirc_getsocketname </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve default lircrcd socket path. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>Optional socket id, defaults (id == NULL) to "default". </td></tr>
    <tr><td class="paramname">buf</td><td>Return buffer. </td></tr>
    <tr><td class="paramname">size</td><td>Size of return buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01935">1935</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gaf92c865f0895259aa40e2aed51c71001"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf92c865f0895259aa40e2aed51c71001">&#9670;&nbsp;</a></span>lirc_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_init </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>verbose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initial setup: connect to lircd socket. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">prog</td><td>Name of client in logging contexts. </td></tr>
    <tr><td class="paramname">verbose</td><td>Amount of debug info on stdout. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>positive file descriptor or -1 + error in global errno. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l00344">344</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gab9031bb1af5f068bacb1fe0d1fc6ca81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab9031bb1af5f068bacb1fe0d1fc6ca81">&#9670;&nbsp;</a></span>lirc_ir2char()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lirc_ir2char </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>obsolete </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01724">1724</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gaf352dc9bb17d32c0f867ce5ca8a2f2d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf352dc9bb17d32c0f867ce5ca8a2f2d3">&#9670;&nbsp;</a></span>lirc_nextcode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_nextcode </td>
          <td>(</td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>code</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get next available code from the lircd daemon. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">code</td><td>Undefined on enter. On exit either NULL if no complete code was available, else a pointer to a malloc()'d code string. Caller should eventually free() this. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0 indicating either a complete code in *code or that nothing was available. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01877">1877</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gafab5b5f56fb8bfb65b67d56d8426c2e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafab5b5f56fb8bfb65b67d56d8426c2e1">&#9670;&nbsp;</a></span>lirc_nextir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* lirc_nextir </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>obsolete </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01859">1859</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga62e50c43a39bd8858d42bc11adf40972"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62e50c43a39bd8858d42bc11adf40972">&#9670;&nbsp;</a></span>lirc_readconfig()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_readconfig </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> **&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(check)(char *s)&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse a lircrc configuration file. </p>
<p>This function will also try to connect to a lircrcd instance on the default socket which is derived from path.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>Path to lircrc config file. If NULL the default file is used. </td></tr>
    <tr><td class="paramname">config</td><td>Undefined omn enter, on successfull exit a pointer to an allocated <a class="el" href="structlirc__config.html">lirc_config</a> instance. </td></tr>
    <tr><td class="paramname">check</td><td>Callback function called with each configured application string as argument. Returns 0 if string is OK, else -1. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01445">1445</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga94642edfbd32527a6a9b9c761be9ad90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga94642edfbd32527a6a9b9c761be9ad90">&#9670;&nbsp;</a></span>lirc_readconfig_only()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_readconfig_only </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> **&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(check)(char *s)&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse a lircrc configuration file without connecting to lircrcd. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>Path to lircrc config file. If NULL the default file is used. </td></tr>
    <tr><td class="paramname">config</td><td>Undefined omn enter, on successfull exit a pointer to an allocated <a class="el" href="structlirc__config.html">lirc_config</a> instance. </td></tr>
    <tr><td class="paramname">check</td><td>Callback function called with each configured application string as argument. Returns o if string is OK, else -1. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01524">1524</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga0e86e3a29c14dc8047651e0bb9c49b31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e86e3a29c14dc8047651e0bb9c49b31">&#9670;&nbsp;</a></span>lirc_send_one()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_send_one </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>remote</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>keysym</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send keysym using given remote. </p>
<p>This call might block for some time since it involves communication with lircd.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>File descriptor for lircd socket. This must not be the descriptor returned by <a class="el" href="group__lirc__client.html#gaf92c865f0895259aa40e2aed51c71001" title="Initial setup: connect to lircd socket.">lirc_init()</a>; open the socket using <a class="el" href="group__lirc__client.html#ga13cf4c784df60143d2b171645f4e84c1" title="Return an opened and connected file descriptor to local lirc socket.">lirc_get_local_socket()</a> or <a class="el" href="group__lirc__client.html#ga81b8a02fdab2ef6d21930bbefabedf30" title="Return an opened and connected file descriptor to remote lirc socket.">lirc_get_remote_socket()</a>k instead. </td></tr>
    <tr><td class="paramname">remote</td><td>Name of remote, the 'name' attribute in the config file. </td></tr>
    <tr><td class="paramname">keysym</td><td>The code to send, as defined in the config file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01993">1993</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="ga28252340557d024ff5238c69f3875a38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28252340557d024ff5238c69f3875a38">&#9670;&nbsp;</a></span>lirc_setmode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* lirc_setmode </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlirc__config.html">lirc_config</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set mode defined in lircrc. </p>
<p>Will use lircrcd if available, else use local data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>Parsed lircrc file as obtained from <a class="el" href="group__lirc__client.html#ga62e50c43a39bd8858d42bc11adf40972" title="Parse a lircrc configuration file.">lirc_readconfig()</a> or <a class="el" href="group__lirc__client.html#ga94642edfbd32527a6a9b9c761be9ad90" title="Parse a lircrc configuration file without connecting to lircrcd.">lirc_readconfig_only()</a>. </td></tr>
    <tr><td class="paramname">mode</td><td>A new mode defined in lircrc. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New mode, should match mode unless there is errors. </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l01965">1965</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
<a id="gad5d41d33e0c1fc3002cdf8c0d9aa43d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad5d41d33e0c1fc3002cdf8c0d9aa43d5">&#9670;&nbsp;</a></span>lirc_simulate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int lirc_simulate </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>remote</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>keysym</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>scancode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>repeat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a simulated lirc event.This call might block for some time since it involves communication with lircd. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>File descriptor for lircd socket. This must not be the descriptor returned by lirc_init; open the socket using <a class="el" href="group__lirc__client.html#ga13cf4c784df60143d2b171645f4e84c1" title="Return an opened and connected file descriptor to local lirc socket.">lirc_get_local_socket()</a> or <a class="el" href="group__lirc__client.html#ga81b8a02fdab2ef6d21930bbefabedf30" title="Return an opened and connected file descriptor to remote lirc socket.">lirc_get_remote_socket()</a> instead. </td></tr>
    <tr><td class="paramname">remote</td><td>Name of remote, the 'name' attribute in the config file. </td></tr>
    <tr><td class="paramname">keysym</td><td>The code to send, as defined in the config file. </td></tr>
    <tr><td class="paramname">scancode</td><td>The code bound the keysym in the config file. </td></tr>
    <tr><td class="paramname">repeat</td><td>Number indicating how many times this code has been repeated, starts at 0, increased for each repetition. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on errors, else 0. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.9.2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="lirc__client_8c_source.html#l02008">2008</a> of file <a class="el" href="lirc__client_8c_source.html">lirc_client.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>