This commit is contained in:
Lauszus 2021-07-15 09:23:44 +00:00
parent a1e7b95ed8
commit ebbc577ea6
8 changed files with 182 additions and 159 deletions

View file

@ -428,150 +428,169 @@ $(function() {
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093aaeb027a0ae5bbc6ba25e1c78a6486c7b">RightHatX</a>] = (int16_t)(((uint16_t)readBuf[15] &lt;&lt; 8) | readBuf[14]);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; hatValue[<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a>] = (int16_t)(((uint16_t)readBuf[17] &lt;&lt; 8) | readBuf[16]);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="comment">//PrintHex&lt;uint16_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">// Read and store share button separately</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> newShare = (readBuf[22] &amp; 0x01) ? 1 : 0;</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; shareClicked = ((sharePressed != newShare) &amp;&amp; newShare) ? 1 : 0;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; sharePressed = newShare;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">//Notify(PSTR(&quot;\r\nButtonState&quot;), 0x80);</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="comment">//PrintHex&lt;uint16_t&gt;(ButtonState, 0x80);</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">// Handle click detection for triggers</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(triggerValue[0] != 0 &amp;&amp; triggerValueOld[0] == 0)</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; L2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; triggerValueOld[0] = triggerValue[0];</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">if</span>(triggerValue[1] != 0 &amp;&amp; triggerValueOld[1] == 0)</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; R2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; triggerValueOld[1] = triggerValue[1];</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4"> 380</a></span>&#160;uint16_t <a class="code" href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">XBOXONE::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">const</span> int8_t index = <a class="code" href="xbox_enums_8h.html#a5061e79d5902f70fba9807427c870e93">getButtonIndexXbox</a>(b); <span class="keywordflow">if</span> (index &lt; 0) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>)) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> triggerValue[0];</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>))</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> triggerValue[1];</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)(ButtonState &amp; ((uint16_t)<a class="code" href="version__helper_8h.html#a910fb5f01313d339d3b835d45e1e5ad0">pgm_read_word</a>(&amp;<a class="code" href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a>[index])));</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; </div>
<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811"> 389</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">XBOXONE::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">const</span> int8_t index = <a class="code" href="xbox_enums_8h.html#a5061e79d5902f70fba9807427c870e93">getButtonIndexXbox</a>(b); <span class="keywordflow">if</span> (index &lt; 0) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>)) {</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span>(L2Clicked) {</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; L2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>)) {</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span>(R2Clicked) {</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; R2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; uint16_t button = <a class="code" href="version__helper_8h.html#a910fb5f01313d339d3b835d45e1e5ad0">pgm_read_word</a>(&amp;<a class="code" href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a>[index]);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;}</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc"> 410</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc">XBOXONE::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> hatValue[a];</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;}</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="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;uint8_t XBOXONE::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; data[2] = cmdCounter++; <span class="comment">// Increment the output command counter</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint8_t rcode = <a class="code" href="class_x_b_o_x_o_n_e.html#a5b4e45cdd8695439d9772f55bb8ece6f">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_x_b_o_x_o_n_e.html#a800dd3559813c0f1771e8fdd30c4105b">bAddress</a>, <a class="code" href="class_x_b_o_x_o_n_e.html#a2915fc1f1f3a9c5333bfd643defa0621">epInfo</a>[ <a class="code" href="_x_b_o_x_o_n_e_8h.html#a1a9da90da4584db2de7c84f45bdafc89">XBOX_ONE_OUTPUT_PIPE</a> ].epAddr, nbytes, data);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nXboxCommand failed. Return: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span>(ButtonState != OldButtonState) {</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; ButtonClickState = ButtonState &amp; ~OldButtonState; <span class="comment">// Update click state variable</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; OldButtonState = ButtonState;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">// Handle click detection for triggers</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">if</span>(triggerValue[0] != 0 &amp;&amp; triggerValueOld[0] == 0)</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; L2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; triggerValueOld[0] = triggerValue[0];</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span>(triggerValue[1] != 0 &amp;&amp; triggerValueOld[1] == 0)</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; R2Clicked = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; triggerValueOld[1] = triggerValue[1];</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; </div>
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4"> 385</a></span>&#160;uint16_t <a class="code" href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">XBOXONE::getButtonPress</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="comment">// special handling for &#39;SHARE&#39; button due to index collision with &#39;BACK&#39;,</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">// since the &#39;SHARE&#39; value originally came from the PS4 controller and</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// the &#39;SHARE&#39; button was added to Xbox later with the Series S/X controllers</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda3754861e8c074fb088a2ed4f64786268">SHARE</a>) <span class="keywordflow">return</span> sharePressed;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> int8_t index = <a class="code" href="xbox_enums_8h.html#a5061e79d5902f70fba9807427c870e93">getButtonIndexXbox</a>(b); <span class="keywordflow">if</span> (index &lt; 0) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>)) <span class="comment">// These are analog buttons</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> triggerValue[0];</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>))</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> triggerValue[1];</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)(ButtonState &amp; ((uint16_t)<a class="code" href="version__helper_8h.html#a910fb5f01313d339d3b835d45e1e5ad0">pgm_read_word</a>(&amp;<a class="code" href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a>[index])));</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811"> 399</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">XBOXONE::getButtonClick</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fd">ButtonEnum</a> b) {</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// special handling for &#39;SHARE&#39; button, ibid the above</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (b == <a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda3754861e8c074fb088a2ed4f64786268">SHARE</a>) {</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span> (shareClicked) {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; shareClicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">const</span> int8_t index = <a class="code" href="xbox_enums_8h.html#a5061e79d5902f70fba9807427c870e93">getButtonIndexXbox</a>(b); <span class="keywordflow">if</span> (index &lt; 0) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a>)) {</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span>(L2Clicked) {</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; L2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == <a class="code" href="controller_enums_8h.html#a114f266591a03b0eff0f1e6b67d94f85">ButtonIndex</a>(<a class="code" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>)) {</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span>(R2Clicked) {</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; R2Clicked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;}</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;<span class="comment">// The Xbox One packets are described at: https://github.com/quantus/xbox-one-controller-protocol</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keywordtype">void</span> XBOXONE::onInit() {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// A short buzz to show the controller is active</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; uint8_t writeBuf[13];</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// Activate rumble</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; writeBuf[0] = 0x09;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// Byte 2 is set in &quot;XboxCommand&quot;</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// Single rumble effect</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; writeBuf[3] = 0x09; <span class="comment">// Substructure (what substructure rest of this packet has)</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; writeBuf[4] = 0x00; <span class="comment">// Mode</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; writeBuf[5] = 0x0F; <span class="comment">// Rumble mask (what motors are activated) (0000 lT rT L R)</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; writeBuf[6] = 0x04; <span class="comment">// lT force</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; writeBuf[7] = 0x04; <span class="comment">// rT force</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; writeBuf[8] = 0x20; <span class="comment">// L force</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; writeBuf[9] = 0x20; <span class="comment">// R force</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; writeBuf[10] = 0x80; <span class="comment">// Length of pulse</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; writeBuf[11] = 0x00; <span class="comment">// Off period</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; writeBuf[12] = 0x00; <span class="comment">// Repeat count</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; XboxCommand(writeBuf, 13);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; </div>
<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85"> 454</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85">XBOXONE::setRumbleOff</a>() {</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint8_t writeBuf[13];</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// Activate rumble</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; writeBuf[0] = 0x09;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="comment">// Byte 2 is set in &quot;XboxCommand&quot;</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; </div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="comment">// Continuous rumble effect</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; writeBuf[3] = 0x09; <span class="comment">// Substructure (what substructure rest of this packet has)</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; writeBuf[4] = 0x00; <span class="comment">// Mode</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; writeBuf[5] = 0x0F; <span class="comment">// Rumble mask (what motors are activated) (0000 lT rT L R)</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; writeBuf[6] = 0x00; <span class="comment">// lT force</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; writeBuf[7] = 0x00; <span class="comment">// rT force</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; writeBuf[8] = 0x00; <span class="comment">// L force</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; writeBuf[9] = 0x00; <span class="comment">// R force</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; writeBuf[10] = 0x00; <span class="comment">// On period</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; writeBuf[11] = 0x00; <span class="comment">// Off period</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; writeBuf[12] = 0x00; <span class="comment">// Repeat count</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; XboxCommand(writeBuf, 13);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; uint16_t button = <a class="code" href="version__helper_8h.html#a910fb5f01313d339d3b835d45e1e5ad0">pgm_read_word</a>(&amp;<a class="code" href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a>[index]);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordtype">bool</span> click = (ButtonClickState &amp; button);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; ButtonClickState &amp;= ~button; <span class="comment">// Clear &quot;click&quot; event</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> click;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc"> 429</a></span>&#160;int16_t <a class="code" href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc">XBOXONE::getAnalogHat</a>(<a class="code" href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093">AnalogHatEnum</a> a) {</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> hatValue[a];</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;}</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; </div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment">/* Xbox Controller commands */</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;uint8_t XBOXONE::XboxCommand(uint8_t* data, uint16_t nbytes) {</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; data[2] = cmdCounter++; <span class="comment">// Increment the output command counter</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; uint8_t rcode = <a class="code" href="class_x_b_o_x_o_n_e.html#a5b4e45cdd8695439d9772f55bb8ece6f">pUsb</a>-&gt;<a class="code" href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">outTransfer</a>(<a class="code" href="class_x_b_o_x_o_n_e.html#a800dd3559813c0f1771e8fdd30c4105b">bAddress</a>, <a class="code" href="class_x_b_o_x_o_n_e.html#a2915fc1f1f3a9c5333bfd643defa0621">epInfo</a>[ <a class="code" href="_x_b_o_x_o_n_e_8h.html#a1a9da90da4584db2de7c84f45bdafc89">XBOX_ONE_OUTPUT_PIPE</a> ].epAddr, nbytes, data);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor">#ifdef DEBUG_USB_HOST</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span>(rcode) {</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="message_8h.html#a27117e124c5d66d5512fe8d494fe6338">Notify</a>(<a class="code" href="version__helper_8h.html#a73809107539df84eaf01f6a4dea4fbff">PSTR</a>(<span class="stringliteral">&quot;\r\nXboxCommand failed. Return: &quot;</span>), 0x80);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; D_PrintHex&lt;uint8_t &gt; (rcode, 0x80);</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span> rcode;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;}</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="comment">// The Xbox One packets are described at: https://github.com/quantus/xbox-one-controller-protocol</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="keywordtype">void</span> XBOXONE::onInit() {</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="comment">// A short buzz to show the controller is active</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; uint8_t writeBuf[13];</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// Activate rumble</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; writeBuf[0] = 0x09;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="comment">// Byte 2 is set in &quot;XboxCommand&quot;</span></div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; </div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="comment">// Single rumble effect</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; writeBuf[3] = 0x09; <span class="comment">// Substructure (what substructure rest of this packet has)</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; writeBuf[4] = 0x00; <span class="comment">// Mode</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; writeBuf[5] = 0x0F; <span class="comment">// Rumble mask (what motors are activated) (0000 lT rT L R)</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; writeBuf[6] = 0x04; <span class="comment">// lT force</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; writeBuf[7] = 0x04; <span class="comment">// rT force</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; writeBuf[8] = 0x20; <span class="comment">// L force</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; writeBuf[9] = 0x20; <span class="comment">// R force</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; writeBuf[10] = 0x80; <span class="comment">// Length of pulse</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; writeBuf[11] = 0x00; <span class="comment">// Off period</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; writeBuf[12] = 0x00; <span class="comment">// Repeat count</span></div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; XboxCommand(writeBuf, 13);</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; </div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span>(pFuncOnInit)</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; pFuncOnInit(); <span class="comment">// Call the user function</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;}</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; </div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85"> 473</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85">XBOXONE::setRumbleOff</a>() {</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; uint8_t writeBuf[13];</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; </div>
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261"> 476</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261">XBOXONE::setRumbleOn</a>(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor) {</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint8_t writeBuf[13];</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// Activate rumble</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; writeBuf[0] = 0x09;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// Byte 2 is set in &quot;XboxCommand&quot;</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; </div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="comment">// Continuous rumble effect</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; writeBuf[3] = 0x09; <span class="comment">// Substructure (what substructure rest of this packet has)</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; writeBuf[4] = 0x00; <span class="comment">// Mode</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; writeBuf[5] = 0x0F; <span class="comment">// Rumble mask (what motors are activated) (0000 lT rT L R)</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; writeBuf[6] = leftTrigger; <span class="comment">// lT force</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; writeBuf[7] = rightTrigger; <span class="comment">// rT force</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; writeBuf[8] = leftMotor; <span class="comment">// L force</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; writeBuf[9] = rightMotor; <span class="comment">// R force</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; writeBuf[10] = 0xFF; <span class="comment">// On period</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; writeBuf[11] = 0x00; <span class="comment">// Off period</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; writeBuf[12] = 0xFF; <span class="comment">// Repeat count</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; XboxCommand(writeBuf, 13);</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;}</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// Activate rumble</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; writeBuf[0] = 0x09;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// Byte 2 is set in &quot;XboxCommand&quot;</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; </div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="comment">// Continuous rumble effect</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; writeBuf[3] = 0x09; <span class="comment">// Substructure (what substructure rest of this packet has)</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; writeBuf[4] = 0x00; <span class="comment">// Mode</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; writeBuf[5] = 0x0F; <span class="comment">// Rumble mask (what motors are activated) (0000 lT rT L R)</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; writeBuf[6] = 0x00; <span class="comment">// lT force</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; writeBuf[7] = 0x00; <span class="comment">// rT force</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; writeBuf[8] = 0x00; <span class="comment">// L force</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; writeBuf[9] = 0x00; <span class="comment">// R force</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; writeBuf[10] = 0x00; <span class="comment">// On period</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; writeBuf[11] = 0x00; <span class="comment">// Off period</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; writeBuf[12] = 0x00; <span class="comment">// Repeat count</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; XboxCommand(writeBuf, 13);</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261"> 495</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261">XBOXONE::setRumbleOn</a>(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor) {</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; uint8_t writeBuf[13];</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// Activate rumble</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; writeBuf[0] = 0x09;</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; writeBuf[1] = 0x00;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// Byte 2 is set in &quot;XboxCommand&quot;</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// Continuous rumble effect</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; writeBuf[3] = 0x09; <span class="comment">// Substructure (what substructure rest of this packet has)</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; writeBuf[4] = 0x00; <span class="comment">// Mode</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; writeBuf[5] = 0x0F; <span class="comment">// Rumble mask (what motors are activated) (0000 lT rT L R)</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; writeBuf[6] = leftTrigger; <span class="comment">// lT force</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; writeBuf[7] = rightTrigger; <span class="comment">// rT force</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; writeBuf[8] = leftMotor; <span class="comment">// L force</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; writeBuf[9] = rightMotor; <span class="comment">// R force</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; writeBuf[10] = 0xFF; <span class="comment">// On period</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; writeBuf[11] = 0x00; <span class="comment">// Off period</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; writeBuf[12] = 0xFF; <span class="comment">// Repeat count</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; XboxCommand(writeBuf, 13);</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a2915fc1f1f3a9c5333bfd643defa0621"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a2915fc1f1f3a9c5333bfd643defa0621">XBOXONE::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_ONE_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00185">XBOXONE.h:185</a></div></div>
<div class="ttc" id="aclass_u_s_b_html_affbc018973a588995457d535b0ac7ee7"><div class="ttname"><a href="class_u_s_b.html#affbc018973a588995457d535b0ac7ee7">USB::outTransfer</a></div><div class="ttdeci">uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00303">Usb.cpp:303</a></div></div>
<div class="ttc" id="amax3421e_8h_html_ab44a7968d08016b58d98951059c37076"><div class="ttname"><a href="max3421e_8h.html#ab44a7968d08016b58d98951059c37076">hrNAK</a></div><div class="ttdeci">#define hrNAK</div><div class="ttdef"><b>Definition:</b> <a href="max3421e_8h_source.html#l00218">max3421e.h:218</a></div></div>
<div class="ttc" id="astruct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html_a95cd9669dee9cab375a7c5e62284a01b"><div class="ttname"><a href="struct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r.html#a95cd9669dee9cab375a7c5e62284a01b">USB_ENDPOINT_DESCRIPTOR::bInterval</a></div><div class="ttdeci">uint8_t bInterval</div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00154">usb_ch9.h:154</a></div></div>
<div class="ttc" id="aclass_address_pool_html_aa92d7e8f0f515340ae2dc1679b627056"><div class="ttname"><a href="class_address_pool.html#aa92d7e8f0f515340ae2dc1679b627056">AddressPool::GetUsbDevicePtr</a></div><div class="ttdeci">virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0</div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a6586343cacf8705c7a3c2d4f479f2261"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261">XBOXONE::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00476">XBOXONE.cpp:476</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a6586343cacf8705c7a3c2d4f479f2261"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261">XBOXONE::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00495">XBOXONE.cpp:495</a></div></div>
<div class="ttc" id="aclass_address_pool_html"><div class="ttname"><a href="class_address_pool.html">AddressPool</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00090">address.h:90</a></div></div>
<div class="ttc" id="astruct_ep_info_html_ac85bff70ad0e5d71e50cb501f4d8caf3"><div class="ttname"><a href="struct_ep_info.html#ac85bff70ad0e5d71e50cb501f4d8caf3">EpInfo::bmSndToggle</a></div><div class="ttdeci">uint8_t bmSndToggle</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00047">address.h:47</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_af49b526b57d3a3148537bdada9fb69bc"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc">XBOXONE::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00410">XBOXONE.cpp:410</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_af49b526b57d3a3148537bdada9fb69bc"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc">XBOXONE::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00429">XBOXONE.cpp:429</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a3b9466f31de5c4f4e46a47440eea2bfc"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a3b9466f31de5c4f4e46a47440eea2bfc">XBOXONE::XBOXONE</a></div><div class="ttdeci">XBOXONE(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00027">XBOXONE.cpp:27</a></div></div>
<div class="ttc" id="amessage_8h_html_a22695bdc18ebde4a87dbe8633cb39593"><div class="ttname"><a href="message_8h.html#a22695bdc18ebde4a87dbe8633cb39593">NotifyFail</a></div><div class="ttdeci">#define NotifyFail(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00062">message.h:62</a></div></div>
<div class="ttc" id="astruct_usb_device_html_a86a815577ad7883437d3ca72b32b8e8a"><div class="ttname"><a href="struct_usb_device.html#a86a815577ad7883437d3ca72b32b8e8a">UsbDevice::lowspeed</a></div><div class="ttdeci">bool lowspeed</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00086">address.h:86</a></div></div>
@ -581,6 +600,7 @@ $(function() {
<div class="ttc" id="aclass_address_pool_html_a97df4ef42e50960ce2165f4cdb53e590"><div class="ttname"><a href="class_address_pool.html#a97df4ef42e50960ce2165f4cdb53e590">AddressPool::AllocAddress</a></div><div class="ttdeci">virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0</div></div>
<div class="ttc" id="axbox_enums_8h_html_a35901eab017bd1df5d2361634309adbd"><div class="ttname"><a href="xbox_enums_8h.html#a35901eab017bd1df5d2361634309adbd">XBOX_BUTTONS</a></div><div class="ttdeci">const uint16_t XBOX_BUTTONS[]</div><div class="ttdef"><b>Definition:</b> <a href="xbox_enums_8h_source.html#l00041">xboxEnums.h:41</a></div></div>
<div class="ttc" id="a_usb_core_8h_html_a44416ff64fc0e3691f98addac13d4595"><div class="ttname"><a href="_usb_core_8h.html#a44416ff64fc0e3691f98addac13d4595">USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</a></div><div class="ttdeci">#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00098">UsbCore.h:98</a></div></div>
<div class="ttc" id="acontroller_enums_8h_html_a94f7389d205c78830a5441370d7870fda3754861e8c074fb088a2ed4f64786268"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda3754861e8c074fb088a2ed4f64786268">SHARE</a></div><div class="ttdeci">@ SHARE</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00125">controllerEnums.h:125</a></div></div>
<div class="ttc" id="amessage_8h_html_a69619d86b1636f141c830ca82c7f45e7"><div class="ttname"><a href="message_8h.html#a69619d86b1636f141c830ca82c7f45e7">NotifyFailSetDevTblEntry</a></div><div class="ttdeci">#define NotifyFailSetDevTblEntry(...)</div><div class="ttdef"><b>Definition:</b> <a href="message_8h_source.html#l00058">message.h:58</a></div></div>
<div class="ttc" id="aclass_u_s_b_html_a193e63c149fad46adabd77ceb09b2b24"><div class="ttname"><a href="class_u_s_b.html#a193e63c149fad46adabd77ceb09b2b24">USB::getDevDescr</a></div><div class="ttdeci">uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)</div><div class="ttdoc">defined(USB_METHODS_INLINE)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00801">Usb.cpp:801</a></div></div>
<div class="ttc" id="astruct_u_s_b___e_n_d_p_o_i_n_t___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a 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></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00148">usb_ch9.h:148</a></div></div>
@ -598,8 +618,8 @@ $(function() {
<div class="ttc" id="astruct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r_html"><div class="ttname"><a href="struct_u_s_b___d_e_v_i_c_e___d_e_s_c_r_i_p_t_o_r.html">USB_DEVICE_DESCRIPTOR</a></div><div class="ttdef"><b>Definition:</b> <a href="usb__ch9_8h_source.html#l00105">usb_ch9.h:105</a></div></div>
<div class="ttc" id="astruct_ep_info_html_a3a5b1c017a034cd9e06e76729e727c46"><div class="ttname"><a href="struct_ep_info.html#a3a5b1c017a034cd9e06e76729e727c46">EpInfo::bmNakPower</a></div><div class="ttdeci">uint8_t bmNakPower</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00049">address.h:49</a></div></div>
<div class="ttc" id="a_x_b_o_x_o_n_e_8h_html_a8e9bf59d8bc051ff3fa38e2b327ade6e"><div class="ttname"><a href="_x_b_o_x_o_n_e_8h.html#a8e9bf59d8bc051ff3fa38e2b327ade6e">XBOX_ONE_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_ONE_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00037">XBOXONE.h:37</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a506e8add57ffac652a28e8c5b7e72e85"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85">XBOXONE::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00454">XBOXONE.cpp:454</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a9bd03dd0f2abde83f34635ab72564811"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">XBOXONE::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00389">XBOXONE.cpp:389</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a506e8add57ffac652a28e8c5b7e72e85"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85">XBOXONE::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00473">XBOXONE.cpp:473</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a9bd03dd0f2abde83f34635ab72564811"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">XBOXONE::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00399">XBOXONE.cpp:399</a></div></div>
<div class="ttc" id="aclass_u_s_b_html_a618eedabc161d8315be45cae0c8b6f89"><div class="ttname"><a href="class_u_s_b.html#a618eedabc161d8315be45cae0c8b6f89">USB::getConfDescr</a></div><div class="ttdeci">uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)</div><div class="ttdef"><b>Definition:</b> <a href="_usb_8cpp_source.html#l00806">Usb.cpp:806</a></div></div>
<div class="ttc" id="aaddress_8h_html_a517dfa014946e2d087d197312234a1de"><div class="ttname"><a href="address_8h.html#a517dfa014946e2d087d197312234a1de">USB_NAK_MAX_POWER</a></div><div class="ttdeci">#define USB_NAK_MAX_POWER</div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00034">address.h:34</a></div></div>
<div class="ttc" id="acontroller_enums_8h_html_a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a"><div class="ttname"><a href="controller_enums_8h.html#a34dad8f0a0927471137c403216597093a7f1fb2db5381286691f4dec179ed5d5a">RightHatY</a></div><div class="ttdeci">@ RightHatY</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00226">controllerEnums.h:226</a></div></div>
@ -617,7 +637,7 @@ $(function() {
<div class="ttc" id="a_usb_core_8h_html_af192c59cafe2192ad802b22e6dbc077d"><div class="ttname"><a href="_usb_core_8h.html#af192c59cafe2192ad802b22e6dbc077d">USB_ERROR_EPINFO_IS_NULL</a></div><div class="ttdeci">#define USB_ERROR_EPINFO_IS_NULL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00096">UsbCore.h:96</a></div></div>
<div class="ttc" id="astruct_usb_device_html"><div class="ttname"><a href="struct_usb_device.html">UsbDevice</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00082">address.h:82</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a5b4e45cdd8695439d9772f55bb8ece6f"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a5b4e45cdd8695439d9772f55bb8ece6f">XBOXONE::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00181">XBOXONE.h:181</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_ae197d34a4c2138d1889afe2c2e3345c4"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">XBOXONE::getButtonPress</a></div><div class="ttdeci">uint16_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00380">XBOXONE.cpp:380</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_ae197d34a4c2138d1889afe2c2e3345c4"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">XBOXONE::getButtonPress</a></div><div class="ttdeci">uint16_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00385">XBOXONE.cpp:385</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a499cc378b8ae7d8fd63baa1b4dab97b5"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a499cc378b8ae7d8fd63baa1b4dab97b5">XBOXONE::EndpointXtract</a></div><div class="ttdeci">void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00239">XBOXONE.cpp:239</a></div></div>
<div class="ttc" id="acontroller_enums_8h_html_a94f7389d205c78830a5441370d7870fdad4689acdcdf0e61373d52de14ff07eae"><div class="ttname"><a href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fdad4689acdcdf0e61373d52de14ff07eae">XBOX</a></div><div class="ttdeci">@ XBOX</div><div class="ttdef"><b>Definition:</b> <a href="controller_enums_8h_source.html#l00151">controllerEnums.h:151</a></div></div>
<div class="ttc" id="a_usb_core_8h_html_afe2fedb4b0ccc89a688c0b4b59691ce0"><div class="ttname"><a href="_usb_core_8h.html#afe2fedb4b0ccc89a688c0b4b59691ce0">USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</a></div><div class="ttdeci">#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL</div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00095">UsbCore.h:95</a></div></div>

View file

@ -202,20 +202,23 @@ $(function() {
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">bool</span> L2Clicked; <span class="comment">// These buttons are analog, so we use we use these bools to check if they where clicked or not</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">bool</span> R2Clicked;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint8_t readBuf[<a class="code" href="_x_b_o_x_o_n_e_8h.html#aee7388a903006047acac4b071a28bd9d">XBOX_ONE_EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t cmdCounter;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordtype">bool</span> sharePressed; <span class="comment">// This button doesn&#39;t fit in the bitfield</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">bool</span> shareClicked;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordtype">void</span> readReport(); <span class="comment">// Used to read the incoming data</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; uint8_t XboxCommand(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;};</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; uint8_t readBuf[<a class="code" href="_x_b_o_x_o_n_e_8h.html#aee7388a903006047acac4b071a28bd9d">XBOX_ONE_EP_MAXPKTSIZE</a>]; <span class="comment">// General purpose buffer for input data</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t cmdCounter;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">void</span> readReport(); <span class="comment">// Used to read the incoming data</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">/* Private commands */</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; uint8_t XboxCommand(uint8_t* data, uint16_t nbytes);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;};</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a2915fc1f1f3a9c5333bfd643defa0621"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a2915fc1f1f3a9c5333bfd643defa0621">XBOXONE::epInfo</a></div><div class="ttdeci">EpInfo epInfo[XBOX_ONE_MAX_ENDPOINTS]</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00185">XBOXONE.h:185</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a6586343cacf8705c7a3c2d4f479f2261"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261">XBOXONE::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00476">XBOXONE.cpp:476</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a6586343cacf8705c7a3c2d4f479f2261"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a6586343cacf8705c7a3c2d4f479f2261">XBOXONE::setRumbleOn</a></div><div class="ttdeci">void setRumbleOn(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00495">XBOXONE.cpp:495</a></div></div>
<div class="ttc" id="aclass_u_s_b_device_config_html"><div class="ttname"><a href="class_u_s_b_device_config.html">USBDeviceConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="_usb_core_8h_source.html#l00134">UsbCore.h:134</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_af49b526b57d3a3148537bdada9fb69bc"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc">XBOXONE::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00410">XBOXONE.cpp:410</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_af49b526b57d3a3148537bdada9fb69bc"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#af49b526b57d3a3148537bdada9fb69bc">XBOXONE::getAnalogHat</a></div><div class="ttdeci">int16_t getAnalogHat(AnalogHatEnum a)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00429">XBOXONE.cpp:429</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a0b2434ed7197361d229340773b0c3bda"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a0b2434ed7197361d229340773b0c3bda">XBOXONE::attachOnInit</a></div><div class="ttdeci">void attachOnInit(void(*funcOnInit)(void))</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00159">XBOXONE.h:159</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a3b9466f31de5c4f4e46a47440eea2bfc"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a3b9466f31de5c4f4e46a47440eea2bfc">XBOXONE::XBOXONE</a></div><div class="ttdeci">XBOXONE(USB *pUsb)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00027">XBOXONE.cpp:27</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_ac055f7c7156ef515fe362e751fe1bae3"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#ac055f7c7156ef515fe362e751fe1bae3">XBOXONE::XboxOneConnected</a></div><div class="ttdeci">bool XboxOneConnected</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00177">XBOXONE.h:177</a></div></div>
@ -240,8 +243,8 @@ $(function() {
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a2eea30f2ce47380fc414d4fc4231335b"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a2eea30f2ce47380fc414d4fc4231335b">XBOXONE::PrintEndpointDescriptor</a></div><div class="ttdeci">void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00265">XBOXONE.cpp:265</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html">XBOXONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00067">XBOXONE.h:67</a></div></div>
<div class="ttc" id="a_x_b_o_x_o_n_e_8h_html_a8e9bf59d8bc051ff3fa38e2b327ade6e"><div class="ttname"><a href="_x_b_o_x_o_n_e_8h.html#a8e9bf59d8bc051ff3fa38e2b327ade6e">XBOX_ONE_MAX_ENDPOINTS</a></div><div class="ttdeci">#define XBOX_ONE_MAX_ENDPOINTS</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00037">XBOXONE.h:37</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a506e8add57ffac652a28e8c5b7e72e85"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85">XBOXONE::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00454">XBOXONE.cpp:454</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a9bd03dd0f2abde83f34635ab72564811"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">XBOXONE::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00389">XBOXONE.cpp:389</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a506e8add57ffac652a28e8c5b7e72e85"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a506e8add57ffac652a28e8c5b7e72e85">XBOXONE::setRumbleOff</a></div><div class="ttdeci">void setRumbleOff()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00473">XBOXONE.cpp:473</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a9bd03dd0f2abde83f34635ab72564811"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">XBOXONE::getButtonClick</a></div><div class="ttdeci">bool getButtonClick(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00399">XBOXONE.cpp:399</a></div></div>
<div class="ttc" id="a_x_b_o_x_o_n_e_8h_html_a72296ecd70897c4fcfe4c614bbf2051b"><div class="ttname"><a href="_x_b_o_x_o_n_e_8h.html#a72296ecd70897c4fcfe4c614bbf2051b">XBOX_VID1</a></div><div class="ttdeci">#define XBOX_VID1</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00042">XBOXONE.h:42</a></div></div>
<div class="ttc" id="astruct_ep_info_html"><div class="ttname"><a href="struct_ep_info.html">EpInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="address_8h_source.html#l00039">address.h:39</a></div></div>
<div class="ttc" id="a_x_b_o_x_o_n_e_8h_html_ade0eb2e0dd4f0c3fe45c82121f31d44d"><div class="ttname"><a href="_x_b_o_x_o_n_e_8h.html#ade0eb2e0dd4f0c3fe45c82121f31d44d">XBOX_VID5</a></div><div class="ttdeci">#define XBOX_VID5</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00054">XBOXONE.h:54</a></div></div>
@ -249,7 +252,7 @@ $(function() {
<div class="ttc" id="a_x_b_o_x_o_n_e_8h_html_aac92aad3632dc9632d04d90342904b18"><div class="ttname"><a href="_x_b_o_x_o_n_e_8h.html#aac92aad3632dc9632d04d90342904b18">XBOX_VID3</a></div><div class="ttdeci">#define XBOX_VID3</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00052">XBOXONE.h:52</a></div></div>
<div class="ttc" id="a_x_b_o_x_o_n_e_8h_html_ad7aedc27b8dfa49a7af8fce89432df0a"><div class="ttname"><a href="_x_b_o_x_o_n_e_8h.html#ad7aedc27b8dfa49a7af8fce89432df0a">XBOX_ONE_PID10</a></div><div class="ttdeci">#define XBOX_ONE_PID10</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00062">XBOXONE.h:62</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a5b4e45cdd8695439d9772f55bb8ece6f"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a5b4e45cdd8695439d9772f55bb8ece6f">XBOXONE::pUsb</a></div><div class="ttdeci">USB * pUsb</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00181">XBOXONE.h:181</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_ae197d34a4c2138d1889afe2c2e3345c4"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">XBOXONE::getButtonPress</a></div><div class="ttdeci">uint16_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00380">XBOXONE.cpp:380</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_ae197d34a4c2138d1889afe2c2e3345c4"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">XBOXONE::getButtonPress</a></div><div class="ttdeci">uint16_t getButtonPress(ButtonEnum b)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00385">XBOXONE.cpp:385</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a499cc378b8ae7d8fd63baa1b4dab97b5"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a499cc378b8ae7d8fd63baa1b4dab97b5">XBOXONE::EndpointXtract</a></div><div class="ttdeci">void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00239">XBOXONE.cpp:239</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_a05332491fe28b71c6d7c9a9827370bdf"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#a05332491fe28b71c6d7c9a9827370bdf">XBOXONE::GetAddress</a></div><div class="ttdeci">virtual uint8_t GetAddress()</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8h_source.html#l00099">XBOXONE.h:99</a></div></div>
<div class="ttc" id="aclass_x_b_o_x_o_n_e_html_aeb2d90a3d77fc252a12f5ed54c3f370e"><div class="ttname"><a href="class_x_b_o_x_o_n_e.html#aeb2d90a3d77fc252a12f5ed54c3f370e">XBOXONE::Init</a></div><div class="ttdeci">virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)</div><div class="ttdef"><b>Definition:</b> <a href="_x_b_o_x_o_n_e_8cpp_source.html#l00046">XBOXONE.cpp:46</a></div></div>

View file

@ -474,7 +474,7 @@ Protected Attributes</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">getButtonClick(ButtonEnum b)</a> will return a bool, while <a class="el" href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">getButtonPress(ButtonEnum b)</a> will return a word if reading <a class="el" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a> or <a class="el" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00380">380</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00385">385</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
</div>
</div>
@ -503,7 +503,7 @@ Protected Attributes</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_x_b_o_x_o_n_e.html#a9bd03dd0f2abde83f34635ab72564811">getButtonClick(ButtonEnum b)</a> will return a bool, while <a class="el" href="class_x_b_o_x_o_n_e.html#ae197d34a4c2138d1889afe2c2e3345c4">getButtonPress(ButtonEnum b)</a> will return a word if reading <a class="el" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda0adffb24dae0c41be5b803f4d444f066">L2</a> or <a class="el" href="controller_enums_8h.html#a94f7389d205c78830a5441370d7870fda629d7b403cea5f826352f3aefb9a6d6a">R2</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00389">389</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00399">399</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
</div>
</div>
@ -530,7 +530,7 @@ Protected Attributes</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a signed 16-bit integer. </dd></dl>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00410">410</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00429">429</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
</div>
</div>
@ -584,7 +584,7 @@ Protected Attributes</h2></td></tr>
</div><div class="memdoc">
<p>Used to set the rumble off. </p>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00454">454</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00473">473</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
</div>
</div>
@ -635,7 +635,7 @@ Protected Attributes</h2></td></tr>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00476">476</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html#l00495">495</a> of file <a class="el" href="_x_b_o_x_o_n_e_8cpp_source.html">XBOXONE.cpp</a>.</p>
</div>
</div>

View file

@ -35,7 +35,7 @@ var searchData=
['reqtype_5fu_2488',['ReqType_u',['../struct_s_e_t_u_p___p_k_t.html#acafa3fd9223d8dceaf9ae1353780a7b1',1,'SETUP_PKT']]],
['requestsenseresponce_2489',['RequestSenseResponce',['../struct_request_sense_responce.html',1,'']]],
['res_2490',['Res',['../struct_inquiry_response.html#a9f642c5fccc1c87cf6b444a138b6aa4b',1,'InquiryResponse']]],
['reserved_2491',['Reserved',['../struct_inquiry_response.html#abb4a48d4fc326ad932fb41c82fe289f3',1,'InquiryResponse::Reserved()'],['../struct_hub_descriptor.html#a0c3292fe67fdbdab6ceac8b198ef44bf',1,'HubDescriptor::Reserved()'],['../struct_p_s5_data.html#ab953374ed47371a44316223a7912acee',1,'PS5Data::reserved()'],['../union_xbox_one_s_buttons.html#a461a969454844afc31875e430b8f27eb',1,'XboxOneSButtons::reserved()']]],
['reserved_2491',['reserved',['../struct_p_s5_data.html#ab953374ed47371a44316223a7912acee',1,'PS5Data::reserved()'],['../union_xbox_one_s_buttons.html#a461a969454844afc31875e430b8f27eb',1,'XboxOneSButtons::reserved()'],['../struct_inquiry_response.html#abb4a48d4fc326ad932fb41c82fe289f3',1,'InquiryResponse::Reserved()'],['../struct_hub_descriptor.html#a0c3292fe67fdbdab6ceac8b198ef44bf',1,'HubDescriptor::Reserved()']]],
['reserved2_2492',['reserved2',['../struct_p_s5_data.html#adbb3681b8be4d989d990fd0dabd1311e',1,'PS5Data::reserved2()'],['../union_xbox_one_s_buttons.html#a2c372291d4f6dd4c8a42414a72f792a3',1,'XboxOneSButtons::reserved2()']]],
['reserved4_2493',['Reserved4',['../struct_inquiry_response.html#ae5c315ca0c47104b17d5bde7c4d485a6',1,'InquiryResponse']]],
['reset_2494',['reset',['../class_m_a_x3421e.html#a15b78912dd4b1c96b6ad141117dcb7ee',1,'MAX3421e::reset()'],['../class_bluetooth_service.html#aa7c81841d4e898e9dc91533da6d7ab64',1,'BluetoothService::Reset()'],['../class_b_t_h_i_d.html#af4c58b81414a037910dd6fb78f97b96e',1,'BTHID::Reset()'],['../class_p_s3_b_t.html#a576d72cdf12af58ae59c8f2a02f99c0f',1,'PS3BT::Reset()'],['../class_p_s4_parser.html#a24640b2362b0f6f51785fbd3dd4f13f9',1,'PS4Parser::Reset()'],['../class_p_s5_parser.html#a136b97d303936a6f3c13bb74fad521d1',1,'PS5Parser::Reset()'],['../class_p_s5_trigger.html#ad537a2d55a7d131e89e4257f015b741e',1,'PS5Trigger::Reset()'],['../class_p_s_buzz.html#a5bb4f2ee80ca9d10d87031b57bd09268',1,'PSBuzz::Reset()'],['../class_s_p_p.html#ae2c661bd46cd2d74bd29c4c771cd2ef0',1,'SPP::Reset()'],['../class_switch_pro_parser.html#ac2f27f3be01e18845d102bd6f24c87fa',1,'SwitchProParser::Reset()'],['../class_w_i_i.html#a769ee2f9a0088da097438bc3cc677f7c',1,'WII::Reset()'],['../class_x_b_o_x_o_n_e_s_parser.html#ac71c0a2e5e6e61f3bb57409c991c7bcb',1,'XBOXONESParser::Reset()']]],

View file

@ -21,7 +21,7 @@ var searchData=
['usagepagefunctions_2883',['usagePageFunctions',['../class_report_desc_parser_base.html#af91679187bb24d185979b3ec045c215b',1,'ReportDescParserBase']]],
['usagepagetitles0_2884',['usagePageTitles0',['../class_report_desc_parser_base.html#a7f723a8b7bddd061aee7f0af06aeae08',1,'ReportDescParserBase']]],
['usagepagetitles1_2885',['usagePageTitles1',['../class_report_desc_parser_base.html#ae6dadd42986663f261aac948d24911a6',1,'ReportDescParserBase']]],
['usb_2886',['USB',['../class_u_s_b.html',1,'USB'],['../class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d',1,'USB::USB()'],['../struct_p_s4_status.html#a3e7fc4ece250c83c7753e3f557f6d710',1,'PS4Status::usb()'],['../union_p_s5_status.html#a970883a8b418eb0068adace875aa601f',1,'PS5Status::usb()']]],
['usb_2886',['USB',['../class_u_s_b.html',1,'USB'],['../struct_p_s4_status.html#a3e7fc4ece250c83c7753e3f557f6d710',1,'PS4Status::usb()'],['../union_p_s5_status.html#a970883a8b418eb0068adace875aa601f',1,'PS5Status::usb()'],['../class_u_s_b.html#a8ff8cd03496bdcb0ca26f18878ad299d',1,'USB::USB()']]],
['usb_2ecpp_2887',['Usb.cpp',['../_usb_8cpp.html',1,'']]],
['usb_2eh_2888',['Usb.h',['../_usb_8h.html',1,'']]],
['usb_5fattached_5fsubstate_5fget_5fdevice_5fdescriptor_5fsize_2889',['USB_ATTACHED_SUBSTATE_GET_DEVICE_DESCRIPTOR_SIZE',['../_usb_core_8h.html#a23ebcbb956f600e06435b28ae0c855d4',1,'UsbCore.h']]],

View file

@ -12,7 +12,7 @@ var searchData=
['incomingwii_1078',['incomingWii',['../class_b_t_d.html#a4dc8f94fe85028f3d54f13dde1e5b4ee',1,'BTD']]],
['info_1079',['info',['../struct_b_a_s_i_c_c_d_b.html#ae796279e9083692e308e7819349a79fc',1,'BASICCDB']]],
['information_1080',['Information',['../struct_request_sense_responce.html#a4342aa28405753a185d867060fec931e',1,'RequestSenseResponce']]],
['init_1081',['init',['../class_max___l_c_d.html#a3205e9a432c808422867c1398d665247',1,'Max_LCD::init()'],['../class_s_pi.html#a52c803966a9437caf57d00c267121373',1,'SPi::init()'],['../class_a_d_k.html#a8c5c2e212c748966ccd863499d202063',1,'ADK::Init()'],['../class_a_m_b_x.html#a676e193add396dd56527cf538765d01c',1,'AMBX::Init()'],['../class_b_t_d.html#a48608619d8253972dd132edbb3001c5f',1,'BTD::Init()'],['../class_x_r21_b1411.html#adbaf541661c1938fa33a9cedd9e9a4ba',1,'XR21B1411::Init()'],['../class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7',1,'ACM::Init()'],['../class_f_t_d_i.html#a2d40115414dadfee8c284e0f5d397621',1,'FTDI::Init()'],['../class_p_l2303.html#a23c849fb504c1fe6f46c84d04c0a47cf',1,'PL2303::Init()'],['../class_h_i_d_boot.html#aa30d7cf292378153f41d8a13380c6119',1,'HIDBoot::Init()'],['../class_h_i_d_composite.html#ac5d02f2915f83817f2121acdefc7f573',1,'HIDComposite::Init()'],['../class_bulk_only.html#a51870da9badc037166b86da60bcda6ea',1,'BulkOnly::Init()'],['../class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d',1,'PS3USB::Init()'],['../class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738',1,'USBDeviceConfig::Init()'],['../class_u_s_b_h___m_i_d_i.html#a9c8d149a823d2b8d1c3579f0f445cf19',1,'USBH_MIDI::Init()'],['../class_m_a_x3421e.html#a2866487c20c832731fd4fb478acb0195',1,'MAX3421e::Init()'],['../class_m_a_x3421e.html#a332ce159a413244be9b95b8e08888bb8',1,'MAX3421e::Init(int mseconds)'],['../class_u_s_b_hub.html#ab2b2e257556e3d59f9258dd84d6f636e',1,'USBHub::Init()'],['../class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434',1,'XBOXOLD::Init()'],['../class_x_b_o_x_o_n_e.html#aeb2d90a3d77fc252a12f5ed54c3f370e',1,'XBOXONE::Init()'],['../class_x_b_o_x_r_e_c_v.html#a07de216bf16a83501d74463c00bf1fc8',1,'XBOXRECV::Init()'],['../class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e',1,'XBOXUSB::Init()']]],
['init_1081',['Init',['../class_a_d_k.html#a8c5c2e212c748966ccd863499d202063',1,'ADK::Init()'],['../class_a_m_b_x.html#a676e193add396dd56527cf538765d01c',1,'AMBX::Init()'],['../class_b_t_d.html#a48608619d8253972dd132edbb3001c5f',1,'BTD::Init()'],['../class_x_r21_b1411.html#adbaf541661c1938fa33a9cedd9e9a4ba',1,'XR21B1411::Init()'],['../class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7',1,'ACM::Init()'],['../class_f_t_d_i.html#a2d40115414dadfee8c284e0f5d397621',1,'FTDI::Init()'],['../class_p_l2303.html#a23c849fb504c1fe6f46c84d04c0a47cf',1,'PL2303::Init()'],['../class_h_i_d_boot.html#aa30d7cf292378153f41d8a13380c6119',1,'HIDBoot::Init()'],['../class_h_i_d_composite.html#ac5d02f2915f83817f2121acdefc7f573',1,'HIDComposite::Init()'],['../class_bulk_only.html#a51870da9badc037166b86da60bcda6ea',1,'BulkOnly::Init()'],['../class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d',1,'PS3USB::Init()'],['../class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738',1,'USBDeviceConfig::Init()'],['../class_u_s_b_h___m_i_d_i.html#a9c8d149a823d2b8d1c3579f0f445cf19',1,'USBH_MIDI::Init()'],['../class_m_a_x3421e.html#a2866487c20c832731fd4fb478acb0195',1,'MAX3421e::Init()'],['../class_m_a_x3421e.html#a332ce159a413244be9b95b8e08888bb8',1,'MAX3421e::Init(int mseconds)'],['../class_u_s_b_hub.html#ab2b2e257556e3d59f9258dd84d6f636e',1,'USBHub::Init()'],['../class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434',1,'XBOXOLD::Init()'],['../class_x_b_o_x_o_n_e.html#aeb2d90a3d77fc252a12f5ed54c3f370e',1,'XBOXONE::Init()'],['../class_x_b_o_x_r_e_c_v.html#a07de216bf16a83501d74463c00bf1fc8',1,'XBOXRECV::Init()'],['../class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e',1,'XBOXUSB::Init()'],['../class_max___l_c_d.html#a3205e9a432c808422867c1398d665247',1,'Max_LCD::init()'],['../class_s_pi.html#a52c803966a9437caf57d00c267121373',1,'SPi::init()']]],
['initialize_1082',['Initialize',['../class_hex_dumper.html#accd2712258f54a8072eae3d2ad8cceba',1,'HexDumper::Initialize()'],['../class_h_i_d_composite.html#a38cf93412d960797f0877e675aff9dd1',1,'HIDComposite::Initialize()'],['../class_multi_byte_value_parser.html#a9bd52b4e180d68dbb8f97c059250f4c3',1,'MultiByteValueParser::Initialize()'],['../class_byte_skipper.html#a274a09686d5535e11961d2ccf38ffa08',1,'ByteSkipper::Initialize()'],['../class_p_t_p_list_parser.html#a18f6c785d1ddb51d7e158810644079b7',1,'PTPListParser::Initialize()'],['../class_sink_parser.html#a3c2ac73b459e326e955c26d658733f9f',1,'SinkParser::Initialize()']]],
['inquiryresponse_1083',['InquiryResponse',['../struct_inquiry_response.html',1,'']]],
['internal_5fdelay_1084',['INTERNAL_DELAY',['../cdcprolific_8h.html#ad77e166d8f5931c693952f5e89c2b732',1,'cdcprolific.h']]],

View file

@ -2,7 +2,7 @@ var searchData=
[
['idproduct_3671',['idProduct',['../class_u_s_b_h___m_i_d_i.html#ac7b56c71f8424ec0175f390264776bdd',1,'USBH_MIDI']]],
['idvendor_3672',['idVendor',['../class_u_s_b_h___m_i_d_i.html#aa7d217e3479a9116f8f2ce90c1177317',1,'USBH_MIDI']]],
['init_3673',['init',['../class_max___l_c_d.html#a3205e9a432c808422867c1398d665247',1,'Max_LCD::init()'],['../class_s_pi.html#a52c803966a9437caf57d00c267121373',1,'SPi::init()'],['../class_a_d_k.html#a8c5c2e212c748966ccd863499d202063',1,'ADK::Init()'],['../class_a_m_b_x.html#a676e193add396dd56527cf538765d01c',1,'AMBX::Init()'],['../class_b_t_d.html#a48608619d8253972dd132edbb3001c5f',1,'BTD::Init()'],['../class_x_r21_b1411.html#adbaf541661c1938fa33a9cedd9e9a4ba',1,'XR21B1411::Init()'],['../class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7',1,'ACM::Init()'],['../class_f_t_d_i.html#a2d40115414dadfee8c284e0f5d397621',1,'FTDI::Init()'],['../class_p_l2303.html#a23c849fb504c1fe6f46c84d04c0a47cf',1,'PL2303::Init()'],['../class_h_i_d_boot.html#aa30d7cf292378153f41d8a13380c6119',1,'HIDBoot::Init()'],['../class_h_i_d_composite.html#ac5d02f2915f83817f2121acdefc7f573',1,'HIDComposite::Init()'],['../class_bulk_only.html#a51870da9badc037166b86da60bcda6ea',1,'BulkOnly::Init()'],['../class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d',1,'PS3USB::Init()'],['../class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738',1,'USBDeviceConfig::Init()'],['../class_u_s_b_h___m_i_d_i.html#a9c8d149a823d2b8d1c3579f0f445cf19',1,'USBH_MIDI::Init()'],['../class_m_a_x3421e.html#a2866487c20c832731fd4fb478acb0195',1,'MAX3421e::Init()'],['../class_m_a_x3421e.html#a332ce159a413244be9b95b8e08888bb8',1,'MAX3421e::Init(int mseconds)'],['../class_u_s_b_hub.html#ab2b2e257556e3d59f9258dd84d6f636e',1,'USBHub::Init()'],['../class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434',1,'XBOXOLD::Init()'],['../class_x_b_o_x_o_n_e.html#aeb2d90a3d77fc252a12f5ed54c3f370e',1,'XBOXONE::Init()'],['../class_x_b_o_x_r_e_c_v.html#a07de216bf16a83501d74463c00bf1fc8',1,'XBOXRECV::Init()'],['../class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e',1,'XBOXUSB::Init()']]],
['init_3673',['Init',['../class_a_d_k.html#a8c5c2e212c748966ccd863499d202063',1,'ADK::Init()'],['../class_a_m_b_x.html#a676e193add396dd56527cf538765d01c',1,'AMBX::Init()'],['../class_b_t_d.html#a48608619d8253972dd132edbb3001c5f',1,'BTD::Init()'],['../class_x_r21_b1411.html#adbaf541661c1938fa33a9cedd9e9a4ba',1,'XR21B1411::Init()'],['../class_a_c_m.html#ad3210651d58c77d3ded4b4b83a9476b7',1,'ACM::Init()'],['../class_f_t_d_i.html#a2d40115414dadfee8c284e0f5d397621',1,'FTDI::Init()'],['../class_p_l2303.html#a23c849fb504c1fe6f46c84d04c0a47cf',1,'PL2303::Init()'],['../class_h_i_d_boot.html#aa30d7cf292378153f41d8a13380c6119',1,'HIDBoot::Init()'],['../class_h_i_d_composite.html#ac5d02f2915f83817f2121acdefc7f573',1,'HIDComposite::Init()'],['../class_bulk_only.html#a51870da9badc037166b86da60bcda6ea',1,'BulkOnly::Init()'],['../class_p_s3_u_s_b.html#a0083545cb99fb8786e60281fe7a9050d',1,'PS3USB::Init()'],['../class_u_s_b_device_config.html#a3706cf6b18785aff823171e280bab738',1,'USBDeviceConfig::Init()'],['../class_u_s_b_h___m_i_d_i.html#a9c8d149a823d2b8d1c3579f0f445cf19',1,'USBH_MIDI::Init()'],['../class_m_a_x3421e.html#a2866487c20c832731fd4fb478acb0195',1,'MAX3421e::Init()'],['../class_m_a_x3421e.html#a332ce159a413244be9b95b8e08888bb8',1,'MAX3421e::Init(int mseconds)'],['../class_u_s_b_hub.html#ab2b2e257556e3d59f9258dd84d6f636e',1,'USBHub::Init()'],['../class_x_b_o_x_o_l_d.html#a7260253c704b147e6dfd762e13222434',1,'XBOXOLD::Init()'],['../class_x_b_o_x_o_n_e.html#aeb2d90a3d77fc252a12f5ed54c3f370e',1,'XBOXONE::Init()'],['../class_x_b_o_x_r_e_c_v.html#a07de216bf16a83501d74463c00bf1fc8',1,'XBOXRECV::Init()'],['../class_x_b_o_x_u_s_b.html#a9d2ad06354787bc252058bb28015b56e',1,'XBOXUSB::Init()'],['../class_max___l_c_d.html#a3205e9a432c808422867c1398d665247',1,'Max_LCD::init()'],['../class_s_pi.html#a52c803966a9437caf57d00c267121373',1,'SPi::init()']]],
['initialize_3674',['Initialize',['../class_hex_dumper.html#accd2712258f54a8072eae3d2ad8cceba',1,'HexDumper::Initialize()'],['../class_h_i_d_composite.html#a38cf93412d960797f0877e675aff9dd1',1,'HIDComposite::Initialize()'],['../class_multi_byte_value_parser.html#a9bd52b4e180d68dbb8f97c059250f4c3',1,'MultiByteValueParser::Initialize()'],['../class_byte_skipper.html#a274a09686d5535e11961d2ccf38ffa08',1,'ByteSkipper::Initialize()'],['../class_p_t_p_list_parser.html#a18f6c785d1ddb51d7e158810644079b7',1,'PTPListParser::Initialize()'],['../class_sink_parser.html#a3c2ac73b459e326e955c26d658733f9f',1,'SinkParser::Initialize()']]],
['inthandler_3675',['IntHandler',['../class_m_a_x3421e.html#af88faea04dd27cf354cf0643cc7acef2',1,'MAX3421e']]],
['intransfer_3676',['inTransfer',['../class_u_s_b.html#aead4d2040c641d55176854b236804088',1,'USB']]],

View file

@ -16,7 +16,7 @@ var searchData=
['reportcounter_5144',['reportCounter',['../union_p_s4_buttons.html#a5c27c151ad76a3675dce1eda1a3e4cc4',1,'PS4Buttons']]],
['reqtype_5fu_5145',['ReqType_u',['../struct_s_e_t_u_p___p_k_t.html#acafa3fd9223d8dceaf9ae1353780a7b1',1,'SETUP_PKT']]],
['res_5146',['Res',['../struct_inquiry_response.html#a9f642c5fccc1c87cf6b444a138b6aa4b',1,'InquiryResponse']]],
['reserved_5147',['Reserved',['../struct_inquiry_response.html#abb4a48d4fc326ad932fb41c82fe289f3',1,'InquiryResponse::Reserved()'],['../struct_hub_descriptor.html#a0c3292fe67fdbdab6ceac8b198ef44bf',1,'HubDescriptor::Reserved()'],['../struct_p_s5_data.html#ab953374ed47371a44316223a7912acee',1,'PS5Data::reserved()'],['../union_xbox_one_s_buttons.html#a461a969454844afc31875e430b8f27eb',1,'XboxOneSButtons::reserved()']]],
['reserved_5147',['reserved',['../struct_p_s5_data.html#ab953374ed47371a44316223a7912acee',1,'PS5Data::reserved()'],['../union_xbox_one_s_buttons.html#a461a969454844afc31875e430b8f27eb',1,'XboxOneSButtons::reserved()'],['../struct_inquiry_response.html#abb4a48d4fc326ad932fb41c82fe289f3',1,'InquiryResponse::Reserved()'],['../struct_hub_descriptor.html#a0c3292fe67fdbdab6ceac8b198ef44bf',1,'HubDescriptor::Reserved()']]],
['reserved2_5148',['reserved2',['../struct_p_s5_data.html#adbb3681b8be4d989d990fd0dabd1311e',1,'PS5Data::reserved2()'],['../union_xbox_one_s_buttons.html#a2c372291d4f6dd4c8a42414a72f792a3',1,'XboxOneSButtons::reserved2()']]],
['reserved4_5149',['Reserved4',['../struct_inquiry_response.html#ae5c315ca0c47104b17d5bde7c4d485a6',1,'InquiryResponse']]],
['responsedataformat_5150',['ResponseDataFormat',['../struct_inquiry_response.html#a801e10546dedbd134568bef84f1b287a',1,'InquiryResponse']]],