1
0

a00065_source.html 71 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Lightweight USB stack: usb_hid.h Source File</title>
  9. <link href="../../tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="../../jquery.js"></script>
  11. <script type="text/javascript" src="../../dynsections.js"></script>
  12. <link href="../../navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="../../resize.js"></script>
  14. <script type="text/javascript" src="../../navtreedata.js"></script>
  15. <script type="text/javascript" src="../../navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. </script>
  19. <link href="../../search/search.css" rel="stylesheet" type="text/css"/>
  20. <script type="text/javascript" src="../../search/searchdata.js"></script>
  21. <script type="text/javascript" src="../../search/search.js"></script>
  22. <link href="../../doxygen.css" rel="stylesheet" type="text/css" />
  23. </head>
  24. <body>
  25. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  26. <div id="titlearea">
  27. <table cellspacing="0" cellpadding="0">
  28. <tbody>
  29. <tr style="height: 56px;">
  30. <td id="projectalign" style="padding-left: 0.5em;">
  31. <div id="projectname">Lightweight USB stack
  32. &#160;<span id="projectnumber">1.0</span>
  33. </div>
  34. </td>
  35. </tr>
  36. </tbody>
  37. </table>
  38. </div>
  39. <!-- end header part -->
  40. <!-- Generated by Doxygen 1.8.13 -->
  41. <script type="text/javascript">
  42. var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
  43. </script>
  44. <script type="text/javascript" src="../../menudata.js"></script>
  45. <script type="text/javascript" src="../../menu.js"></script>
  46. <script type="text/javascript">
  47. $(function() {
  48. initMenu('../../',true,false,'search.php','Search');
  49. $(document).ready(function() { init_search(); });
  50. });
  51. </script>
  52. <div id="main-nav"></div>
  53. </div><!-- top -->
  54. <div id="side-nav" class="ui-resizable side-nav-resizable">
  55. <div id="nav-tree">
  56. <div id="nav-tree-contents">
  57. <div id="nav-sync" class="sync"></div>
  58. </div>
  59. </div>
  60. <div id="splitbar" style="-moz-user-select:none;"
  61. class="ui-resizable-handle">
  62. </div>
  63. </div>
  64. <script type="text/javascript">
  65. $(document).ready(function(){initNavTree('de/de1/a00065_source.html','../../');});
  66. </script>
  67. <div id="doc-content">
  68. <!-- window showing the filter options -->
  69. <div id="MSearchSelectWindow"
  70. onmouseover="return searchBox.OnSearchSelectShow()"
  71. onmouseout="return searchBox.OnSearchSelectHide()"
  72. onkeydown="return searchBox.OnSearchSelectKey(event)">
  73. </div>
  74. <!-- iframe showing the search results (closed by default) -->
  75. <div id="MSearchResultsWindow">
  76. <iframe src="javascript:void(0)" frameborder="0"
  77. name="MSearchResults" id="MSearchResults">
  78. </iframe>
  79. </div>
  80. <div class="header">
  81. <div class="headertitle">
  82. <div class="title">usb_hid.h</div> </div>
  83. </div><!--header-->
  84. <div class="contents">
  85. <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* This file is the part of the Lightweight USB device Stack for STM32 microcontrollers</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"> * Copyright ©2016 Dmitry Filimonchuk &lt;dmitrystu[at]gmail[dot]com&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * limitations under the License.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef _USB_HID_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define _USB_HID_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaf062e949014bed74a8b5fedcf1705602"> 54</a></span>&#160;<span class="preprocessor">#define USB_CLASS_HID 0x03 </span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6d35d9667474d39ee7c351f853681ed1"> 58</a></span>&#160;<span class="preprocessor">#define USB_HID_SUBCLASS_NONBOOT 0x00 </span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga79b04cb39a056a0e93a2c0db3e5ff698"> 59</a></span>&#160;<span class="preprocessor">#define USB_HID_SUBCLASS_BOOT 0x01 </span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gadb1d4984375455fbce7d41056f0ec6b9"> 64</a></span>&#160;<span class="preprocessor">#define USB_HID_PROTO_NONBOOT 0x00 </span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab8713abc190b47b7d9bc48ea4d5f4267"> 65</a></span>&#160;<span class="preprocessor">#define USB_HID_PROTO_KEYBOARD 0x01 </span></div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab57ffaef0858a8a045356cd58bad4fc5"> 66</a></span>&#160;<span class="preprocessor">#define USB_HID_PROTO_MOUSE 0x02 </span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga3d5219a03272e1bee3bd1d3b857189e0"> 69</a></span>&#160;<span class="preprocessor">#define USB_HID_REPORT_IN 0x01 </span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga0255f7157701740a1e4390954b5dbc13"> 70</a></span>&#160;<span class="preprocessor">#define USB_HID_REPORT_OUT 0x02 </span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gad6300e4f1ed213aec5c52f9598c41428"> 71</a></span>&#160;<span class="preprocessor">#define USB_HID_REPORT_FEATURE 0x03 </span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gad5c7773cb49d8e425bcfb346a4340987"> 76</a></span>&#160;<span class="preprocessor">#define USB_HID_GETREPORT 0x01 </span></div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga53571bf0c35afcf6d7d5fba1bb2914ad"> 77</a></span>&#160;<span class="preprocessor">#define USB_HID_GETIDLE 0x02 </span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga0c6685e098ec1117877f87c7534c2c6d"> 78</a></span>&#160;<span class="preprocessor">#define USB_HID_GETPROTOCOL 0x03 </span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga57ef7d979cca63136aae329018a2c9b7"> 79</a></span>&#160;<span class="preprocessor">#define USB_HID_SETREPORT 0x09 </span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga803855ce53e47ef1acad29b07003b1e3"> 80</a></span>&#160;<span class="preprocessor">#define USB_HID_SETIDLE 0x0A </span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga533ef5f02e011f87656919ebfb68e8ac"> 81</a></span>&#160;<span class="preprocessor">#define USB_HID_SETPROTOCOL 0x0B </span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga5834dda96d7a63aecf62d7df3f9a1a31"> 86</a></span>&#160;<span class="preprocessor">#define USB_DTYPE_HID 0x21 </span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaec72c52ead39c4576401469041f30a08"> 87</a></span>&#160;<span class="preprocessor">#define USB_DTYPE_HID_REPORT 0x22 </span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6abfe7049809d677d6c8f258fd401f58"> 92</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_NONE 0 </span></div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga60294b7e4b6ee966227aa85909df581c"> 93</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_AR 1 </span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga5624387978a85e120376bc6d16d1ff02"> 94</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_BE 2 </span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6423d2a21ab5d87a2793c5644ac3fcb3"> 95</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_CA_BI 3 </span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gada62f41d4ffb9228d76aabf7a3e4642a"> 96</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_CA_FR 4 </span></div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaaea3b46e1d7c712291602a6092e5dd83"> 97</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_CZ 5 </span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga5b9906fc46b9a85d8d010b1316d496a9"> 98</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_DK 6 </span></div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga3ae7088233c130cb5fc5ea1e0064eae1"> 99</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_FI 7 </span></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga25929b10973e75fc085a5a4734131e8c"> 100</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_FR 8 </span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gadd8a992253a395a30c069bb80d08daef"> 101</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_DE 9 </span></div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga8a8cea1c1541921ee19c5e3596170206"> 102</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_GR 10 </span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gada0efa6bb9d8a9bc3db02b37d8dbb7cb"> 103</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_HEB 11 </span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga9a081081a2b29a9cdffd850b42b09513"> 104</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_HU 12 </span></div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga21c697490a6a6b71464b6b487478b22f"> 105</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_ISO 13 </span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga87a8c97d587516d2e7c1d9e884348831"> 106</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_IT 14 </span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaab09780be9ef9e9fdb09f0cb2c28ee83"> 107</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_JP 15 </span></div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga47a4850dc88184b2ea2ec01b4b6d1cb1"> 108</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_KR 16 </span></div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gadbe53b7ec384f65adf798bd07daa0842"> 109</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_LAT 17 </span></div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaaedad0785d7e938cb5d4aeddeeeb1cc5"> 110</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_NL 18 </span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga2b91620948925eb2e1c76af21ffaeec1"> 111</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_NO 19 </span></div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga14c2fe31b70c983872a4c026101199f1"> 112</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_PER 20 </span></div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga8e89ea2a016a217567cf95d3776cc092"> 113</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_PL 21 </span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gafe24f5dedb7452a02d58366fb6012d17"> 114</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_PO 22 </span></div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga04136a2a6bedd7ba9dde649bd1608fe2"> 115</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_RU 23 </span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga99305cbdc9ab27800d4bf523db6cdf87"> 116</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_SK 24 </span></div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga319558b885793a465cc5abadafbec21d"> 117</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_ES 25 </span></div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga056dfd514e74e7f525c0ac1451772ad1"> 118</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_SE 26 </span></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga43bc41609c06bcef957348a8a74b17d4"> 119</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_CH_FR 26 </span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga737a1904b7e3fcda689b2399937f3b1d"> 120</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_CH_DE 27 </span></div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6ac7334e98adba59d6ce52b6bda97d8e"> 121</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_CH 29 </span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga49cb2d82aa7b738a055bdecae0f237c2"> 122</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_TW 30 </span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6a5ee6e5d0a6e20aaf31a418a3d5167f"> 123</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_TR_Q 31 </span></div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga68c8d61156051d975c0d174d18ef7073"> 124</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_UK 32 </span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gac0d56b06f90f72db75eda7d316c73436"> 125</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_US 33 </span></div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gad6aa8eda143c752102bbe398e986729a"> 126</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_YU 34 </span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga8d525014b79ad9edc19195c9274415c6"> 127</a></span>&#160;<span class="preprocessor">#define USB_HID_COUNTRY_TR_F 35 </span></div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gabe626c2072eed511f8080a6e53596e2f"> 132</a></span>&#160;<span class="preprocessor">#define HID_PHYSICAL_COLLECTION 0x00 </span></div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga1ee075d4748cbfce33c23283199c74c5"> 133</a></span>&#160;<span class="preprocessor">#define HID_APPLICATION_COLLECTION 0x01 </span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define HID_LOGICAL_COLLECTION 0x02 </span></div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga0471251d0e402efbe6e7df1dd6843c61"> 136</a></span>&#160;<span class="preprocessor">#define HID_REPORT_COLLECTION 0x03</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#define HID_NARY_COLLECTION 0x04 </span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor">#define HID_USAGE_SWITCH_COLLECTION 0x05 </span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#define HID_USAGE_MODIFIER_COLLECTION 0x06 </span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">struct usb_hid_descriptor {</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uint8_t bLength; </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html"> 147</a></span>&#160; uint8_t bDescriptorType; </div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#adedc57a5e5e9873d1cb7d00d69bfe1c7"> 148</a></span>&#160; uint16_t bcdHID; </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#a01533992789ba6c7306e0f97c1c01765"> 149</a></span>&#160; uint8_t bCountryCode; </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#af5ba1299c6b42c862f2f3e478173218d"> 150</a></span>&#160; uint8_t bNumDescriptors; </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#a143eb3e58466e54c19c1b9ab8a31ac6f"> 151</a></span>&#160; uint8_t bDescriptorType0; </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#a0f0d0cf9739138f069273f284490e0d8"> 152</a></span>&#160; uint16_t wDescriptorLength0; </div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#a0f7abacff80f36fd9ef8a80f116d7cad"> 153</a></span>&#160;} __attribute__((packed));</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="../../dd/dc1/a00212.html#a59ae6a6605ca3e11a1b2887e5d44d242"> 154</a></span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/d43/a00216.html">usb_hid_descriptor_header</a> {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; uint8_t <a class="code" href="../../d6/d43/a00216.html#a13c2d7a7fefdb43bc130bf56f98c9b37">bLength</a>; </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="../../d6/d43/a00216.html"> 158</a></span>&#160; uint8_t <a class="code" href="../../d6/d43/a00216.html#a3d254866031aead43690c923f527e7bb">bDescriptorType</a>; </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="../../d6/d43/a00216.html#a13c2d7a7fefdb43bc130bf56f98c9b37"> 159</a></span>&#160; uint16_t <a class="code" href="../../d6/d43/a00216.html#a07558fccc49d39ad2b339dc08e81b616">bcdHID</a>; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="../../d6/d43/a00216.html#a3d254866031aead43690c923f527e7bb"> 160</a></span>&#160; uint8_t <a class="code" href="../../d6/d43/a00216.html#a38d42420c71326bbc94177b0de895e7b">bCountryCode</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="../../d6/d43/a00216.html#a07558fccc49d39ad2b339dc08e81b616"> 161</a></span>&#160; uint8_t <a class="code" href="../../d6/d43/a00216.html#ab4e96803a6e224db9eaa04ef76da3690">bNumDescriptors</a>; </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="../../d6/d43/a00216.html#a38d42420c71326bbc94177b0de895e7b"> 162</a></span>&#160;} __attribute__((packed));</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="../../d6/d43/a00216.html#ab4e96803a6e224db9eaa04ef76da3690"> 163</a></span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword">struct </span><a class="code" href="../../d5/d0b/a00220.html">usb_hid_report_descriptor</a> {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint8_t <a class="code" href="../../d6/d43/a00216.html#a3d254866031aead43690c923f527e7bb">bDescriptorType</a>; </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="../../d5/d0b/a00220.html"> 167</a></span>&#160; uint16_t wDescriptorLength; </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="../../d5/d0b/a00220.html#a3fd45a1d053940f1f88394b25ec5251f"> 168</a></span>&#160;} __attribute__((packed));</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="../../d5/d0b/a00220.html#a3d4bc9b3e09f73b9521ad95ae9b853b6"> 169</a></span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#define DECLARE_USB_HID_DESCRIPTOR(p) \</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor">struct usb_hid_descriptor_##p { \</span></div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga69b46c6bda56c38a8dc1d8ce64baa9af"> 173</a></span>&#160;<span class="preprocessor"> uint8_t bLength; \</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> uint8_t bDescriptorType; \</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> uint16_t bcdHID; \</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> uint8_t bCountryCode; \</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> uint8_t bNumDescriptors; \</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"> struct usb_hid_report_descriptor report[p]; \</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">} __attribute__((packed));</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">/* Private Interface - For use in library only: */</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#if !defined(__DOXYGEN__)</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">/* Macros: */</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> #define CONCAT(x, y) x ## y</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> #define CONCAT_EXPANDED(x, y) CONCAT(x, y)</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"> #define HID_RI_DATA_SIZE_MASK 0x03</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"> #define HID_RI_TYPE_MASK 0x0C</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"> #define HID_RI_TAG_MASK 0xF0</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"> #define HID_RI_TYPE_MAIN 0x00</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"> #define HID_RI_TYPE_GLOBAL 0x04</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"> #define HID_RI_TYPE_LOCAL 0x08</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"> #define HID_RI_DATA_BITS_0 0x00</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> #define HID_RI_DATA_BITS_8 0x01</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> #define HID_RI_DATA_BITS_16 0x02</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> #define HID_RI_DATA_BITS_32 0x03</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"> #define HID_RI_DATA_BITS(DataBits) CONCAT_EXPANDED(HID_RI_DATA_BITS_, DataBits)</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"> #define _HID_RI_ENCODE_0(Data)</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"> #define _HID_RI_ENCODE_8(Data) , (Data &amp; 0xFF)</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> #define _HID_RI_ENCODE_16(Data) _HID_RI_ENCODE_8(Data) _HID_RI_ENCODE_8(Data &gt;&gt; 8)</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"> #define _HID_RI_ENCODE_32(Data) _HID_RI_ENCODE_16(Data) _HID_RI_ENCODE_16(Data &gt;&gt; 16)</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"> #define _HID_RI_ENCODE(DataBits, ...) CONCAT_EXPANDED(_HID_RI_ENCODE_, DataBits(__VA_ARGS__))</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> #define _HID_RI_ENTRY(Type, Tag, DataBits, ...) (Type | Tag | HID_RI_DATA_BITS(DataBits)) _HID_RI_ENCODE(DataBits, (__VA_ARGS__))</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">/* Public Interface - May be used in end-application: */</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">/* Macros: */</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#define HID_IOF_CONSTANT (1 &lt;&lt; 0) </span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#define HID_IOF_DATA (0 &lt;&lt; 0) </span></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga7baf36b440de5945d915922beb78ebb5"> 211</a></span>&#160;<span class="preprocessor">#define HID_IOF_VARIABLE (1 &lt;&lt; 1) </span></div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga4a3e73ffa1e476434900c48a2081031d"> 212</a></span>&#160;<span class="preprocessor">#define HID_IOF_ARRAY (0 &lt;&lt; 1) </span></div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga5e6c7e34a311c2738af40c694ced7000"> 213</a></span>&#160;<span class="preprocessor">#define HID_IOF_RELATIVE (1 &lt;&lt; 2) </span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga0ccd1104a52fc3ef0f375bda13a13a38"> 214</a></span>&#160;<span class="preprocessor">#define HID_IOF_ABSOLUTE (0 &lt;&lt; 2) </span></div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga47d85afd09748e75a3d6ec42b679b430"> 215</a></span>&#160;<span class="preprocessor">#define HID_IOF_WRAP (1 &lt;&lt; 3) </span></div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaf96f8ca6f5af59a8d79a8dab4437e3bf"> 216</a></span>&#160;<span class="preprocessor">#define HID_IOF_NO_WRAP (0 &lt;&lt; 3) </span></div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga92fa0e8c0dbc063d61b284cba1c32000"> 217</a></span>&#160;<span class="preprocessor">#define HID_IOF_NON_LINEAR (1 &lt;&lt; 4) </span></div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaddf2eecc3b59661693d8479883ec4350"> 218</a></span>&#160;<span class="preprocessor">#define HID_IOF_LINEAR (0 &lt;&lt; 4) </span></div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga9a6f104f1c6557e7b1d4b09cb00d36ff"> 219</a></span>&#160;<span class="preprocessor">#define HID_IOF_NO_PREFERRED_STATE (1 &lt;&lt; 5) </span></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaee3a27ea403b239c38d9cd3c65487e3f"> 220</a></span>&#160;<span class="preprocessor">#define HID_IOF_PREFERRED_STATE (0 &lt;&lt; 5) </span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaa32cf85e432b164c7cc85caf36a727f8"> 222</a></span>&#160;<span class="preprocessor">#define HID_IOF_NULLSTATE (1 &lt;&lt; 6) </span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#define HID_IOF_NO_NULL_POSITION (0 &lt;&lt; 6) </span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#define HID_IOF_VOLATILE (1 &lt;&lt; 7) </span></div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaeeeb82419737a5761bb48408133b4d4f"> 225</a></span>&#160;<span class="preprocessor">#define HID_IOF_NON_VOLATILE (0 &lt;&lt; 7) </span></div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga886e5027abc02049427edaf25fe9c282"> 226</a></span>&#160;<span class="preprocessor">#define HID_IOF_BUFFERED_BYTES (1 &lt;&lt; 8) </span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaa993c6b31de01a001e44a4471ad5d091"> 227</a></span>&#160;<span class="preprocessor">#define HID_IOF_BITFIELD (0 &lt;&lt; 8) </span></div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gacaa5adb90b7ee329a5ad99544f066efc"> 229</a></span>&#160;<span class="preprocessor"></span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaa0650bb2cc302f6cf9b7cc646c184d6a"> 230</a></span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#define HID_RI_INPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x80, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#define HID_RI_OUTPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x90, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab550580eacfcd44cfcc047f88940eb8e"> 236</a></span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#define HID_RI_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xA0, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga613c32b61bc1812c42f5c31ff9d07dad"> 238</a></span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#define HID_RI_FEATURE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xB0, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga8976ce5ef18e2f828c85c1082bc36cb7"> 240</a></span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#define HID_RI_END_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xC0, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga5aa1ac3989db55b4eba970e54080e353"> 242</a></span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#define HID_RI_USAGE_PAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x00, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#define HID_RI_LOGICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x10, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab0e1c276b90402fb73124297ee306eb5"> 249</a></span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#define HID_RI_LOGICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x20, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga506293a21130050250f6c5f866843906"> 251</a></span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#define HID_RI_PHYSICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x30, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gacc207548b3f577b41a3da288ab0d9db3"> 253</a></span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#define HID_RI_PHYSICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x40, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga690bfd3fc6df20b9eb6a653186465f9e"> 255</a></span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#define HID_RI_UNIT_EXPONENT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x50, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#define HID_RI_UNIT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x60, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaadac32b2a12d6398fc448f8876135ada"> 261</a></span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#define HID_RI_REPORT_SIZE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x70, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaf72de1f655a5fb44eebb9c9b87e3be98"> 263</a></span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#define HID_RI_REPORT_ID(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x80, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gabce0302f3e86b7914e7056015acc0c77"> 265</a></span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define HID_RI_REPORT_COUNT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x90, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab5bde490a3dbd2cc89445fb6ad0dfa2b"> 267</a></span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#define HID_RI_PUSH(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xA0, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga838cc068a42b0971c1ed592ace71966e"> 269</a></span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#define HID_RI_POP(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xB0, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gac9a743e10633e4809886de176d8b0f8e"> 271</a></span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define HID_RI_USAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x00, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#define HID_RI_USAGE_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x10, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6c8adb570f1b2645ef8108d477388345"> 278</a></span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#define HID_RI_USAGE_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x20, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga2bed43665c4c383cae7a58782a0c0630"> 280</a></span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#define HID_RI_DESIGNATOR_INDEX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x30, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga4847b0ed68fbaa4befce9896b1601757"> 282</a></span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#define HID_RI_DESIGNATOR_MIN(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x40, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga17df248767e31028eb262d16eb3323ce"> 284</a></span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#define HID_RI_DESIGNATOR_MAX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x50, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gacde41e3fee3bc1c3d9df74c26907d254"> 286</a></span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#define HID_RI_STRING_INDEX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x70, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga0dd176a6ceb4f8b1acad08870438f3c1"> 288</a></span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#define HID_RI_STRING_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x80, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga068ded55ea849bca26af2f0cf1dd8ba8"> 290</a></span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#define HID_RI_STRING_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x90, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gadae38ae9f97e593be99b6bda6c3891aa"> 292</a></span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#define HID_RI_DELIMITER(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0xA0, DataBits, __VA_ARGS__)</span></div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga20aadd99c9a2713d05c37d07210c8977"> 294</a></span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#define HID_INPUT(data) HID_RI_INPUT(8, data) </span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#define HID_OUTPUT(data) HID_RI_OUTPUT(8, data) </span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#define HID_COLLECTION(data) HID_RI_COLLECTION(8, data) </span></div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga008e77026f65ace99ac105cb87b74320"> 300</a></span>&#160;<span class="preprocessor">#define HID_FEATURE(data) HID_RI_FEATURE(8, data) </span></div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gad185d2bdb6363abbe38fb1c95dacd296"> 301</a></span>&#160;<span class="preprocessor">#define HID_END_COLLECTION HID_RI_END_COLLECTION(0) </span></div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gac5d0dfb35f707b70a594211abbfb10f3"> 302</a></span>&#160;<span class="preprocessor">#define HID_USAGE_PAGE(data) HID_RI_USAGE_PAGE(8, data) </span></div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga9b3eb29f61e68e5d073acd5f8de14fc9"> 303</a></span>&#160;<span class="preprocessor">#define HID_LOGICAL_MINIMUM(data) HID_RI_LOGICAL_MINIMUM(8, data) </span></div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6cd6affb9d52e0bf98c7a5c83d03a764"> 304</a></span>&#160;<span class="preprocessor">#define HID_LOGICAL_MAXIMUM(data) HID_RI_LOGICAL_MAXIMUM(8, data) </span></div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gae732610ce02070c3b8ae9382ba56f10c"> 305</a></span>&#160;<span class="preprocessor">#define HID_PHYSICAL_MINIMUM(data) HID_RI_PHYSICAL_MINIMUM(16, data) </span></div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab7b141816b64cae09ebbe8204027a820"> 306</a></span>&#160;<span class="preprocessor">#define HID_PHYSICAL_MAXIMUM(data) HID_RI_PHYSICAL_MAXIMUM(16, data) </span></div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga89b790c94b61d68c024700c37ea22e5d"> 307</a></span>&#160;<span class="preprocessor">#define HID_UNIT_EXPONENT(data) HID_RI_UNIT_EXPONENT(8, data) </span></div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga27108d89892c6973c0e97f09a5c464ba"> 308</a></span>&#160;<span class="preprocessor">#define HID_UNIT(bits, data) HID_RI_UNIT(bits, data) </span></div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga4d75a29dc1118640a1a8e8b508364417"> 309</a></span>&#160;<span class="preprocessor">#define HID_REPORT_SIZE(data) HID_RI_REPORT_SIZE(8, data) </span></div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gabc4edc4c855c420a5427f03ada62534a"> 310</a></span>&#160;<span class="preprocessor">#define HID_REPORT_ID(data) HID_RI_REPORT_ID(8, data) </span></div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga2f5a459c27db8c364565823b89270159"> 311</a></span>&#160;<span class="preprocessor">#define HID_REPORT_COUNT(data) HID_RI_REPORT_COUNT(8, data) </span></div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga9dcfbc9f9f19f1604bc61a983f408a46"> 312</a></span>&#160;<span class="preprocessor">#define HID_PUSH HID_RI_PUSH(0) </span></div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaf97bcf406e122abd20e6bf706184fc14"> 313</a></span>&#160;<span class="preprocessor">#define HID_POP HID_RI_POP(0) </span></div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga241ba5ad1e4f8e6d0ef0e8faa87b226f"> 314</a></span>&#160;<span class="preprocessor">#define HID_USAGE(data) HID_RI_USAGE(8, data) </span></div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaed135f84d62e2ef4ef318f9944067bdd"> 315</a></span>&#160;<span class="preprocessor">#define HID_USAGE_MINIMUM(data) HID_RI_USAGE_MINIMUM(8, data) </span></div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga66e126a91817fda705afd2123344e961"> 316</a></span>&#160;<span class="preprocessor">#define HID_USAGE_MAXIMUM(data) HID_RI_USAGE_MAXIMUM(8, data) </span></div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga2682e1966b5a30c5b2198d4c39da909b"> 318</a></span>&#160;<span class="preprocessor"></span></div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga923f4094f9bb513fd8d90f4d9d9eb999"> 319</a></span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor">#define HID_UNIT_NONE 0x00 </span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#define HID_UNIT_CGS_LINEAR 0x01 </span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#define HID_UNIT_CGS_ROTATION 0x02 </span></div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga8bd5342b7f8bcbd67822032dd8708891"> 325</a></span>&#160;<span class="preprocessor">#define HID_UNIT_IMPERIAL_LINEAR 0x03 </span></div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga66b38681979221f65f9d9e16ddaa13f9"> 326</a></span>&#160;<span class="preprocessor">#define HID_UNIT_IMPERIAL_ROTATION 0x04 </span></div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gac3828f4b2c72085210d578621a507495"> 327</a></span>&#160;<span class="preprocessor">#define HID_UNIT_LENGTH(exp) ((exp &amp; 0x0F) &lt;&lt; 4) </span></div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gacd21984033976c4ae722411445ab2093"> 328</a></span>&#160;<span class="preprocessor">#define HID_UNIT_ANGLE(exp) ((exp &amp; 0x0F) &lt;&lt; 4) </span></div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga981931c830bc179c840a91e3200560a1"> 329</a></span>&#160;<span class="preprocessor">#define HID_UNIT_MASS(exp) ((exp &amp; 0x0F) &lt;&lt; 8) </span></div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga8b6472893f893b43b51ea769f2040bac"> 330</a></span>&#160;<span class="preprocessor">#define HID_UNIT_TIME(exp) ((exp &amp; 0x0F) &lt;&lt; 12) </span></div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga94d652e7805c200d7e39e3c107f882b2"> 331</a></span>&#160;<span class="preprocessor">#define HID_UNIT_TEMPERATURE(exp) ((exp &amp; 0x0F) &lt;&lt; 16) </span></div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga2ec189da244ce4156db9cd96c4b051da"> 332</a></span>&#160;<span class="preprocessor">#define HID_UNIT_CURRENT(exp) ((exp &amp; 0x0F) &lt;&lt; 20) </span></div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaf269e265a6e954126bc3462803252ec6"> 333</a></span>&#160;<span class="preprocessor">#define HID_UNIT_LUMINOUS(exp) ((exp &amp; 0x0F) &lt;&lt; 24) </span></div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga6825ad378594c887039fecaa7412bc40"> 335</a></span>&#160;<span class="preprocessor"></span></div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gade8d02f1f32515e8d6fbd185dc3b0bdb"> 336</a></span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor">#define HID_UNIT_METER(exp) \</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> HID_UNIT(8, HID_UNIT_CGS_LINEAR | HID_UNIT_LENGTH(1)), \</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 2)</span></div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga62de3d3a9f251114bd724d6e39252e2a"> 342</a></span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor">#define HID_UNIT_KG(exp) \</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1), \</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 3)</span></div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga553e06de5653d2d199b5be4f11d3ed42"> 346</a></span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor">#define HID_UNIT_SECOND(exp) \</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_TIME(1), \</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 0)</span></div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga1c4b116223ec16414ebfda698ff916fe"> 350</a></span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#define HID_UNIT_MPS(exp) \</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_LENGTH(1) | HID_UNIT_TIME(-1)), \</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 2)</span></div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga51da62b9d5a2d7c2615dc30a4ffadb0f"> 354</a></span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#define HID_UNIT_MPS2(exp) \</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_LENGTH(1) | HID_UNIT_TIME(-2)), \</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 2)</span></div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga19e408d22bea5c0716db12ff85d0d7bd"> 358</a></span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#define HID_UNIT_NEWTON(exp) \</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(1) | HID_UNIT_TIME(-2)), \</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 5)</span></div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gafc5a3c59ef24098a4a5bbc819f95ca7f"> 362</a></span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor">#define HID_UNIT_JOULE(exp) \</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(2) | HID_UNIT_TIME(-2)), \</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 7)</span></div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gac4f3c3df32bea0dc2000582b60e3c293"> 366</a></span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor">#define HID_UNIT_WATT(exp) \</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(2) | HID_UNIT_TIME(-3)), \</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 7)</span></div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gae6df1435fcc35e8b849ed60c104e0821"> 370</a></span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#define HID_UNIT_PASCAL(exp) \</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(-1) | HID_UNIT_TIME(-2)), \</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 1)</span></div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gae1dcdb2db5c5fa9911fc4f2c2e60e3a6"> 374</a></span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor">#define HID_UNIT_HERTZ(exp) \</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> HID_UNIT(16, HID_UNIT_CGS_LINEAR | HID_UNIT_TIME(-1)), \</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 0)</span></div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gaf1705b81dd85bda655db80bcdfb7db90"> 378</a></span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#define HID_UNIT_AMPERE(exp) \</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_CURRENT(1)), \</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp)</span></div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab02fda19c6bdfc0fccc9d30782eb2f71"> 382</a></span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#define HID_UNIT_VOLT(exp) \</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(2) | HID_UNIT_TIME(-3) | HID_UNIT_CURRENT(-1)), \</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 7)</span></div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gac4ba77c7a51a5091d7bf8ab7b9a12d9e"> 386</a></span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#define HID_UNIT_OHM(exp) \</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(2) | HID_UNIT_TIME(-3) | HID_UNIT_CURRENT(-2)), \</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 7)</span></div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga00d21be0e95c69f3cf30c72672c2e650"> 390</a></span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor">#define HID_UNIT_HENRY(exp) \</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_LENGTH(2) | HID_UNIT_TIME(-2) | HID_UNIT_CURRENT(-2)), \</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp + 7)</span></div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga874b0a17fa9be9e69aa1d4f1a20613e5"> 394</a></span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#define HID_UNIT_FARAD(exp) \</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(-1) | HID_UNIT_LENGTH(-2) | HID_UNIT_TIME(4) | HID_UNIT_CURRENT(2)), \</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp - 7)</span></div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga071c22fd160ab0827f3ea62fe80ba23f"> 398</a></span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#define HID_UNIT_COULOMB(exp) \</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_TIME(1) | HID_UNIT_CURRENT(1)), \</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp)</span></div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga0049886e99c3fff3091192c01e7e0020"> 402</a></span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#define HID_UNIT_TESLA(exp) \</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_MASS(1) | HID_UNIT_TIME(-2) | HID_UNIT_CURRENT(-1)), \</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp)</span></div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#gab9dd926a50596e9a5af553499659d027"> 406</a></span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#define HID_UNIT_LUX(exp) \</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> HID_UNIT(32, HID_UNIT_CGS_LINEAR | HID_UNIT_LENGTH(-1) | HID_UNIT_LUMINOUS(1)), \</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"> HID_UNIT_EXPONENT(exp)</span></div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="../../d1/d44/a00098.html#ga7b8699eed54b5515055922c07d818e4a"> 410</a></span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></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="preprocessor">#endif</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="ttc" id="a00216_html_a13c2d7a7fefdb43bc130bf56f98c9b37"><div class="ttname"><a href="../../d6/d43/a00216.html#a13c2d7a7fefdb43bc130bf56f98c9b37">usb_hid_descriptor_header::bLength</a></div><div class="ttdeci">uint8_t bLength</div><div class="ttdoc">Size of the descriptor, in bytes. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00159">usb_hid.h:159</a></div></div>
  86. <div class="ttc" id="a00216_html_a07558fccc49d39ad2b339dc08e81b616"><div class="ttname"><a href="../../d6/d43/a00216.html#a07558fccc49d39ad2b339dc08e81b616">usb_hid_descriptor_header::bcdHID</a></div><div class="ttdeci">uint16_t bcdHID</div><div class="ttdoc">BCD encoded version that the HID descriptor and device complies to. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00161">usb_hid.h:161</a></div></div>
  87. <div class="ttc" id="a00220_html"><div class="ttname"><a href="../../d5/d0b/a00220.html">usb_hid_report_descriptor</a></div><div class="ttdoc">USB HID report descriptor. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00167">usb_hid.h:167</a></div></div>
  88. <div class="ttc" id="a00216_html_ab4e96803a6e224db9eaa04ef76da3690"><div class="ttname"><a href="../../d6/d43/a00216.html#ab4e96803a6e224db9eaa04ef76da3690">usb_hid_descriptor_header::bNumDescriptors</a></div><div class="ttdeci">uint8_t bNumDescriptors</div><div class="ttdoc">Total number of HID report descriptors for the interface. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00163">usb_hid.h:163</a></div></div>
  89. <div class="ttc" id="a00216_html_a3d254866031aead43690c923f527e7bb"><div class="ttname"><a href="../../d6/d43/a00216.html#a3d254866031aead43690c923f527e7bb">usb_hid_descriptor_header::bDescriptorType</a></div><div class="ttdeci">uint8_t bDescriptorType</div><div class="ttdoc">Type of the descriptor, set to USB_DTYPE_HID. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00160">usb_hid.h:160</a></div></div>
  90. <div class="ttc" id="a00216_html"><div class="ttname"><a href="../../d6/d43/a00216.html">usb_hid_descriptor_header</a></div><div class="ttdoc">USB HID functional descriptor header. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00158">usb_hid.h:158</a></div></div>
  91. <div class="ttc" id="a00216_html_a38d42420c71326bbc94177b0de895e7b"><div class="ttname"><a href="../../d6/d43/a00216.html#a38d42420c71326bbc94177b0de895e7b">usb_hid_descriptor_header::bCountryCode</a></div><div class="ttdeci">uint8_t bCountryCode</div><div class="ttdoc">Country code of the localized device, or zero if universal. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de1/a00065_source.html#l00162">usb_hid.h:162</a></div></div>
  92. </div><!-- fragment --></div><!-- contents -->
  93. </div><!-- doc-content -->
  94. <!-- start footer part -->
  95. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  96. <ul>
  97. <li class="navelem"><a class="el" href="../../dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><b>usb_hid.h</b></li>
  98. <li class="footer">Generated by
  99. <a href="http://www.doxygen.org/index.html">
  100. <img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  101. </ul>
  102. </div>
  103. </body>
  104. </html>