31 virtual bool begin() {
return true; }
112 setValue(source.buffer, source.buffer_size, source.memory_type);
114 source.setValue(
nullptr, 0, source.memory_type);
159 if (
buffer ==
nullptr)
return 0;
173 for (
size_t j = 0;
j < len;
j++) {
184 if (
buffer ==
nullptr)
return 0;
213 while (count < len) {
233 virtual void end()
override {
239 virtual void clear(
bool reset =
false) {
252 LOGW(
"data is read only");
282#if defined(USE_PSRAM) && defined(ARDUINO)
337 if (
this == &source)
return;
441template <
class T =
int16_t>
464 if (
newInfo.bits_per_sample !=
sizeof(
T) * 8) {
465 LOGE(
"Wrong bits_per_sample: %d",
newInfo.bits_per_sample);
522 LOGD(
"GeneratedSoundStream::readBytes: %u", (
unsigned int)len);
558 if (buffer_size > 0)
resize(buffer_size);
564 if (buffer_size > 0)
resize(buffer_size);
570 if (buffer_size > 0)
resize(buffer_size);
576 if (buffer_size > 0)
resize(buffer_size);
582 if (buffer_size > 0)
resize(buffer_size);
604 for (
int j = 0;
j < len;
j++) {
659 if (
p_in ==
nullptr)
return 0;
716template <
typename T =
int16_t>
1062 if (
p_print ==
nullptr)
return 0;
1068 if (
p_print ==
nullptr)
return 0;
1087 if (byte_rate == 0) {
1088 LOGE(
"Audio Info not defined");
1177 if (
p_in ==
nullptr)
return 0;
1182 if (
p_in ==
nullptr) {
1200 LOGD(
"wait us: %ld",
static_cast<long>(
waitUs));
1206 LOGD(
"negative delay!")
1240template <
typename T=
int16_t,
typename SumT=
float>
1255 if (index <
size()) {
1259 LOGE(
"Invalid index %d - max is %d", index,
size() - 1);
1279 LOGE(
"Invalid index %d - max is %d", index,
size() - 1);
1299 LOGW(
"readBytes: %d", (
int)len);
1363 for (
int i = 0; i <
streams.size(); i++) {
1421 for (
int j = 0;
j <
size();
j++) {
1448template <
typename T>
1482 LOGD(
"readBytes: %d", (
int)len);
1483 T *p_data = (
T *)data;
1487 for (
int j = 0;
j < frames;
j++) {
1488 for (
int i = 0; i <
records.size(); i++) {
1509 records[channel].weight = weight;
1523 int result =
records[0].stream->available();
1525 int tmp =
records[
j].stream->available();
1660 size_t result = len;
1710template <
typename T =
int16_t,
class TF =
float>
1740 LOGE(
"Inconsistent number of channels");
1748 LOGE(
"channels must not be 0");
1795 LOGE(
"p_converter is null");
1845 LOGI(
"VolumeMeter::setAudioInfo: channels %d", channels);
1857 size_t result = len;
1858 if (
p_out !=
nullptr) {
1879 LOGE(
"begin not called!");
1883 LOGE(
"invalid channel %d", channel);
1927 return total / count;
1995 if (data ==
nullptr || len == 0)
return;
2016 template <
typename T>
2055 unsigned long current_time =
millis();
2338 LOGI(
"sample_rate: %u -> time: %u milliseconds",
2417 unsigned long ms =
millis();
2447 if (
src !=
nullptr) {
2460 if (
src->buffer->writeArray(
src->frame, available_bytes) !=
2466 if (
src->buffer !=
nullptr &&
src->frame !=
nullptr &&
2467 src->frameSize > 0) {
2469 src->buffer->readArray(
src->frame,
src->frameSize);
2470 if (available_bytes !=
2471 src->frameCallback(
src->frame, available_bytes)) {
2472 LOGE(
"data underflow");
2476 src->measureSampleRate();
#define LOGW(...)
Definition AudioLoggerIDF.h:29
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define TRACED()
Definition AudioLoggerIDF.h:31
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGD(...)
Definition AudioLoggerIDF.h:27
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define IRAM_ATTR
Definition AudioStreams.h:13
#define MIN(A, B)
Definition AudioTypes.h:17
#define DEFAULT_BUFFER_SIZE
Definition avr.h:20
#define assert(T)
Definition avr.h:10
#define URL_CLIENT_TIMEOUT
Definition esp8266.h:23
MemoryType
Memory types.
Definition AudioTypes.h:37
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition AudioTypes.h:30
@ RAM
Definition AudioTypes.h:37
@ PS_RAM
Definition AudioTypes.h:37
@ FLASH_RAM
Definition AudioTypes.h:37
@ RX_MODE
Definition AudioTypes.h:30
@ US
Definition AudioTypes.h:48