diff options
author | liam4 <towerofnix@gmail.com> | 2017-06-01 10:09:48 -0300 |
---|---|---|
committer | liam4 <towerofnix@gmail.com> | 2017-06-01 10:09:48 -0300 |
commit | e302f04b782685847fd5ab72a1f968f6d03ccfe4 (patch) | |
tree | 2d3d6f666f3022ac16356705f3ae5bd54af20524 /src/loop-play.js | |
parent | 671fc02d4fb26db0a5c3f83845eb46da73b08548 (diff) |
--play-opts
Diffstat (limited to 'src/loop-play.js')
-rw-r--r-- | src/loop-play.js | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/loop-play.js b/src/loop-play.js index 0a4b291..560ac63 100644 --- a/src/loop-play.js +++ b/src/loop-play.js @@ -12,12 +12,13 @@ const sanitize = require('sanitize-filename') const writeFile = promisify(fs.writeFile) -module.exports = async function loopPlay(fn) { +module.exports = async function loopPlay(fn, playArgs = []) { // Looping play function. Takes one argument, the "pick" function, // which returns a track to play. Preemptively downloads the next // track while the current one is playing for seamless continuation // from one song to the next. Stops when the result of the pick - // function is null (or similar). + // function is null (or similar). Optionally takes a second argument + // used as arguments to the `play` process (before the file name). async function downloadNext() { const picked = fn() @@ -53,7 +54,7 @@ module.exports = async function loopPlay(fn) { while (wavFile) { const nextPromise = downloadNext() - await playFile(wavFile) + await playFile(wavFile, playArgs) wavFile = await nextPromise } } @@ -63,7 +64,7 @@ function convert(fromFile, toFile) { return promisifyProcess(avconv, false) } -function playFile(file) { - const play = spawn('play', [file]) +function playFile(file, opts = []) { + const play = spawn('play', [...opts, file]) return promisifyProcess(play) } |