diff --git a/common/lkt.js b/common/lkt.js index 41b7e8698a5b81e19957c6f109e1fe77300c7dab..6fb2163f73d356ad3c231580fb474f11bd482a06 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -135,6 +135,14 @@ class LktClient { return __getResult(client); } + static reloadState() { + LktClient.commandStatus().then(data => { + LktClient.__status = data; + LktClient.status_updated = true; + logger.debug('lkt', `Got update in status ${JSON.stringify(data)}`); + }); + } + static idleActualisation() { var client = new this(); client.m_socket.setTimeout(0); @@ -144,6 +152,9 @@ class LktClient { if (String(data).includes('playlist')) { LktClient.setQueueUpdated(true); } + if (String(data).includes('player')) { + LktClient.reloadState(); + } client.m_socket.write(`idle\n`); return null; }); @@ -244,12 +255,21 @@ class LktClient { return this.queue_updated; } + static isStatusUpdated() { + return this.status_updated; + } + static timeData = { elapsed: 0, total: 100, state: 'stop', song: 0 }; static setPlayState(state) { this.timeData.state = state; } + static getStatus() { + LktClient.status_updated = false; + return this.__status; + } + static setSongTimeData(elapsed, total, state, song) { this.timeData = { elapsed: elapsed, diff --git a/instance/main.js b/instance/main.js index a026754744e16412dad65612965af0a4e42a55e4..2d9d0d20529a40105361ea9f9e66af15a55d9ffd 100644 --- a/instance/main.js +++ b/instance/main.js @@ -180,7 +180,7 @@ ipcRenderer.on('send-lektord', (event, state) => { setInterval(() => ipcRenderer.send('verify-queue-reloaded-request'), 50); setInterval(() => ipcRenderer.send('get-song-time-data'), 50); setInterval(() => ipcRenderer.send('get-runnings'), 10000); - setInterval(() => ipcRenderer.send('verify-state'), 500); + setInterval(() => ipcRenderer.send('verify-state'), 50); }); ipcRenderer.on('send-state', (event, state) => updatePlayPauseButton(state)); diff --git a/main.js b/main.js index 4c8592367f8e5e6bad35dac2faa52222390dafe0..0740484d72854efae395a582f3faba1b4bb5ae1f 100644 --- a/main.js +++ b/main.js @@ -280,10 +280,15 @@ ipcMain.on('add-kara-queue-pos', (event, addparams) => { lkt.commandQueueAddId(addparams.id).then(() => lkt.commandMove(addparams.queueSize + 1, addparams.position)); }); -ipcMain.on('verify-state', (event, arg) => lkt.commandStatus().then(data => event.reply('send-state', data.state))); +ipcMain.on('verify-state', (event, arg) => { + if (lkt.isStatusUpdated()) { + event.reply('send-state', lkt.getStatus().state); + } +}); ipcMain.on('verify-lektord', (event, arg) => { lkt.ping().then(data => { + lkt.reloadState(); event.reply('send-lektord'); }); });