@distdev/vmix-utils
Version:
Utility functions and data for vMix
102 lines (93 loc) • 2.63 kB
text/typescript
import { FunctionsAudio, type FunctionIDsAudio } from './audio'
import { FunctionsBrowser, type FunctionIDsBrowser } from './browser'
import { FunctionsDataSources, type FunctionIDsDataSources } from './dataSources'
import { FunctionsGeneral, type FunctionIDsGeneral } from './general'
import { FunctionsInput, type FunctionIDsInput } from './input'
import { FunctionsNDI, type FunctionIDsNDI } from './ndi'
import { FunctionsOutput, type FunctionIDsOutput } from './output'
import { FunctionsOverlay, type FunctionIDsOverlay } from './overlay'
import { FunctionsPlayList, type FunctionIDsPlayList } from './playlist'
import { FunctionsPreset, type FunctionIDsPreset } from './preset'
import { FunctionsPTZ, type FunctionIDsPTZ } from './ptz'
import { FunctionsReplay, type FunctionIDsReplay } from './replay'
import { FunctionsScripting, type FunctionIDsScripting } from './scripting'
import { FunctionsTitle, type FunctionIDsTitle } from './title'
import { FunctionsTransition, type FunctionIDsTransition } from './transition'
export type Category =
| 'General'
| 'Audio'
| 'Transition'
| 'Output'
| 'Title'
| 'Input'
| 'Overlay'
| 'PlayList'
| 'Scripting'
| 'Replay'
| 'NDI'
| 'PTZ'
| 'Preset'
| 'DataSources'
| 'Browser'
export type VMixFunction = {
id: FunctionIDs
category: Category
description?: string
params: FunctionParams[]
version: string
info?: string
}
export type FunctionIDs =
| FunctionIDsAudio
| FunctionIDsBrowser
| FunctionIDsDataSources
| FunctionIDsGeneral
| FunctionIDsInput
| FunctionIDsNDI
| FunctionIDsOutput
| FunctionIDsOverlay
| FunctionIDsPlayList
| FunctionIDsPreset
| FunctionIDsPTZ
| FunctionIDsReplay
| FunctionIDsScripting
| FunctionIDsTitle
| FunctionIDsTransition
export type FunctionParams = {
name: string
default?: string | number
description?: string
required: boolean
range?: EnumRange | IntRange | NumberRange
}
type EnumRange = {
type: 'enum'
values: (string | number)[]
}
type IntRange = {
type: 'int'
min?: number
max?: number
}
type NumberRange = {
type: 'number'
min?: number
max?: number
}
export const functions: VMixFunction[] = [
...FunctionsGeneral,
...FunctionsAudio,
...FunctionsTransition,
...FunctionsOutput,
...FunctionsTitle,
...FunctionsInput,
...FunctionsOverlay,
...FunctionsPlayList,
...FunctionsScripting,
...FunctionsReplay,
...FunctionsNDI,
...FunctionsPTZ,
...FunctionsPreset,
...FunctionsDataSources,
...FunctionsBrowser,
]