forked from xiaozhi/xiaozhi-esp32
fix duplex bug
This commit is contained in:
@@ -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(tx_handle_, &std_cfg));
|
||||||
ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_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");
|
ESP_LOGI(TAG, "Duplex channels created");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,15 +30,28 @@ Button::~Button() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Button::OnPress(std::function<void()> callback) {
|
void Button::OnPressDown(std::function<void()> callback) {
|
||||||
if (button_handle_ == nullptr) {
|
if (button_handle_ == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
on_press_ = callback;
|
on_press_down_ = callback;
|
||||||
iot_button_register_cb(button_handle_, BUTTON_PRESS_DOWN, [](void* handle, void* usr_data) {
|
iot_button_register_cb(button_handle_, BUTTON_PRESS_DOWN, [](void* handle, void* usr_data) {
|
||||||
Button* button = static_cast<Button*>(usr_data);
|
Button* button = static_cast<Button*>(usr_data);
|
||||||
if (button->on_press_) {
|
if (button->on_press_down_) {
|
||||||
button->on_press_();
|
button->on_press_down_();
|
||||||
|
}
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Button::OnPressUp(std::function<void()> 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<Button*>(usr_data);
|
||||||
|
if (button->on_press_up_) {
|
||||||
|
button->on_press_up_();
|
||||||
}
|
}
|
||||||
}, this);
|
}, this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ public:
|
|||||||
Button(gpio_num_t gpio_num);
|
Button(gpio_num_t gpio_num);
|
||||||
~Button();
|
~Button();
|
||||||
|
|
||||||
void OnPress(std::function<void()> callback);
|
void OnPressDown(std::function<void()> callback);
|
||||||
|
void OnPressUp(std::function<void()> callback);
|
||||||
void OnLongPress(std::function<void()> callback);
|
void OnLongPress(std::function<void()> callback);
|
||||||
void OnClick(std::function<void()> callback);
|
void OnClick(std::function<void()> callback);
|
||||||
void OnDoubleClick(std::function<void()> callback);
|
void OnDoubleClick(std::function<void()> callback);
|
||||||
@@ -19,7 +20,8 @@ private:
|
|||||||
button_handle_t button_handle_;
|
button_handle_t button_handle_;
|
||||||
|
|
||||||
|
|
||||||
std::function<void()> on_press_;
|
std::function<void()> on_press_down_;
|
||||||
|
std::function<void()> on_press_up_;
|
||||||
std::function<void()> on_long_press_;
|
std::function<void()> on_long_press_;
|
||||||
std::function<void()> on_click_;
|
std::function<void()> on_click_;
|
||||||
std::function<void()> on_double_click_;
|
std::function<void()> on_double_click_;
|
||||||
|
|||||||
Reference in New Issue
Block a user