Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
84b7bda
feat: basic kairos device
Julusian Sep 10, 2025
31064c4
wip: update lib
Julusian Sep 24, 2025
5e90e92
feat: add clip player support
nytamin Sep 25, 2025
ef6f712
feat: add some tsr-actions
nytamin Sep 25, 2025
ff22ff6
feat: add list-actions to kairos device
nytamin Oct 8, 2025
f5571a9
Merge branch 'feat/kairos-connection-media-players' into feat/kairos-…
nytamin Oct 8, 2025
5fe9186
chore: doc & refactoring
nytamin Oct 9, 2025
1882633
feat: implement "still-player" ie "imageStore"
nytamin Oct 15, 2025
fa11e35
chore(kairos): update actions
nytamin Oct 15, 2025
663605a
chore: update kairos-connection dep
nytamin Oct 30, 2025
f546704
Merge branch 'release53' into feat/kairos-connection
Julusian Nov 3, 2025
29b72c3
fix: update kairos lib
Julusian Nov 3, 2025
d81fd8a
chore: fix kairos-lib import warnings
Julusian Nov 3, 2025
75f832d
fix(kairos): support fire-and-forget of SceneSnapshotRecall
nytamin Nov 5, 2025
e6fc475
chore: update kairos lib
Julusian Nov 12, 2025
c6d8be9
chore: update kairos-connection dep
nytamin Nov 21, 2025
9509c49
fix(kairos): if theres an Error when using a still/ramrec, try to LOA…
nytamin Nov 25, 2025
f5d2f5a
fix: load in RAM.
nytamin Nov 26, 2025
e206c16
chore: fix unit test
nytamin Nov 26, 2025
d353e07
fix: avoid cyclical import
Julusian Dec 10, 2025
b2d7527
fix: kairos media player support
Julusian Nov 12, 2025
450c7c5
fix: kairos clip lookaheads are paused with correct seek
Julusian Nov 12, 2025
24c78cd
Merge branch 'release53' into feat/kairos-connection
Julusian Dec 17, 2025
d60386e
chore: review comments
Julusian Dec 17, 2025
abf81eb
Merge branch 'upstream/release53' into feat/kairos-connection
nytamin Jan 29, 2026
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: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
"ts-jest": "^29.2.4",
"ts-node": "^8.10.2",
"typedoc": "^0.23.28",
"typescript": "~4.9.5"
"typescript": "~5.1"
},
"prettier": "@sofie-automation/code-standard-preset/.prettierrc.json",
"packageManager": "[email protected]"
Expand Down
8 changes: 8 additions & 0 deletions packages/timeline-state-resolver-api/src/device.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,14 @@ export interface DeviceContextAPI<DeviceState, AddressState = void> {
/** Reset the tracked device state to "state" and notify the conductor to reset the resolver */
resetToState: (state: DeviceState) => Promise<void>

/**
* Reset the tracked device state to "state" and notify the conductor to reset the resolver
* @param cb A callback that receives the current state, and should return the modified state.
* Note: The `currentState` argument is a clone, so it is safe to modify it directly.
* If no changes have been made, return false.
*/
setModifiedState: (cb: (currentState: DeviceState) => DeviceState | false) => Promise<void>

/** Calculate a new diff for the next state change */
recalcDiff: () => void

Expand Down
5 changes: 4 additions & 1 deletion packages/timeline-state-resolver-api/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
"*": ["./node_modules/*"],
"{{PACKAGE-NAME}}": ["./src/index.ts"]
},
"types": ["node"]
"types": ["node"],

"moduleResolution": "node16",
"esModuleInterop": true
}
}
14 changes: 13 additions & 1 deletion packages/timeline-state-resolver-types/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
{
"extends": "../../node_modules/@sofie-automation/code-standard-preset/eslint/main"
"extends": "../../node_modules/@sofie-automation/code-standard-preset/eslint/main",
"overrides": [
{
"files": ["*.ts"],
"rules": {
"node/no-missing-import": ["error", {
// Temporary issue, likely because the `node` plugin is rather outdated and doesnt correctly handle `exports` field in package.json
// This will go away once the code-standard-preset is updated to a newer version
"allowModules": ["kairos-lib"]
}]
}
}
]
}
1 change: 1 addition & 0 deletions packages/timeline-state-resolver-types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
"production"
],
"dependencies": {
"kairos-lib": "0.2.3",
"tslib": "^2.6.3"
},
"publishConfig": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,13 @@ exports[`index imports 1`] = `
"HttpMethod",
"HttpSendActions",
"HyperdeckActions",
"KairosActions",
"KairosMacroActiveState",
"LawoDeviceMode",
"MappingAtemType",
"MappingCasparCGType",
"MappingHyperdeckType",
"MappingKairosType",
"MappingLawoType",
"MappingMultiOscType",
"MappingObsType",
Expand Down Expand Up @@ -57,6 +60,7 @@ exports[`index imports 1`] = `
"TimelineContentTypeHTTP",
"TimelineContentTypeHTTPParamType",
"TimelineContentTypeHyperdeck",
"TimelineContentTypeKairos",
"TimelineContentTypeLawo",
"TimelineContentTypeMultiOSC",
"TimelineContentTypeOBS",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ export interface DeviceOptionsHyperdeck extends DeviceOptionsBase<HyperdeckOptio
type: DeviceType.HYPERDECK
}

import type { KairosOptions } from './kairos'
export interface DeviceOptionsKairos extends DeviceOptionsBase<KairosOptions> {
type: DeviceType.KAIROS
}

import type { LawoOptions } from './lawo'
export interface DeviceOptionsLawo extends DeviceOptionsBase<LawoOptions> {
type: DeviceType.LAWO
Expand Down Expand Up @@ -133,6 +138,7 @@ export type DeviceOptionsAny =
| DeviceOptionsHttpSend
| DeviceOptionsHttpWatcher
| DeviceOptionsHyperdeck
| DeviceOptionsKairos
| DeviceOptionsLawo
| DeviceOptionsMultiOsc
| DeviceOptionsObs
Expand Down Expand Up @@ -165,6 +171,7 @@ export enum DeviceType {
HTTPSEND = 'HTTPSEND',
HTTPWATCHER = 'HTTPWATCHER',
HYPERDECK = 'HYPERDECK',
KAIROS = 'KAIROS',
LAWO = 'LAWO',
MULTI_OSC = 'MULTI_OSC',
OBS = 'OBS',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ import type { SomeMappingHttpWatcher } from './httpWatcher'
export * from './hyperdeck'
import type { SomeMappingHyperdeck } from './hyperdeck'

export * from './kairos'
import type { SomeMappingKairos } from './kairos'

export * from './lawo'
import type { SomeMappingLawo } from './lawo'

Expand Down Expand Up @@ -88,6 +91,7 @@ export type TSRMappingOptions =
| SomeMappingHttpSend
| SomeMappingHttpWatcher
| SomeMappingHyperdeck
| SomeMappingKairos
| SomeMappingLawo
| SomeMappingMultiOsc
| SomeMappingObs
Expand Down
Loading
Loading