AceButton 1.10.0 An adjustable, compact, event-driven button library for Arduino.

Public Member Functions | List of all members
ace_button::ButtonConfigFast1< T_PIN0 > Class Template Reference

An implementation of ButtonConfig that uses digitalReadFast() instead of digitalRead() to support 1 button. More...

`#include <ButtonConfigFast1.h>`

Inheritance diagram for ace_button::ButtonConfigFast1< T_PIN0 >:
[legend]
Collaboration diagram for ace_button::ButtonConfigFast1< T_PIN0 >:
[legend]

## Public Member Functions
int | readButton (uint8_t) override
| Return the HIGH or LOW state of the button. More...
Public Member Functions inherited from ace_button::ButtonConfig
| ButtonConfig ()=default
| Constructor.
virtual | ~ButtonConfig ()=default
| If the ButtonConfig is created and deleted on the heap, a virtual destructor is technically required by the C++ language to prevent memory leaks. More...
uint16_t | getDebounceDelay () const
| Milliseconds to wait for debouncing.
uint16_t | getClickDelay () const
| Milliseconds to wait for a possible click.
uint16_t | getDoubleClickDelay () const
| Milliseconds between the first and second click to register as a double-click.
uint16_t | getLongPressDelay () const
| Milliseconds for a long press event.
uint16_t | getRepeatPressDelay () const
| Milliseconds that a button needs to be Pressed down before the start of the sequence of RepeatPressed events. More...
uint16_t | getRepeatPressInterval () const
| Milliseconds between two successive RepeatPressed events.
uint16_t | getHeartBeatInterval () const
| Milliseconds between two successive HeartBeat events.
void | setDebounceDelay (uint16_t debounceDelay)
| Set the debounceDelay milliseconds.
void | setClickDelay (uint16_t clickDelay)
| Set the clickDelay milliseconds.
void | setDoubleClickDelay (uint16_t doubleClickDelay)
| Set the doubleClickDelay milliseconds.
void | setLongPressDelay (uint16_t longPressDelay)
| Set the longPressDelay milliseconds.
void | setRepeatPressDelay (uint16_t repeatPressDelay)
| Set the repeatPressDelay milliseconds.
void | setRepeatPressInterval (uint16_t repeatPressInterval)
| Set the repeatPressInterval milliseconds.
void | setHeartBeatInterval (uint16_t heartBeatInterval)
| Set the heartBeatInterval milliseconds.
virtual unsigned long | getClock ()
| Return the milliseconds of the internal clock. More...
bool | isFeature (FeatureFlagType features) const
| Check if the given features are enabled.
void | setFeature (FeatureFlagType features)
| Enable the given features.
void | clearFeature (FeatureFlagType features)
| Disable the given features.
void | resetFeatures ()
| Disable all (externally visible) features. More...
EventHandler | getEventHandler () const ACE_BUTTON_DEPRECATED
| Return the eventHandler function pointer. More...
void | dispatchEvent (AceButton *button, uint8_t eventType, uint8_t buttonState) const
| Dispatch the event to the handler. More...
void | setEventHandler (EventHandler eventHandler)
| Install the EventHandler function pointer. More...
void | setIEventHandler (IEventHandler *eventHandler)
| Install the IEventHandler object pointer. More...

## Additional Inherited Members
Public Types inherited from ace_button::ButtonConfig
typedef uint16_t | FeatureFlagType
| Type of the feature flag. More...
typedef void(* | EventHandler) (AceButton *button, uint8_t eventType, uint8_t buttonState)
| The event handler signature. More...
Static Public Member Functions inherited from ace_button::ButtonConfig
static ButtonConfig * | getSystemButtonConfig ()
| Return a pointer to the singleton instance of the ButtonConfig which is attached to all AceButton instances by default.
Static Public Attributes inherited from ace_button::ButtonConfig
static const uint16_t | kDebounceDelay = 20
| Default milliseconds returned by getDebounceDelay().
static const uint16_t | kClickDelay = 200
| Default milliseconds returned by getClickDelay().
static const uint16_t | kDoubleClickDelay = 400
| Default milliseconds returned by getDoubleClickDelay().
static const uint16_t | kLongPressDelay = 1000
| Default milliseconds returned by getLongPressDelay().
static const uint16_t | kRepeatPressDelay = 1000
| Default milliseconds returned by getRepeatPressDelay().
static const uint16_t | kRepeatPressInterval = 200
| Default milliseconds returned by getRepeatPressInterval().
static const uint16_t | kHeartBeatInterval = 5000
| Default milliseconds returned by getHeartBeatInterval().
static const FeatureFlagType | kFeatureClick = 0x01
| Flag to activate the AceButton::kEventClicked event.
static const FeatureFlagType | kFeatureDoubleClick = 0x02
| Flag to activate the AceButton::kEventDoubleClicked event. More...
static const FeatureFlagType | kFeatureLongPress = 0x04
| Flag to activate the AceButton::kEventLongPress event.
static const FeatureFlagType | kFeatureRepeatPress = 0x08
| Flag to activate the AceButton::kEventRepeatPressed event.
static const FeatureFlagType | kFeatureSuppressAfterClick = 0x10
| Flag to suppress kEventReleased after a kEventClicked.
static const FeatureFlagType | kFeatureSuppressAfterDoubleClick = 0x20
| Flag to suppress kEventReleased after a kEventDoubleClicked. More...
static const FeatureFlagType | kFeatureSuppressAfterLongPress = 0x40
| Flag to suppress kEventReleased after a kEventLongPressed.
static const FeatureFlagType | kFeatureSuppressAfterRepeatPress = 0x80
| Flag to suppress kEventReleased after a kEventRepeatPressed.
static const FeatureFlagType | kFeatureSuppressClickBeforeDoubleClick = 0x100
| Flag to suppress kEventClicked before a kEventDoubleClicked. More...
static const FeatureFlagType | kFeatureHeartBeat = 0x200
| Flag to enable periodic kEventHeartBeat.
static const FeatureFlagType | kInternalFeatureIEventHandler = 0x8000
| Internal flag to indicate that mEventHandler is an IEventHandler object pointer instead of an EventHandler function pointer.
static const FeatureFlagType | kFeatureSuppressAll
| Convenience flag to suppress all suppressions. More...

## Detailed Description

### template<uint8_t T_PIN0>
class ace_button::ButtonConfigFast1< T_PIN0 >

An implementation of ButtonConfig that uses digitalReadFast() instead of digitalRead() to support 1 button.

The primary motivation for using digitalReadFast() in this library is the reduction of flash memory, not the improvement in performance.

Template Parameters

  T_PIN0 | physical pin used by button 0

Definition at line 41 of file ButtonConfigFast1.h.

## Member Function Documentation

## ◆ readButton()

template<uint8_t T_PIN0>

int ace_button::ButtonConfigFast1< T_PIN0 >::readButton | ( | uint8_t | pin | ) |
| inline override virtual

Return the HIGH or LOW state of the button.

Override to use something other than digitalRead(). The return type is 'int' instead of uint16_t because that's the return type of digitalRead().

Note: This should have been a const function. I cannot change it now without breaking backwards compatibility.

Reimplemented from ace_button::ButtonConfig.

Definition at line 43 of file ButtonConfigFast1.h.

The documentation for this class was generated from the following file:

- /home/brian/src/AceButton/src/ace_button/fast/ButtonConfigFast1.h