31 virtual bool begin() {
return true; }
124 setValue(source.buffer, source.buffer_size, source.memory_type);
126 source.setValue(
nullptr, 0, source.memory_type);
171 if (
buffer ==
nullptr)
return 0;
185 for (
size_t j = 0;
j < len;
j++) {
196 if (
buffer ==
nullptr)
return 0;
225 while (count < len) {
245 virtual void end()
override {
251 virtual void clear(
bool reset =
false) {
264 LOGW(
"data is read only");
294#if defined(USE_PSRAM) && defined(ARDUINO)
349 if (
this == &source)
return;
453template <
class T =
int16_t>
476 if (
newInfo.bits_per_sample !=
sizeof(
T) * 8) {
477 LOGE(
"Wrong bits_per_sample: %d",
newInfo.bits_per_sample);
534 LOGD(
"GeneratedSoundStream::readBytes: %u", (
unsigned int)len);
570 if (buffer_size > 0)
resize(buffer_size);
576 if (buffer_size > 0)
resize(buffer_size);
582 if (buffer_size > 0)
resize(buffer_size);
588 if (buffer_size > 0)
resize(buffer_size);
594 if (buffer_size > 0)
resize(buffer_size);
616 for (
int j = 0;
j < len;
j++) {
671 if (
p_in ==
nullptr)
return 0;
728template <
typename T =
int16_t>
1074 if (
p_print ==
nullptr)
return 0;
1080 if (
p_print ==
nullptr)
return 0;
1099 if (byte_rate == 0) {
1100 LOGE(
"Audio Info not defined");
1189 if (
p_in ==
nullptr)
return 0;
1194 if (
p_in ==
nullptr) {
1212 LOGD(
"wait us: %ld",
static_cast<long>(
waitUs));
1218 LOGD(
"negative delay!")
1252template <
typename T=
int16_t,
typename SumT=
float>
1267 if (index <
size()) {
1271 LOGE(
"Invalid index %d - max is %d", index,
size() - 1);
1291 LOGE(
"Invalid index %d - max is %d", index,
size() - 1);
1311 LOGW(
"readBytes: %d", (
int)len);
1375 for (
int i = 0; i <
streams.size(); i++) {
1433 for (
int j = 0;
j <
size();
j++) {
1460template <
typename T>
1494 LOGD(
"readBytes: %d", (
int)len);
1495 T *p_data = (
T *)data;
1499 for (
int j = 0;
j < frames;
j++) {
1500 for (
int i = 0; i <
records.size(); i++) {
1521 records[channel].weight = weight;
1535 int result =
records[0].stream->available();
1537 int tmp =
records[
j].stream->available();
1672 size_t result = len;
1722template <
typename T =
int16_t,
class TF =
float>
1756 LOGE(
"channels must not be 0");
1768 if (
p_print ==
nullptr)
return 0;
1776 result =
converter.convert(data, result);
1786 if (
p_print ==
nullptr)
return 0;
1843 LOGI(
"VolumeMeter::setAudioInfo: channels %d", channels);
1855 size_t result = len;
1856 if (
p_out !=
nullptr) {
1877 LOGE(
"begin not called!");
1881 LOGE(
"invalid channel %d", channel);
1925 return total / count;
1993 if (data ==
nullptr || len == 0)
return;
2014 template <
typename T>
2053 unsigned long current_time =
millis();
2336 LOGI(
"sample_rate: %u -> time: %u milliseconds",
2415 unsigned long ms =
millis();
2445 if (
src !=
nullptr) {
2458 if (
src->buffer->writeArray(
src->frame, available_bytes) !=
2464 if (
src->buffer !=
nullptr &&
src->frame !=
nullptr &&
2465 src->frameSize > 0) {
2467 src->buffer->readArray(
src->frame,
src->frameSize);
2468 if (available_bytes !=
2469 src->frameCallback(
src->frame, available_bytes)) {
2470 LOGE(
"data underflow");
2474 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