« get me outta code hell

mtui - Music Text User Interface - user-friendly command line music player
about summary refs log tree commit diff
path: root/serialized-backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'serialized-backend.js')
-rw-r--r--serialized-backend.js37
1 files changed, 11 insertions, 26 deletions
diff --git a/serialized-backend.js b/serialized-backend.js
index a3f02fa..4b3f845 100644
--- a/serialized-backend.js
+++ b/serialized-backend.js
@@ -21,7 +21,7 @@
 
 'use strict'
 
-const {
+import {
   isGroup,
   isTrack,
   findItemObject,
@@ -29,7 +29,7 @@ const {
   getFlatGroupList,
   getFlatTrackList,
   getItemPath
-} = require('./playlist-utils')
+} from './playlist-utils.js'
 
 const referenceDataSymbol = Symbol('Restored reference data')
 
@@ -43,7 +43,7 @@ function getPlayerInfo(queuePlayer) {
   }
 }
 
-function saveBackend(backend) {
+export function saveBackend(backend) {
   return {
     queuePlayers: backend.queuePlayers.map(QP => ({
       id: QP.id,
@@ -55,7 +55,9 @@ function saveBackend(backend) {
   }
 }
 
-async function restoreBackend(backend, data) {
+export async function restoreBackend(backend, data) {
+  // console.log('restoring backend:', data)
+
   if (data.queuePlayers) {
     if (data.queuePlayers.length === 0) {
       return
@@ -90,18 +92,10 @@ async function restoreBackend(backend, data) {
 async function restorePlayingTrack(queuePlayer, playedTrack, playerInfo) {
   const QP = queuePlayer
   await QP.stopPlaying()
-  QP.play(playedTrack, true)
-  QP.once('received time data', () => {
-    if (QP.playingTrack === playedTrack) {
-      QP.player.seekTo(playerInfo.time)
-      if (!playerInfo.isPaused) {
-        QP.player.togglePause()
-      }
-    }
-  })
+  QP.play(playedTrack, playerInfo.time || 0, playerInfo.isPaused)
 }
 
-function updateRestoredTracksUsingPlaylists(backend, playlists) {
+export function updateRestoredTracksUsingPlaylists(backend, playlists) {
   // Utility function to restore the "identities" of tracks (i.e. which objects
   // they are represented by) queued or playing in the provided backend,
   // pulling possible track identities from the provided playlists.
@@ -159,7 +153,7 @@ function updateRestoredTracksUsingPlaylists(backend, playlists) {
   }
 }
 
-function saveItemReference(item) {
+export function saveItemReference(item) {
   // Utility function to generate reference data for a track or grouplike,
   // according to the format taken by findItemObject.
 
@@ -182,7 +176,7 @@ function saveItemReference(item) {
   }
 }
 
-function restoreNewItem(referenceData, playlists) {
+export function restoreNewItem(referenceData, playlists) {
   // Utility function to restore a new item. If you're restoring tracks
   // already present in a backend, use the specific function for that,
   // updateRestoredTracksUsingPlaylists.
@@ -227,19 +221,10 @@ function restoreNewItem(referenceData, playlists) {
   }
 }
 
-function getWaitingTrackData(queuePlayer) {
+export function getWaitingTrackData(queuePlayer) {
   // Utility function to get reference data for the track which is currently
   // waiting to be played, once a resembling track is found. This should only
   // be used to reflect that data in the user interface.
 
   return (queuePlayer[referenceDataSymbol] || {}).playingTrack
 }
-
-Object.assign(module.exports, {
-  saveBackend,
-  restoreBackend,
-  updateRestoredTracksUsingPlaylists,
-  saveItemReference,
-  restoreNewItem,
-  getWaitingTrackData
-})