diff --git a/apps/server/src/controllers/integrationController.ts b/apps/server/src/controllers/integrationController.ts index 7103dbb69..3d587f355 100644 --- a/apps/server/src/controllers/integrationController.ts +++ b/apps/server/src/controllers/integrationController.ts @@ -174,6 +174,19 @@ export function dispatchFromAdapter( PlaybackService.roll(); break; } + case 'addtime': { + const time = Number(payload); + if (isNaN(time)) { + throw new Error(`Time not recognised ${payload}`); + } + try { + PlaybackService.addTime(time); + } catch (error) { + throw new Error(`Could not add time: ${error}`); + } + break; + } + //deprecated case 'delay': { const delayTime = Number(payload); if (isNaN(delayTime)) { diff --git a/apps/server/src/services/PlaybackService.ts b/apps/server/src/services/PlaybackService.ts index 65dcb1d8a..cd4202fce 100644 --- a/apps/server/src/services/PlaybackService.ts +++ b/apps/server/src/services/PlaybackService.ts @@ -269,17 +269,26 @@ export class PlaybackService { } } + /** + * Adds time to current event + * @param {number} time time in seconds + */ + static addTime(time: number) { + if (eventTimer.loadedTimerId) { + const timeInMs = time * 1000; + eventTimer.delay(timeInMs); + timeInMs > 0 + ? logger.info(LogOrigin.Playback, `Added ${time} sec`) + : logger.info(LogOrigin.Playback, `Removed ${time} sec`); + } + } + /** * Adds delay to current event + * @deprecated Use addTime * @param {number} delayTime time in minutes */ static setDelay(delayTime: number) { - if (eventTimer.loadedTimerId) { - const delayInMs = delayTime * 1000 * 60; - eventTimer.delay(delayInMs); - delayInMs > 0 - ? logger.info(LogOrigin.Playback, `Added ${delayTime} min delay`) - : logger.info(LogOrigin.Playback, `Removed ${delayTime} min delay`); - } + this.addTime(delayTime * 60); } }