ross-ultrix-mcp/src/types.ts

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;
}