Skip to content

Commit e727028

Browse files
author
Mint de Wit
committed
feat: expose getSegment in blueprint context
1 parent 955d96e commit e727028

File tree

6 files changed

+30
-0
lines changed

6 files changed

+30
-0
lines changed

packages/blueprints-integration/src/context/onSetAsNextContext.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
IBlueprintPieceDB,
77
IBlueprintPieceInstance,
88
IBlueprintResolvedPieceInstance,
9+
IBlueprintSegment,
910
IEventContext,
1011
IShowStyleUserContext,
1112
} from '..'
@@ -49,6 +50,8 @@ export interface IOnSetAsNextContext extends IShowStyleUserContext, IEventContex
4950
getPartInstanceForPreviousPiece(piece: IBlueprintPieceInstance): Promise<IBlueprintPartInstance>
5051
/** Gets the Part for a Piece retrieved from findLastScriptedPieceOnLayer. This primarily allows for accessing metadata of the Part */
5152
getPartForPreviousPiece(piece: IBlueprintPieceDB): Promise<IBlueprintPart | undefined>
53+
/** Gets the Segment. This primarily allows for accessing metadata */
54+
getSegment(segment: 'current' | 'next'): Promise<IBlueprintSegment | undefined>
5255

5356
/**
5457
* Creative actions

packages/blueprints-integration/src/context/partsAndPieceActionContext.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
IBlueprintPieceDB,
77
IBlueprintPieceInstance,
88
IBlueprintResolvedPieceInstance,
9+
IBlueprintSegment,
910
Time,
1011
} from '..'
1112
import { BlueprintQuickLookInfo } from './quickLoopInfo'
@@ -44,6 +45,8 @@ export interface IPartAndPieceActionContext {
4445
getPartInstanceForPreviousPiece(piece: IBlueprintPieceInstance): Promise<IBlueprintPartInstance>
4546
/** Gets the Part for a Piece retrieved from findLastScriptedPieceOnLayer. This primarily allows for accessing metadata of the Part */
4647
getPartForPreviousPiece(piece: IBlueprintPieceDB): Promise<IBlueprintPart | undefined>
48+
/** Gets the Segment. This primarily allows for accessing metadata */
49+
getSegment(segment: 'current' | 'next'): Promise<IBlueprintSegment | undefined>
4750

4851
/**
4952
* Creative actions

packages/job-worker/src/blueprints/context/OnSetAsNextContext.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
IBlueprintPieceDB,
1010
IBlueprintPieceInstance,
1111
IBlueprintResolvedPieceInstance,
12+
IBlueprintSegment,
1213
IEventContext,
1314
IOnSetAsNextContext,
1415
} from '@sofie-automation/blueprints-integration'
@@ -67,6 +68,10 @@ export class OnSetAsNextContext
6768
return this.partAndPieceInstanceService.getResolvedPieceInstances(part)
6869
}
6970

71+
async getSegment(segment: 'current' | 'next'): Promise<IBlueprintSegment | undefined> {
72+
return this.partAndPieceInstanceService.getSegment(segment)
73+
}
74+
7075
async findLastPieceOnLayer(
7176
sourceLayerId0: string | string[],
7277
options?: {

packages/job-worker/src/blueprints/context/OnTakeContext.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
TSR,
1313
IBlueprintPlayoutDevice,
1414
IOnTakeContext,
15+
IBlueprintSegment,
1516
} from '@sofie-automation/blueprints-integration'
1617
import { PeripheralDeviceId } from '@sofie-automation/corelib/dist/dataModel/Ids'
1718
import { ReadonlyDeep } from 'type-fest'
@@ -64,6 +65,9 @@ export class OnTakeContext extends ShowStyleUserContext implements IOnTakeContex
6465
async getResolvedPieceInstances(part: 'current' | 'next'): Promise<IBlueprintResolvedPieceInstance[]> {
6566
return this.partAndPieceInstanceService.getResolvedPieceInstances(part)
6667
}
68+
async getSegment(segment: 'current' | 'next'): Promise<IBlueprintSegment | undefined> {
69+
return this.partAndPieceInstanceService.getSegment(segment)
70+
}
6771

6872
async findLastPieceOnLayer(
6973
sourceLayerId0: string | string[],

packages/job-worker/src/blueprints/context/adlibActions.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
TSR,
1515
IBlueprintPlayoutDevice,
1616
StudioRouteSet,
17+
IBlueprintSegment,
1718
} from '@sofie-automation/blueprints-integration'
1819
import { PartInstanceId, PeripheralDeviceId } from '@sofie-automation/corelib/dist/dataModel/Ids'
1920
import { ReadonlyDeep } from 'type-fest'
@@ -113,6 +114,10 @@ export class ActionExecutionContext extends ShowStyleUserContext implements IAct
113114
return this.partAndPieceInstanceService.getResolvedPieceInstances(part)
114115
}
115116

117+
async getSegment(segment: 'current' | 'next'): Promise<IBlueprintSegment | undefined> {
118+
return this.partAndPieceInstanceService.getSegment(segment)
119+
}
120+
116121
async findLastPieceOnLayer(
117122
sourceLayerId0: string | string[],
118123
options?: {

packages/job-worker/src/blueprints/context/services/PartAndPieceInstanceActionService.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
IBlueprintPieceDB,
1010
IBlueprintPieceInstance,
1111
IBlueprintResolvedPieceInstance,
12+
IBlueprintSegment,
1213
OmitId,
1314
SomeContent,
1415
Time,
@@ -22,6 +23,7 @@ import {
2223
convertPieceInstanceToBlueprints,
2324
convertPieceToBlueprints,
2425
convertResolvedPieceInstanceToBlueprints,
26+
convertSegmentToBlueprints,
2527
createBlueprintQuickLoopInfo,
2628
getMediaObjectDuration,
2729
} from '../lib'
@@ -138,6 +140,14 @@ export class PartAndPieceInstanceActionService {
138140
)
139141
return resolvedInstances.map(convertResolvedPieceInstanceToBlueprints)
140142
}
143+
getSegment(segment: 'current' | 'next'): IBlueprintSegment | undefined {
144+
const partInstance = this.#getPartInstance(segment)
145+
if (!partInstance) return undefined
146+
147+
const segmentModel = this._playoutModel.findSegment(partInstance.partInstance.segmentId)
148+
149+
return segmentModel?.segment ? convertSegmentToBlueprints(segmentModel?.segment) : undefined
150+
}
141151

142152
async findLastPieceOnLayer(
143153
sourceLayerId0: string | string[],

0 commit comments

Comments
 (0)