polish
This commit is contained in:
parent
d3f99d6133
commit
5d74c67648
17 changed files with 101 additions and 212 deletions
|
|
@ -5,21 +5,13 @@ const { backgroundMitt, ipcEmit } = require("./utils/emitter");
|
|||
const { connectToPlatform, disconnectFromPlatform } = require("./io");
|
||||
const { initAudio, terminateAudio, playback, streamState } = require("./audio");
|
||||
|
||||
let ui; /* wait to receive ui from the platform */
|
||||
|
||||
const messageQueue = [];
|
||||
|
||||
let processContentId;
|
||||
|
||||
/* Possible messages:
|
||||
* - New UI (set ui)
|
||||
* - New message (add message to ui.messages)
|
||||
* - New content (add content to existing message)
|
||||
* - Update person
|
||||
*/
|
||||
backgroundMitt.on("message", (message) => messageQueue.push(message));
|
||||
|
||||
function handleMessageQueue()
|
||||
function handleUpdateQueue()
|
||||
{
|
||||
if (!streamState.pb && !streamState.rec)
|
||||
{
|
||||
|
|
@ -27,71 +19,32 @@ function handleMessageQueue()
|
|||
|
||||
if (update)
|
||||
{
|
||||
console.log("Handling UI Update:", update);
|
||||
|
||||
if (update.person)
|
||||
if (update.title)
|
||||
{
|
||||
ui = update;
|
||||
new Notification(update).show();
|
||||
}
|
||||
else if (update.name)
|
||||
else if (update.audio)
|
||||
{
|
||||
ui.person = update;
|
||||
playback(update);
|
||||
}
|
||||
else if (update.content)
|
||||
{
|
||||
ui.messages.push(update);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.messages[ui.messages.length - 1].content.push(update);
|
||||
}
|
||||
|
||||
ipcEmit("message", update);
|
||||
|
||||
// notify();
|
||||
else { ipcEmit("update", update); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function notify()
|
||||
{
|
||||
const message = ui.messages[ui.messages.length - 1];
|
||||
|
||||
const content = message.content[message.content.length -1];
|
||||
|
||||
new Notification(
|
||||
{
|
||||
title: message.context,
|
||||
body: content.text
|
||||
}
|
||||
).show();
|
||||
|
||||
if (content.category == "audio/L16") playback(content.blob, message.id);
|
||||
}
|
||||
|
||||
function launchSession(account)
|
||||
{
|
||||
connectToPlatform(account);
|
||||
// initAudio();
|
||||
initAudio();
|
||||
processContentId = setInterval(handleMessageQueue, 100);
|
||||
}
|
||||
|
||||
function endSession()
|
||||
{
|
||||
clearInterval(processContentId);
|
||||
// terminateAudio();
|
||||
terminateAudio();
|
||||
disconnectFromPlatform();
|
||||
ui = null;
|
||||
}
|
||||
|
||||
ipcMain.on("messenger", () => {
|
||||
if (ui) {
|
||||
ipcEmit("message", ui);
|
||||
}
|
||||
});
|
||||
|
||||
exports.launchSession = launchSession;
|
||||
exports.endSession = endSession;
|
||||
|
||||
// ui.messages[ui.messages.findIndex(m => m.id === message.id)].content.push(message);
|
||||
|
|
|
|||
Loading…
Reference in a new issue