UNPKG

@meyer/hyperdeck-emulator

Version:

Typescript Node.js library for emulating a Blackmagic Hyperdeck

197 lines 6.75 kB
import { Timecode } from './Timecode'; import type { CommandName, CommandParamsByCommandName, CommandResponsesByCommandName } from './api'; export interface NotificationConfig { transport: boolean; remote: boolean; slot: boolean; configuration: boolean; } export declare type DeserializedCommandsByName = { [K in CommandName]: { raw: string; name: K; parameters: CommandParamsByCommandName[K]; }; }; export declare type DeserializedCommand = DeserializedCommandsByName[CommandName]; export declare type CommandHandler<T extends CommandName> = (cmd: DeserializedCommandsByName[T]['parameters']) => Promise<CommandResponsesByCommandName[T]>; export declare type ResponsesByCommandName = { [K in CommandName]: { name: K; response: CommandResponsesByCommandName[K]; }; }; export declare type CommandResponse = ResponsesByCommandName[CommandName]; export declare type ResponseCode = ErrorCode | SynchronousCode | AsynchronousCode; export declare enum ErrorCode { SyntaxError = 100, UnsupportedParameter = 101, InvalidValue = 102, Unsupported = 103, DiskFull = 104, NoDisk = 105, DiskError = 106, TimelineEmpty = 107, InternalError = 108, OutOfRange = 109, NoInput = 110, RemoteControlDisabled = 111, ConnectionRejected = 120, InvalidState = 150, InvalidCodec = 151, InvalidFormat = 160, InvalidToken = 161, FormatNotPrepared = 162 } export declare enum SynchronousCode { OK = 200, SlotInfo = 202, DeviceInfo = 204, ClipsInfo = 205, DiskList = 206, TransportInfo = 208, Notify = 209, Remote = 210, Configuration = 211, ClipsCount = 214, Uptime = 215, FormatReady = 216 } export declare enum AsynchronousCode { ConnectionInfo = 500, SlotInfo = 502, TransportInfo = 508, RemoteInfo = 510, ConfigurationInfo = 511 } export declare type NotifyType = 'slot' | 'transport' | 'remote' | 'configuration'; export declare const responseNamesByCode: Record<ResponseCode, string>; export declare const slotStatus: { empty: boolean; mounting: boolean; error: boolean; mounted: boolean; }; export declare type SlotStatus = keyof typeof slotStatus; export declare const isSlotStatus: (value: any) => value is "empty" | "mounting" | "error" | "mounted"; export declare const videoFormats: { NTSC: boolean; PAL: boolean; NTSCp: boolean; PALp: boolean; '720p50': boolean; '720p5994': boolean; '720p60': boolean; '1080p23976': boolean; '1080p24': boolean; '1080p25': boolean; '1080p2997': boolean; '1080p30': boolean; '1080i50': boolean; '1080i5994': boolean; '1080i60': boolean; '4Kp23976': boolean; '4Kp24': boolean; '4Kp25': boolean; '4Kp2997': boolean; '4Kp30': boolean; '4Kp50': boolean; '4Kp5994': boolean; '4Kp60': boolean; }; export interface ClipV1 { name: string; startT: Timecode; duration: Timecode; } export declare const isClipV1: (value: any) => value is ClipV1; export interface ClipV2 { startT: Timecode; duration: number; inT: Timecode; outT: Timecode; name: string; } export declare type VideoFormat = keyof typeof videoFormats; export declare const isVideoFormat: (value: any) => value is "NTSC" | "PAL" | "NTSCp" | "PALp" | "720p50" | "720p5994" | "720p60" | "1080p23976" | "1080p24" | "1080p25" | "1080p2997" | "1080p30" | "1080i50" | "1080i5994" | "1080i60" | "4Kp23976" | "4Kp24" | "4Kp25" | "4Kp2997" | "4Kp30" | "4Kp50" | "4Kp5994" | "4Kp60"; export declare const transportStatus: { preview: boolean; stopped: boolean; play: boolean; forward: boolean; rewind: boolean; jog: boolean; shuttle: boolean; record: boolean; }; export declare type TransportStatus = keyof typeof transportStatus; export declare const isTransportStatus: (value: any) => value is "preview" | "play" | "record" | "jog" | "shuttle" | "stopped" | "forward" | "rewind"; export declare const stopModes: { lastframe: boolean; nextframe: boolean; black: boolean; }; export declare type StopMode = keyof typeof stopModes; export declare const isStopMode: (value: any) => value is "lastframe" | "nextframe" | "black"; export declare const videoInputs: { SDI: boolean; HDMI: boolean; component: boolean; }; export declare type VideoInput = keyof typeof videoInputs; export declare const isVideoInput: (value: any) => value is "SDI" | "HDMI" | "component"; export declare const audioInputs: { XLR: boolean; RCA: boolean; embedded: boolean; }; export declare type AudioInput = keyof typeof audioInputs; export declare const isAudioInput: (value: any) => value is "XLR" | "RCA" | "embedded"; export declare const audioCodecs: { PCM: boolean; AAC: boolean; }; export declare type AudioCodec = keyof typeof audioCodecs; export declare const isAudioCodec: (value: any) => value is "PCM" | "AAC"; export declare const timecodeInputs: { external: boolean; embedded: boolean; preset: boolean; clip: boolean; }; export declare type TimecodeInput = keyof typeof timecodeInputs; export declare const isTimecodeInput: (value: any) => value is "embedded" | "external" | "preset" | "clip"; export declare const recordTriggers: { none: boolean; recordbit: boolean; timecoderun: boolean; }; export declare type RecordTrigger = keyof typeof recordTriggers; export declare const isRecordTrigger: (value: any) => value is "none" | "recordbit" | "timecoderun"; export declare type FileFormat = 'QuickTimeUncompressed' | 'QuickTimeProResHQ' | 'QuickTimeProRes' | 'QuickTimeProResLT' | 'QuickTimeProResProxy' | 'QuickTimeDNxHR220' | 'DNxHR220'; export declare type ArgKey = keyof TypesByStringKey; export declare type ArgsTypes<T extends Record<string, ArgKey>> = { [K in keyof T]?: TypesByStringKey[T[K]]; }; export interface TypesByStringKey { boolean: boolean; string: string; timecode: Timecode; number: number; videoformat: VideoFormat; stopmode: StopMode; goto: 'start' | 'end' | string | number; videoinput: VideoInput; audioinput: AudioInput; fileformat: string; audiocodec: AudioCodec; timecodeinput: TimecodeInput; recordtrigger: RecordTrigger; clips: ClipV1[]; slotstatus: SlotStatus; transportstatus: TransportStatus; } export declare const stringToValueFns: { [K in keyof TypesByStringKey]: (value: unknown) => TypesByStringKey[K]; }; //# sourceMappingURL=types.d.ts.map