Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
"unit": "lerna run --stream unit",
"unitci": "lerna run --stream unitci",
"watch": "run build:main --watch --preserveWatchOutput",
"dev": "run watch",
"dev:quick-tsr": "yarn workspace quick-tsr run start",
"docs": "typedoc .",
"release:set-version": "lerna version --exact --no-changelog --no-git-tag-version --no-push --yes",
"release:bump-release": "lerna version --exact --conventional-commits --changelog-preset conventionalcommits --conventional-graduate --tag-version-prefix='' --no-push --force-publish='*'",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ exports[`index imports 1`] = `
"MappingSisyfosType",
"MappingSofieChefType",
"MappingTricasterType",
"MappingVindralComposerType",
"MappingVmixType",
"MediaSourceType",
"MultiOSCDeviceType",
Expand Down Expand Up @@ -110,6 +111,7 @@ exports[`index imports 1`] = `
"TimelineContentTypeSofieChef",
"TimelineContentTypeTriCaster",
"TimelineContentTypeVMix",
"TimelineContentTypeVindralComposer",
"TimelineContentTypeVizMSE",
"TimelineContentTypeWebSocketClient",
"Transition",
Expand All @@ -125,6 +127,8 @@ exports[`index imports 1`] = `
"VMixStatusMessages",
"VMixTransitionType",
"VideoFormat",
"VindralComposerActions",
"VindralComposerPlaybackEndBehaviour",
"ViscaOverIPActions",
"VizMSEActions",
"VizMSEStatusCode",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ export type DeviceOptionsTricaster = DeviceOptionsBase<DeviceType.TRICASTER, Tri
import type { UdpSendOptions } from './udpSend.js'
export type DeviceOptionsUdpSend = DeviceOptionsBase<DeviceType.UDP_SEND, UdpSendOptions>

import type { VindralComposerOptions } from './vindral-composer.js'
export type DeviceOptionsVindralComposer = DeviceOptionsBase<DeviceType.VINDRAL_COMPOSER, VindralComposerOptions>

import type { ViscaOverIPOptions } from './viscaOverIP.js'
export type DeviceOptionsViscaOverIP = DeviceOptionsBase<DeviceType.VISCA_OVER_IP, ViscaOverIPOptions>

Expand Down Expand Up @@ -115,6 +118,7 @@ export interface DeviceOptionsMap {
[DeviceType.TELEMETRICS]: DeviceOptionsTelemetrics
[DeviceType.TRICASTER]: DeviceOptionsTricaster
[DeviceType.UDP_SEND]: DeviceOptionsUdpSend
[DeviceType.VINDRAL_COMPOSER]: DeviceOptionsVindralComposer
[DeviceType.VISCA_OVER_IP]: DeviceOptionsViscaOverIP
[DeviceType.VIZMSE]: DeviceOptionsVizMSE
[DeviceType.VMIX]: DeviceOptionsVmix
Expand Down Expand Up @@ -153,6 +157,7 @@ export enum DeviceType {
TELEMETRICS = 'TELEMETRICS',
TRICASTER = 'TRICASTER',
UDP_SEND = 'UDP_SEND',
VINDRAL_COMPOSER = 'VINDRAL_COMPOSER',
VISCA_OVER_IP = 'VISCA_OVER_IP',
VIZMSE = 'VIZMSE',
VMIX = 'VMIX',
Expand Down
4 changes: 4 additions & 0 deletions packages/timeline-state-resolver-types/src/generated/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ import type { TricasterDeviceTypes } from './tricaster.js'
export * from './udpSend'
import type { UdpSendDeviceTypes } from './udpSend.js'

export * from './vindral-composer'
import type { VindralComposerDeviceTypes } from './vindral-composer.js'

export * from './viscaOverIP'
import type { ViscaOverIPDeviceTypes } from './viscaOverIP.js'

Expand Down Expand Up @@ -119,6 +122,7 @@ export interface TSRDeviceTypesMap {
[DeviceType.TELEMETRICS]: TelemetricsDeviceTypes
[DeviceType.TRICASTER]: TricasterDeviceTypes
[DeviceType.UDP_SEND]: UdpSendDeviceTypes
[DeviceType.VINDRAL_COMPOSER]: VindralComposerDeviceTypes
[DeviceType.VISCA_OVER_IP]: ViscaOverIPDeviceTypes
[DeviceType.VIZMSE]: VizMSEDeviceTypes
[DeviceType.VMIX]: VmixDeviceTypes
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
/* eslint-disable */

Check failure on line 1 in packages/timeline-state-resolver-types/src/generated/vindral-composer.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Specify the rules you want to disable.

See more on https://sonarcloud.io/project/issues?id=Sofie-Automation_sofie-timeline-state-resolver&issues=AZ7vpvVIiUaB53boBbvw&open=AZ7vpvVIiUaB53boBbvw&pullRequest=464
/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and re-run the "tsr-schema-types" tool to regenerate this file.
*/
import type { ActionExecutionResult } from '../actions.js'
import type { DeviceType } from './device-options.js'

export interface VindralComposerOptions {
/**
* Hostname or IP address of the Composer instance
*/
host?: string
/**
* WebSocket port
*/
wsPort?: number
/**
* HTTP Web API port
*/
httpPort?: number
/**
* Whether to reconnect automatically on disconnect
*/
autoReconnect?: boolean
/**
* Route supported operations (currently media player load/play) through TSR helper functions (tsr*) in the Composer Script Engine instead of direct HTTP property/command calls. This lets the device load a clip, seek and start playback as one atomic operation that reacts to the clip-loaded event inside Composer, avoiding the load-timing guesswork of the raw HTTP API. Requires the TSR helper script to be loaded in the Composer project (see SCRIPT_ENGINE.md). Leave off to use the minimal direct-HTTP flow.
*/
useScriptEngine?: boolean
}

export interface MappingVindralComposerConnector {
mappingType: MappingVindralComposerType.Connector
}

export interface MappingVindralComposerSceneLayer {
scene: string
layer: string
mappingType: MappingVindralComposerType.SceneLayer
}

export interface MappingVindralComposerScriptEngine {
functionName: string
mappingType: MappingVindralComposerType.ScriptEngine
}

export interface MappingVindralComposerSwitcher {
switcherId?: string
switcherName?: string
mappingType: MappingVindralComposerType.Switcher
}

export interface MappingVindralComposerMediaPlayer {
mediaPlayerId: string
mediaPlayerName: string
autoPlayOnMediaChange?: boolean
mappingType: MappingVindralComposerType.MediaPlayer
}

export interface MappingVindralComposerHtml {
webPageRendererId?: string
webPageRendererName?: string
mappingType: MappingVindralComposerType.Html
}

export interface MappingVindralComposerAudioSource {
audioSourceId?: string
audioSourceName?: string
mappingType: MappingVindralComposerType.AudioSource
}

export interface MappingVindralComposerSwitcherOverlay {
switcherId?: string
switcherName?: string
overlay: number
mappingType: MappingVindralComposerType.SwitcherOverlay
}

export enum MappingVindralComposerType {
Connector = 'connector',
SceneLayer = 'scene-layer',
ScriptEngine = 'script-engine',
Switcher = 'switcher',
MediaPlayer = 'media-player',
Html = 'html',
AudioSource = 'audio-source',
SwitcherOverlay = 'switcher-overlay',
}

export type SomeMappingVindralComposer =
| MappingVindralComposerConnector
| MappingVindralComposerSceneLayer
| MappingVindralComposerScriptEngine
| MappingVindralComposerSwitcher
| MappingVindralComposerMediaPlayer
| MappingVindralComposerHtml
| MappingVindralComposerAudioSource
| MappingVindralComposerSwitcherOverlay

export interface TriggerConnectorPayload {
/**
* Trigger the connector by name. Mutually exclusive with `value`.
*/
name?: string
/**
* Trigger the connector by value. Mutually exclusive with `name`.
*/
value?: string
/**
* Optional key/value pairs passed to the connector, accessible via @@paramname in Connector commands.
*/
params?: {
[k: string]: string
}
}

export interface ExecuteScriptFunctionPayload {
/**
* The name of the script function to execute.
*/
functionName: string
/**
* Optional JSON-serializable parameter object passed to the script function.
*/
parameter?: {
[k: string]: unknown
}
}

export enum VindralComposerActions {
TriggerConnector = 'triggerConnector',
ExecuteScriptFunction = 'executeScriptFunction',
}
export interface VindralComposerActionMethods {
[VindralComposerActions.TriggerConnector]: (payload: TriggerConnectorPayload) => Promise<ActionExecutionResult<void>>
[VindralComposerActions.ExecuteScriptFunction]: (
payload: ExecuteScriptFunctionPayload
) => Promise<ActionExecutionResult<void>>
}

export interface VindralComposerDeviceTypes {
Type: DeviceType.VINDRAL_COMPOSER
Options: VindralComposerOptions
Mappings: SomeMappingVindralComposer
Actions: VindralComposerActionMethods
}
3 changes: 3 additions & 0 deletions packages/timeline-state-resolver-types/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { TimelineContentKairosAny } from './integrations/kairos/timeline.js'
import { DeviceType, TSRDeviceTypesMap } from './generated/index.js'
import { TimelineContentUDPSendAny } from './integrations/udpSend/timeline.js'
import { TimelineContentOgrafAny } from './integrations/ograf/timeline.js'
import { TimelineContentVindralComposerAny } from './integrations/vindral-composer/timeline.js'

export * from './integrations/abstract/timeline.js'
export * from './integrations/atem/timeline.js'
Expand Down Expand Up @@ -55,6 +56,7 @@ export * from './integrations/multiOsc/timeline.js'
export * from './integrations/udpSend/timeline.js'
export * from './integrations/viscaOverIP/timeline.js'
export * from './integrations/websocketClient/timeline.js'
export * from './integrations/vindral-composer/timeline.js'

export * from './actions.js'
export * from './datastore.js'
Expand Down Expand Up @@ -137,6 +139,7 @@ export interface TimelineContentMap {
[DeviceType.TRICASTER]: TimelineContentTriCasterAny
[DeviceType.WEBSOCKET_CLIENT]: TimelineContentWebSocketClientAny
[DeviceType.UDP_SEND]: TimelineContentUDPSendAny
[DeviceType.VINDRAL_COMPOSER]: TimelineContentVindralComposerAny
}

export type TSRTimelineContent = TimelineContentMap[keyof TimelineContentMap]
Expand Down
Loading
Loading