#ifndef BUTTON_H_ #define BUTTON_H_ #include #include #include class Button { public: #if CONFIG_SOC_ADC_SUPPORTED Button(const button_adc_config_t& cfg); #endif Button(gpio_num_t gpio_num, bool active_high = false); ~Button(); void OnPressDown(std::function callback); void OnPressUp(std::function callback); void OnLongPress(std::function callback); void OnClick(std::function callback); void OnDoubleClick(std::function callback); private: gpio_num_t gpio_num_; button_handle_t button_handle_ = nullptr; std::function on_press_down_; std::function on_press_up_; std::function on_long_press_; std::function on_click_; std::function on_double_click_; }; #endif // BUTTON_H_