UNPKG

timeline-state-resolver

Version:
133 lines 4.16 kB
import { VMixLayers, VMixInputType, VMixTransform, VMixTransition, VMixText, VMixImages } from 'timeline-state-resolver-types'; import { VMixStateCommandWithContext } from './vMixCommands'; /** Prefix of media input added by TSR. Only those with this prefix can be removed by this implementation */ export declare const TSR_INPUT_PREFIX = "TSR_MEDIA_"; export interface VMixStateExtended { /** * The state of vMix (as far as we know) as reported by vMix **+ * our expectations based on the commands we've set**. */ reportedState: VMixState; outputs: VMixOutputsState; inputLayers: { [key: string]: string; }; runningScripts: string[]; } export interface VMixState { version: string; edition: string; existingInputs: { [key: string]: VMixInput; }; existingInputsAudio: { [key: string]: VMixInputAudio; }; inputsAddedByUs: { [key: string]: VMixInput; }; inputsAddedByUsAudio: { [key: string]: VMixInputAudio; }; overlays: Array<VMixOverlay | undefined>; mixes: Array<VMixMix | undefined>; fadeToBlack: boolean; faderPosition?: number; recording: boolean | undefined; external: boolean | undefined; streaming: boolean | undefined; playlist: boolean; multiCorder: boolean; fullscreen: boolean; audio: VMixAudioChannel[]; } interface VMixOutputsState { External2: VMixOutput | undefined; '2': VMixOutput | undefined; '3': VMixOutput | undefined; '4': VMixOutput | undefined; Fullscreen: VMixOutput | undefined; Fullscreen2: VMixOutput | undefined; } export interface VMixMix { number: number; program: string | number | undefined; preview: string | number | undefined; transition: VMixTransition; layerToProgram?: boolean; } export interface VMixInput { number?: number; type?: VMixInputType | string; name?: string; filePath?: string; state?: 'Paused' | 'Running' | 'Completed'; playing?: boolean; position?: number; duration?: number; loop?: boolean; transform?: VMixTransform; layers?: VMixLayers; listFilePaths?: string[]; restart?: boolean; text?: VMixText; url?: string; index?: number; images?: VMixImages; } export interface VMixInputAudio { number?: number; muted?: boolean; volume?: number; balance?: number; fade?: number; solo?: boolean; audioBuses?: string; audioAuto?: boolean; } export interface VMixOutput { source: 'Preview' | 'Program' | 'MultiView' | 'Input'; input?: number | string; } export interface VMixOverlay { number: number; input: string | number | undefined; } export interface VMixAudioChannel { volume: number; muted: boolean; meterF1: number; meterF2: number; headphonesVolume: number; } export declare class VMixStateDiffer { private readonly getCurrentTime; private readonly queueNow; private inputHandler; constructor(getCurrentTime: () => number, queueNow: (commands: VMixStateCommandWithContext[]) => void); getCommandsToAchieveState(time: number, oldVMixState: VMixStateExtended, newVMixState: VMixStateExtended): VMixStateCommandWithContext[]; getDefaultState(): VMixStateExtended; getDefaultInputState(inputNumber: number | string | undefined): VMixInput; getDefaultInputAudioState(inputNumber: number | string | undefined): VMixInputAudio; private _resolveMixState; private _resolveInputsState; private _resolveExistingInputState; private _resolveInputState; private _resolveInputsAudioState; private _resolveInputAudioState; private _resolveAddedByUsInputState; private _resolveAddedByUsInputsRemovalState; private _resolveOverlaysState; private _resolveRecordingState; private _resolveStreamingState; private _resolveExternalState; private _resolveOutputsState; private _resolveScriptsState; /** * Checks if TSR thinks an input is currently in-use. * Not guaranteed to align with reality. */ private _isInUse; } export {}; //# sourceMappingURL=vMixStateDiffer.d.ts.map