Skip to content

Commit a614f90

Browse files
committed
Buffer read and peek return bool
1 parent a9acb47 commit a614f90

File tree

14 files changed

+299
-237
lines changed

14 files changed

+299
-237
lines changed

examples/build-arch-log.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ esp32:esp32:esp32s3 ./examples-stream/streams-generator-serial -> rc=0
44
esp32:esp32:esp32s2 ./examples-stream/streams-generator-serial -> rc=0
55
esp32:esp32:esp32c6 ./examples-stream/streams-generator-serial -> rc=0
66
esp32:esp32:esp32h2 ./examples-stream/streams-generator-serial -> rc=0
7-
esp8266:esp8266:generic ./examples-stream/streams-generator-serial -> rc=0
7+
esp8266:esp8266:generic ./examples-stream/streams-generator-serial -> rc=1
88
rp2040:rp2040:generic ./examples-stream/streams-generator-serial -> rc=0
9-
arduino:avr:nano ./examples-stream/streams-generator-serial -> rc=0
9+
arduino:avr:nano ./examples-stream/streams-generator-serial -> rc=1
1010
arduino:samd:arduino_zero_native ./examples-stream/streams-generator-serial -> rc=0
1111
arduino:renesas_uno:unor4wifi ./examples-stream/streams-generator-serial -> rc=0
1212
arduino:mbed_nano:nano33ble ./examples-stream/streams-generator-serial -> rc=0
13-
arduino:zephyr:nano33ble ./examples-stream/streams-generator-serial -> rc=0
14-
arduino:mbed_rp2040:pico ./examples-stream/streams-generator-serial -> rc=0
13+
arduino:zephyr:nano33ble ./examples-stream/streams-generator-serial -> rc=1
14+
arduino:mbed_rp2040:pico ./examples-stream/streams-generator-serial -> rc=1
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include "AudioTools.h"
2+
#include "AudioTools/AudioLibs/All.h"
3+
4+
void setup(){}
5+
6+
void loop(){}

src/AudioTools/AudioLibs/All.h

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#pragma once
2+
// include to identify future compile errors
3+
#include "A2DPStream.h"
4+
#include "AudioFFT.h"
5+
#include "HLSStream.h"
6+
#include "R2ROutput.h"
7+
#include "AudioKissFFT.h"
8+
#include "I2SCodecStream.h"
9+
#include "AudioBoardStream.h"
10+
#include "AudioKit.h"
11+
#include "RTSP.h"
12+
#include "AudioClientRTSP.h"
13+
#include "LEDOutput.h"
14+
#include "SPDIFOutput.h"
15+
#include "StdioStream.h"
16+
#include "AudioEffectsSuite.h"
17+
#include "AudioServerEx.h"
18+
#include "MaximilianDSP.h"
19+
#include "TfLiteAudioStream.h"
20+
#include "AudioSTK.h"
21+
#include "MemoryManager.h"
22+
#include "AudioESP32ULP.h"
23+
#include "Concurrency.h"
24+
#include "VBANStream.h"
25+
#include "MozziStream.h"
26+
#include "VS1053Stream.h"
27+
#include "PIDController.h"
28+
#include "FFTEffects.h"
29+
//#include "WM8960Stream.h"
30+
//#include "AudioFaustDSP.h"
31+
//#include "AudioFaust.h"
32+
//#include "PureDataStream.h"
33+
//#include "Jupyter.h"
34+
//#include "PortAudioStream.h"
35+
//#include "MiniAudioStream.h"
36+
//#include "AudioCmsisFFT.h"
37+
//#include "AudioRealFFT.h"
38+
//#include "AudioESP32FFT.h"
39+
//#include "AudioEspressifFFT.h"
40+
//#include "LEDOutputUnoR4.h"
41+
//#include "AudioMP34DT05.h"
42+
//#include "AudioESP8266.h"
43+
//#include "FFTDisplay.h"

src/AudioTools/Concurrency/RP2040/BufferRP2040.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,15 @@ class BufferRP2040T : public BaseBuffer<T> {
6969
}
7070

7171
// reads a single value
72-
T read() {
73-
T data = 0;
74-
readArray(&data, 1);
75-
return data;
72+
bool read(T& data) {
73+
return readArray(&data, 1)==1;
7674
}
7775

76+
7877
// peeks the actual entry from the buffer
79-
T peek() {
80-
LOGE("peek not implmented");
81-
return 0;
78+
bool peek(T &result) override {
79+
LOGE("peek not implemented");
80+
return false;
8281
}
8382

8483
// reads multiple values

src/AudioTools/Concurrency/RTOS/BufferRTOS.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,9 @@ class BufferRTOS : public BaseBuffer<T> {
6767
void setReadFromISR(bool active) { read_from_isr = active; }
6868

6969
// reads a single value
70-
T read() override {
70+
bool read(T &result) override {
7171
T data = 0;
72-
readArray(&data, sizeof(T));
73-
return data;
72+
return readArray(&data, 1)==1;
7473
}
7574

7675
// reads multiple values
@@ -112,9 +111,9 @@ class BufferRTOS : public BaseBuffer<T> {
112111
}
113112

114113
// peeks the actual entry from the buffer
115-
T peek() override {
116-
LOGE("peek not implmented");
117-
return 0;
114+
bool peek(T &result) override {
115+
LOGE("peek not implemented");
116+
return false;
118117
}
119118

120119
// checks if the buffer is full

src/AudioTools/Concurrency/SynchronizedBuffer.h

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
#pragma once
32
#include "AudioToolsConfig.h"
43
#include "AudioTools/CoreAudio/AudioTypes.h"
@@ -28,41 +27,31 @@ class SynchronizedBuffer : public BaseBuffer<T> {
2827
}
2928

3029
// reads a single value
31-
T read() override {
30+
bool read(T &result) override {
3231
TRACED();
3332
LockGuard guard(p_mutex);
34-
return p_buffer->read();
33+
return p_buffer->read(result);
3534
}
3635

3736
// reads multiple values
3837
int readArray(T data[], int len) {
3938
TRACED();
4039
LockGuard guard(p_mutex);
4140
int lenResult = MIN(len, available());
42-
for (int j = 0; j < lenResult; j++) {
43-
data[j] = p_buffer->read();
44-
}
45-
return lenResult;
41+
return p_buffer->readArray(data, lenResult);
4642
}
4743

4844
int writeArray(const T data[], int len) {
4945
LOGD("%s: %d", LOG_METHOD, len);
5046
LockGuard guard(p_mutex);
51-
int result = 0;
52-
for (int j = 0; j < len; j++) {
53-
if (p_buffer->write(data[j]) == 0) {
54-
break;
55-
}
56-
result = j + 1;
57-
}
58-
return result;
47+
return p_buffer->writeArray(data, len);
5948
}
6049

6150
// peeks the actual entry from the buffer
62-
T peek() override {
51+
bool peek(T &result) override {
6352
TRACED();
6453
LockGuard guard(p_mutex);
65-
return p_buffer->peek();
54+
return p_buffer->peek(result);
6655
}
6756

6857
// checks if the buffer is full

src/AudioTools/CoreAudio/AudioAnalog/AnalogAudioArduino.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,9 @@ class AnalogAudioArduino : public AudioStream {
242242
// Logic for writing audio data
243243
} else if (self->config.rx_tx_mode == TX_MODE) {
244244
int channels = self->config.channels;
245+
uint8_t sample = 0;
245246
for (int j = 0; j < channels; j++) {
246-
int16_t sample = self->buffer->read();
247+
self->buffer->read(sample);
247248
int pin = self->config.pins_data[j];
248249
analogWrite(pin, sample);
249250
//LOGW("analogWrite(%d, %d)", pin, sample);

src/AudioTools/CoreAudio/AudioEffects/AudioEffect.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,9 @@ class PitchShift : public AudioEffect {
441441
if (!active())
442442
return input;
443443
buffer.write(input);
444-
return buffer.read();
444+
effect_t result;
445+
buffer.read(result);
446+
return result;
445447
}
446448

447449
PitchShift *clone() { return new PitchShift(*this); }

0 commit comments

Comments
 (0)