31 virtual bool begin() {
return true; }
112 setValue(source.buffer, source.buffer_size, source.memory_type);
114 source.setValue(
nullptr, 0, source.memory_type);
152 if (
buffer ==
nullptr)
return 0;
166 for (
size_t j = 0;
j < len;
j++) {
177 if (
buffer ==
nullptr)
return 0;
206 while (count < len) {
226 virtual void end()
override {
232 virtual void clear(
bool reset =
false) {
245 LOGW(
"data is read only");
275#if defined(USE_PSRAM) && defined(ARDUINO)
323 if (
this == &source)
return;
396template <
class T =
int16_t>
413 if (
newInfo.bits_per_sample !=
sizeof(
T) * 8) {
414 LOGE(
"Wrong bits_per_sample: %d",
newInfo.bits_per_sample);
460 LOGD(
"GeneratedSoundStream::readBytes: %u", (
unsigned int)len);
493 if (buffer_size > 0)
resize(buffer_size);
499 if (buffer_size > 0)
resize(buffer_size);
505 if (buffer_size > 0)
resize(buffer_size);
511 if (buffer_size > 0)
resize(buffer_size);
517 if (buffer_size > 0)
resize(buffer_size);
539 for (
int j = 0;
j < len;
j++) {
594 if (
p_in ==
nullptr)
return 0;
651template <
typename T =
int16_t>
997 if (
p_print ==
nullptr)
return 0;
1003 if (
p_print ==
nullptr)
return 0;
1022 if (byte_rate == 0) {
1023 LOGE(
"Audio Info not defined");
1112 if (
p_in ==
nullptr)
return 0;
1117 if (
p_in ==
nullptr) {
1135 LOGD(
"wait us: %ld",
static_cast<long>(
waitUs));
1141 LOGD(
"negative delay!")
1175template <
typename T>
1190 if (index <
size()) {
1194 LOGE(
"Invalid index %d - max is %d", index,
size() - 1);
1214 LOGE(
"Invalid index %d - max is %d", index,
size() - 1);
1233 LOGW(
"readBytes: %d", (
int)len);
1297 for (
int i = 0; i <
streams.size(); i++) {
1345 for (
int j = 0;
j < samples;
j++) {
1354 for (
int j = 0;
j <
size();
j++) {
1381template <
typename T>
1415 LOGD(
"readBytes: %d", (
int)len);
1416 T *p_data = (
T *)data;
1420 for (
int j = 0;
j < frames;
j++) {
1421 for (
int i = 0; i <
records.size(); i++) {
1442 records[channel].weight = weight;
1456 int result =
records[0].stream->available();
1458 int tmp =
records[
j].stream->available();
1593 size_t result = len;
1643template <
typename T =
int16_t,
class TF =
float>
1673 LOGE(
"Inconsistent number of channels");
1681 LOGE(
"channels must not be 0");
1728 LOGE(
"p_converter is null");
1778 LOGI(
"VolumeMeter::setAudioInfo: channels %d", channels);
1790 size_t result = len;
1791 if (
p_out !=
nullptr) {
1812 LOGE(
"begin not called!");
1816 LOGE(
"invalid channel %d", channel);
1860 return total / count;
1928 if (data ==
nullptr || len == 0)
return;
1949 template <
typename T>
1988 unsigned long current_time =
millis();
2271 LOGI(
"sample_rate: %u -> time: %u milliseconds",
2350 unsigned long ms =
millis();
2380 if (
src !=
nullptr) {
2393 if (
src->buffer->writeArray(
src->frame, available_bytes) !=
2399 if (
src->buffer !=
nullptr &&
src->frame !=
nullptr &&
2400 src->frameSize > 0) {
2402 src->buffer->readArray(
src->frame,
src->frameSize);
2403 if (available_bytes !=
2404 src->frameCallback(
src->frame, available_bytes)) {
2405 LOGE(
"data underflow");
2409 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