libx52/group__libx52init.html

189 lines
12 KiB
HTML

<!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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libx52: Library Initialization and Deinitialization</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="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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libx52
&#160;<span id="projectnumber">0.3.2</span>
</div>
<div id="projectbrief">Saitek X52/X52Pro drivers for Linux/Unix</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<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','.html');
/* @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 -->
<!-- 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="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Library Initialization and Deinitialization</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaca59b8d8f249fed58a0ec3253328e131"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a></td></tr>
<tr class="memdesc:gaca59b8d8f249fed58a0ec3253328e131"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device context structure used by libx52. <a href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">More...</a><br /></td></tr>
<tr class="separator:gaca59b8d8f249fed58a0ec3253328e131"><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:gaf9ae27c6e505bce8c4415a638033a4bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libx52init.html#gaf9ae27c6e505bce8c4415a638033a4bd">libx52_init</a> (<a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> **dev)</td></tr>
<tr class="memdesc:gaf9ae27c6e505bce8c4415a638033a4bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the X52 library. <a href="group__libx52init.html#gaf9ae27c6e505bce8c4415a638033a4bd">More...</a><br /></td></tr>
<tr class="separator:gaf9ae27c6e505bce8c4415a638033a4bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17fe14ab3f67706b2d35c6cce3cd670b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libx52init.html#ga17fe14ab3f67706b2d35c6cce3cd670b">libx52_exit</a> (<a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> *dev)</td></tr>
<tr class="memdesc:ga17fe14ab3f67706b2d35c6cce3cd670b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exit the library and free up any resources used. <a href="group__libx52init.html#ga17fe14ab3f67706b2d35c6cce3cd670b">More...</a><br /></td></tr>
<tr class="separator:ga17fe14ab3f67706b2d35c6cce3cd670b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>These functions are used at application entry and exit. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaca59b8d8f249fed58a0ec3253328e131"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca59b8d8f249fed58a0ec3253328e131">&#9670;&nbsp;</a></span>libx52_device</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> <a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Device context structure used by libx52. </p>
<p>All libx52 API functions require the application to pass in a pointer to a valid device context structure. A pointer can be obtained by calling <a class="el" href="group__libx52init.html#gaf9ae27c6e505bce8c4415a638033a4bd">libx52_init</a> </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga17fe14ab3f67706b2d35c6cce3cd670b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga17fe14ab3f67706b2d35c6cce3cd670b">&#9670;&nbsp;</a></span>libx52_exit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void libx52_exit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> *&#160;</td>
<td class="paramname"><em>dev</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Exit the library and free up any resources used. </p>
<p>This function releases any resources allocated by <a class="el" href="group__libx52init.html#gaf9ae27c6e505bce8c4415a638033a4bd">libx52_init</a> and terminates the library. Using the freed device now is invalid and can cause errors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dev</td><td>Pointer to the device context </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a id="gaf9ae27c6e505bce8c4415a638033a4bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9ae27c6e505bce8c4415a638033a4bd">&#9670;&nbsp;</a></span>libx52_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int libx52_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> **&#160;</td>
<td class="paramname"><em>dev</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the X52 library. </p>
<p>This function initializes the libx52 library, sets up any internal data structures to access the joystick, and returns a <a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> pointer in the output parameter. All calls to libx52 use the returned pointer to control the device.</p>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">int</span> rc;</div>
<div class="line"><a class="code" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> *dev;</div>
<div class="line">rc = <a class="code" href="group__libx52init.html#gaf9ae27c6e505bce8c4415a638033a4bd">libx52_init</a>(&amp;dev);</div>
<div class="line"><span class="keywordflow">if</span> (rc != <a class="code" href="group__libx52misc.html#gga93b777d9cea6e733b63c222e6115ccb7a8c4729a9500f0b9032d874ca7942b708">LIBX52_SUCCESS</a>) {</div>
<div class="line"> <span class="comment">// Error handling omitted for brevity</span></div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Save dev for use later</span></div>
<div class="ttc" id="agroup__libx52init_html_gaca59b8d8f249fed58a0ec3253328e131"><div class="ttname"><a href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a></div><div class="ttdeci">struct libx52_device libx52_device</div><div class="ttdoc">Device context structure used by libx52.</div><div class="ttdef"><b>Definition:</b> libx52.h:46</div></div>
<div class="ttc" id="agroup__libx52init_html_gaf9ae27c6e505bce8c4415a638033a4bd"><div class="ttname"><a href="group__libx52init.html#gaf9ae27c6e505bce8c4415a638033a4bd">libx52_init</a></div><div class="ttdeci">int libx52_init(libx52_device **dev)</div><div class="ttdoc">Initialize the X52 library.</div></div>
<div class="ttc" id="agroup__libx52misc_html_gga93b777d9cea6e733b63c222e6115ccb7a8c4729a9500f0b9032d874ca7942b708"><div class="ttname"><a href="group__libx52misc.html#gga93b777d9cea6e733b63c222e6115ccb7a8c4729a9500f0b9032d874ca7942b708">LIBX52_SUCCESS</a></div><div class="ttdeci">@ LIBX52_SUCCESS</div><div class="ttdef"><b>Definition:</b> libx52.h:165</div></div>
</div><!-- fragment --></dd></dl>
<dl class="section since"><dt>Since</dt><dd><b>0.2.1</b> - This function attempts to connect to the joystick upon initialization. However, if no device is connected, then the library initialization does not fail, but the application must call <a class="el" href="group__libx52dev.html#ga65998f1155fb093f45babfd0c2c138d9">libx52_connect</a> prior to any calls to <a class="el" href="group__libx52misc.html#ga5d1fdbcab1b1a6cf8a10c206f8e79f73">libx52_update</a></dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Connection to a supported joystick is no longer a goal of this function. It will continue to attempt to connect to the joystick during initialization so that existing clients don't break, but it is highly recommended that all clients use <a class="el" href="group__libx52dev.html#ga65998f1155fb093f45babfd0c2c138d9">libx52_connect</a> to explicitly connect to the joystick. <br />
<br />
A future release will remove the automatic connection.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">dev</td><td>Pointer to a <a class="el" href="group__libx52init.html#gaca59b8d8f249fed58a0ec3253328e131">libx52_device</a> *. This function will allocate a device context and return the pointer to the device context in this variable.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__libx52misc.html#ga93b777d9cea6e733b63c222e6115ccb7">libx52_error_code</a> indicating status </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>