mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-08 17:03:53 +00:00
fix: next cue (#1821)
* fix next cue * Update apps/server/src/services/runtime-service/runtime.service.ts Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com> --------- Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
3a0dbf057e
commit
9b36f36f73
@@ -273,13 +273,14 @@ class RuntimeService {
|
||||
public startByCue(cue: string): boolean {
|
||||
const state = runtimeState.getState();
|
||||
const rundown = getCurrentRundown();
|
||||
const { playableEventOrder } = getRundownMetadata();
|
||||
const { timedEventOrder } = getRundownMetadata();
|
||||
|
||||
const event = findNextPlayableWithCue(
|
||||
rundown,
|
||||
playableEventOrder,
|
||||
timedEventOrder,
|
||||
cue,
|
||||
state.rundown.selectedEventIndex ?? undefined,
|
||||
state.timer.playback === Playback.Armed, // If we are armed allow the armed event to be considered for playback
|
||||
);
|
||||
|
||||
if (!event) {
|
||||
@@ -341,6 +342,7 @@ class RuntimeService {
|
||||
playableEventOrder,
|
||||
cue,
|
||||
state.rundown.selectedEventIndex ?? undefined,
|
||||
false,
|
||||
);
|
||||
|
||||
if (!event) {
|
||||
|
||||
@@ -118,24 +118,25 @@ export function findNextPlayableId(playableEventsOrder: EntryId[], currentEventI
|
||||
*/
|
||||
export function findNextPlayableWithCue(
|
||||
rundown: Rundown,
|
||||
playableEventsOrder: EntryId[],
|
||||
timedEventsOrder: EntryId[],
|
||||
targetCue: string,
|
||||
currentEventIndex = 0,
|
||||
allowCurrent = false,
|
||||
): OntimeEvent | undefined {
|
||||
const lowerCaseCue = targetCue.toLowerCase();
|
||||
const startFromIndex = allowCurrent ? currentEventIndex : currentEventIndex + 1;
|
||||
|
||||
for (let i = currentEventIndex; i < playableEventsOrder.length; i++) {
|
||||
const eventId = playableEventsOrder[i];
|
||||
for (let i = startFromIndex; i < timedEventsOrder.length; i++) {
|
||||
const eventId = timedEventsOrder[i];
|
||||
const event = rundown.entries[eventId];
|
||||
if (isOntimeEvent(event) && isPlayableEvent(event) && event.cue.toLowerCase() === lowerCaseCue) {
|
||||
if (isOntimeEvent(event) && isPlayableEvent(event) && event.cue === targetCue) {
|
||||
return event;
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < currentEventIndex; i++) {
|
||||
const eventId = playableEventsOrder[i];
|
||||
for (let i = 0; i < startFromIndex; i++) {
|
||||
const eventId = timedEventsOrder[i];
|
||||
const event = rundown.entries[eventId];
|
||||
if (isOntimeEvent(event) && isPlayableEvent(event) && event.cue.toLowerCase() === lowerCaseCue) {
|
||||
if (isOntimeEvent(event) && isPlayableEvent(event) && event.cue === targetCue) {
|
||||
return event;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user