@geheimgang188/fmod-service-api
Version:
FMOD service API
66 lines (65 loc) • 2.24 kB
TypeScript
import { IControlFmod } from '../ports/i-control-fmod';
import { TypedEmitter } from 'tiny-typed-emitter';
import { ILogger } from './i-logger';
import { ConnectionEvents, IConnect, IConnectEvents } from '../ports/i-connect';
import { IConfigureLogging } from '../ports/i-configure-logging';
export declare enum ConnectionState {
Disconnected = "Disconnected",
Connecting = "Connecting",
Connected = "Connected",
Disconnecting = "Disconnecting"
}
export interface FmodZeromqApiArgs {
logger?: ILogger;
heartbeatIntervalMillis?: number;
socketStatusIntervalMillis?: number;
}
export declare class FmodZeromqApi extends TypedEmitter<ConnectionEvents> implements IControlFmod, IConnect, IConnectEvents, IConfigureLogging {
private readonly _socketStatusInterval;
private _socketStatusPoll;
private readonly _heartbeatInterval;
private _heartbeatPoll;
private _lastId;
private _socket;
private readonly _zmqAddress;
private readonly _logger;
private readonly _sm;
private readonly _socketSempahore;
private _verboseLogging;
constructor(address: string, args?: FmodZeromqApiArgs);
get connectionState(): ConnectionState;
get verboseLogging(): boolean;
set verboseLogging(verbose: boolean);
connect(): void;
disconnect(): void;
/**
* Start an event; it can be stopped again
* @param event
*/
start(event: string): Promise<void>;
/**
* Stop a running event
* @param event
*/
stop(event: string): Promise<void>;
stopStartedEvents(): Promise<void>;
/**
* Play an event (fire-and-forget)
* @param event
*/
play(event: string): Promise<void>;
loadBank(bankName: string): Promise<void>;
unloadBank(bankName: string): Promise<void>;
setParameter(eventId: string, name: string, value: number): Promise<void>;
playVoice(eventId: string, key: string): Promise<void>;
isPlaying(eventId: string): Promise<boolean>;
listLoadedBankPaths(): Promise<string[]>;
private doConnect;
private doDisconnect;
private sendCommand;
private checkHeartbeat;
private onConnecting;
private onConnected;
private onDisconnecting;
private onDisconnected;
}