@geheimgang188/fmod-service-api
Version:
FMOD service API
51 lines (50 loc) • 1.86 kB
TypeScript
import { IRequireBank } from './ports/i-require-bank';
import { FmodParameter } from './fmod-types';
import { IFmodApi } from '../ports/i-fmod-api';
import { ILogger } from '../api/i-logger';
import { FmodEventType } from './interfaces/fmod-event-type';
import { MarkerData } from '../api/marker-data';
export declare class FmodEvent {
readonly id: string;
readonly eventName: string;
readonly bankName: string;
readonly additionalBankRequirements: string[];
private readonly _logger;
private _api;
private _bankLoader;
private readonly _eventType;
private readonly _markerListeners;
readonly params: FmodParameter[];
constructor(name: string, bankName: string, additionalBankRequirements: string[], eventType: FmodEventType, logger?: ILogger);
init(api: IFmodApi, bankLoader: IRequireBank): void;
get api(): IFmodApi;
get eventType(): FmodEventType;
play(): Promise<void>;
/**
* Plays an event that contains a programmer instrument
* @param voiceKey Key to pass to the programmer instrument
*/
playVoice(voiceKey: string): Promise<void>;
/**
* @param voiceKey Key used for the programmer instrument
* @returns Number of stopped voices
*/
stopVoice(voiceKey: string): Promise<number>;
start(): Promise<void>;
/**
* @returns Number of stopped instances
*/
stop(): Promise<number>;
/**
* Subscribe to marker events for this specific FMOD event.
* Marker events occur when playback in FMOD runs over e.g. a destination marker.
*
* Only markers whose event path matches this event’s ID will be forwarded.
*/
onMarker(cb: (data: MarkerData) => void): void;
/**
* Unsubscribe a marker event callback.
*/
offMarker(cb: (data: MarkerData) => void): void;
private ensureBankLoaded;
}