@@ -806,17 +806,19 @@ bool I2SClass::configureRX(uint32_t rate, i2s_data_bit_width_t bits_cfg, i2s_slo
806806
807807size_t I2SClass::readBytes (char *buffer, size_t size) {
808808 size_t bytes_read = 0 ;
809+ size_t bytes_to_read = 0 ;
809810 size_t total_size = 0 ;
810811 last_error = ESP_FAIL;
811812 if (rx_chan == NULL ) {
812813 return total_size;
813814 }
814815 while (total_size < size) {
815- bytes_read = size - total_size;
816- if (rx_transform_buf != NULL && bytes_read > I2S_READ_CHUNK_SIZE) {
817- bytes_read = I2S_READ_CHUNK_SIZE;
816+ bytes_read = 0 ;
817+ bytes_to_read = size - total_size;
818+ if (rx_transform_buf != NULL && bytes_to_read > I2S_READ_CHUNK_SIZE) {
819+ bytes_to_read = I2S_READ_CHUNK_SIZE;
818820 }
819- I2S_ERROR_CHECK_RETURN (rx_fn (rx_chan, rx_transform_buf, (char *)(buffer + total_size), bytes_read , &bytes_read, _timeout), 0 );
821+ I2S_ERROR_CHECK_RETURN (rx_fn (rx_chan, rx_transform_buf, (char *)(buffer + total_size), bytes_to_read , &bytes_read, _timeout), 0 );
820822 total_size += bytes_read;
821823 }
822824 return total_size;
@@ -825,13 +827,15 @@ size_t I2SClass::readBytes(char *buffer, size_t size) {
825827size_t I2SClass::write (const uint8_t *buffer, size_t size) {
826828 size_t written = 0 ;
827829 size_t bytes_sent = 0 ;
830+ size_t bytes_to_send = 0 ;
828831 last_error = ESP_FAIL;
829832 if (tx_chan == NULL ) {
830833 return written;
831834 }
832835 while (written < size) {
833- bytes_sent = size - written;
834- esp_err_t err = i2s_channel_write (tx_chan, (char *)(buffer + written), bytes_sent, &bytes_sent, _timeout);
836+ bytes_sent = 0 ;
837+ bytes_to_send = size - written;
838+ esp_err_t err = i2s_channel_write (tx_chan, (char *)(buffer + written), bytes_to_send, &bytes_sent, _timeout);
835839 setWriteError (err);
836840 I2S_ERROR_CHECK_RETURN (err, written);
837841 written += bytes_sent;
0 commit comments