Skip to content
Extraits de code Groupes Projets
Valider 2d3f201a rédigé par Deurstann's avatar Deurstann
Parcourir les fichiers

Merge remote-tracking branch 'origin/dev-deurstann' into dev-deurstann

parents 6a3e162a fd298c12
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!6Move application and playtime visualisation
Ce commit fait partie de la requête de fusion !6. Les commentaires créés ici seront créés dans le contexte de cette requête de fusion.
......@@ -161,6 +161,26 @@ class LktClient {
return __getResult(client);
}
static statusActualisation() {
var client = new this();
var dataObj;
function __getResult(client) {
return new Promise(resolv => {
client.m_socket.setTimeout(0);
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);
}
});
});
}
return __getResult(client);
}
static commandPlay() {
var status = LktClient.commandStatus();
return status.then(LktClient.changePlayStatus, LktClient.errorStatus);
......@@ -179,8 +199,10 @@ class LktClient {
default:
logger.info('Unknown play state' + status.state);
}
LktClient.setPlayState(status.state);
}
static commandPlayPos(position) {
this.setSongTimeData(0,this.timeData.total,this.timeData.state);
return LktClient.__execSimple(`play ${position}`);
}
static commandStop() {
......@@ -200,7 +222,6 @@ class LktClient {
return LktClient.__execSimple('clear');
}
static commandMove(from, to) {
logger.info("lkt", `move ${from} ${to}`)
return LktClient.__execSimple(`move ${from} ${to}`);
}
......@@ -211,12 +232,12 @@ class LktClient {
return LktClient.__execSimple(`__insert id://${id}`);
}
static commandQueueDelPos(position) {
logger.info("lkt", `delete ${position}`)
return LktClient.__execSimple(`delete ${position}`);
}
static commandQueueDelId(id) {
return LktClient.__execSimple(`deleteid ${id}`);
}
static errorStatus(error) {
logger.error('Unable to access lektor status:' + error);
}
......@@ -230,6 +251,19 @@ class LktClient {
static isQueueUpdated() {
return this.queue_updated;
}
static timeData = {elapsed:0, total:100, state:'stop'};
static setPlayState(state) {
this.timeData.state = state;
}
static setSongTimeData(elapsed, total, state) {
this.timeData = {elapsed:elapsed, total:total, state:state};
}
static getSongTimeData() {
return this.timeData;
}
}
function __mpdToObject(string) {
......
......@@ -29,6 +29,7 @@
<div
id="buttonPanelListLeft"
class="d-flex flex-row bd-highlight mb-3 row card"
style="-webkit-app-region: drag"
></div>
<div id="panelWrapper" class="row">
<ul
......@@ -41,7 +42,7 @@
></ul>
</div>
<div
id="progressBar"
id="progress"
class="progress"
style="
z-index: 666;
......@@ -53,8 +54,13 @@
>
<div
class="progress-bar"
id="progressBar"
role="progressbar"
style="width: 75%"
style="-webkit-transition: none;
-moz-transition: none;
-ms-transition: none;
-o-transition: none;
transition: none;"
></div>
</div>
</div>
......
......@@ -52,6 +52,7 @@ window.onload = () => {
setTimeout(() => ipcRenderer.send('reload-queue-request'), 1000);
setInterval(() => ipcRenderer.send('verify-queue-reloaded-request'), 50);
setInterval(() => ipcRenderer.send('get-song-time-data'),50);
logger.debug('instance', 'Window loaded');
$('#filterInput').on('keypress', e => {
......@@ -87,7 +88,8 @@ function createButtonList(list) {
if (btn[0] == 'left') {
renderHtmlLeft = `${renderHtmlLeft}
<button id="${btn[2]}" type="button" class="btn btn-primary p-2 bd-highlight"
data-toggle="tooltip" data-placement="bottom" title="${btn[3]}">${btn[1]}</button>`;
data-toggle="tooltip" data-placement="bottom" title="${btn[3]}"
style="-webkit-app-region: no-drag">${btn[1]}</button>`;
logger.debug(
'instance',
`Create button for "${btn[1]}" with id "${btn[2]} at the left"`
......@@ -95,7 +97,8 @@ function createButtonList(list) {
} else if (btn[0] == 'right') {
renderHtmlRight = `${renderHtmlRight}
<button id="${btn[2]}" type="button" class="btn btn-secondary p-2 bd-highlight"
data-toggle="tooltip" data-placement="bottom" title="${btn[3]}">${btn[1]}</button>`;
data-toggle="tooltip" data-placement="bottom" title="${btn[3]}"
style="-webkit-app-region: no-drag">${btn[1]}</button>`;
logger.debug(
'instance',
`Create button for "${btn[1]}" with id "${btn[2]} at the right"`
......@@ -103,7 +106,8 @@ function createButtonList(list) {
} else if (btn[0] == 'sleft') {
renderHtmlSLeft = `${renderHtmlSLeft}
<button id="${btn[2]}" type="button" class="btn btn-secondary p-2 bd-highlight"
data-toggle="tooltip" data-placement="bottom" title="${btn[3]}">${btn[1]}</button>`;
data-toggle="tooltip" data-placement="bottom" title="${btn[3]}"
style="-webkit-app-region: no-drag">${btn[1]}</button>`;
logger.debug(
'instance',
`Create button for "${btn[1]}" with id "${btn[2]} at the right"`
......@@ -118,7 +122,7 @@ function createButtonList(list) {
document.getElementById('buttonPanelListLeft').innerHTML = `
<div class="btn-group" role="group">${renderHtmlLeft}</div>
<div class="btn-group" role="group">${renderHtmlSLeft}</div>
<div class="p-1 bd-highlight mb-1 mr-auto ml-auto" style="width: 60%;">
<div class="p-1 bd-highlight mb-1 mr-auto ml-auto" style="width: 60%;-webkit-app-region: no-drag;">
<input id="filterInput" type="text" class="form-control filterInput" placeholder="Filter...">
</div>
<div class="btn-group" role="group">${renderHtmlRight}</div>`;
......@@ -171,10 +175,10 @@ ipcRenderer.on('reload-queue-responce', (event, arg) => {
);
});
/*ipcRenderer.on('queue-moved-responce', (event, arg) => {
logger.info('Time', new Date().getTime() - time);
ipcRenderer.send('reload-queue-request');
});*/
ipcRenderer.on('send-song-time-data', (event,timeData) => {
document.getElementById('progressBar').style.width=
`${timeData.elapsed/timeData.total*document.documentElement.clientWidth}px`;
});
function addDBKaraEventHandlers(element) {
......@@ -215,7 +219,6 @@ function onDragStartDB(event) {
isDnDFromDB = true;
event.dataTransfer.effectAllowed = 'move';
event.currentTarget.style.opacity = 0.4;
//logger.debug(event.currentTarget.childElementCount+"\n");
event.dataTransfer.setData(
'text/plain',
event.currentTarget.getElementsByClassName('karaID')[0].innerText
......@@ -225,7 +228,6 @@ function onDragStartDB(event) {
function onDragStartQueue(event) {
event.dataTransfer.effectAllowed = 'move';
event.currentTarget.style.opacity = 0.4;
//logger.debug(event.currentTarget.childElementCount+"\n");
event.dataTransfer.setData(
'text/plain',
event.currentTarget.getElementsByClassName('karaPosition')[0].innerText
......@@ -253,11 +255,9 @@ function ondragLeave(event) {
if (dragCounter == 0) {
event.currentTarget.style.borderTop = '';
}
//logger.debug("dragCount", dragCounter)
}
function onDrop(event) {
//logger.debug("salut", "salut");
event.currentTarget.style.borderTop = '';
if(isDnDFromDB) {
ipcRenderer.send('add-kara-queue-pos', {
......
......@@ -146,7 +146,10 @@ app.on('ready', () => {
});
setTimeout(() => {
lkt.idleActualisation();
}, 500);
}, 1000);
setTimeout(()=> {
lkt.statusActualisation();
}, 1500);
lektor.on('close', code => {
logger.warn('main', `Lektor exited with code ${code}`);
lektor_closed = true;
......@@ -234,10 +237,27 @@ ipcMain.on('insert-kara-queue-id', (event, arg) => {
});
ipcMain.on('delete-kara-queue-pos', (event, arg) => {
logger.info("cc");
lkt.commandQueueDelPos(arg.position);
});
ipcMain.on('add-kara-queue-pos', (event,addparams) => {
lkt.commandQueueAddId(addparams.id).then(() => lkt.commandMove(addparams.queueSize+1,addparams.position));
})
\ No newline at end of file
});
var songTimeData = {elapsed:0,total:100,state:'stop'};
var counterTime = 0;
ipcMain.on('get-song-time-data', (event,arg) => {
var newSongTimeData = lkt.getSongTimeData();
if(newSongTimeData.elapsed != songTimeData.elapsed) {
songTimeData = newSongTimeData;
event.reply('send-song-time-data',{elapsed:songTimeData.elapsed, total:songTimeData.total});
counterTime = 0;
}
else if(newSongTimeData.state == 'play') {
counterTime++;
event.reply('send-song-time-data',{elapsed:songTimeData.elapsed+(counterTime/20.0), total:songTimeData.total});
}
else {
event.reply('send-song-time-data',{elapsed:songTimeData.elapsed+(counterTime/20.0), total:songTimeData.total})
}
});
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment