95 ESP_LOGW(TAG,
"Buffer overflow");
101 uint32_t last_index = s.buffer_start;
102 if (last_index == s.buffer_read) {
104 if (s.buffer_read == s.buffer_start && s.buffer_write != s.buffer_start &&
105 micros() - s.prev_micros >= this->idle_us_) {
106 commit_value(&s, s.prev_micros, s.prev_level);
107 write_value(&s, s.idle_us, !s.commit_level);
108 last_index = s.buffer_start;
111 if (last_index == s.buffer_read) {
116 uint32_t temp_read = s.buffer_read;
117 uint32_t reserve_size = 0;
118 while (temp_read != last_index && (uint32_t) std::abs(s.buffer[temp_read]) < this->idle_us_) {
121 if (temp_read >= s.buffer_size) {
126 this->
temp_.reserve(reserve_size + 1);
129 for (uint32_t i = 0; i < reserve_size + 1; i++) {
130 this->
temp_.push_back((int32_t) s.buffer[s.buffer_read++]);
131 if (s.buffer_read >= s.buffer_size) {