USB_Host_Shield_2.0/_b_t_d_8h_source.html

352 lines
61 KiB
HTML
Raw Normal View History

2013-01-30 22:00:18 +01:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.3.1"/>
<title>USB_Host_Shield_2.0: /Users/Lauszus/GitHub/USB_Host_Shield_2.0/BTD.h Source File</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/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</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 style="padding-left: 0.5em;">
<div id="projectname">USB_Host_Shield_2.0
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_c8a8870798f18a14afbce47230dc4059.html">GitHub</a></li><li class="navelem"><a class="el" href="dir_8d22a5dfb299d0b3a2bdc551c5cdbd10.html">USB_Host_Shield_2.0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">BTD.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_b_t_d_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (C) 2012 Kristian Lauszus, TKJ Electronics. All rights reserved.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> This software may be distributed and modified under the terms of the GNU</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> General Public License version 2 (GPL2) as published by the Free Software</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> Foundation and appearing in the file GPL2.TXT included in the packaging of</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> this file. Please note that GPL2 Section 2[b] requires that all works based</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> on this software must also be made publicly available under the terms of</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> the GPL2 (&quot;Copyleft&quot;).</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> Contact information</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> -------------------</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> Kristian Lauszus, TKJ Electronics</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> Web : http://www.tkjelectronics.com</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> e-mail : kristianl@tkjelectronics.com</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef _btd_h_</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _btd_h_</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_usb_8h.html">Usb.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="confdescparser_8h.html">confdescparser.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">//PID and VID of the Sony PS3 devices</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a5bb06f989db583d290ba79642d37c514"> 25</a></span>&#160;<span class="preprocessor">#define PS3_VID 0x054C // Sony Corporation</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a0ae276efa5e73a4da658c714e70402c0"> 26</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3_PID 0x0268 // PS3 Controller DualShock 3</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a54903b410722a45f8246653cd4d00632"> 27</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3NAVIGATION_PID 0x042F // Navigation controller</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#afc242b8a1b867f79c49ad78e3a47b37f"> 28</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define PS3MOVE_PID 0x03D5 // Motion controller</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">/* Bluetooth dongle data taken from descriptors */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787"> 31</a></span>&#160;<span class="preprocessor">#define BULK_MAXPKTSIZE 64 // max size for ACL data</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// Used in control endpoint header for HCI Commands</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad70df063f83bf7000558b1d73aa009e5"> 34</a></span>&#160;<span class="preprocessor">#define bmREQ_HCI_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"></span><span class="comment">// Used in control endpoint header for HID Commands</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a5bd4ea095da29635414952894bd527f5"> 36</a></span>&#160;<span class="preprocessor">#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aee05d40a014750b24a7e9967f6f389f4"> 37</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_REQUEST_SET_REPORT 0x09</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/* Bluetooth HCI states for hci_task() */</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ac2b910cd6cc87c7bac09617815a1ee9a"> 40</a></span>&#160;<span class="preprocessor">#define HCI_INIT_STATE 0</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#af3a7567dba1a0a7ed4272324d7684440"> 41</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_RESET_STATE 1</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a86fd72d2518d27c02c15af635b55fc8f"> 42</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_BDADDR_STATE 2</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a8f1d666addd0c2bba7602fbd7a692228"> 43</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_LOCAL_VERSION_STATE 3</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a1939cc2e06b3185be07a93c1ac7a10e1"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_SET_NAME_STATE 4</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a36daee23c5d0f4276e6eb32f3fd79124"> 45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CHECK_WII_SERVICE 5</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a09fa39bcefd3255f8ef762034e45679e"> 47</a></span>&#160;<span class="preprocessor">#define HCI_INQUIRY_STATE 6 // These three states are only used if it should pair and connect to a Wii controller</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a2733141c8dae8cd14f78b11b21d58ebb"> 48</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECT_WII_STATE 7</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad497b58476b921e620f05791fa864f04"> 49</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECTED_WII_STATE 8</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#acc9b6954b4bb6c19a9d25242869d5ddf"> 51</a></span>&#160;<span class="preprocessor">#define HCI_SCANNING_STATE 9</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a8bfcf6e1a0a044aba26d728fb0c6a17a"> 52</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECT_IN_STATE 10</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a4bad48092981dffe97edb052f5ae08bd"> 53</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_REMOTE_NAME_STATE 11</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ae0a16d1cc0142186a20379b5c68bd1e0"> 54</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_CONNECTED_STATE 12</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad3500c7116f1bb564011dac09a387a5c"> 55</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_DISABLE_SCAN_STATE 13</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a20fc1ebfc3da8e048f6afe53330e6b8f"> 56</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_DONE_STATE 14</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a31398eae2e433d1b7b39ea3d6d07cdd0"> 57</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_DISCONNECT_STATE 15</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">/* HCI event flags*/</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a14087b750ea2da7f0cef4daaa7683d01"> 60</a></span>&#160;<span class="preprocessor">#define HCI_FLAG_CMD_COMPLETE 0x01</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aa05458d2a47122cd62cd0748c7e1e313"> 61</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONN_COMPLETE 0x02</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aec17e7d699b1023a0b6f675feddd7d58"> 62</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_DISCONN_COMPLETE 0x04</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a400af4b61f6e94ab821fa368d8bf2b07"> 63</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_REMOTE_NAME_COMPLETE 0x08</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a0e8a8ce5838e265c1732795bf8822043"> 64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_INCOMING_REQUEST 0x10</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aabbf8a2ed694a2dc4d4e60fd389c44dd"> 65</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_READ_BDADDR 0x20</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ab3b1f616c1e885e697806f0167b73e8e"> 66</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_READ_VERSION 0x40</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aa991873698787cf45d26efaa370f34e2"> 67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_WII_FOUND 0x80</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad14762241e9195fc9a3b0a69ef1ab7f3"> 68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HCI_FLAG_CONNECT_EVENT 0x100</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">/*Macros for HCI event flag tests */</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a9cc765dd92016efe6eaeff535a5193c1"> 71</a></span>&#160;<span class="preprocessor">#define hci_cmd_complete (hci_event_flag &amp; HCI_FLAG_CMD_COMPLETE)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ae43eba7b19fa5c92de5344819b99ec61"> 72</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_connect_complete (hci_event_flag &amp; HCI_FLAG_CONN_COMPLETE)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ae67c9cc739a52a8f4a3c28871a07bf1b"> 73</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_disconnect_complete (hci_event_flag &amp; HCI_FLAG_DISCONN_COMPLETE)</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a8f97f22fe3bc827916b8adb724b64a7f"> 74</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_remote_name_complete (hci_event_flag &amp; HCI_FLAG_REMOTE_NAME_COMPLETE)</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aeb3a24db49f8158f85b928385e28d83a"> 75</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_incoming_connect_request (hci_event_flag &amp; HCI_FLAG_INCOMING_REQUEST)</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#afc5a7e103eb1301c12aa35af25cc8293"> 76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_read_bdaddr_complete (hci_event_flag &amp; HCI_FLAG_READ_BDADDR)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad205c180970335a666dfe5081b55ade4"> 77</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_read_version_complete (hci_event_flag &amp; HCI_FLAG_READ_VERSION)</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aa12b77df715652f4735cb6620cd595a4"> 78</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_wii_found (hci_event_flag &amp; HCI_FLAG_WII_FOUND)</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a11ae66a6caad9105b8e7658189dcfa7b"> 79</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define hci_connect_event (hci_event_flag &amp; HCI_FLAG_CONNECT_EVENT)</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">/* HCI Events managed */</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a4c6ca5696adeab36258b3b0c58d804e0"> 82</a></span>&#160;<span class="preprocessor">#define EV_INQUIRY_COMPLETE 0x01</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a335df6d48c8cac828d62196eeaff360b"> 83</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INQUIRY_RESULT 0x02</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad4bce42e1ef20447655f8916f23d07a7"> 84</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CONNECT_COMPLETE 0x03</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#af6c5584636f8958689f5cd67290254e1"> 85</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_INCOMING_CONNECT 0x04</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a1cf7e4d4426dcabed8976b65beee0d99"> 86</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DISCONNECT_COMPLETE 0x05</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a68b8f78a0e0da80434afb1e6d40eacf4"> 87</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_AUTHENTICATION_COMPLETE 0x06</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a29c1744f72f3cd85865c8173eace5a36"> 88</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_REMOTE_NAME_COMPLETE 0x07</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aa0bf5ac66c412d3415dbb753630d0e58"> 89</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ENCRYPTION_CHANGE 0x08</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a3e107e9d07793ca5cfaeea8b2181d4a4"> 90</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_CHANGE_CONNECTION_LINK 0x09</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ac61db50de3007a22e19e660bd7e68e69"> 91</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_ROLE_CHANGED 0x12</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a0987119cfc40f3011a2cec69686034df"> 92</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_NUM_COMPLETE_PKT 0x13</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a935633384e87daa14b60549134014ec4"> 93</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PIN_CODE_REQUEST 0x16</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a8c77c922bb61301760ebf5af5f1cc7f0"> 94</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_REQUEST 0x17</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a8c662496af1164370e5fdf7149ecd842"> 95</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LINK_KEY_NOTIFICATION 0x18</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a6f8b4cf8546d9928a34c9c681dc5a6d5"> 96</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_DATA_BUFFER_OVERFLOW 0x1A</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a2ad6543cdfe06cbf0924c287c08f36d7"> 97</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_MAX_SLOTS_CHANGE 0x1B</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a830b2a3bcb09c4802910e8b05531d317"> 98</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a1b58792b76e0f216df8160bf055032c3"> 99</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_QOS_SETUP_COMPLETE 0x0D</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a81b71e0ba648260143529b04ae84e528"> 100</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_COMPLETE 0x0E</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a090ee10cc1a1c1c3bbb29a93c330d2d4"> 101</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_COMMAND_STATUS 0x0F</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#acd5f65703cc34b112a1f656d9a49551b"> 102</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_LOOPBACK_COMMAND 0x19</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ad8481acc0b144d97017f8a06d63ff47c"> 103</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define EV_PAGE_SCAN_REP_MODE 0x20</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">/* L2CAP signaling commands */</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a6ffcd72787c86f248192eb06a3fe18cb"> 106</a></span>&#160;<span class="preprocessor">#define L2CAP_CMD_COMMAND_REJECT 0x01</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#ac4bae0c65fd00ed849cb226302d19c85"> 107</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_REQUEST 0x02</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aef7b306479de265d725dbe5816a8227b"> 108</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONNECTION_RESPONSE 0x03</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a48bcd73461d736d0ef889e1fe6e36f69"> 109</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_REQUEST 0x04</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a8151b1fe5d940a5a7a34f43a8b8ce434"> 110</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_CONFIG_RESPONSE 0x05</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a398676a2e9a2351a5a52afdddf4b660b"> 111</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_REQUEST 0x06</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a4c64a41200714e457b397496183dc0e4"> 112</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_DISCONNECT_RESPONSE 0x07</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a200eb6c7c905ec74a9daf0f262af0448"> 113</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_REQUEST 0x0A</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#af32d4c53927d596a8727ff232310dec1"> 114</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define L2CAP_CMD_INFORMATION_RESPONSE 0x0B</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// Used For Connection Response - Remember to Include High Byte</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a9960d0d5ae92fc92c70bbb84c2a5c0cc"> 117</a></span>&#160;<span class="preprocessor">#define PENDING 0x01</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a1be7a56cdddcdb7dedf16d4dee381e93"> 118</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SUCCESSFUL 0x00</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">/* Bluetooth L2CAP PSM - see http://www.bluetooth.org/Technical/AssignedNumbers/logical_link.htm */</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a25ce859d7ee2730e1d22d11c051ed60d"> 121</a></span>&#160;<span class="preprocessor">#define SDP_PSM 0x01 // Service Discovery Protocol PSM Value</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a2924020f2e7e82fe956574538e2bc3eb"> 122</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define RFCOMM_PSM 0x03 // RFCOMM PSM Value</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a1465673868452307bcdab8e201430c27"> 123</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_CTRL_PSM 0x11 // HID_Control PSM Value</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a4c5ac96db74d61d4a5a5d945a400e7da"> 124</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HID_INTR_PSM 0x13 // HID_Interrupt PSM Value</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// Used to determine if it is a Bluetooth dongle</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a177fe269ddb7979d99b76d52bc281551"> 127</a></span>&#160;<span class="preprocessor">#define WI_SUBCLASS_RF 0x01 // RF Controller</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a05903a9351c5ced6b8be27b2869e62af"> 128</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WI_PROTOCOL_BT 0x01 // Bluetooth Programming Interface</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd"> 130</a></span>&#160;<span class="preprocessor">#define BTD_MAX_ENDPOINTS 4</span></div>
2013-02-05 20:02:12 +01:00
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0"> 131</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BTD_NUMSERVICES 4 // Max number of Bluetooth services</span></div>
2013-01-30 22:00:18 +01:00
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"></span></div>
2013-02-05 20:02:12 +01:00
<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="class_bluetooth_service.html"> 134</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bluetooth_service.html">BluetoothService</a> {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>(uint8_t* <a class="code" href="class_bluetooth_service.html#a8dc98310fe481357eaa86c53e49af113">ACLData</a>);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a680692ff13cb37eb81ddbb74bc9e0383">Run</a>();</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a1dff7caf251f1d8a5f358b368445cb48">Reset</a>();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;};</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="class_b_t_d.html"> 153</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_b_t_d.html">BTD</a> : <span class="keyword">public</span> <a class="code" href="class_u_s_b_device_config.html">USBDeviceConfig</a>, <span class="keyword">public</span> <a class="code" href="class_usb_config_xtracter.html">UsbConfigXtracter</a> {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_b_t_d.html#a5f07597fe15a2b917cce405fe87f2981">BTD</a>(<a class="code" href="class_u_s_b.html">USB</a> *p);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a48608619d8253972dd132edbb3001c5f">Init</a>(uint8_t parent, uint8_t port, <span class="keywordtype">bool</span> lowspeed);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aa87c23bce56a20f2db47c6a40c8eda87">Release</a>();</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#a76e201c5b561e3a6d0405894ba5c2e41">Poll</a>();</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="code" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3"> 184</a></span>&#160; <span class="keyword">virtual</span> uint8_t <a class="code" href="class_b_t_d.html#aecdd9d00fc9c12bb3677ed213a6687c3">GetAddress</a>() { <span class="keywordflow">return</span> <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>; };</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8"> 189</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a1b2440748bdaaeb552a05b0f0902f5d8">isReady</a>() { <span class="keywordflow">return</span> bPollEnable; };</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a23928cd0e5711a2433aec763cfa55773">EndpointXtract</a>(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, <span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a> *ep);</div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da"> 205</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a610183f9ddf04155ef2612d1839af7da">disconnect</a>() {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">for</span> (uint8_t i=0; i&lt;<a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>; i++)</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (btService[i])</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; btService[i]-&gt;<a class="code" href="class_bluetooth_service.html#a66ee2f09c6087b82e3920c3d652a99b2">disconnect</a>();</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; };</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73"> 215</a></span>&#160; int8_t <a class="code" href="class_b_t_d.html#a4adfc7e51ad3b3c03e7c37d1af159e73">registerServiceClass</a>(<a class="code" href="class_bluetooth_service.html">BluetoothService</a> *pService) {</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (uint8_t i=0; i&lt;<a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>; i++) {</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (!btService[i]) {</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; btService[i] = pService;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> i; <span class="comment">// Return ID</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> -1; <span class="comment">// ErrorregisterServiceClass</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; };</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af11ad71d20783d46fe42dd405d10dfda">HCI_Command</a>(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae6f942eabd29257bc4896e5f263275b6">hci_reset</a>();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#acb94a629477d85cebd16a9c5ecd4a8b3">hci_read_bdaddr</a>();</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae2ba215b6942f4131e4c5fdef2771e22">hci_read_local_version_information</a>();</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a9a6747d58951f53389922d80e25b886c">hci_set_local_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7dd7faaec1d3d9a1d8159cc2a4190977">hci_write_scan_enable</a>();</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aff59ab45d917406141ae0c9c79047f08">hci_write_scan_disable</a>();</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a8767529bd203c549348a38ac9c6682b3">hci_remote_name</a>();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1cb07a155c69bb1fcf45ae030b8947ec">hci_accept_connection</a>();</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a1bea5dd793a2f47006b4a7642efc9e56">hci_disconnect</a>(uint16_t handle);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a70047b0f624c3f0ef29f8b76b8a34938">hci_pin_code_request_reply</a>();</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7114d2cb62aa413e5ecb25c45c76832b">hci_pin_code_negative_request_reply</a>();</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#af4d28b9c1a3b9688a1871610caee2cfc">hci_link_key_request_negative_reply</a>();</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#addd07c18c725a324a05792a83026d36d">hci_authentication_request</a>();</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a678f2c995553ce6a9f48f9b59f2f1555">hci_inquiry</a>();</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a45ffbc7a40bbb763b0ece907c3dfc9ff">hci_inquiry_cancel</a>();</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ae7066ea743f8907708db945ebef3ad76">hci_connect</a>();</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aad7d8ef46e60b48ff4aaabefb0b290e7">L2CAP_Command</a>(uint16_t handle, uint8_t* data, uint8_t nbytes, uint8_t channelLow = 0x01, uint8_t channelHigh = 0x00);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a55cf412a2053972a353b1ab964ca9d3e">l2cap_connection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* scid, uint16_t psm);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a7d34c62b1d561679dea5cd27356b38a7">l2cap_connection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid, uint8_t result);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ab646a59311344966f139bb3b78f30233">l2cap_config_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a792ac4529b65235698ecf3d37982c05e">l2cap_config_response</a>(uint16_t handle, uint8_t rxid, uint8_t* scid);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#ac7053ef7ac690be3afbbdd985b163f10">l2cap_disconnection_request</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a29d176d9194e5c92fbe54791fc245407">l2cap_disconnection_response</a>(uint16_t handle, uint8_t rxid, uint8_t* dcid, uint8_t* scid);</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#a91f61915c503fe7b861c88f5b3e6733c">l2cap_information_response</a>(uint16_t handle, uint8_t rxid, uint8_t infoTypeLow, uint8_t infoTypeHigh);</div>
<div class="line"><a name="l00346"></a><span class="lineno"><a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737"> 346</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#aa7735da01865bab01b569ee836173737">watingForConnection</a>;</div>
<div class="line"><a name="l00348"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594"> 348</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0f1c28a03bcbe62cc7c083f97ea27594">l2capConnectionClaimed</a>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"><a class="code" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590"> 350</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#af5e5b085cec1da5c83c75e80e95b3590">sdpConnectionClaimed</a>;</div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74"> 352</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a9e5a34242007b64cd6a226cfd1901e74">rfcommConnectionClaimed</a>;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
<div class="line"><a name="l00355"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9"> 355</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a0359c0c158c864c27319810cbd1534f9">btdName</a>;</div>
<div class="line"><a name="l00357"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c"> 357</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_b_t_d.html#a215cb939c01ed3ff56db37841224546c">btdPin</a>;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a"> 360</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a1f8e9171a310e50f2c4a3c19066efe5a">my_bdaddr</a>[6];</div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98"> 362</a></span>&#160; uint16_t <a class="code" href="class_b_t_d.html#aa3bb6c692701cb33dfad1ea4d68b6f98">hci_handle</a>;</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182"> 364</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#ab23f95f12675d7b4505ca6807d379182">disc_bdaddr</a>[6];</div>
<div class="line"><a name="l00366"></a><span class="lineno"><a class="code" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e"> 366</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#aede42d995c384c238fd49d728df01e4e">remote_name</a>[30];</div>
<div class="line"><a name="l00372"></a><span class="lineno"><a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea"> 372</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#addaddee110af23a3195ad56f631e69ea">hci_version</a>;</div>
<div class="line"><a name="l00374"></a><span class="lineno"><a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e"> 374</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#ac7caac80fb6f5f0e794af3644887d88e">connectToWii</a>;</div>
<div class="line"><a name="l00376"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee"> 376</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee">incomingWii</a>;</div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c"> 378</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a0c8cc2a2dd2cda3e760b8b4c1a2d169c">pairWithWii</a>;</div>
<div class="line"><a name="l00380"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc"> 380</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a3aea445b2349e99ef057db1a4ffdd9dc">motionPlusInside</a>;</div>
<div class="line"><a name="l00382"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583"> 382</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_b_t_d.html#a962a5714c225dcb633434f02e3657583">wiiUProController</a>;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00386"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1"> 386</a></span>&#160; <a class="code" href="class_u_s_b.html">USB</a> *<a class="code" href="class_b_t_d.html#a4bcd1d622a6455ee3d0cccc4408700a1">pUsb</a>;</div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c"> 388</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a58f78a9a28db81858dcc34a32a2ec82c">bAddress</a>;</div>
<div class="line"><a name="l00390"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e"> 390</a></span>&#160; <a class="code" href="struct_ep_info.html">EpInfo</a> <a class="code" href="class_b_t_d.html#a91d92fee94e5a4cbca472bb3fd883e3e">epInfo</a>[<a class="code" href="_b_t_d_8h.html#aee41c4878894db24e7ad8cd6246595cd">BTD_MAX_ENDPOINTS</a>];</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2"> 393</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a10c34527ae90e95791ac48ac7d1154a2">bConfNum</a>;</div>
<div class="line"><a name="l00395"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66"> 395</a></span>&#160; uint8_t <a class="code" href="class_b_t_d.html#a893dd35932821cddda7e482a1904af66">bNumEP</a>;</div>
<div class="line"><a name="l00397"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079"> 397</a></span>&#160; uint32_t <a class="code" href="class_b_t_d.html#a52d6c7895f6bb01729d01ce28a2f3079">qNextPollTime</a>;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad"> 400</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a49f433ab824f259c3815e180c73bb0ad">BTD_CONTROL_PIPE</a>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec"> 402</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a24166c9b308925eeb2f635fae43ca5ec">BTD_EVENT_PIPE</a>;</div>
<div class="line"><a name="l00404"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c"> 404</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a480510bd399ae74a97cd74c8474ef59c">BTD_DATAIN_PIPE</a>;</div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="code" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd"> 406</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t <a class="code" href="class_b_t_d.html#a0d82870f7eef8c27c33e6f5989d7a4dd">BTD_DATAOUT_PIPE</a>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_b_t_d.html#aa5976eead215a58553aee683d42405a0">PrintEndpointDescriptor</a>(<span class="keyword">const</span> <a class="code" href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html">USB_ENDPOINT_DESCRIPTOR</a>* ep_ptr); </div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="class_bluetooth_service.html">BluetoothService</a>* btService[<a class="code" href="_b_t_d_8h.html#a2222709eed4c8af293e881ea36f599b0">BTD_NUMSERVICES</a>];</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">bool</span> bPollEnable;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; uint8_t pollInterval;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">/* Variables used by high level HCI task */</span> </div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; uint8_t hci_state; <span class="comment">//current state of bluetooth hci connection</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; uint16_t hci_counter; <span class="comment">// counter used for bluetooth hci reset loops</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; uint8_t hci_num_reset_loops; <span class="comment">// this value indicate how many times it should read before trying to reset</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; uint16_t hci_event_flag; <span class="comment">// hci flags of received bluetooth events</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; uint8_t inquiry_counter;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; uint8_t hcibuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>];<span class="comment">//General purpose buffer for hci data</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; uint8_t l2capinbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>];<span class="comment">//General purpose buffer for l2cap in data</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; uint8_t l2capoutbuf[<a class="code" href="_b_t_d_8h.html#a32d591ef5742a99963130616ef146787">BULK_MAXPKTSIZE</a>];<span class="comment">//General purpose buffer for l2cap out data</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; </div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">/* State machines */</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordtype">void</span> HCI_event_task(); <span class="comment">// Poll the HCI event pipe</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordtype">void</span> HCI_task(); <span class="comment">// HCI state machine</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordtype">void</span> ACL_event_task(); <span class="comment">// ACL input pipe</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">/* Used to set the Bluetooth Address internally to the PS3 Controllers */</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">void</span> setBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordtype">void</span> setMoveBdaddr(uint8_t* BDADDR);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;};</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor">#endif</span></div>
2013-01-30 22:00:18 +01:00
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
2013-02-05 20:02:12 +01:00
Generated on Tue Feb 5 2013 19:53:21 for USB_Host_Shield_2.0 by &#160;<a href="http://www.doxygen.org/index.html">
2013-01-30 22:00:18 +01:00
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>