diff --git a/packages/input-gateway/src/inputManagerHandler.ts b/packages/input-gateway/src/inputManagerHandler.ts index d1fdf81..7bbb303 100644 --- a/packages/input-gateway/src/inputManagerHandler.ts +++ b/packages/input-gateway/src/inputManagerHandler.ts @@ -646,7 +646,15 @@ export class InputManagerHandler { .reverse() if (previewedAdlibs.length > 0) { - tally = tally | Tally.PRESENT + tally = + tally | + Tally.PRESENT | + previewedAdlibs.reduce( + (acc, adlib) => + // @ts-expect-error: needs new build of core-integration, but we're on release50, which causes some incompatibilities, even though things just work... + acc | (adlib.isCurrent ? Tally.CURRENT : Tally.NONE) | (adlib.isNext ? Tally.NEXT : Tally.NONE), + Tally.NONE + ) contentLayerLongName = previewedAdlibs[0].sourceLayerName?.name contentLayerShortName = previewedAdlibs[0].sourceLayerName?.abbreviation contentLabel = previewedAdlibs.map((adlib) => InputManagerHandler.getStringLabel(adlib.label)).join(', ') diff --git a/packages/input-manager/src/feedback/bitmap/typeRenderers/adlib/base.ts b/packages/input-manager/src/feedback/bitmap/typeRenderers/adlib/base.ts index b1b7517..73b01f1 100644 --- a/packages/input-manager/src/feedback/bitmap/typeRenderers/adlib/base.ts +++ b/packages/input-manager/src/feedback/bitmap/typeRenderers/adlib/base.ts @@ -1,4 +1,4 @@ -import { ClassNames, BitmapFeedback } from '../../../feedback' +import { ClassNames, BitmapFeedback, Tally } from '../../../feedback' import { BaseRenderer } from '../base' /** @@ -54,6 +54,11 @@ const COLORS: Record = { [ClassNames.UNKNOWN]: '#4b4b4b', } +const TALLY_COLORS: Record = { + [Tally.CURRENT]: '#ff0000', + [Tally.NEXT]: '#00ff00', +} + export class BaseAdLibRenderer extends BaseRenderer { private getAdLibColor(classNames: string[] | undefined): string { if (classNames === undefined) return COLORS[ClassNames.UNKNOWN] @@ -62,6 +67,13 @@ export class BaseAdLibRenderer extends BaseRenderer { return COLORS[ClassNames.UNKNOWN] } + private getTallyColor(tally: Tally | undefined): string | undefined { + if (tally === undefined) return undefined + if (Tally.CURRENT & tally) return TALLY_COLORS[Tally.CURRENT] + if (Tally.NEXT & tally) return TALLY_COLORS[Tally.NEXT] + return undefined + } + private getFontSize(label: string): number { if (label.length <= 3) { return 2.5 @@ -86,7 +98,7 @@ export class BaseAdLibRenderer extends BaseRenderer { spring: true, fontSize: this.percentToPixels(this.getFontSize(label)), lineHeight: this.percentToPixels(this.getFontSize(label)), - background: this.getAdLibColor(feedback.classNames), + background: this.getTallyColor(feedback.tally) ?? this.getAdLibColor(feedback.classNames), textShadowOffset: 1, lineClamp: 4, }) diff --git a/packages/input-manager/src/generated/streamdeck.ts b/packages/input-manager/src/generated/streamdeck.ts index 6b87127..a375d6b 100644 --- a/packages/input-manager/src/generated/streamdeck.ts +++ b/packages/input-manager/src/generated/streamdeck.ts @@ -29,7 +29,7 @@ export interface StreamdeckStylePreset { fontWeight?: 'normal' | 'bold' fontWidth?: 'normal' | 'narrow' fontStyle?: 'normal' | 'italic' - color?: boolean & string + color?: string textStrokeColor?: string textShadowColor?: string textShadowOffset?: number @@ -43,7 +43,7 @@ export interface StreamdeckStylePreset { | 'left bottom' | 'center bottom' | 'right bottom' - textTransform?: 'capitalize' | 'uppercase' | 'lowercase' + textTransform?: 'none' | 'capitalize' | 'uppercase' | 'lowercase' lineClamp?: number inlineBackground?: string inlineBackgroundPadding?: string