This commit is contained in:
Andrew Gundersen 2022-01-18 16:58:56 -06:00
commit 5d74c67648
17 changed files with 101 additions and 212 deletions

View file

@ -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);