UNPKG

timeline-state-resolver-types

Version:
286 lines • 9.16 kB
import { DeviceType } from '..'; export declare enum VMixCommand { PREVIEW_INPUT = "PREVIEW_INPUT", TRANSITION = "TRANSITION", AUDIO_VOLUME = "AUDIO_VOLUME", AUDIO_BALANCE = "AUDIO_BALANCE", AUDIO_ON = "AUDIO_ON", AUDIO_OFF = "AUDIO_OFF", AUDIO_AUTO_ON = "AUDIO_AUTO_ON", AUDIO_AUTO_OFF = "AUDIO_AUTO_OFF", AUDIO_BUS_ON = "AUDIO_BUS_ON", AUDIO_BUS_OFF = "AUDIO_BUS_OFF", FADER = "FADER", SET_PAN_X = "SET_PAN_X", SET_PAN_Y = "SET_PAN_Y", SET_ZOOM = "SET_ZOOM", SET_ALPHA = "SET_ALPHA", START_STREAMING = "START_STREAMING", STOP_STREAMING = "STOP_STREAMING", START_RECORDING = "START_RECORDING", STOP_RECORDING = "STOP_RECORDING", FADE_TO_BLACK = "FADE_TO_BLACK", ADD_INPUT = "ADD_INPUT", REMOVE_INPUT = "REMOVE_INPUT", PLAY_INPUT = "PLAY_INPUT", PAUSE_INPUT = "PAUSE_INPUT", LOOP_ON = "LOOP_ON", LOOP_OFF = "LOOP_OFF", SET_POSITION = "SET_POSITION", SET_INPUT_NAME = "SET_INPUT_NAME", SET_OUPUT = "SET_OUTPUT", START_EXTERNAL = "START_EXTERNAL", STOP_EXTERNAL = "STOP_EXTERNAL", OVERLAY_INPUT_IN = "OVERLAY_INPUT_IN", OVERLAY_INPUT_OUT = "OVERLAY_INPUT_OUT", SET_LAYER_INPUT = "SET_LAYER_INPUT", SET_LAYER_ZOOM = "SET_LAYER_ZOOM", SET_LAYER_PAN_X = "SET_LAYER_PAN_X", SET_LAYER_PAN_Y = "SET_LAYER_PAN_Y", SET_LAYER_CROP = "SET_LAYER_CROP", SCRIPT_START = "SCRIPT_START", SCRIPT_STOP = "SCRIPT_STOP", SCRIPT_STOP_ALL = "SCRIPT_STOP_ALL", LIST_ADD = "LIST_ADD", LIST_REMOVE_ALL = "LIST_REMOVE_ALL", RESTART_INPUT = "RESTART_INPUT", SET_TEXT = "SET_TEXT", BROWSER_NAVIGATE = "BROWSER_NAVIGATE", SELECT_INDEX = "SELECT_INDEX", SET_IMAGE = "SET_IMAGE" } export type TimelineContentVMixAny = TimelineContentVMixProgram | TimelineContentVMixPreview | TimelineContentVMixAudio | TimelineContentVMixFader | TimelineContentVMixRecording | TimelineContentVMixStreaming | TimelineContentVMixExternal | TimelineContentVMixFadeToBlack | TimelineContentVMixOutput | TimelineContentVMixOverlay | TimelineContentVMixInput | TimelineContentVMixScript; export declare enum TimelineContentTypeVMix { PROGRAM = "PROGRAM", PREVIEW = "PREVIEW", AUDIO = "AUDIO", FADER = "FADER", STREAMING = "STREAMING", RECORDING = "RECORDING", FADE_TO_BLACK = "FADE_TO_BLACK", INPUT = "INPUT", OUTPUT = "OUTPUT", EXTERNAL = "EXTERNAL", OVERLAY = "OVERLAY", SCRIPT = "SCRIPT" } export interface TimelineContentVMixBase { deviceType: DeviceType.VMIX; type: TimelineContentTypeVMix; } export interface TimelineContentVMixProgram extends TimelineContentVMixBase { type: TimelineContentTypeVMix.PROGRAM; /** Input number or name */ input?: number | string; /** Input layer name */ inputLayer?: string; /** Transition effect (Stingers work only for Mix number 1) */ transition?: VMixTransition; } export interface TimelineContentVMixPreview extends TimelineContentVMixBase { type: TimelineContentTypeVMix.PREVIEW; /** Input number or name */ input: number | string; } export interface TimelineContentVMixAudio extends TimelineContentVMixBase { type: TimelineContentTypeVMix.AUDIO; /** Channel volume (0 - 100) */ volume?: number; /** Volume change fade length in milliseconds */ fade?: number; /** Channel balance (-1 - 1) */ balance?: number; /** If input is muted */ muted?: boolean; /** Comma separated list of busses to enable (M,A,B,C,D,E,F,G) */ audioBuses?: string; /** Audio follow video */ audioAuto?: boolean; } export interface TimelineContentVMixFader extends TimelineContentVMixBase { type: TimelineContentTypeVMix.FADER; /** Position of the transition fader (0 - 255) */ position: number; } export interface TimelineContentVMixStreaming extends TimelineContentVMixBase { type: TimelineContentTypeVMix.STREAMING; /** If streaming should be turned on */ on: boolean; } export interface TimelineContentVMixRecording extends TimelineContentVMixBase { type: TimelineContentTypeVMix.RECORDING; /** If recording should be turned on */ on: boolean; } export interface TimelineContentVMixFadeToBlack extends TimelineContentVMixBase { type: TimelineContentTypeVMix.FADE_TO_BLACK; /** If Fade To Black should be turned on */ on: boolean; } export interface TimelineContentVMixInput extends TimelineContentVMixBase { type: TimelineContentTypeVMix.INPUT; /** Media file path */ filePath?: string; /** Set only when dealing with media. If provided, TSR will attempt to automatically create **and potentially remove** the input. */ inputType?: VMixInputType; /** If media should be playing */ playing?: boolean; /** Media starting position in milliseconds */ seek?: number; /** If media should loop */ loop?: boolean; transform?: VMixTransform; /** * List of input (Multi View) overlays; indexes start from 1 * @deprecated Use `layers` instead. If both `layers` and `overlays` are provided, `overlays` will be discarded */ overlays?: VMixInputOverlays; /** * List of input Layers. * Indexes start from 1. * Requires vMix 27+. */ layers?: VMixLayers; /** An array of file paths to load into a List input. Uses Windows-style path separators (\\). Only applies to List inputs. */ listFilePaths?: string[]; /** If media should start from the beginning or resume from where it left off */ restart?: boolean; /** * Titles (GT): Sets the values of text fields by name */ text?: VMixText; /** The URL for Browser input */ url?: string; /** * Photos, List: Selects item in List * Virtual Set: Zooms to selected preset using the current speed settings * starts from 1 */ index?: number; /** * Titles (GT): Sets the filenames of image fields by name */ images?: VMixImages; } export interface TimelineContentVMixOutput extends TimelineContentVMixBase { type: TimelineContentTypeVMix.OUTPUT; /** Type of the source sent to output */ source: 'Preview' | 'Program' | 'MultiView' | 'Input'; /** Number/name of the input when source:'Input' is chosen */ input?: number | string; } export interface TimelineContentVMixExternal extends TimelineContentVMixBase { type: TimelineContentTypeVMix.EXTERNAL; /** If external should be turned on */ on: boolean; } export interface TimelineContentVMixOverlay extends TimelineContentVMixBase { type: TimelineContentTypeVMix.OVERLAY; /** Input number or name */ input: number | string; } export interface TimelineContentVMixScript extends TimelineContentVMixBase { type: TimelineContentTypeVMix.SCRIPT; /** Script name */ name: string; } export interface VMixTransform { /** Scale (0 - 5) */ zoom: number; /** Horizontal pan (-2 - 2) */ panX: number; /** Vertical pan (-2 - 2) */ panY: number; /** Transparency (0 - 255) */ alpha: number; } export interface VMixLayers { [index: number]: VMixLayer; } export interface VMixInputOverlays { [index: number]: number | string; } export interface VMixText { [index: string]: string; } export interface VMixImages { [index: string]: string; } export interface VMixLayer { input: string | number; /** * Horizontal pan (-2 - 2) * 0 = centered, -2 = 100% to left, 2 = 100% to right */ panX?: number; /** * Vertical pan (-2 - 2) * 0 = centered, -2 = 100% to bottom, 2 = 100% to top */ panY?: number; /** * Scale (0 - 5) */ zoom?: number; /** * Left crop (0 - 1) * 0 = No Crop, 1 = Full Crop */ cropLeft?: number; /** * Top crop (0 - 1) * 0 = No Crop, 1 = Full Crop */ cropTop?: number; /** * Right crop (0 - 1) * 1 = No Crop, 0 = Full Crop */ cropRight?: number; /** * Bottom crop (0 - 1) * 1 = No Crop, 0 = Full Crop */ cropBottom?: number; } export interface VMixTransition { effect: VMixTransitionType; /** Duration in milliseconds */ duration: number; } export declare enum VMixTransitionType { Cut = "Cut", CutDirect = "CutDirect", Fade = "Fade", Zoom = "Zoom", Wipe = "Wipe", Slide = "Slide", Fly = "Fly", CrossZoom = "CrossZoom", FlyRotate = "FlyRotate", Cube = "Cube", CubeZoom = "CubeZoom", VerticalWipe = "VerticalWipe", VerticalSlide = "VerticalSlide", Merge = "Merge", WipeReverse = "WipeReverse", SlideReverse = "SlideReverse", VerticalWipeReverse = "VerticalWipeReverse", VerticalSlideReverse = "VerticalSlideReverse", Stinger1 = "Stinger1", Stinger2 = "Stinger2", Stinger3 = "Stinger3", Stinger4 = "Stinger4" } export declare enum VMixInputType { Video = "Video", Image = "Image", Photos = "Photos", Xaml = "Xaml", AudioFile = "AudioFile", Flash = "Flash", PowerPoint = "PowerPoint", List = "List", Browser = "Browser" } //# sourceMappingURL=vmix.d.ts.map