11 KiB
Executable File
11 KiB
Executable File
Changelog
Note: Unreleased changes are checked in but not part of an official release (available through the Arduino IDE or PlatfomIO) yet. This allows you to test WiP features and give feedback to them.
Unreleased
- nothing, so far
[2.3.2] - 2024-02-17
- expanded condition to check for API version 2.0 (for UNO R4, RP2040, ...)
[2.3.1] - 2024-01-02
[2.3.0] - 2024-01-02
- renamed Button2 constants, they now start with
BTN_(BREAKING CHANGE) - added
Hardware.h– it implements hardware pin abstraction. Needed for unit testing - added Unit Tests
- added
resetPressedState()function - added
ESP32S2S3CapacitiveTouch.inosuggested by ryancasler in PR #57
[2.2.4] - 2023-06-22
getNumberOfClicks()now works inside a callback and after thewait()statement(s).- Refactored code in
Button2.cpp
[2.2.3] - 2023-06-21
- Included PR for issue #54
[2.2.2] - 2022-12-16
- Another stab at the bug #46
[2.2.1] - 2022-12-16
- Fixed bug #46 that in some instances long clicks are wrongly triggered
[2.2.0] - 2022-12-13
- Refactored the main
loop() - Rewrote click detection
- Cleaned up the long press handling
- Removed compiler switches – they made the code unreadable and they only saved a few bytes (could be a BREAKING CHANGE)
- Added
byte getLongClickCount()function - Updated the LongpressHandler example
- Defaults (x>3)-clicks to triple
- Fixed bug with button ID
[2.1.0] - 2022-11-03
- Removed the capacitive touch functionality out of main library. (BREAKING CHANGE). The constructor and
begin()lost a parameter. Instead I provide a custom handler example for cap. touch ESP32CapacitiveTouch.ino. For reasons, see #45. - Added an ESP32 timer interrupt example ESP32TimerInterrupt.ino based on #43.
- Added compiler switches in
Button.hto remove click detection code, as mentioned in #44. - Clarified the difference between the
setLongClickHandlerand thesetLongClickDetectedHandlerin the README and the MultiHandler example as mentioned in #41. (The handler set viasetLongClickHandlerwaits until you release the button, the second one is called as soon as the defined long-click time has passed.) - Made
byte _getState()into aconstfunction.
[2.0.3] - 2022-05-26
[2.0.2] - 2022-05-21
- Added example for the M5Stack Core2 - showing how to add a custom handler for the touch buttons.
[2.0.1] - 2022-04-22
- Fixed bug –
longclick_detected_counteris not properly initalized as mentioned in #37.
[2.0.0] - 2022-04-04
- House keeping
- Refactored
loop()- cleaned up conditions, should be easier to understand now. - Renamed
getAttachedPin()togetPin()(BREAKING CHANGE). - Fixed a bug that the first click type was falsly returned by
getClickType().
- Refactored
- Possibility define your own "_getState" function for non standard buttons as suggested in #32.
- Refactored
isPressedRaw()to also use_getState(). - Introduced a
VIRTUAL_PINconstant – using it in the constructor orbegin()will skip pin initalization. - Added
setButtonStateFunction(StateCallbackFunction f)to assign your own "_getState" function. - Added CustomButtonStateHandler.ino example.
- Refactored
- Improved click type handling.
- Added
clickTypeand removed constants for determining the click type (BREAKING CHANGE) - Renamed
getClickType()togetType()(BREAKING CHANGE) - Added
clickToStringfunction to print theclickTypeenum value
- Added
- Added IDs button instances
- Added
getID(), it returns an auto incrementedintID for the button, as suggest in #34 - Added
setID(), it allows you to set your own IDs – but then you need to ensure its uniqeness yourself
- Added
- Added possibility to use the button class inside your main
loop()function (instead of using callback handlers)- Added
bool wasPressed()function - Added
read(bool keepState = false), it returns the button press type (as aclickTypeenum) - Added
wait(bool keepState = false), it combineswasPressed()andread()methods and halts execution until a button press took place - Added
waitForClick(),waitForDouble(),waitForTriple()andwaitForLong()as well - Added ButtonLoop.ino example to showcase the "loop" functions
- Added
[1.6.5] - 2021-09-12
[1.6.4] - 2021-09-12
- Use
std::functionto allow C++ 11 lambda functions as suggested by jacobdekeizer in pull request #29
[1.6.3] - 2021-09-12
- added two new examples: MultiHandlerTwoButtons.ino and TrackDualButtonClick.ino
- added examples to the README.md
- initialized
pinin_getState() - a bit of variable clean up
- updated setting of inital state of
stateandprev_state
[1.6.2] - 2021-06-22
[1.6.1] - 2021-03-22
- updated README.md
- added
constto getter functions
[1.6.0] - 2021-02-10
- added getter/setter functions for debounce, longclick and doubleclick timeouts
- removed debounce timeout parameter from
contructorandbegin()
[1.5.4] - 2021-02-08
[1.5.3] - 2021-01-26
[1.5.2] - 2021-01-26
[1.5.1] - 2021-01-04
- Fixed a bug in the
loop()function
[1.5.0] - 2021-01-03
- Added default constructor and
begin()function - Added pull request by skelstar to add the
setLongClickDetectedHandler()function which is triggered as soon as the longclick timeout has passed
[1.4.1] - 2020-12-19
[1.4.0] - 2020-11-06
- Updated LongpressHandler example - changed variable name to from
buttontobutton - toggled
pressedandreleased(as suggesed by TommyC81 in #16) - added debug function
isPressedRaw()(as suggesed by TommyC81 in #16) - fixed bug with
click_count(as suggesed by TommyC81 in #16) - changed return types of
getNumberOfClicks()andgetClickType()tobyte
[1.3.0] - 2020-11-06
- Added capacitive touch sensor capabilties (for ESP32) (as suggested by qubolino in #11)
- Removed deprecated entry in the library.properties file (as suggested by SangLe) in #15
- Added
constmodifier to functions (as suggested by Anton-V-K in #13)
[1.2.0] - 2020-04-16
- Added possibility to define your own timeouts for clicks (as suggested by cmeldas in #10)
- Removed
yield()in mainloop()since it caused some problems - Created and added CHANGELOG.md
[1.1.0] - 2020-03-27
- Changed the private functions to protected (as suggested by Nagymadar in #9)
- Added support for active high buttons (as suggested by Nagymadar in #8)
- Added
reset()function to unset all functions (as suggested by Nagymadar in #7) - Added a
yield()command to the mainloop() - Changed the times for double and triple click
- Fixed error in
SingleButton.ino(as suggested by alexthe-red in #3) - Added the library to the Arduino IDE
[1.0.0] - 2017-11-09
- initial release
Note
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.