diff --git a/cli/index.js b/cli/index.js index 0fa37a2..d83fd01 100644 --- a/cli/index.js +++ b/cli/index.js @@ -86,23 +86,31 @@ async function play(n) { } let filename = song[new Number(n) - 1] || song[songnum++]; if (n) songnum = n; - if (!filename) { - filename = song[0]; - songnum = 1; - } if (loop) { if (!n) { - songnum = songnum - 1; - filename = song[songnum - 1]; + if (songnum != 1) { + songnum = songnum - 1; + filename = song[songnum - 1]; + } else { + songnum = manager.readSongs().length; + filename = song[songnum - 1]; + } } } + if (random) { if (!n) { songnum = Math.floor(Math.random() * song.length); filename = song[songnum - 1]; } } + + if (!filename || !songnum) { + filename = song[0]; + songnum = 1; + } + stream = fs.createReadStream(`${dirname}/${filename}`).pipe(convert()).pipe(Throttle(24000)); stream.on("data", (chunk) => { sink.forEach((s) => { diff --git a/cli/tcp.js b/cli/tcp.js index c8d129a..4c57b1e 100644 --- a/cli/tcp.js +++ b/cli/tcp.js @@ -89,15 +89,16 @@ async function play(n) { } let filename = song[new Number(n) - 1] || song[songnum++]; if (n) songnum = n; - if (!filename) { - filename = song[0]; - songnum = 1; - } if (loop) { if (!n) { - songnum = songnum - 1; - filename = song[songnum - 1]; + if (songnum != 1) { + songnum = songnum - 1; + filename = song[songnum - 1]; + } else { + songnum = manager.readSongs().length; + filename = song[songnum - 1]; + } } } if (random) { @@ -106,6 +107,12 @@ async function play(n) { filename = song[songnum - 1]; } } + + if (!filename || !songnum) { + filename = song[0]; + songnum = 1; + } + stream = fs.createReadStream(`${dirname}/${filename}`).pipe(convert()).pipe(Throttle(24000)); stream.on("data", (chunk) => { sink.forEach((s) => { diff --git a/cli/udp.js b/cli/udp.js index e8460b6..e74f10b 100644 --- a/cli/udp.js +++ b/cli/udp.js @@ -83,15 +83,16 @@ async function play(n) { } let filename = song[new Number(n) - 1] || song[songnum++]; if (n) songnum = n; - if (!filename) { - filename = song[0]; - songnum = 1; - } if (loop) { if (!n) { - songnum = songnum - 1; - filename = song[songnum - 1]; + if (songnum != 1) { + songnum = songnum - 1; + filename = song[songnum - 1]; + } else { + songnum = manager.readSongs().length; + filename = song[songnum - 1]; + } } } if (random) { @@ -100,6 +101,12 @@ async function play(n) { filename = song[songnum - 1]; } } + + if (!filename || !songnum) { + filename = song[0]; + songnum = 1; + } + stream = fs.createReadStream(`${dirname}/${filename}`).pipe(convert()).pipe(Throttle(24000)); stream.on("data", (chunk) => { sink.forEach((s, id) => {