button_obj.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include "freertos/FreeRTOS.h"
  7. #include "freertos/task.h"
  8. #include "esp_system.h"
  9. #include "iot_button.h"
  10. CButton::CButton(gpio_num_t gpio_num, button_active_t active_level)
  11. {
  12. m_btn_handle = iot_button_create(gpio_num, active_level);
  13. }
  14. CButton::~CButton()
  15. {
  16. iot_button_delete(m_btn_handle);
  17. m_btn_handle = NULL;
  18. }
  19. esp_err_t CButton::set_evt_cb(button_cb_type_t type, button_cb cb, void* arg)
  20. {
  21. return iot_button_set_evt_cb(m_btn_handle, type, cb, arg);
  22. }
  23. esp_err_t CButton::set_serial_cb(button_cb cb, void* arg, TickType_t interval_tick, uint32_t start_after_sec)
  24. {
  25. return iot_button_set_serial_cb(m_btn_handle, start_after_sec, interval_tick, cb, arg);
  26. }
  27. esp_err_t CButton::add_custom_cb(uint32_t press_sec, button_cb cb, void* arg)
  28. {
  29. return iot_button_add_custom_cb(m_btn_handle, press_sec, cb, arg);
  30. }
  31. esp_err_t CButton::rm_cb(button_cb_type_t type)
  32. {
  33. return iot_button_rm_cb(m_btn_handle, type);
  34. }