@@ -109,15 +109,9 @@ void ESP32_VS1053_Stream::_handleMetadata(char *data, const size_t len)
109
109
110
110
void ESP32_VS1053_Stream::_eofStream ()
111
111
{
112
+ stopSong ();
112
113
if (audio_eof_stream)
113
- {
114
- char tmp[strlen (_url) + 1 ];
115
- snprintf (tmp, sizeof (tmp), " %s" , _url);
116
- stopSong ();
117
- audio_eof_stream (tmp);
118
- }
119
- else
120
- stopSong ();
114
+ audio_eof_stream (_url);
121
115
}
122
116
123
117
inline __attribute__ ((always_inline)) bool
@@ -338,12 +332,10 @@ bool ESP32_VS1053_Stream::connecttohost(const char *url, const char *username,
338
332
_metaDataStart = _http->header (ICY_METAINT).toInt ();
339
333
_musicDataPosition = _metaDataStart ? 0 : -100 ;
340
334
_bitrate = _http->header (BITRATE).toInt ();
341
- _url[0 ] = _savedStartChar;
342
335
if (strcmp (_url, url) || !_offset)
343
336
{
344
337
_vs1053->stopSong ();
345
338
snprintf (_url, sizeof (_url), " %s" , url);
346
- log_d (" stream stopped" );
347
339
}
348
340
_streamStalledTime = 0 ;
349
341
log_d (" redirected %i times" , _redirectCount);
@@ -440,7 +432,7 @@ void ESP32_VS1053_Stream::_streamToRingBuffer(WiFiClient *const stream)
440
432
{
441
433
const auto START_TIME_MS = millis ();
442
434
const auto MAX_TIME_MS = 5 ;
443
- // size_t bytesToRingBuffer = 0;
435
+ // size_t bytesToRingBuffer = 0;
444
436
while (stream && stream->available () && _musicDataPosition < _metaDataStart && millis () - START_TIME_MS < MAX_TIME_MS)
445
437
{
446
438
const size_t BYTES_AVAILABLE = _metaDataStart ? _metaDataStart - _musicDataPosition : stream->available ();
@@ -455,7 +447,7 @@ void ESP32_VS1053_Stream::_streamToRingBuffer(WiFiClient *const stream)
455
447
return ;
456
448
}
457
449
458
- // bytesToRingBuffer += BYTES_IN_BUFFER;
450
+ // bytesToRingBuffer += BYTES_IN_BUFFER;
459
451
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0 ;
460
452
}
461
453
log_d (" spend %lu ms stuffing %i bytes in ringbuffer" , millis () - START_TIME_MS, bytesToRingBuffer);
@@ -481,7 +473,7 @@ void ESP32_VS1053_Stream::_handleStream(WiFiClient *const stream)
481
473
{
482
474
const auto START_TIME_MS = millis ();
483
475
const auto MAX_TIME_MS = 10 ;
484
- // size_t bytesToDecoder = 0;
476
+ // size_t bytesToDecoder = 0;
485
477
while (stream && stream->available () && _vs1053->data_request () && _remainingBytes &&
486
478
_musicDataPosition < _metaDataStart && millis () - START_TIME_MS < MAX_TIME_MS)
487
479
{
@@ -491,7 +483,7 @@ void ESP32_VS1053_Stream::_handleStream(WiFiClient *const stream)
491
483
_vs1053->playChunk (_vs1053Buffer, BYTES_IN_BUFFER);
492
484
_remainingBytes -= _remainingBytes > 0 ? BYTES_IN_BUFFER : 0 ;
493
485
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0 ;
494
- // bytesToDecoder += BYTES_IN_BUFFER;
486
+ // bytesToDecoder += BYTES_IN_BUFFER;
495
487
}
496
488
log_d (" spend %lu ms stuffing %i bytes in decoder" , millis () - START_TIME_MS, bytesToDecoder);
497
489
}
@@ -518,7 +510,7 @@ void ESP32_VS1053_Stream::_chunkedStreamToRingBuffer(WiFiClient *const stream)
518
510
{
519
511
const auto START_TIME_MS = millis ();
520
512
const auto MAX_TIME_MS = 5 ;
521
- // size_t bytesToRingBuffer = 0;
513
+ // size_t bytesToRingBuffer = 0;
522
514
while (stream && stream->available () && _bytesLeftInChunk &&
523
515
_musicDataPosition < _metaDataStart && millis () - START_TIME_MS < MAX_TIME_MS)
524
516
{
@@ -535,7 +527,7 @@ void ESP32_VS1053_Stream::_chunkedStreamToRingBuffer(WiFiClient *const stream)
535
527
}
536
528
537
529
_bytesLeftInChunk -= BYTES_IN_BUFFER;
538
- // bytesToRingBuffer += BYTES_IN_BUFFER;
530
+ // bytesToRingBuffer += BYTES_IN_BUFFER;
539
531
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0 ;
540
532
}
541
533
log_d (" spend %lu ms stuffing %i bytes in ringbuffer" , millis () - START_TIME_MS, bytesToRingBuffer);
@@ -570,7 +562,7 @@ void ESP32_VS1053_Stream::_handleChunkedStream(WiFiClient *const stream)
570
562
{
571
563
const auto START_TIME_MS = millis ();
572
564
const auto MAX_TIME_MS = 10 ;
573
- // size_t bytesToDecoder = 0;
565
+ // size_t bytesToDecoder = 0;
574
566
while (stream && stream->available () && _bytesLeftInChunk && _vs1053->data_request () &&
575
567
_musicDataPosition < _metaDataStart && millis () - START_TIME_MS < MAX_TIME_MS)
576
568
{
@@ -580,7 +572,7 @@ void ESP32_VS1053_Stream::_handleChunkedStream(WiFiClient *const stream)
580
572
_vs1053->playChunk (_vs1053Buffer, BYTES_IN_BUFFER);
581
573
_bytesLeftInChunk -= BYTES_IN_BUFFER;
582
574
_musicDataPosition += _metaDataStart ? BYTES_IN_BUFFER : 0 ;
583
- // bytesToDecoder += BYTES_IN_BUFFER;
575
+ // bytesToDecoder += BYTES_IN_BUFFER;
584
576
}
585
577
log_d (" spend %lu ms stuffing %i bytes in decoder" , millis () - START_TIME_MS, bytesToDecoder);
586
578
}
@@ -741,8 +733,6 @@ void ESP32_VS1053_Stream::stopSong()
741
733
_remainingBytes = 0 ;
742
734
_bytesLeftInChunk = 0 ;
743
735
_currentCodec = STOPPED;
744
- _savedStartChar = _url[0 ];
745
- _url[0 ] = 0 ;
746
736
_bitrate = 0 ;
747
737
_offset = 0 ;
748
738
}
@@ -771,7 +761,10 @@ const char *ESP32_VS1053_Stream::currentCodec()
771
761
return name[_currentCodec];
772
762
}
773
763
774
- const char *ESP32_VS1053_Stream::lastUrl () { return _url; }
764
+ const char *ESP32_VS1053_Stream::lastUrl ()
765
+ {
766
+ return _http != nullptr ? _url : " " ;
767
+ }
775
768
776
769
size_t ESP32_VS1053_Stream::size ()
777
770
{
0 commit comments