Skip to content

Commit 9492270

Browse files
Refactor stream unavailable code
Also auto-format cleaned up previous commit
1 parent 70ffd55 commit 9492270

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

src/ESP32_VS1053_Stream.cpp

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ void ESP32_VS1053_Stream::_playFromRingBuffer()
392392

393393
const unsigned long start = millis();
394394
const auto MAX_TIME_MS = 15;
395-
//size_t bytesToDecoder = 0;
395+
// size_t bytesToDecoder = 0;
396396
while (_remainingBytes && _vs1053->data_request() && millis() - start < MAX_TIME_MS)
397397
{
398398
size_t size = 0;
@@ -404,7 +404,7 @@ void ESP32_VS1053_Stream::_playFromRingBuffer()
404404
}
405405
_vs1053->playChunk(data, size);
406406
vRingbufferReturnItem(_ringbuffer_handle, data);
407-
//bytesToDecoder += size;
407+
// bytesToDecoder += size;
408408
_remainingBytes -= _remainingBytes > 0 ? size : 0;
409409
}
410410
log_d("spend %lu ms stuffing %i bytes in decoder", millis() - start, bytesToDecoder);
@@ -414,7 +414,7 @@ void ESP32_VS1053_Stream::_streamToRingBuffer(WiFiClient *const stream)
414414
{
415415
const auto MAX_TIME_MS = 10;
416416
const auto start = millis();
417-
//size_t bytesToRingBuffer = 0;
417+
// size_t bytesToRingBuffer = 0;
418418
while (stream && stream->available() && _musicDataPosition < _metaDataStart && millis() - start < MAX_TIME_MS)
419419
{
420420
const size_t BYTES_AVAILABLE = _metaDataStart ? _metaDataStart - _musicDataPosition : stream->available();
@@ -432,7 +432,7 @@ void ESP32_VS1053_Stream::_streamToRingBuffer(WiFiClient *const stream)
432432
return;
433433
}
434434

435-
//bytesToRingBuffer += BYTES_IN_BUFFER;
435+
// bytesToRingBuffer += BYTES_IN_BUFFER;
436436
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0;
437437
}
438438
log_d("spend %lu ms stuffing %i bytes in ringbuffer", millis() - start, bytesToRingBuffer);
@@ -458,7 +458,7 @@ void ESP32_VS1053_Stream::_handleStream(WiFiClient *const stream)
458458
{
459459
const auto MAX_TIME_MS = 15;
460460
const auto start = millis();
461-
//size_t bytesToDecoder = 0;
461+
// size_t bytesToDecoder = 0;
462462
while (stream && stream->available() && _vs1053->data_request() && _remainingBytes &&
463463
_musicDataPosition < _metaDataStart && millis() - start < MAX_TIME_MS)
464464
{
@@ -472,7 +472,7 @@ void ESP32_VS1053_Stream::_handleStream(WiFiClient *const stream)
472472
_vs1053->playChunk(_vs1053Buffer, BYTES_IN_BUFFER);
473473
_remainingBytes -= _remainingBytes > 0 ? BYTES_IN_BUFFER : 0;
474474
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0;
475-
//bytesToDecoder += BYTES_IN_BUFFER;
475+
// bytesToDecoder += BYTES_IN_BUFFER;
476476
}
477477
log_d("spend %lu ms stuffing %i bytes in decoder", millis() - start, bytesToDecoder);
478478
}
@@ -494,7 +494,7 @@ void ESP32_VS1053_Stream::_handleStream(WiFiClient *const stream)
494494
void ESP32_VS1053_Stream::_chunkedStreamToRingBuffer(WiFiClient *const stream)
495495
{
496496
const auto MAX_TIME_MS = 10;
497-
//size_t bytesToRingBuffer = 0;
497+
// size_t bytesToRingBuffer = 0;
498498
const auto start = millis();
499499
while (stream && stream->available() && _bytesLeftInChunk && _musicDataPosition < _metaDataStart && millis() - start < MAX_TIME_MS)
500500
{
@@ -514,7 +514,7 @@ void ESP32_VS1053_Stream::_chunkedStreamToRingBuffer(WiFiClient *const stream)
514514
}
515515

516516
_bytesLeftInChunk -= BYTES_IN_BUFFER;
517-
//bytesToRingBuffer += BYTES_IN_BUFFER;
517+
// bytesToRingBuffer += BYTES_IN_BUFFER;
518518
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0;
519519
}
520520
log_d("spend %lu ms stuffing %i bytes in ringbuffer", millis() - start, bytesToRingBuffer);
@@ -549,7 +549,7 @@ void ESP32_VS1053_Stream::_handleChunkedStream(WiFiClient *const stream)
549549
{
550550
const auto MAX_TIME_MS = 15;
551551
const auto start = millis();
552-
//size_t bytesToDecoder = 0;
552+
// size_t bytesToDecoder = 0;
553553
while (stream && stream->available() && _bytesLeftInChunk && _vs1053->data_request() && _musicDataPosition < _metaDataStart && millis() - start < MAX_TIME_MS)
554554
{
555555
const size_t BYTES_AVAILABLE = min(_bytesLeftInChunk, (size_t)_metaDataStart - _musicDataPosition);
@@ -562,7 +562,7 @@ void ESP32_VS1053_Stream::_handleChunkedStream(WiFiClient *const stream)
562562
_vs1053->playChunk(_vs1053Buffer, BYTES_IN_BUFFER);
563563
_bytesLeftInChunk -= BYTES_IN_BUFFER;
564564
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0;
565-
//bytesToDecoder += BYTES_IN_BUFFER;
565+
// bytesToDecoder += BYTES_IN_BUFFER;
566566
}
567567
log_d("spend %lu ms stuffing %i bytes in decoder", millis() - start, bytesToDecoder);
568568
}
@@ -644,11 +644,21 @@ void ESP32_VS1053_Stream::loop()
644644
_eofStream();
645645
return;
646646
}
647+
return;
648+
}
649+
650+
if (_ringbuffer_handle && stream && !stream->available())
651+
{
652+
if (!_streamStalledTime)
653+
{
654+
_streamStalledTime = millis();
655+
_streamStalledTime += _streamStalledTime ? 0 : 1;
656+
}
647657
}
648658

649-
if (_streamStalledTime)
659+
if (stream && stream->available() && _streamStalledTime)
650660
{
651-
log_d("Stream stalled for %lu ms", millis() - _streamStalledTime);
661+
log_w("Stream stalled for %lu ms", millis() - _streamStalledTime);
652662
_streamStalledTime = 0;
653663
}
654664

0 commit comments

Comments
 (0)