timeline-state-resolver
Version:
Have timeline, control stuff
139 lines • 4.63 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
interface SisyfosApiEvents {
error: [Error];
initialized: [];
mixerOnline: [boolean];
connected: [];
disconnected: [];
}
export declare class SisyfosApi extends EventEmitter<SisyfosApiEvents> {
private _oscClient;
private _state?;
private _labelToChannel;
private _connectivityCheckInterval;
private _pingCounter;
private _connectivityTimeout;
private _connected;
private _mixerOnline;
/**
* Connnects to the OSC server.
* @param host ip to connect to
* @param port port the osc server is hosted on
*/
connect(host: string, port: number): Promise<void>;
dispose(): void;
send(command: SisyfosCommand): void;
disconnect(): void;
isInitialized(): boolean;
reInitialize(): void;
reSyncOneChannel(channel: number): void;
setSisyfosChannel(channel: number, apiState: Partial<SisyfosChannelAPI>): void;
getChannelByLabel(label: string): number | undefined;
get connected(): boolean;
get state(): SisyfosAPIState | undefined;
get mixerOnline(): boolean;
setMixerOnline(state: boolean): void;
private _monitorConnectivity;
private _clearPingTimer;
private receiver;
private updateIsConnected;
private parseChannelCommand;
private parseSisyfosState;
protected sendLoadMixerPresetCommand(presetName: string): void;
}
export declare enum SisyfosCommandType {
TOGGLE_PGM = "togglePgm",
TOGGLE_PST = "togglePst",
SET_FADER = "setFader",
SET_INPUT_GAIN = "setInputGain",
SET_INPUT_SELECTOR = "setInputSelector",
SET_MUTE = "setMute",
CLEAR_PST_ROW = "clearPstRow",
LABEL = "label",
TAKE = "take",
VISIBLE = "visible",
RESYNC = "resync",
RESYNC_CHANNEL = "resyncChannel",
SET_CHANNEL = "setChannel",
LOAD_MIXER_PRESET = "loadMixerPreset"
}
export interface BaseCommand {
type: SisyfosCommandType;
}
export interface SetChannelCommand {
type: SisyfosCommandType.SET_CHANNEL;
channel: number;
values: Partial<SisyfosChannelAPI>;
}
export interface LoadMixerPresetCommand {
type: SisyfosCommandType.LOAD_MIXER_PRESET;
presetName: string;
}
export interface ChannelCommand extends BaseCommand {
type: SisyfosCommandType.SET_FADER | SisyfosCommandType.TOGGLE_PGM | SisyfosCommandType.TOGGLE_PST | SisyfosCommandType.LABEL | SisyfosCommandType.VISIBLE | SisyfosCommandType.RESYNC_CHANNEL | SisyfosCommandType.SET_INPUT_SELECTOR | SisyfosCommandType.SET_INPUT_GAIN | SisyfosCommandType.SET_MUTE;
channel: number;
}
export interface GlobalCommand extends BaseCommand {
type: SisyfosCommandType.CLEAR_PST_ROW | SisyfosCommandType.TAKE | SisyfosCommandType.RESYNC;
}
export interface GlobalCommand extends BaseCommand {
type: SisyfosCommandType.CLEAR_PST_ROW | SisyfosCommandType.TAKE | SisyfosCommandType.RESYNC;
}
export interface BoolCommand extends ChannelCommand {
type: SisyfosCommandType.VISIBLE | SisyfosCommandType.SET_MUTE;
value: boolean;
}
export interface ValueCommand extends ChannelCommand {
type: SisyfosCommandType.TOGGLE_PST | SisyfosCommandType.VISIBLE | SisyfosCommandType.RESYNC_CHANNEL | SisyfosCommandType.SET_INPUT_SELECTOR | SisyfosCommandType.SET_INPUT_GAIN;
value: number;
}
export interface ValuesCommand extends ChannelCommand {
type: SisyfosCommandType.TOGGLE_PGM | SisyfosCommandType.SET_FADER;
values: number[];
}
export interface StringCommand extends ChannelCommand {
type: SisyfosCommandType.LABEL;
value: string;
}
export type SisyfosCommand = GlobalCommand | ValueCommand | ValuesCommand | BoolCommand | StringCommand | SetChannelCommand | LoadMixerPresetCommand;
export interface SisyfosChannel extends SisyfosChannelAPI {
timelineObjIds: string[];
triggerValue?: string;
}
export interface SisyfosState {
channels: {
[index: string]: SisyfosChannel;
};
resync: boolean;
triggerValue?: string;
}
export interface SisyfosChannelAPI {
faderLevel: number;
pgmOn: number;
pstOn: number;
label: string;
visible: boolean;
fadeTime?: number;
muteOn: boolean;
inputGain: number;
inputSelector: number;
}
export interface SisyfosChannelOSCAPI {
faderLevel?: number;
pgmOn?: boolean;
voOn?: boolean;
pstOn?: boolean;
label?: string;
showChannel?: boolean;
fadeTime?: number;
muteOn?: boolean;
inputGain?: number;
inputSelector?: number;
}
export interface SisyfosAPIState {
channels: {
[index: string]: SisyfosChannelAPI;
};
}
export {};
//# sourceMappingURL=connection.d.ts.map