Skip to content

Commit a9b98e7

Browse files
author
Mint de Wit
committed
feat: add RemoteSpeak source layer type
1 parent cb59dd9 commit a9b98e7

File tree

17 files changed

+124
-6
lines changed

17 files changed

+124
-6
lines changed

meteor/server/api/rest/v1/typeConversion.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ export function sourceLayerFrom(apiSourceLayer: APISourceLayer): ISourceLayer {
200200
case 'transition':
201201
layerType = SourceLayerType.TRANSITION
202202
break
203+
case 'lights':
204+
layerType = SourceLayerType.LIGHTS
205+
break
203206
case 'unknown':
204207
layerType = SourceLayerType.UNKNOWN
205208
break
@@ -209,6 +212,9 @@ export function sourceLayerFrom(apiSourceLayer: APISourceLayer): ISourceLayer {
209212
case 'studio-screen':
210213
layerType = SourceLayerType.STUDIO_SCREEN
211214
break
215+
case 'remote-speak':
216+
layerType = SourceLayerType.REMOTE_SPEAK
217+
break
212218
default:
213219
layerType = SourceLayerType.UNKNOWN
214220
assertNever(apiSourceLayer.layerType)
@@ -257,6 +263,9 @@ export function APISourceLayerFrom(sourceLayer: ISourceLayer): APISourceLayer {
257263
case SourceLayerType.TRANSITION:
258264
layerType = 'transition'
259265
break
266+
case SourceLayerType.LIGHTS:
267+
layerType = 'lights'
268+
break
260269
case SourceLayerType.UNKNOWN:
261270
layerType = 'unknown'
262271
break
@@ -266,6 +275,9 @@ export function APISourceLayerFrom(sourceLayer: ISourceLayer): APISourceLayer {
266275
case SourceLayerType.STUDIO_SCREEN:
267276
layerType = 'studio-screen'
268277
break
278+
case SourceLayerType.REMOTE_SPEAK:
279+
layerType = 'remote-speak'
280+
break
269281
default:
270282
layerType = 'unknown'
271283
assertNever(sourceLayer.type)

meteor/server/lib/rest/v1/showstyles.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,9 @@ export interface APISourceLayer {
249249
| 'lower-third'
250250
| 'live-speak'
251251
| 'transition'
252+
| 'lights'
252253
| 'local'
253254
| 'studio-screen'
255+
| 'remote-speak'
254256
exclusiveGroup?: string
255257
}

meteor/server/publications/pieceContentStatusUI/checkPieceContentStatus.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ export async function checkPieceContentStatusAndDependencies(
211211
packageContainerPackageStatuses: [],
212212
}
213213

214-
const ignoreMediaStatus = piece.content && piece.content.ignoreMediaObjectStatus
214+
const ignoreMediaStatus = true // piece.content && piece.content.ignoreMediaObjectStatus
215215
if (!ignoreMediaStatus) {
216216
if (piece.expectedPackages) {
217217
const getPackageInfos = async (packageId: ExpectedPackageId) => {

packages/blueprints-integration/src/content.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ export type SomeContent =
4242
| GraphicsContent
4343
| UnknownContent
4444
| EvsContent
45+
| RemoteSpeakContent
46+
| LightingContent
4547

4648
export type UnknownContent = BaseContent
4749

@@ -190,4 +192,8 @@ export interface TransitionContent extends BaseContent {
190192

191193
export type SomeTransitionContent = VTContent | TransitionContent
192194

195+
export type RemoteSpeakContent = RemoteContent
196+
197+
export type LightingContent = UnknownContent
198+
193199
export { SourceLayerType }

packages/shared-lib/src/core/model/ShowStyle.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,14 @@ export enum SourceLayerType {
2121
LIVE_SPEAK = 11,
2222
/** Transition effects, content object can use VTContent or TransitionContent */
2323
TRANSITION = 13,
24-
// LIGHTS = 14,
24+
/** Control of Studio Lighting, Effects, etc. */
25+
LIGHTS = 14,
2526
/** Uncontrolled local sources, such as PowerPoint presentation inputs, Weather systems, EVS replay machines, etc. */
2627
LOCAL = 15,
2728
/** Sources that are intended for a studio screen, such as weather, presentations etc. */
2829
STUDIO_SCREEN = 16,
30+
/** Remote source with (Local) Studio Audio */
31+
REMOTE_SPEAK = 17,
2932
}
3033

3134
/** A single source layer, f.g Cameras, VT, Graphics, Remotes */

packages/webui/src/client/styles/_itemTypeColors.scss

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,21 @@ $segment-layer-background-live-speak--second: linear-gradient(
2424
$segment-layer-background-live-speak--second-1 50%,
2525
$segment-layer-background-live-speak--second-2 50%
2626
);
27+
$segment-layer-border-remote-speak: #e80064;
28+
$segment-layer-background-remote-speak-1: #e80064;
29+
$segment-layer-background-remote-speak-2: #39762b;
30+
$segment-layer-background-remote-speak: linear-gradient(
31+
to bottom,
32+
$segment-layer-background-remote-speak-1 50%,
33+
$segment-layer-background-remote-speak-2 50%
34+
);
35+
$segment-layer-background-remote-speak--second-1: darken(#e80064, 10%);
36+
$segment-layer-background-remote-speak--second-2: darken(#39762b, 10%);
37+
$segment-layer-background-remote-speak--second: linear-gradient(
38+
to bottom,
39+
$segment-layer-background-remote-speak--second-1 50%,
40+
$segment-layer-background-remote-speak--second-2 50%
41+
);
2742
$segment-layer-background-remote: #e80064;
2843
$segment-layer-background-remote--second: darken($segment-layer-background-remote, 10%);
2944
$segment-layer-background-vt: #0a20ed;
@@ -42,7 +57,7 @@ $segment-item-disabled-color: #c9c9c9;
4257

4358
$layer-types-solid: 'unknown', 'camera', 'lower-third', 'graphics', 'remote', 'vt', 'local', 'script', 'mic', 'guest',
4459
'studio-screen';
45-
$layer-types-gradient: 'live-speak'; //
60+
$layer-types-gradient: 'live-speak', 'remote-speak'; //
4661

4762
$layer-types: join($layer-types-solid, $layer-types-gradient);
4863

@@ -460,6 +475,12 @@ $layer-types: join($layer-types-solid, $layer-types-gradient);
460475
--segment-layer-background-live-speak--second-1: #{$segment-layer-background-live-speak--second-1};
461476
--segment-layer-background-live-speak--second-2: #{$segment-layer-background-live-speak--second-2};
462477
--segment-layer-background-live-speak--second: #{$segment-layer-background-live-speak--second};
478+
--segment-layer-background-remote-speak-1: #{$segment-layer-background-remote-speak-1};
479+
--segment-layer-background-remote-speak-2: #{$segment-layer-background-remote-speak-2};
480+
--segment-layer-background-remote-speak: #{$segment-layer-background-remote-speak};
481+
--segment-layer-background-remote-speak--second-1: #{$segment-layer-background-remote-speak--second-1};
482+
--segment-layer-background-remote-speak--second-2: #{$segment-layer-background-remote-speak--second-2};
483+
--segment-layer-background-remote-speak--second: #{$segment-layer-background-remote-speak--second};
463484
--segment-layer-background-remote: #{$segment-layer-background-remote};
464485
--segment-layer-background-remote--second: #{$segment-layer-background-remote--second};
465486
--segment-layer-background-local: #{$segment-layer-background-local};

packages/webui/src/client/styles/rundownView.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1904,7 +1904,7 @@ svg.icon {
19041904
}
19051905

19061906
&.splits,
1907-
&.live-speak {
1907+
&.live-speak &.remote-speak {
19081908
.segment-timeline__piece__preview {
19091909
position: absolute;
19101910
top: 0;

packages/webui/src/client/styles/shelf/adLibPanel.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,13 @@ $adlib-item-selected-color: var(--adlib-item-selected-color);
213213
var(--$segment-layer-background-camera) 50.0001%
214214
);
215215
}
216+
&.remote-speak {
217+
background: linear-gradient(
218+
to bottom,
219+
var(--segment-layer-background-remote-speak-1) 50%,
220+
var(--$segment-layer-background-remote-speak-2) 50.0001%
221+
);
222+
}
216223

217224
&.splits {
218225
background: linear-gradient(

packages/webui/src/client/styles/shelf/dashboard.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,14 @@ $dashboard-button-height: 5.625em;
313313
);
314314
}
315315

316+
&.remote-speak {
317+
background: linear-gradient(
318+
to top,
319+
var(--segment-layer-background-remote-speak-2) 1em,
320+
var(--segment-layer-background-remote-speak-1) 1em
321+
);
322+
}
323+
316324
&.live {
317325
box-shadow: $dashboard-panel__button__border-width $dashboard-panel__button__border-width 0 $general-live-color,
318326
($dashboard-panel__button__border-width * -1) ($dashboard-panel__button__border-width * -1) 0

packages/webui/src/client/ui/ClockView/CameraScreen/index.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'
2-
import { CameraContent, RemoteContent, SourceLayerType, SplitsContent } from '@sofie-automation/blueprints-integration'
2+
import {
3+
CameraContent,
4+
RemoteContent,
5+
RemoteSpeakContent,
6+
SourceLayerType,
7+
SplitsContent,
8+
} from '@sofie-automation/blueprints-integration'
39
import { RundownId, ShowStyleBaseId, StudioId } from '@sofie-automation/corelib/dist/dataModel/Ids'
410
import { Rundown } from '@sofie-automation/corelib/dist/dataModel/Rundown'
511
import { unprotectString } from '@sofie-automation/corelib/dist/protectedString'
@@ -163,7 +169,7 @@ export function CameraScreen({ playlist, studioId }: Readonly<IProps>): JSX.Elem
163169

164170
const pieceFilterFunction = useMemo(() => {
165171
return (piece: PieceExtended) => {
166-
const camLikeContent = piece.instance.piece.content as CameraContent | RemoteContent
172+
const camLikeContent = piece.instance.piece.content as CameraContent | RemoteContent | RemoteSpeakContent
167173
if (
168174
sourceLayerIds !== null &&
169175
(piece.sourceLayer?._id === undefined || !sourceLayerIds.includes(piece.sourceLayer?._id))

0 commit comments

Comments
 (0)