diff --git a/src/commands/Settings/VideoMode.ts b/src/commands/Settings/VideoMode.ts new file mode 100644 index 000000000..ab1790db6 --- /dev/null +++ b/src/commands/Settings/VideoMode.ts @@ -0,0 +1,29 @@ +import AbstractCommand from '../AbstractCommand' +import { AtemState } from '../../state' +import { Enums } from '../..'; + +export class VideoModeCommand extends AbstractCommand { + rawName = 'VidM' + auxBus: number + + properties: { + mode: Enums.VideoMode + } + + deserialize (rawCommand: Buffer) { + this.properties = { + mode: rawCommand[0] + } + } + + serialize () { + const buffer = Buffer.alloc(4) + buffer[0] = this.properties.mode + + return Buffer.concat([Buffer.from('CVdM', 'ascii'), buffer]) + } + + applyToState (state: AtemState) { + state.settings.videoMode = this.properties.mode + } +} diff --git a/src/commands/Settings/index.ts b/src/commands/Settings/index.ts new file mode 100644 index 000000000..2346137f3 --- /dev/null +++ b/src/commands/Settings/index.ts @@ -0,0 +1 @@ +export * from './VideoMode' diff --git a/src/commands/index.ts b/src/commands/index.ts index 42b69251c..50025bab3 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -7,6 +7,7 @@ export * from './Inputs' export * from './Macro' export * from './Media' export * from './MixEffects' +export * from './Settings' export * from './SuperSource' export { AbstractCommand } diff --git a/src/enums/index.ts b/src/enums/index.ts index 12dfab49c..52dd95b9f 100644 --- a/src/enums/index.ts +++ b/src/enums/index.ts @@ -207,3 +207,29 @@ export enum StoragePool { Clips, Sounds } + +export enum VideoMode { + N525i5994NTSC, + P625i50PAL, + N525i5994169, + P625i50169, + + P720p50, + N720p5994, + P1080i50, + N1080i5994, + N1080p2398, + N1080p24, + P1080p25, + N1080p2997, + P1080p50, + N1080p5994, + + N4KHDp2398, + N4KHDp24, + P4KHDp25, + N4KHDp2997, + + P4KHDp5000, + N4KHDp5994 +}