@@ -131,11 +131,21 @@ void YX5300_AudioPlayer::loop() {
131131 * @param tracks
132132*/
133133void YX5300_AudioPlayer::setTrackList (std::vector<String> folders, std::vector<String> tracks) {
134+ _originalFolders = folders;
135+ _originalTracks = tracks;
136+
137+ setPlayList ();
138+ }
139+
140+ /* *
141+ * Set play list title and album data.
142+ */
143+ void YX5300_AudioPlayer::setPlayList () {
134144 // save track information
135145 for (size_t x = 0 ; x < _playList.size (); ++x) {
136146 Track item = _playList.at (x);
137- _playList.at (x).title = tracks .at (item.index - 1 );
138- _playList.at (x).album = folders .at (item.folder - 1 );
147+ _playList.at (x).title = _originalTracks .at (item.index - 1 );
148+ _playList.at (x).album = _originalFolders .at (item.folder - 1 );
139149 /*
140150 Log.info(F("Track %d in folder %d: %s (%s)" CR),
141151 item.index,
@@ -402,6 +412,11 @@ void YX5300_AudioPlayer::createRandomPlayList(uint8_t folder) {
402412Track YX5300_AudioPlayer::getRandomTrack (uint8_t folder) {
403413 createRandomPlayList (folder);
404414
415+ if (_playListCompleted.size () == 0 ) {
416+ // update title/album info
417+ setPlayList ();
418+ }
419+
405420 // pick first randomized track, remove it from the playlist,
406421 // and add it to the completed playlist.
407422 Track tr = _playList.at (0 );
0 commit comments