diff --git a/main/audio_codecs/no_audio_codec.cc b/main/audio_codecs/no_audio_codec.cc index ef12bf50..d92d7944 100644 --- a/main/audio_codecs/no_audio_codec.cc +++ b/main/audio_codecs/no_audio_codec.cc @@ -65,8 +65,6 @@ NoAudioCodec::NoAudioCodec(int input_sample_rate, int output_sample_rate, gpio_n }; ESP_ERROR_CHECK(i2s_channel_init_std_mode(tx_handle_, &std_cfg)); ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_handle_, &std_cfg)); - ESP_ERROR_CHECK(i2s_channel_enable(tx_handle_)); - ESP_ERROR_CHECK(i2s_channel_enable(rx_handle_)); ESP_LOGI(TAG, "Duplex channels created"); } diff --git a/main/boards/common/button.cc b/main/boards/common/button.cc index 15dc3b80..837bfd66 100644 --- a/main/boards/common/button.cc +++ b/main/boards/common/button.cc @@ -30,15 +30,28 @@ Button::~Button() { } } -void Button::OnPress(std::function callback) { +void Button::OnPressDown(std::function callback) { if (button_handle_ == nullptr) { return; } - on_press_ = callback; + on_press_down_ = callback; iot_button_register_cb(button_handle_, BUTTON_PRESS_DOWN, [](void* handle, void* usr_data) { Button* button = static_cast(usr_data); - if (button->on_press_) { - button->on_press_(); + if (button->on_press_down_) { + button->on_press_down_(); + } + }, this); +} + +void Button::OnPressUp(std::function callback) { + if (button_handle_ == nullptr) { + return; + } + on_press_up_ = callback; + iot_button_register_cb(button_handle_, BUTTON_PRESS_UP, [](void* handle, void* usr_data) { + Button* button = static_cast(usr_data); + if (button->on_press_up_) { + button->on_press_up_(); } }, this); } diff --git a/main/boards/common/button.h b/main/boards/common/button.h index 347df5c0..a43dc352 100644 --- a/main/boards/common/button.h +++ b/main/boards/common/button.h @@ -10,7 +10,8 @@ public: Button(gpio_num_t gpio_num); ~Button(); - void OnPress(std::function callback); + 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); @@ -19,7 +20,8 @@ private: button_handle_t button_handle_; - std::function on_press_; + std::function on_press_down_; + std::function on_press_up_; std::function on_long_press_; std::function on_click_; std::function on_double_click_;