<divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> Permission is hereby granted, free of charge, to any person obtaining a copy of</span></div>
<divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> this software and associated documentation files (the "Software"), to deal in</span></div>
<divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> the Software without restriction, including without limitation the rights to</span></div>
<divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment"> the Software, and to permit persons to whom the Software is furnished to do so,</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> subject to the following conditions:</span></div>
<divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> The above copyright notice and this permission notice shall be included in all</span></div>
<divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> copies or substantial portions of the Software.</span></div>
<divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
<divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS</span></div>
<divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> <spanclass="comment"> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR</span></div>
<divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER</span></div>
<divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="comment"> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
<divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="comment"> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span></div>
<divclass="line"><aname="l00025"></a><spanclass="lineno"> 25</span> <spanclass="comment"> Main code by Thomas O Fredericks (tof@t-o-f.info)</span></div>
<divclass="line"><aname="l00026"></a><spanclass="lineno"> 26</span> <spanclass="comment"> Previous contributions by Eric Lowry, Jim Schimpf and Tom Harkaway</span></div>
<divclass="line"><aname="l00039"></a><spanclass="lineno"> 39</span> <spanclass="comment">// Uncomment the following line for "LOCK-OUT" debounce method</span></div>
<divclass="line"><aname="l00042"></a><spanclass="lineno"> 42</span> <spanclass="comment">// Uncomment the following line for "BOUNCE_WITH_PROMPT_DETECTION" debounce method</span></div>
<divclass="line"><aname="l00064"></a><spanclass="lineno"> 64</span> <spanclass="comment">// Note : this is private as it migh change in the futur</span></div>
<divclass="ttc"id="aclass_bounce2_1_1_button_html_ab9e2b89ad499fa4b052370140730b6ba"><divclass="ttname"><ahref="class_bounce2_1_1_button.html#ab9e2b89ad499fa4b052370140730b6ba">Bounce2::Button::getPressedState</a></div><divclass="ttdeci">bool getPressedState()</div><divclass="ttdoc">Get the electrical state (HIGH/LOW) that corresponds to a physical press.</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:276</div></div>
<divclass="ttc"id="aclass_debouncer_html_a1ef5a04b4ebe97352ff3bb227476035c"><divclass="ttname"><ahref="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">Debouncer::fell</a></div><divclass="ttdeci">bool fell()</div><divclass="ttdoc">Returns true if pin signal transitions from high to low.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:128</div></div>
<divclass="ttc"id="aclass_debouncer_html_a930bf3945e698d77b889f6309079857d"><divclass="ttname"><ahref="class_debouncer.html#a930bf3945e698d77b889f6309079857d">Debouncer::interval</a></div><divclass="ttdeci">void interval(uint16_t interval_millis)</div><divclass="ttdoc">Sets the debounce interval in milliseconds.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:14</div></div>
<divclass="ttc"id="aclass_debouncer_html_a2cae68910c19c778507f257842fc41bf"><divclass="ttname"><ahref="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">Debouncer::read</a></div><divclass="ttdeci">bool read()</div><divclass="ttdoc">Returns the pin's state (HIGH or LOW).</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:118</div></div>
<divclass="ttc"id="aclass_bounce_html_aa62a2e2b5ad0ee6913a95f2f2a0e7606"><divclass="ttname"><ahref="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce::Bounce</a></div><divclass="ttdeci">Bounce()</div><divclass="ttdoc">Create an instance of the Bounce class.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:138</div></div>
<divclass="ttc"id="aclass_debouncer_html_a47c83f13a03920d21fbfafd8469ec06b"><divclass="ttname"><ahref="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">Debouncer::changed</a></div><divclass="ttdeci">bool changed()</div><divclass="ttdoc">Returns true if the state changed on last update.</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:129</div></div>
<divclass="ttc"id="aclass_debouncer_html_a462994f1f9a20876b2ee239eeee97448"><divclass="ttname"><ahref="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">Debouncer::duration</a></div><divclass="ttdeci">unsigned long duration()</div><divclass="ttdoc">Returns the duration in milliseconds of the current state.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:107</div></div>
<divclass="ttc"id="aclass_debouncer_html_a9990de6fa7256842c35c246d7dea8dbb"><divclass="ttname"><ahref="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">Debouncer::rose</a></div><divclass="ttdeci">bool rose()</div><divclass="ttdoc">Returns true if pin signal transitions from low to high.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:123</div></div>
<divclass="ttc"id="aclass_bounce_html_a1cb79cb0ba2379cd12cc7c098d97053a"><divclass="ttname"><ahref="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">Bounce::pin</a></div><divclass="ttdeci">uint8_t pin</div><divclass="ttdoc">Deprecated (i.e. do not use). Included for partial compatibility for programs written with Bounce ver...</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:225</div></div>
<divclass="ttc"id="aclass_bounce2_1_1_button_html_a902d9df3cd993f80f59bcb205ed4be37"><divclass="ttname"><ahref="class_bounce2_1_1_button.html#a902d9df3cd993f80f59bcb205ed4be37">Bounce2::Button::released</a></div><divclass="ttdeci">bool released()</div><divclass="ttdoc">Returns true if the button was physically released</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:297</div></div>
<divclass="ttc"id="aclass_bounce2_1_1_button_html_a94c31de8109c89d6ee577ed9b14ea676"><divclass="ttname"><ahref="class_bounce2_1_1_button.html#a94c31de8109c89d6ee577ed9b14ea676">Bounce2::Button::isPressed</a></div><divclass="ttdeci">bool isPressed()</div><divclass="ttdoc">Returns true if the button is currently physically pressed.</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:283</div></div>
<divclass="ttc"id="aclass_bounce_html_a3417beb80eb6593d768c2e9884c57aa0"><divclass="ttname"><ahref="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">Bounce::risingEdge</a></div><divclass="ttdeci">bool risingEdge()</div><divclass="ttdoc">Deprecated (i.e. do not use). Included for partial compatibility for programs written with Bounce ver...</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:212</div></div>
<divclass="ttc"id="aclass_debouncer_html_a72f3e8d483555031d2ac21b0b7702c06"><divclass="ttname"><ahref="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">Debouncer::update</a></div><divclass="ttdeci">bool update()</div><divclass="ttdoc">Updates the pin's state.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:32</div></div>
<divclass="ttc"id="aclass_bounce2_1_1_button_html_a18710b645862d2b8f058a73aabbaf7ad"><divclass="ttname"><ahref="class_bounce2_1_1_button.html#a18710b645862d2b8f058a73aabbaf7ad">Bounce2::Button::Button</a></div><divclass="ttdeci">Button()</div><divclass="ttdoc">Create an instance of the Button class. By default, the pressed state is matched to a HIGH electrical...</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:260</div></div>
<divclass="ttc"id="aclass_bounce2_1_1_button_html_a3fbacfb9a631e03afcfaa5dc39686bad"><divclass="ttname"><ahref="class_bounce2_1_1_button.html#a3fbacfb9a631e03afcfaa5dc39686bad">Bounce2::Button::pressed</a></div><divclass="ttdeci">bool pressed()</div><divclass="ttdoc">Returns true if the button was physically pressed</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:290</div></div>
<divclass="ttc"id="aclass_debouncer_html_a89ab95e7ac24874bb8cb684dc36a98b9"><divclass="ttname"><ahref="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">Debouncer::previousDuration</a></div><divclass="ttdeci">unsigned long previousDuration()</div><divclass="ttdoc">Returns the duration in milliseconds of the previous state.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:103</div></div>
<divclass="ttc"id="aclass_bounce_html"><divclass="ttname"><ahref="class_bounce.html">Bounce</a></div><divclass="ttdoc">The Debouncer:Bounce class. Links the Deboucing class to a hardware pin.</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:166</div></div>
<divclass="ttc"id="aclass_debouncer_html"><divclass="ttname"><ahref="class_debouncer.html">Debouncer</a></div><divclass="ttdoc">The Debouce class. Just the deboucing code separated from all harware.</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:62</div></div>
<divclass="ttc"id="aclass_bounce2_1_1_button_html_a3c88b7938b26bca9dc2c7e72aedc442e"><divclass="ttname"><ahref="class_bounce2_1_1_button.html#a3c88b7938b26bca9dc2c7e72aedc442e">Bounce2::Button::setPressedState</a></div><divclass="ttdeci">void setPressedState(bool state)</div><divclass="ttdoc">Set the electrical state (HIGH/LOW) that corresponds to a physical press. By default,...</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:269</div></div>
<divclass="ttc"id="aclass_bounce_html_ac756559419bfa1c5060e5e4a4ad6406f"><divclass="ttname"><ahref="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">Bounce::fallingEdge</a></div><divclass="ttdeci">bool fallingEdge()</div><divclass="ttdoc">Deprecated (i.e. do not use). Included for partial compatibility for programs written with Bounce ver...</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:216</div></div>
<divclass="ttc"id="aclass_bounce_html_aba08e592941465d033e3eba3dde66eaf"><divclass="ttname"><ahref="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">Bounce::attach</a></div><divclass="ttdeci">void attach(int pin, int mode)</div><divclass="ttdoc">Attach to a pin and sets that pin's mode (INPUT, INPUT_PULLUP or OUTPUT).</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:149</div></div>
<divclass="ttc"id="anamespace_bounce2_html"><divclass="ttname"><ahref="namespace_bounce2.html">Bounce2</a></div><divclass="ttdoc">The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action.</div><divclass="ttdef"><b>Definition:</b> Bounce2.h:243</div></div>
<divclass="ttc"id="aclass_debouncer_html_a34c46ca04d4178933cc0049436d10fe6"><divclass="ttname"><ahref="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer::Debouncer</a></div><divclass="ttdeci">Debouncer()</div><divclass="ttdoc">Create an instance of the Debounce class.</div><divclass="ttdef"><b>Definition:</b> Bounce2.cpp:10</div></div>