11import { BlueprintId , TimelineHash } from '@sofie-automation/corelib/dist/dataModel/Ids'
22import { JobContext , JobStudio } from '../../jobs'
33import { ReadonlyDeep } from 'type-fest'
4- import {
5- BlueprintResultBaseline ,
6- BlueprintResultTimeline ,
7- OnGenerateTimelineObj ,
8- Time ,
9- TSR ,
10- } from '@sofie-automation/blueprints-integration'
4+ import { BlueprintResultBaseline , OnGenerateTimelineObj , Time , TSR } from '@sofie-automation/blueprints-integration'
115import {
126 deserializeTimelineBlob ,
137 OnGenerateTimelineObjExt ,
@@ -46,6 +40,7 @@ import { getPartTimingsOrDefaults, PartCalculatedTimings } from '@sofie-automati
4640import { applyAbPlaybackForTimeline } from '../abPlayback'
4741import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
4842import { PlayoutPartInstanceModel } from '../model/PlayoutPartInstanceModel'
43+ import { PersistentPlayoutStateStore } from '../../blueprints/context/services/PersistantStateStore'
4944
5045function isModelForStudio ( model : StudioPlayoutModelBase ) : model is StudioPlayoutModel {
5146 const tmp = model as StudioPlayoutModel
@@ -388,14 +383,17 @@ async function getTimelineRundown(
388383 } )
389384 }
390385
391- let tlGenRes : BlueprintResultTimeline | undefined
392386 if ( blueprint . blueprint . onTimelineGenerate ) {
387+ const blueprintPersistentState = new PersistentPlayoutStateStore (
388+ playoutModel . playlist . previousPersistentState
389+ )
390+
393391 const span = context . startSpan ( 'blueprint.onTimelineGenerate' )
394392 const influxTrace = startTrace ( 'blueprints:onTimelineGenerate' )
395- tlGenRes = await blueprint . blueprint . onTimelineGenerate (
393+ const tlGenRes = await blueprint . blueprint . onTimelineGenerate (
396394 blueprintContext ,
397395 timelineObjs ,
398- clone ( playoutModel . playlist . previousPersistentState ) ,
396+ blueprintPersistentState ,
399397 clone ( currentPartInstance ?. partInstance ?. previousPartEndState ) ,
400398 resolvedPieces . map ( convertResolvedPieceInstanceToBlueprints )
401399 )
@@ -408,10 +406,13 @@ async function getTimelineRundown(
408406 objectType : TimelineObjType . RUNDOWN ,
409407 } )
410408 } )
409+
410+ if ( blueprintPersistentState . hasChanges ) {
411+ playoutModel . setBlueprintPersistentState ( blueprintPersistentState . getAll ( ) )
412+ }
411413 }
412414
413- playoutModel . setOnTimelineGenerateResult (
414- tlGenRes ?. persistentState ,
415+ playoutModel . setAbResolvingState (
415416 newAbSessionsResult . assignments ,
416417 blueprintContext . abSessionsHelper . knownSessions
417418 )
0 commit comments