@@ -52,8 +52,6 @@ I2SClass::I2SClass(uint8_t deviceIndex, uint8_t clockGenerator, uint8_t sdPin, u
52
52
_output_ring_buffer(NULL ),
53
53
_i2s_dma_buffer_size(128 ), // Number of frames in each DMA buffer. Frame size = number of channels * Bytes per sample; Must be between 8 and 1024
54
54
_driveClock(true ),
55
- _peek_buff(0 ),
56
- _peek_buff_valid(false ),
57
55
_nesting_counter(0 ),
58
56
59
57
_onTransmit(NULL ),
@@ -621,11 +619,6 @@ int I2SClass::read(void* buffer, size_t size){
621
619
size_t item_size = 0 ;
622
620
void *tmp_buffer;
623
621
if (_input_ring_buffer != NULL ){
624
- if (_peek_buff_valid){
625
- memcpy (buffer, &_peek_buff, _bitsPerSample/8 );
626
- _peek_buff_valid = false ;
627
- requested_size -= _bitsPerSample/8 ;
628
- }
629
622
tmp_buffer = xRingbufferReceiveUpTo (_input_ring_buffer, &item_size, pdMS_TO_TICKS (1000 ), requested_size);
630
623
if (tmp_buffer != NULL ){
631
624
memcpy (buffer, tmp_buffer, item_size);
@@ -758,24 +751,17 @@ size_t I2SClass::write_nonblocking(const void *buffer, size_t size){
758
751
*/
759
752
int I2SClass::peek (){
760
753
_take_if_not_holding ();
761
- int ret = 0 ;
762
- if (_initialized && _input_ring_buffer != NULL && !_peek_buff_valid){
754
+ if (_initialized && _input_ring_buffer != NULL ){
763
755
size_t item_size = 0 ;
764
756
void *item = NULL ;
765
757
766
758
item = xRingbufferReceiveUpTo (_input_ring_buffer, &item_size, 0 , _bitsPerSample/8 ); // fetch 1 sample
767
759
if (item != NULL && item_size == _bitsPerSample/8 ){
768
- _peek_buff = *((int *)item);
769
- vRingbufferReturnItem (_input_ring_buffer, item);
770
- _peek_buff_valid = true ;
760
+ return *((int *)item);
771
761
}
772
-
773
762
} // if(_initialized)
774
- if (_peek_buff_valid){
775
- ret = _peek_buff;
776
- }
777
763
_give_if_top_call ();
778
- return ret ;
764
+ return 0 ;
779
765
}
780
766
// Requests data from ring buffer and writes data to I2S module
781
767
// note: it is NOT necessary to call the flush after writes. Buffer is flushed automatically after receiveing enough data.
0 commit comments