diff --git a/common/lkt.js b/common/lkt.js index f77a9bd374df535a4365e4a38fbb7326b92a71e2..2261ea03a1574ae439d4cffd517c9eb78daf94e9 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -170,9 +170,8 @@ class LktClient { setInterval(()=>client.m_socket.write(`status\n`),100); client.m_socket.on('data', data => { dataObj = __mpdToObject(data); - //logger.info('lkt', `elapsed:${dataObj.elapsed}, total:${dataObj.duration}`); - if(dataObj.elapsed && dataObj.duration && dataObj.state) { - LktClient.setSongTimeData(parseInt(dataObj.elapsed,10), parseInt(dataObj.duration,10), dataObj.state); + if(dataObj.elapsed && dataObj.duration && dataObj.state && dataObj.song) { + LktClient.setSongTimeData(parseInt(dataObj.elapsed,10), parseInt(dataObj.duration,10), dataObj.state, parseInt(dataObj.song,10)); } }); @@ -202,11 +201,10 @@ class LktClient { LktClient.setPlayState(status.state); } static commandPlayPos(position) { - this.setSongTimeData(0,this.timeData.total,this.timeData.state); + this.setSongTimeData(0,this.timeData.total,this.timeData.state, this.timeData.state); return LktClient.__execSimple(`play ${position}`); } static commandStop() { - //return LktClient.idleActualisation(); return LktClient.__execSimple('stop'); } static commandPrev() { @@ -252,14 +250,14 @@ class LktClient { return this.queue_updated; } - static timeData = {elapsed:0, total:100, state:'stop'}; + static timeData = {elapsed:0, total:100, state:'stop', song:0}; static setPlayState(state) { this.timeData.state = state; } - static setSongTimeData(elapsed, total, state) { - this.timeData = {elapsed:elapsed, total:total, state:state}; + static setSongTimeData(elapsed, total, state, song) { + this.timeData = {elapsed:elapsed, total:total, state:state, song:song}; } static getSongTimeData() { return this.timeData; diff --git a/instance/main.js b/instance/main.js index ce844f60aaa9575de4a1d8ae7b656e1325f88db9..b04bc4264a47499a7a1c1ac1950a6679c0b9b21b 100644 --- a/instance/main.js +++ b/instance/main.js @@ -175,9 +175,22 @@ ipcRenderer.on('reload-queue-responce', (event, arg) => { ); }); +var currentSong=0; ipcRenderer.on('send-song-time-data', (event,timeData) => { document.getElementById('progressBar').style.width= `${timeData.elapsed/timeData.total*document.documentElement.clientWidth}px`; + if(timeData.state == 'play' || timeData.state == 'pause') + { + if(currentSong !=timeData.song) { + document.getElementsByClassName('karaQueue')[currentSong].style.background = '#4e5d6c'; + currentSong = timeData.song; + } + document.getElementsByClassName('karaQueue')[timeData.song].style.background = '#6b7d8e'; + } + else { + document.getElementsByClassName('karaQueue')[timeData.song].style.background = '#4e5d6c'; + } + }); @@ -235,11 +248,13 @@ function onDragStartQueue(event) { } function onDragEnter(event) { - if (leavedElement != event.currentTarget) { - leavedElement.style.borderTop = ''; + if(event.currentTarget) { + if (leavedElement != event.currentTarget) { + leavedElement.style.borderTop = ''; + } + event.currentTarget.style.borderTop = '3px solid grey'; + dragCounter++; } - event.currentTarget.style.borderTop = '3px solid grey'; - dragCounter++; } function onDragOver(event) { diff --git a/instance/views/karaQueueListItem.ejs b/instance/views/karaQueueListItem.ejs index dea8ed870314dd21e4f6fc3309a9b20508acfa45..052387b220d781584e8e40f845eeb785dc0b56e5 100644 --- a/instance/views/karaQueueListItem.ejs +++ b/instance/views/karaQueueListItem.ejs @@ -1,6 +1,6 @@ <%# vim: ts=4 syntax=html The template for the kara card in lists %> -<li class="card p-2 bd-highlight shadow-none d-flex flex-row bd-highlight mb-3 karaCard" draggable="true"> +<li class="card p-2 bd-highlight shadow-none d-flex flex-row bd-highlight mb-3 karaCard karaQueue" draggable="true"> <span hidden class = "karaID"><%= kara.id %></span> <span class="karaElement text-uppercase p-2 bd-highlight badge badge-light"><b><%= kara.language %></b></span> <span class="karaElement text-uppercase p-2 bd-highlight badge badge-light"><b><%= kara.cat %></b></span> diff --git a/main.js b/main.js index 2789d0b38f1cebaef9106da7cd78fb21d4d8dd40..9efbce30c4dbb2049edbc9ef14f295304f8e223f 100644 --- a/main.js +++ b/main.js @@ -244,20 +244,20 @@ ipcMain.on('add-kara-queue-pos', (event,addparams) => { lkt.commandQueueAddId(addparams.id).then(() => lkt.commandMove(addparams.queueSize+1,addparams.position)); }); -var songTimeData = {elapsed:0,total:100,state:'stop'}; +var songTimeData = {elapsed:0,total:100,state:'stop', song:'0'}; var counterTime = 0; ipcMain.on('get-song-time-data', (event,arg) => { var newSongTimeData = lkt.getSongTimeData(); - if(newSongTimeData.elapsed != songTimeData.elapsed) { + if(newSongTimeData.elapsed != songTimeData.elapsed || newSongTimeData.song != songTimeData.song) { songTimeData = newSongTimeData; - event.reply('send-song-time-data',{elapsed:songTimeData.elapsed, total:songTimeData.total}); + event.reply('send-song-time-data',{elapsed:songTimeData.elapsed, total:songTimeData.total, song:songTimeData.song,state:songTimeData.state}); counterTime = 0; } else if(newSongTimeData.state == 'play') { counterTime++; - event.reply('send-song-time-data',{elapsed:songTimeData.elapsed+(counterTime/20.0), total:songTimeData.total}); + event.reply('send-song-time-data',{elapsed:songTimeData.elapsed+(counterTime/20.0), total:songTimeData.total, song:songTimeData.song, state:songTimeData.state}); } else { - event.reply('send-song-time-data',{elapsed:songTimeData.elapsed+(counterTime/20.0), total:songTimeData.total}) + event.reply('send-song-time-data',{elapsed:songTimeData.elapsed+(counterTime/20.0), total:songTimeData.total, song:songTimeData.song, state:songTimeData.state}) } }); \ No newline at end of file