diff --git a/src/tv2-common/helpers/graphics/index.ts b/src/tv2-common/helpers/graphics/index.ts index 6816fe605..b72580561 100644 --- a/src/tv2-common/helpers/graphics/index.ts +++ b/src/tv2-common/helpers/graphics/index.ts @@ -1,5 +1,6 @@ -import { IBlueprintPart } from '@sofie-automation/blueprints-integration' -import { TV2BlueprintConfig } from 'tv2-common' +import { IBlueprintPart, TSR } from '@sofie-automation/blueprints-integration' +import { layerToHTMLGraphicSlot, literal, TV2BlueprintConfig } from 'tv2-common' +import { GraphicLLayer } from 'tv2-constants' export * from './name' export * from './timing' @@ -20,3 +21,128 @@ export function ApplyFullGraphicPropertiesToPart(config: TV2BlueprintConfig, par ? config.studio.HTMLGraphics.KeepAliveDuration : config.studio.VizPilotGraphics.KeepAliveDuration } + +export function CreateGraphicBaseline(config: TV2BlueprintConfig): TSR.TSRTimelineObj[] { + if (config.studio.GraphicsType === 'VIZ') { + return [] + } else { + return [ + ...[ + GraphicLLayer.GraphicLLayerOverlayHeadline, + GraphicLLayer.GraphicLLayerOverlayIdent, + GraphicLLayer.GraphicLLayerOverlayLower, + GraphicLLayer.GraphicLLayerOverlayTema, + GraphicLLayer.GraphicLLayerOverlayTopt, + GraphicLLayer.GraphicLLayerLocators + ].map(layer => { + return literal({ + id: '', + enable: { + while: '1' + }, + priority: 0, + layer, + content: { + deviceType: TSR.DeviceType.CASPARCG, + type: TSR.TimelineContentTypeCasparCg.TEMPLATE, + templateType: 'html', + name: 'sport-overlay/index', + data: `${encodeURI( + JSON.stringify({ + display: 'program', + slots: { + [layerToHTMLGraphicSlot[layer]]: { + payload: {}, + display: 'hidden' + } + }, + partialUpdate: true + }) + )}`, + useStopCommand: false + } + }) + }), + literal({ + id: '', + enable: { + while: '1' + }, + priority: 0, + layer: GraphicLLayer.GraphicLLayerOverlay, + content: { + deviceType: TSR.DeviceType.CASPARCG, + type: TSR.TimelineContentTypeCasparCg.TEMPLATE, + templateType: 'html', + name: 'sport-overlay/index', + data: `${encodeURI( + JSON.stringify({ + display: 'program', + slots: { + ...[ + GraphicLLayer.GraphicLLayerOverlayHeadline, + GraphicLLayer.GraphicLLayerOverlayIdent, + GraphicLLayer.GraphicLLayerOverlayLower, + GraphicLLayer.GraphicLLayerOverlayTema, + GraphicLLayer.GraphicLLayerOverlayTopt + ].map(layer => { + return { + [layerToHTMLGraphicSlot[layer]]: { + payload: {}, + display: 'hidden' + } + } + }) + }, + partialUpdate: true + }) + )}`, + useStopCommand: false + } + }), + literal({ + id: '', + enable: { + while: '1' + }, + priority: 0, + layer: GraphicLLayer.GraphicLLayerDesign, + content: { + deviceType: TSR.DeviceType.CASPARCG, + type: TSR.TimelineContentTypeCasparCg.TEMPLATE, + templateType: 'html', + name: 'sport-overlay/index', + data: `${encodeURI( + JSON.stringify({ + display: 'program', + design: '', + partialUpdate: true + }) + )}`, + useStopCommand: false + } + }), + literal({ + id: '', + enable: { + while: '1' + }, + priority: 0, + layer: GraphicLLayer.GraphicLLayerPilot, + content: { + deviceType: TSR.DeviceType.CASPARCG, + type: TSR.TimelineContentTypeCasparCg.TEMPLATE, + templateType: 'html', + name: 'sport-overlay/index', + data: `${encodeURI( + JSON.stringify({ + display: 'program', + slots: {} + }) + )}`, + useStopCommand: false + } + }) + ] + } +} diff --git a/src/tv2_afvd_showstyle/getRundown.ts b/src/tv2_afvd_showstyle/getRundown.ts index 2ac410490..bb62fa711 100644 --- a/src/tv2_afvd_showstyle/getRundown.ts +++ b/src/tv2_afvd_showstyle/getRundown.ts @@ -20,6 +20,7 @@ import { ActionRecallLastDVE, ActionRecallLastLive, ActionSelectDVELayout, + CreateGraphicBaseline, CreateLYDBaseline, GetEksternMetaData, GetLayersForEkstern, @@ -910,6 +911,7 @@ function getGlobalAdlibActionsAFVD(_context: ShowStyleContext, config: Blueprint function getBaseline(config: BlueprintConfig): TSR.TSRTimelineObjBase[] { return [ + ...CreateGraphicBaseline(config), // Default timeline literal({ id: '', diff --git a/src/tv2_offtube_showstyle/getRundown.ts b/src/tv2_offtube_showstyle/getRundown.ts index 76afc9377..036dd0c40 100644 --- a/src/tv2_offtube_showstyle/getRundown.ts +++ b/src/tv2_offtube_showstyle/getRundown.ts @@ -24,11 +24,11 @@ import { ActionRecallLastDVE, ActionRecallLastLive, ActionSelectDVELayout, + CreateGraphicBaseline, CreateLYDBaseline, GetTagForKam, GetTagForLive, GetTransitionAdLibActions, - layerToHTMLGraphicSlot, literal, pgmDSKLayers, SourceInfo @@ -37,7 +37,6 @@ import { AdlibActionType, AdlibTags, CONSTANTS, - GraphicLLayer, SharedOutputLayers, SharedSisyfosLLayer, SharedSourceLayers, @@ -642,122 +641,7 @@ function getGlobalAdlibActionsOfftube( function getBaseline(config: OfftubeShowstyleBlueprintConfig): TSR.TSRTimelineObjBase[] { return [ - ...[ - GraphicLLayer.GraphicLLayerOverlayHeadline, - GraphicLLayer.GraphicLLayerOverlayIdent, - GraphicLLayer.GraphicLLayerOverlayLower, - GraphicLLayer.GraphicLLayerOverlayTema, - GraphicLLayer.GraphicLLayerOverlayTopt, - GraphicLLayer.GraphicLLayerLocators - ].map(layer => { - return literal({ - id: '', - enable: { - while: '1' - }, - priority: 0, - layer, - content: { - deviceType: TSR.DeviceType.CASPARCG, - type: TSR.TimelineContentTypeCasparCg.TEMPLATE, - templateType: 'html', - name: 'sport-overlay/index', - data: `${encodeURI( - JSON.stringify({ - display: 'program', - slots: { - [layerToHTMLGraphicSlot[layer]]: { - payload: {}, - display: 'hidden' - } - }, - partialUpdate: true - }) - )}`, - useStopCommand: false - } - }) - }), - literal({ - id: '', - enable: { - while: '1' - }, - priority: 0, - layer: GraphicLLayer.GraphicLLayerOverlay, - content: { - deviceType: TSR.DeviceType.CASPARCG, - type: TSR.TimelineContentTypeCasparCg.TEMPLATE, - templateType: 'html', - name: 'sport-overlay/index', - data: `${encodeURI( - JSON.stringify({ - display: 'program', - slots: { - ...[ - GraphicLLayer.GraphicLLayerOverlayHeadline, - GraphicLLayer.GraphicLLayerOverlayIdent, - GraphicLLayer.GraphicLLayerOverlayLower, - GraphicLLayer.GraphicLLayerOverlayTema, - GraphicLLayer.GraphicLLayerOverlayTopt - ].map(layer => { - return { - [layerToHTMLGraphicSlot[layer]]: { - payload: {}, - display: 'hidden' - } - } - }) - }, - partialUpdate: true - }) - )}`, - useStopCommand: false - } - }), - literal({ - id: '', - enable: { - while: '1' - }, - priority: 0, - layer: GraphicLLayer.GraphicLLayerDesign, - content: { - deviceType: TSR.DeviceType.CASPARCG, - type: TSR.TimelineContentTypeCasparCg.TEMPLATE, - templateType: 'html', - name: 'sport-overlay/index', - data: `${encodeURI( - JSON.stringify({ - display: 'program', - design: '', - partialUpdate: true - }) - )}`, - useStopCommand: false - } - }), - literal({ - id: '', - enable: { - while: '1' - }, - priority: 0, - layer: GraphicLLayer.GraphicLLayerPilot, - content: { - deviceType: TSR.DeviceType.CASPARCG, - type: TSR.TimelineContentTypeCasparCg.TEMPLATE, - templateType: 'html', - name: 'sport-overlay/index', - data: `${encodeURI( - JSON.stringify({ - display: 'program', - slots: {} - }) - )}`, - useStopCommand: false - } - }), + ...CreateGraphicBaseline(config), // Default timeline literal({ id: '',