69 lines
1.3 KiB
TypeScript
69 lines
1.3 KiB
TypeScript
export interface RossUltrixState {
|
|
connected: boolean;
|
|
panels: Record<string, PanelStatus>;
|
|
inputs: Record<string, InputStatus>;
|
|
lastUpdate: Date;
|
|
}
|
|
|
|
export interface PanelStatus {
|
|
id: string;
|
|
active: boolean;
|
|
mixEffect?: string;
|
|
lastUpdate: Date;
|
|
}
|
|
|
|
export interface InputStatus {
|
|
id: string;
|
|
name: string;
|
|
live: boolean;
|
|
preview: boolean;
|
|
lastUpdate: Date;
|
|
}
|
|
|
|
export interface RossTalkConfig {
|
|
host: string;
|
|
port: number;
|
|
onStateChange?: (state: Partial<RossUltrixState>) => void;
|
|
}
|
|
|
|
export interface RossCommand {
|
|
type: 'take' | 'auto' | 'preview' | 'program' | 'panel' | 'macro' | 'status';
|
|
target?: string;
|
|
parameters?: Record<string, any>;
|
|
}
|
|
|
|
export interface RossSource {
|
|
id: string;
|
|
name: string;
|
|
type: 'camera' | 'media' | 'cg' | 'aux' | 'color' | 'test';
|
|
available: boolean;
|
|
}
|
|
|
|
export interface RossPanel {
|
|
id: string;
|
|
name: string;
|
|
active: boolean;
|
|
mixEffect?: string;
|
|
type: 'me' | 'aux' | 'dsk';
|
|
}
|
|
|
|
export interface RossMacro {
|
|
id: string;
|
|
name: string;
|
|
description?: string;
|
|
parameters?: Record<string, any>;
|
|
}
|
|
|
|
export interface RossTransition {
|
|
type: 'cut' | 'mix' | 'dip' | 'wipe';
|
|
duration?: number;
|
|
parameters?: Record<string, any>;
|
|
}
|
|
|
|
export interface RossMixEffect {
|
|
id: string;
|
|
program: string | null;
|
|
preview: string | null;
|
|
transition: RossTransition;
|
|
inTransition: boolean;
|
|
}
|