UNPKG

timeline-state-resolver

Version:
76 lines 3.26 kB
import { DeviceWithState, DeviceStatus } from './../../devices/device'; import { DeviceType, DeviceOptionsVMix, VMixOptions, Mappings, Timeline, TSRTimelineContent, ActionExecutionResult, VmixActions, VmixActionExecutionPayload, VmixActionExecutionResult } from 'timeline-state-resolver-types'; import { VMixStateExtended } from './vMixStateDiffer'; import { CommandContext, VMixStateCommandWithContext } from './vMixCommands'; export interface DeviceOptionsVMixInternal extends DeviceOptionsVMix { commandReceiver?: CommandReceiver; } export type CommandReceiver = (time: number, cmd: VMixStateCommandWithContext, context: CommandContext, timelineObjId: string) => Promise<any>; export type EnforceableVMixInputStateKeys = 'duration' | 'loop' | 'transform' | 'layers' | 'listFilePaths'; /** * This is a VMixDevice, it sends commands when it feels like it */ export declare class VMixDevice extends DeviceWithState<VMixStateExtended, DeviceOptionsVMixInternal> { private _doOnTime; private _commandReceiver; /** Setup in init */ private _vMixConnection; private _vMixCommandSender; private _connected; private _initialized; private _stateDiffer; private _timelineStateConverter; private _xmlStateParser; private _stateSynchronizer; private _expectingStateAfterConnecting; private _expectingPolledState; private _pollingTimer; constructor(deviceId: string, deviceOptions: DeviceOptionsVMixInternal, getCurrentTime: () => Promise<number>); init(options: VMixOptions): Promise<boolean>; private _onDataReceived; private _connectionChanged; private _setConnected; /** * Updates the entire state when we (re)connect * @param realState State as reported by vMix itself. */ private _setFullState; /** * Runs when we receive XML state from vMix, * generally as the result a poll (if polling/enforcement is enabled). * @param realState State as reported by vMix itself. */ private _setPartialInputState; /** Called by the Conductor a bit before a .handleState is called */ prepareForHandleState(newStateTime: number): void; handleState(newState: Timeline.TimelineState<TSRTimelineContent>, newMappings: Mappings): void; clearFuture(clearAfterTime: number): void; terminate(): Promise<void>; getStatus(): DeviceStatus; makeReady(okToDestroyStuff?: boolean): Promise<void>; executeAction<A extends VmixActions>(actionId: A, payload: VmixActionExecutionPayload<A>): Promise<VmixActionExecutionResult<A>>; _checkPresetAction(payload?: any, payloadRequired?: boolean): ActionExecutionResult | undefined; private _lastPreset; private _openPreset; private _savePreset; private _startExternalOutput; private _stopExternalOutput; private _checkConnectionForAction; get canConnect(): boolean; get connected(): boolean; get deviceType(): DeviceType; get deviceName(): string; get queue(): { id: string; queueId: string; time: number; args: any[]; }[]; private addToQueue; private _defaultCommandReceiver; /** * Request vMix's XML status. */ private _requestVMixState; } //# sourceMappingURL=index.d.ts.map