diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..764495b --- /dev/null +++ b/src/types.ts @@ -0,0 +1,69 @@ +export interface RossUltrixState { + connected: boolean; + panels: Record; + inputs: Record; + 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) => void; +} + +export interface RossCommand { + type: 'take' | 'auto' | 'preview' | 'program' | 'panel' | 'macro' | 'status'; + target?: string; + parameters?: Record; +} + +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; +} + +export interface RossTransition { + type: 'cut' | 'mix' | 'dip' | 'wipe'; + duration?: number; + parameters?: Record; +} + +export interface RossMixEffect { + id: string; + program: string | null; + preview: string | null; + transition: RossTransition; + inTransition: boolean; +}