mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21:20 -04:00
tts passthrough for all in queue
This commit is contained in:
@@ -243,7 +243,13 @@ function maybeSpeak(socket, message, ttsOptions) {
|
||||
const audio = record?.meta?.audio || {};
|
||||
const ttsEnabled = Boolean(audio.ttsEnabled);
|
||||
if (!ttsEnabled) return;
|
||||
if (!roverManager.canDrive(message.roverId, socket)) return;
|
||||
const { isQueuedDriver } = require('./turnService');
|
||||
if (
|
||||
!roverManager.canDrive(message.roverId, socket) &&
|
||||
!isQueuedDriver(message.roverId, socket?.id)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
issueCommand(message.roverId, {
|
||||
type: 'tts',
|
||||
|
||||
@@ -72,6 +72,13 @@ function canDrive(roverId, socket) {
|
||||
return activeDrivers.get(roverId) === socket.id;
|
||||
}
|
||||
|
||||
function isQueuedDriver(roverId, socketId) {
|
||||
if (!socketId) return false;
|
||||
const queue = driverQueues.get(roverId);
|
||||
if (!queue) return false;
|
||||
return queue.queue.includes(socketId);
|
||||
}
|
||||
|
||||
function ensureQueue(roverId) {
|
||||
if (!driverQueues.has(roverId)) {
|
||||
driverQueues.set(roverId, { queue: [], current: null, timer: null });
|
||||
@@ -312,6 +319,7 @@ module.exports = {
|
||||
driverRemoved,
|
||||
cleanupRover,
|
||||
canDrive,
|
||||
isQueuedDriver,
|
||||
getActiveDrivers,
|
||||
turnEvents,
|
||||
getTurnQueues,
|
||||
|
||||
Reference in New Issue
Block a user