timeline-state-resolver
Version:
Have timeline, control stuff
101 lines • 6.35 kB
TypeScript
import { CommandWithContext } from '../../service/device';
/**
* Values in this enum correspond to actual shortcut names or their suffixes
*/
export declare enum CommandName {
ROW = "_row",
ROW_NAMED_INPUT = "_row_named_input",
TOGGLE_MIX_EFFECT_MODE = "_toggle_mix_effect_mode",
TAKE = "_take",
AUTO = "_auto",
SELECT_INDEX = "_select_index",
SET_MIX_EFFECT_BIN_INDEX = "_set_mix_effect_bin_index",
SPEED = "_speed",
DELEGATE = "_delegate",
VALUE = "_value",
SELECT_NAMED_INPUT = "_select_named_input",
POSITION_X = "_position_x",
POSITION_Y = "_position_y",
SCALE_X = "_scale_x",
SCALE_Y = "_scale_y",
ROTATION_X = "_rotation_x",
ROTATION_Y = "_rotation_y",
ROTATION_Z = "_rotation_z",
CROP_LEFT_VALUE = "_crop_left_value",
CROP_RIGHT_VALUE = "_crop_right_value",
CROP_UP_VALUE = "_crop_up_value",
CROP_DOWN_VALUE = "_crop_down_value",
FEATHER_VALUE = "_feather_value",
POSITIONING_AND_CROP_ENABLE = "_positioning_and_crop_enable",
VIDEO_SOURCE = "_video_source",
VIDEO_ACT_AS_ALPHA = "_video_act_as_alpha",
VOLUME = "_volume",
MUTE = "_mute",
RECORD_TOGGLE = "record_toggle",
STREAMING_TOGGLE = "streaming_toggle",
OUTPUT_SOURCE = "_output_source",
CROSSPOINT_SOURCE = "_crosspoint_source",
SET_OUTPUT_CONFIG_VIDEO_SOURCE = "set_output_config_video_source"
}
export type ValueTypes = boolean | number | string;
interface Command<NameType extends CommandName> {
name: NameType;
}
interface CommandWithValue<NameType extends CommandName, ValueType extends ValueTypes> extends Command<NameType> {
value: ValueType;
}
interface CommandWithTarget<NameType extends CommandName> extends Command<NameType> {
target: string;
}
interface CommandWithValueAndTarget<NameType extends CommandName, ValueType extends ValueTypes> extends Command<NameType> {
value: ValueType;
target: string;
}
type RowCommand = CommandWithValueAndTarget<CommandName.ROW, number>;
type RowNamedInputCommand = CommandWithValueAndTarget<CommandName.ROW_NAMED_INPUT, string>;
type TakeCommand = CommandWithTarget<CommandName.TAKE>;
type AutoCommand = CommandWithTarget<CommandName.AUTO>;
type SelectIndexCommand = CommandWithValueAndTarget<CommandName.SELECT_INDEX, number>;
type SetMixEffectBinIndexCommand = CommandWithValueAndTarget<CommandName.SET_MIX_EFFECT_BIN_INDEX, number>;
type SpeedCommand = CommandWithValueAndTarget<CommandName.SPEED, number>;
type DelegateCommand = CommandWithValueAndTarget<CommandName.DELEGATE, string>;
type ValueCommand = CommandWithValueAndTarget<CommandName.VALUE, number>;
type SelectNamedInputCommand = CommandWithValueAndTarget<CommandName.SELECT_NAMED_INPUT, string>;
type PositionXCommand = CommandWithValueAndTarget<CommandName.POSITION_X, number>;
type PositionYCommand = CommandWithValueAndTarget<CommandName.POSITION_Y, number>;
type ScaleXCommand = CommandWithValueAndTarget<CommandName.SCALE_X, number>;
type ScaleYCommand = CommandWithValueAndTarget<CommandName.SCALE_Y, number>;
type RotationXCommand = CommandWithValueAndTarget<CommandName.ROTATION_X, number>;
type RotationYCommand = CommandWithValueAndTarget<CommandName.ROTATION_Y, number>;
type RotationZCommand = CommandWithValueAndTarget<CommandName.ROTATION_Z, number>;
type CropLeftCommand = CommandWithValueAndTarget<CommandName.CROP_LEFT_VALUE, number>;
type CropRightCommand = CommandWithValueAndTarget<CommandName.CROP_RIGHT_VALUE, number>;
type CropUpCommand = CommandWithValueAndTarget<CommandName.CROP_UP_VALUE, number>;
type CropDownCommand = CommandWithValueAndTarget<CommandName.CROP_DOWN_VALUE, number>;
type FeatherCommand = CommandWithValueAndTarget<CommandName.FEATHER_VALUE, number>;
type PositioningAndCropEnableCommand = CommandWithValueAndTarget<CommandName.POSITIONING_AND_CROP_ENABLE, boolean>;
type VideoSource = CommandWithValueAndTarget<CommandName.VIDEO_SOURCE, string>;
type VideoActAsAlpha = CommandWithValueAndTarget<CommandName.VIDEO_ACT_AS_ALPHA, boolean>;
type VolumeCommand = CommandWithValueAndTarget<CommandName.VOLUME, number>;
type MuteCommand = CommandWithValueAndTarget<CommandName.MUTE, boolean>;
type RecordToggle = CommandWithValue<CommandName.RECORD_TOGGLE, number>;
type StreamingToggle = CommandWithValue<CommandName.STREAMING_TOGGLE, number>;
type OutputSource = CommandWithValueAndTarget<CommandName.OUTPUT_SOURCE, string>;
type CrosspointSource = CommandWithValueAndTarget<CommandName.CROSSPOINT_SOURCE, string>;
interface OutputMeClean extends Command<CommandName.SET_OUTPUT_CONFIG_VIDEO_SOURCE> {
output_index: number;
me_clean: boolean;
}
export type TriCasterCommand = RowCommand | RowNamedInputCommand | TakeCommand | AutoCommand | SelectIndexCommand | SetMixEffectBinIndexCommand | SpeedCommand | DelegateCommand | ValueCommand | SelectNamedInputCommand | PositionXCommand | PositionYCommand | ScaleXCommand | ScaleYCommand | RotationXCommand | RotationYCommand | RotationZCommand | CropLeftCommand | CropRightCommand | CropUpCommand | CropDownCommand | FeatherCommand | PositioningAndCropEnableCommand | VideoSource | VideoActAsAlpha | VolumeCommand | MuteCommand | RecordToggle | StreamingToggle | OutputSource | CrosspointSource | OutputMeClean;
type TriCasterGenericNumberCommand = Extract<TriCasterCommand, CommandWithValueAndTarget<CommandName, number> | CommandWithValue<CommandName, number>>;
type TriCasterGenericStringCommand = Extract<TriCasterCommand, CommandWithValueAndTarget<CommandName, string> | CommandWithValue<CommandName, string>>;
type TriCasterGenericBooleanCommand = Extract<TriCasterCommand, CommandWithValueAndTarget<CommandName, boolean> | CommandWithValue<CommandName, boolean>>;
export type TriCasterGenericCommand = TriCasterGenericNumberCommand | TriCasterGenericStringCommand | TriCasterGenericBooleanCommand;
export type TriCasterGenericCommandName<T> = T extends boolean ? TriCasterGenericBooleanCommand['name'] : T extends string ? TriCasterGenericStringCommand['name'] : T extends number ? TriCasterGenericNumberCommand['name'] : never;
export interface TriCasterCommandWithContext extends CommandWithContext {
command: TriCasterCommand;
temporalPriority: number;
}
export declare function serializeToWebSocketMessage(command: TriCasterCommand): string;
export {};
//# sourceMappingURL=triCasterCommands.d.ts.map