39 lines
1018 B
C++
39 lines
1018 B
C++
#ifndef PROFILING_BUTTON_CONFIG_H
|
|
#define PROFILING_BUTTON_CONFIG_H
|
|
|
|
#include <Arduino.h> // LOW, HIGH
|
|
#include <ButtonConfig.h>
|
|
|
|
namespace ace_button {
|
|
|
|
/**
|
|
* A subclass of ButtonConfig which overrides readButton() so that the
|
|
* AutoBenchmark sketch can inject button clicks into the AceButton::check()
|
|
* loop, which we can use to collect timing stats.
|
|
*/
|
|
class ProfilingButtonConfig: public ButtonConfig {
|
|
public:
|
|
ProfilingButtonConfig():
|
|
mButtonState(HIGH) {}
|
|
|
|
void init() override {
|
|
ButtonConfig::init();
|
|
mButtonState = HIGH;
|
|
}
|
|
|
|
int readButton(uint8_t /* pin */) override { return mButtonState; }
|
|
|
|
/** Set the state of the fake physical button. */
|
|
void setButtonState(int buttonState) { mButtonState = buttonState; }
|
|
|
|
private:
|
|
// Disable copy-constructor and assignment operator
|
|
ProfilingButtonConfig(const ProfilingButtonConfig&) = delete;
|
|
ProfilingButtonConfig& operator=(const ProfilingButtonConfig&) = delete;
|
|
|
|
int mButtonState;
|
|
};
|
|
|
|
}
|
|
#endif
|