Removed unnecessary semicolons, improved changeSong function

This commit is contained in:
Anon 2023-04-22 21:42:23 -07:00
parent 45e29e0f92
commit e3aaec440e

View File

@ -6,9 +6,9 @@ function appendMusicList(el, title, time)
const div = document.createElement("div") const div = document.createElement("div")
tr.setAttribute("id", "queue-item") tr.setAttribute("id", "queue-item")
tdtitle.setAttribute("class", "title")
tdtime.setAttribute("width", "50") tdtime.setAttribute("width", "50")
tdtime.innerHTML = time tdtime.innerHTML = time
div.setAttribute("class", "ellipsis")
div.setAttribute("colspan", "2") div.setAttribute("colspan", "2")
div.innerHTML = title div.innerHTML = title
@ -20,15 +20,22 @@ function appendMusicList(el, title, time)
return tr return tr
} }
// https://github.com/semibran/wrap-around/blob/master/index.js
function wrap(idx, len)
{
return idx >= 0 ? idx % len : (idx % len + len) % len
}
function audioPlayer() function audioPlayer()
{ {
const aPlay = document.getElementById("audioPlayer"); const aPlay = document.getElementById("audioPlayer")
const aList = document.getElementById("audioPlaylist"); const aList = document.getElementById("audioPlaylist")
const aTrack = document.getElementById("audioTrack"); const aTrack = document.getElementById("audioTrack")
const aArtist = document.getElementById("audioArtist"); const aArtist = document.getElementById("audioArtist")
const aCoverArt = document.getElementById("audioCoverArt") const aCoverArt = document.getElementById("audioCoverArt")
var currentSong = null; var currentSong = null
var aListLinks = []
function changeSong(idx, doplay=true) function changeSong(idx, doplay=true)
{ {
@ -37,12 +44,11 @@ function audioPlayer()
aPlay.play() aPlay.play()
return return
} }
const aListLinks = aList.getElementsByTagName("tr");
if (currentSong !== null) if (currentSong !== null)
{ {
aListLinks[currentSong].classList.remove("current-song"); aListLinks[currentSong].classList.remove("current-song");
} }
currentSong = idx % aListLinks.length currentSong = wrap(idx, aListLinks.length)
aListLinks[currentSong].classList.add("current-song"); aListLinks[currentSong].classList.add("current-song");
const aSelected = aListLinks[currentSong].getElementsByTagName("div")[0] const aSelected = aListLinks[currentSong].getElementsByTagName("div")[0]
@ -58,10 +64,11 @@ function audioPlayer()
musicList.forEach((value, index, array) => { musicList.forEach((value, index, array) => {
const el = appendMusicList(aList, value[1], value[3]) const el = appendMusicList(aList, value[1], value[3])
aListLinks.push(el)
el.addEventListener("click", () => { el.addEventListener("click", () => {
// el.preventDefault(); // el.preventDefault();
changeSong(index) changeSong(index)
}); })
}) })
aPlay.addEventListener("ended", function(){ aPlay.addEventListener("ended", function(){