Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/release52' into bbc-release52
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterC89 committed Dec 18, 2024
2 parents 9a9bbda + f2d9c1d commit b6dde7c
Show file tree
Hide file tree
Showing 69 changed files with 3,707 additions and 381 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Using this input, it resolves the expected state, diffs the state against curren
- **[Sofie Chef](https://github.com/nrkno/sofie-chef)**
- **Telemetrics** camera robotics
- **Newtek Tricaster** video mixers
- **[VISCA over IP](https://en.wikipedia.org/wiki/VISCA_Protocol)** camera control
- Arbitrary [OSC](https://en.wikipedia.org/wiki/Open_Sound_Control) compatible devices
- Arbitrary HTTP (REST) compatible devices
- Arbitrary TCP-socket compatible devices
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ exports[`index imports 1`] = `
"EmberParameterType",
"FlyKeyDirection",
"FlyKeyKeyFrame",
"FocusMode",
"HttpMethod",
"HttpSendActions",
"HyperdeckActions",
Expand All @@ -39,6 +40,7 @@ exports[`index imports 1`] = `
"MultiOSCDeviceType",
"OSCDeviceType",
"OSCValueType",
"PanasonicPTZActions",
"QuantelActions",
"QuantelControlMode",
"QuantelTransitionType",
Expand Down Expand Up @@ -76,6 +78,7 @@ exports[`index imports 1`] = `
"VMixInputType",
"VMixTransitionType",
"VideoFormat",
"ViscaOverIPActions",
"VizMSEActions",
"VmixActions",
]
Expand Down
5 changes: 5 additions & 0 deletions packages/timeline-state-resolver-types/src/device.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
TelemetricsOptions,
TriCasterOptions,
MultiOSCOptions,
ViscaOverIPOptions,
} from '.'
import { DeviceCommonOptions } from './generated/common-options'

Expand Down Expand Up @@ -76,6 +77,7 @@ export type DeviceOptionsAny =
| DeviceOptionsTelemetrics
| DeviceOptionsTriCaster
| DeviceOptionsMultiOSC
| DeviceOptionsViscaOverIP

export interface DeviceOptionsAbstract extends DeviceOptionsBase<AbstractOptions> {
type: DeviceType.ABSTRACT
Expand Down Expand Up @@ -143,3 +145,6 @@ export interface DeviceOptionsTriCaster extends DeviceOptionsBase<TriCasterOptio
export interface DeviceOptionsMultiOSC extends DeviceOptionsBase<MultiOSCOptions> {
type: DeviceType.MULTI_OSC
}
export interface DeviceOptionsViscaOverIP extends DeviceOptionsBase<ViscaOverIPOptions> {
type: DeviceType.VISCA_OVER_IP
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/* eslint-disable */
/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run "yarn generate-schema-types" to regenerate this file.
*/


export interface SetPanTiltSpeedPayload {
/**
* Pan Speed; Range: [-1.0, 1.0]; -1.0 = fastest LEFT, 0.0 = STOP, 1.0 = fastest RIGHT (each protocol might internally support a different range, which the value will be mapped into)
*/
panSpeed: number
/**
* Tilt Speed; Range: [-1.0, 1.0]; -1.0 = fastest DOWN, 0.0 = STOP, 1.0 = fastest UP (each protocol might internally support a different range, which the value will be mapped into)
*/
tiltSpeed: number
}

export interface GetPanTiltPositionResult {
/**
* Pan Position; Range: [-1.0, 1.0]; -1.0 = furthest LEFT, 0.0 = CENTER, 1.0 = furthest RIGHT (each protocol might internally support a different range, which the value will be mapped from)
*/
panPosition: number
/**
* Tilt Position; Range: [-1.0, 1.0]; -1.0 = furthest DOWN, 0.0 = CENTER, 1.0 = furthest UP (each protocol might internally support a different range, which the value will be mapped from)
*/
tiltPosition: number
}

export interface SetZoomSpeedPayload {
/**
* Zoom Speed; Range: [-1.0, 1.0]; -1.0 = fastest WIDE, 0.0 = STOP, 1.0 = fastest TELE (each protocol might internally support a different range, which the value will be mapped into)
*/
zoomSpeed: number
}

export interface GetZoomPositionResult {
/**
* Zoom Position; Range: [0.0, 1.0]; 0.0 = furthest WIDE, 1.0 = furthest TELE (each protocol might internally support a different range, which the value will be mapped from)
*/
zoomPosition: number
}

export interface StorePresetPayload {
/**
* Preset number, within the range supported by the camera
*/
presetNumber: number
}

export interface RecallPresetPayload {
/**
* Preset number, within the range supported by the camera
*/
presetNumber: number
}

export interface ResetPresetPayload {
/**
* Preset number, within the range supported by the camera
*/
presetNumber: number
}

export interface SetFocusSpeedPayload {
/**
* Focus Speed; Range: [-1.0, 1.0]; -1.0 = fastest NEAR, 0.0 = STOP, 1.0 = fastest FAR (each protocol might internally support a different range, which the value will be mapped into)
*/
focusSpeed: number
}

export interface SetFocusModePayload {
mode: FocusMode
}

export enum FocusMode {
AUTO = 'auto',
MANUAL = 'manual'
}


export interface GetFocusPositionResult {
/**
* Zoom Position; Range: [0.0, 1.0]; 0.0 = furthest NEAR, 1.0 = furthest FAR (each protocol might internally support a different range, which the value will be mapped from)
*/
zoomPosition: number
}

export type FocusModeResult = FocusMode

export interface GetFocusModeResult {
mode: FocusModeResult
}
5 changes: 5 additions & 0 deletions packages/timeline-state-resolver-types/src/generated/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*/

export * from './action-schema'
export * from './generic-ptz-actions'
export * from './abstract'
import { SomeMappingAbstract } from './abstract'

Expand Down Expand Up @@ -66,6 +67,9 @@ import { SomeMappingTelemetrics } from './telemetrics'
export * from './tricaster'
import { SomeMappingTricaster } from './tricaster'

export * from './viscaOverIP'
import { SomeMappingViscaOverIP } from './viscaOverIP'

export * from './vizMSE'
import { SomeMappingVizMSE } from './vizMSE'

Expand Down Expand Up @@ -93,5 +97,6 @@ export type TSRMappingOptions =
| SomeMappingTcpSend
| SomeMappingTelemetrics
| SomeMappingTricaster
| SomeMappingViscaOverIP
| SomeMappingVizMSE
| SomeMappingVmix
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run "yarn generate-schema-types" to regenerate this file.
*/
import { ActionExecutionResult } from ".."

export interface PanasonicPTZOptions {
host: string
Expand Down Expand Up @@ -35,3 +36,38 @@ export enum MappingPanasonicPTZType {
}

export type SomeMappingPanasonicPTZ = MappingPanasonicPTZPresetMem | MappingPanasonicPTZPresetSpeed | MappingPanasonicPTZZoomSpeed | MappingPanasonicPTZZoom

export enum PanasonicPTZActions {
SetPanTiltSpeed = 'setPanTiltSpeed',
GetPanTiltPosition = 'getPanTiltPosition',
SetZoomSpeed = 'setZoomSpeed',
GetZoomPosition = 'getZoomPosition',
StorePreset = 'storePreset',
RecallPreset = 'recallPreset',
ResetPreset = 'resetPreset',
SetFocusSpeed = 'setFocusSpeed',
SetFocusMode = 'setFocusMode',
TriggerOnePushFocus = 'triggerOnePushFocus',
GetFocusPosition = 'getFocusPosition',
GetFocusMode = 'getFocusMode'
}
export interface PanasonicPTZActionExecutionResults {
setPanTiltSpeed: () => void,
getPanTiltPosition: () => void,
setZoomSpeed: () => void,
getZoomPosition: () => void,
storePreset: () => void,
recallPreset: () => void,
resetPreset: () => void,
setFocusSpeed: () => void,
setFocusMode: () => void,
triggerOnePushFocus: () => void,
getFocusPosition: () => void,
getFocusMode: () => void
}
export type PanasonicPTZActionExecutionPayload<A extends keyof PanasonicPTZActionExecutionResults> = Parameters<
PanasonicPTZActionExecutionResults[A]
>[0]

export type PanasonicPTZActionExecutionResult<A extends keyof PanasonicPTZActionExecutionResults> =
ActionExecutionResult<ReturnType<PanasonicPTZActionExecutionResults[A]>>
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/* eslint-disable */
/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run "yarn generate-schema-types" to regenerate this file.
*/
import { ActionExecutionResult } from ".."

export interface ViscaOverIPOptions {
host: string
port?: number
}

export type SomeMappingViscaOverIP = Record<string, never>

export enum ViscaOverIPActions {
SetPanTiltSpeed = 'setPanTiltSpeed',
GetPanTiltPosition = 'getPanTiltPosition',
SetZoomSpeed = 'setZoomSpeed',
GetZoomPosition = 'getZoomPosition',
StorePreset = 'storePreset',
RecallPreset = 'recallPreset',
ResetPreset = 'resetPreset',
SetFocusSpeed = 'setFocusSpeed',
SetFocusMode = 'setFocusMode',
TriggerOnePushFocus = 'triggerOnePushFocus',
GetFocusPosition = 'getFocusPosition',
GetFocusMode = 'getFocusMode'
}
export interface ViscaOverIPActionExecutionResults {
setPanTiltSpeed: () => void,
getPanTiltPosition: () => void,
setZoomSpeed: () => void,
getZoomPosition: () => void,
storePreset: () => void,
recallPreset: () => void,
resetPreset: () => void,
setFocusSpeed: () => void,
setFocusMode: () => void,
triggerOnePushFocus: () => void,
getFocusPosition: () => void,
getFocusMode: () => void
}
export type ViscaOverIPActionExecutionPayload<A extends keyof ViscaOverIPActionExecutionResults> = Parameters<
ViscaOverIPActionExecutionResults[A]
>[0]

export type ViscaOverIPActionExecutionResult<A extends keyof ViscaOverIPActionExecutionResults> =
ActionExecutionResult<ReturnType<ViscaOverIPActionExecutionResults[A]>>
8 changes: 6 additions & 2 deletions packages/timeline-state-resolver-types/src/generated/vmix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,12 +125,16 @@ export interface SavePresetPayload {
export enum VmixActions {
LastPreset = 'lastPreset',
OpenPreset = 'openPreset',
SavePreset = 'savePreset'
SavePreset = 'savePreset',
StartExternal = 'startExternal',
StopExternal = 'stopExternal'
}
export interface VmixActionExecutionResults {
lastPreset: () => void,
openPreset: (payload: OpenPresetPayload) => void,
savePreset: (payload: SavePresetPayload) => void
savePreset: (payload: SavePresetPayload) => void,
startExternal: () => void,
stopExternal: () => void
}
export type VmixActionExecutionPayload<A extends keyof VmixActionExecutionResults> = Parameters<
VmixActionExecutionResults[A]
Expand Down
2 changes: 2 additions & 0 deletions packages/timeline-state-resolver-types/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export * from './integrations/obs'
export * from './integrations/tricaster'
export * from './integrations/telemetrics'
export * from './integrations/multiOsc'
export * from './integrations/viscaOverIP'

export * from './device'
export * from './mapping'
Expand Down Expand Up @@ -86,6 +87,7 @@ export enum DeviceType {
TELEMETRICS = 'TELEMETRICS',
TRICASTER = 'TRICASTER',
MULTI_OSC = 'MULTI_OSC',
VISCA_OVER_IP = 'VISCA_OVER_IP',
}

export interface TSRTimelineKeyframe<TContent> extends Omit<Timeline.TimelineKeyframe, 'content'> {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { DeviceType } from '..'

export type TimelineContentViscaOverIpAny = TimelineContentViscaOverIp
export interface TimelineContentViscaOverIpBase {
deviceType: DeviceType.VISCA_OVER_IP
}

export type TimelineContentViscaOverIp = TimelineContentViscaOverIpBase
10 changes: 10 additions & 0 deletions packages/timeline-state-resolver-types/src/integrations/vmix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export enum VMixCommand {
LIST_ADD = 'LIST_ADD',
LIST_REMOVE_ALL = 'LIST_REMOVE_ALL',
RESTART_INPUT = 'RESTART_INPUT',
SET_TEXT = 'SET_TEXT',
BROWSER_NAVIGATE = 'BROWSER_NAVIGATE',
SELECT_INDEX = 'SELECT_INDEX',
}
Expand Down Expand Up @@ -191,6 +192,11 @@ export interface TimelineContentVMixInput extends TimelineContentVMixBase {
/** If media should start from the beginning or resume from where it left off */
restart?: boolean

/**
* Titles (GT): Sets the values of text fields by name
*/
text?: VMixText

/** The URL for Browser input */
url?: string

Expand Down Expand Up @@ -255,6 +261,10 @@ export interface VMixInputOverlays {
[index: number]: number | string
}

export interface VMixText {
[index: string]: string
}

export interface VMixLayer {
input: string | number

Expand Down
Loading

0 comments on commit b6dde7c

Please sign in to comment.