UNPKG

@geheimgang188/fmod-service-api

Version:
81 lines 6.17 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FmodEvent = void 0; const fmod_event_type_1 = require("./interfaces/fmod-event-type"); class FmodEvent { constructor(name, bankName, additionalBankRequirements, eventType, logger) { // Add parameters which should be initialised here this.params = []; this.id = `${eventType}:/${name}`; this._logger = logger; this._eventType = eventType; this.eventName = name; this.bankName = bankName; this.additionalBankRequirements = additionalBankRequirements; } init(api, bankLoader) { var _a, _b; (_a = this._logger) === null || _a === void 0 ? void 0 : _a.debug(`Initialising event ${this.id}`); this._api = api; this._bankLoader = bankLoader; for (const param of this.params) { (_b = this._logger) === null || _b === void 0 ? void 0 : _b.debug(`- Initialising parameter ${param.name}`); param.init(this.id, api); } } get api() { if (this._api === undefined) { throw new Error('API not initialised yet.'); } return this._api; } get eventType() { return this._eventType; } play() { return __awaiter(this, void 0, void 0, function* () { if (this._eventType === fmod_event_type_1.FmodEventType.snapshot) { throw new Error(`${this.id} is a snapshot and should be start()ed/stop()ped.`); } yield this.ensureBankLoaded(); return this.api.play(this.id); }); } playVoice(voiceKey) { return __awaiter(this, void 0, void 0, function* () { yield this.ensureBankLoaded(); return this.api.playVoice(this.id, voiceKey); }); } start() { return __awaiter(this, void 0, void 0, function* () { // TODO Support restart from beginning yield this.ensureBankLoaded(); return this.api.start(this.id); }); } stop() { return this.api.stop(this.id); } ensureBankLoaded() { return __awaiter(this, void 0, void 0, function* () { if (this._bankLoader === undefined) throw new Error(`Bank loader not initialised on event ${this.id}`); yield this._bankLoader.ensureBankLoaded(this.bankName); for (const additionalBank of this.additionalBankRequirements) { yield this._bankLoader.ensureBankLoaded(additionalBank); } }); } } exports.FmodEvent = FmodEvent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1vZC1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGktZ2VuZXJhdG9yL2Ztb2QtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUEsa0VBQTZEO0FBRTdELE1BQWEsU0FBUztJQWVsQixZQUFhLElBQVksRUFBRSxRQUFnQixFQUFFLDBCQUFvQyxFQUFFLFNBQXdCLEVBQUUsTUFBZ0I7UUFIN0gsa0RBQWtEO1FBQ2xDLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBR3pDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLENBQUUsR0FBYSxFQUFFLFVBQXdCOztRQUN6QyxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLEtBQUssQ0FBRSxzQkFBc0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsS0FBTSxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7WUFDaEMsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxLQUFLLENBQUUsNEJBQTRCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBRSxDQUFDO1lBQ2hFLEtBQUssQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksR0FBRztRQUNILElBQUssSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUcsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFFLDBCQUEwQixDQUFFLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFSyxJQUFJOztZQUNOLElBQUssSUFBSSxDQUFDLFVBQVUsS0FBSywrQkFBYSxDQUFDLFFBQVEsRUFBRyxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsbURBQW1ELENBQUUsQ0FBQztZQUNyRixDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxFQUFFLENBQUUsQ0FBQztRQUNwQyxDQUFDO0tBQUE7SUFFSyxTQUFTLENBQUUsUUFBZ0I7O1lBQzdCLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBRSxDQUFDO1FBQ25ELENBQUM7S0FBQTtJQUVLLEtBQUs7O1lBQ1Asc0NBQXNDO1lBQ3RDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDckMsQ0FBQztLQUFBO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBRSxDQUFDO0lBQ3BDLENBQUM7SUFFYSxnQkFBZ0I7O1lBQzFCLElBQUssSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTO2dCQUFHLE1BQU0sSUFBSSxLQUFLLENBQUUsd0NBQXdDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUFDO1lBRTNHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBRSxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUM7WUFDekQsS0FBTSxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUcsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFFLGNBQWMsQ0FBRSxDQUFDO1lBQzlELENBQUM7UUFDTCxDQUFDO0tBQUE7Q0FDSjtBQTVFRCw4QkE0RUMifQ==