UNPKG

vision-embedded-web

Version:
129 lines (128 loc) 5.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.webContentResponseEvent = exports.webContentEvent = exports.registerVarChanged = exports.registerVarsChanged = exports.registerFolderPlayUpdate = exports.notifyAboutRegisterEnd = exports.registerSetState = exports.registerStopPlay = exports.registerStartPlay = exports.createInterface = exports.clearPrevState = void 0; var lite_event_1 = require("./lib/lite-event"); var vision_controller_1 = require("./vision-controller"); var visionController = new vision_controller_1.default('playerHooks'); var hooks = {}; var prevState = null; /** * Очистить предыдущее состояние, чтобы SetStateCallback мог сработать на тех же данных */ function clearPrevState() { prevState = null; } exports.clearPrevState = clearPrevState; function createInterface() { window.WebContent = { startPlay: function () { if (hooks.onStartPlay) hooks.onStartPlay(); }, stopPlay: function () { if (hooks.onStopPlay) hooks.onStopPlay(); }, setState: function (channelName, state) { var stateStr = ''; var stateObj = null; if (typeof state !== 'string') { stateObj = state; stateStr = JSON.stringify(state); } else { stateStr = state; stateObj = JSON.parse(state); } var curState = "channel: ".concat(channelName, " state: ").concat(stateStr); if (prevState === curState) { return; } if (hooks.onSetState) { hooks.onSetState(channelName, stateObj); prevState = curState; } }, notifyFolderPlayUpdate: function (dirPath) { if (hooks.onFolderPlayUpdate) { hooks.onFolderPlayUpdate(dirPath); } }, notifyVarsChanged: function (vars) { var parsedVars = JSON.parse(vars); if (hooks.onVarsChanged) { hooks.onVarsChanged(parsedVars); } if (hooks.onVarChanged) { for (var _i = 0, parsedVars_1 = parsedVars; _i < parsedVars_1.length; _i++) { var curVar = parsedVars_1[_i]; hooks.onVarChanged(curVar.name, curVar.value); } } }, emit: function (jsonData) { var event = JSON.parse(jsonData); exports.webContentEvent.emit(event); }, response: function (requestId, error, jsonResult) { var result = jsonResult ? JSON.parse(jsonResult) : null; exports.webContentResponseEvent.emit({ requestId: requestId, error: error, result: result }); }, }; } exports.createInterface = createInterface; function registerStartPlay(callback) { if (hooks.onStartPlay) throw new Error("Error Web Content hook 'onStartPlay' already registered."); hooks.onStartPlay = callback; } exports.registerStartPlay = registerStartPlay; function registerStopPlay(callback) { if (hooks.onStopPlay) throw new Error("Error Web Content hook 'onStopPlay' already registered."); hooks.onStopPlay = callback; } exports.registerStopPlay = registerStopPlay; function registerSetState(callback) { if (hooks.onSetState) throw new Error("Error Web Content hook 'onSetState' already registered."); hooks.onSetState = callback; } exports.registerSetState = registerSetState; function notifyAboutRegisterEnd() { var cubicPlayer = visionController.getPlayer(); if (!(cubicPlayer === null || cubicPlayer === void 0 ? void 0 : cubicPlayer.onWebContentReady)) { visionController.printNotFound('onWebContentReady'); return; } cubicPlayer.onWebContentReady(); } exports.notifyAboutRegisterEnd = notifyAboutRegisterEnd; function registerFolderPlayUpdate(callback) { if (hooks.onFolderPlayUpdate) throw new Error("Error Web Content hook 'onFolderPlayUpdate' already registered."); hooks.onFolderPlayUpdate = callback; } exports.registerFolderPlayUpdate = registerFolderPlayUpdate; /** * @param {VarsChangedCallback} callback * Веб контент подписывается на изменение переменных плеера (переменная var1) */ function registerVarsChanged(callback) { if (hooks.onVarsChanged) throw new Error("Error Web Content hook 'onVarsChanged' already registered."); hooks.onVarsChanged = callback; } exports.registerVarsChanged = registerVarsChanged; /** * @param {VarsChangedCallback} callback * Веб контент подписывается на изменение переменной плеера (переменная var1) */ function registerVarChanged(callback) { if (hooks.onVarChanged) throw new Error("Error Web Content hook 'onVarChanged' already registered."); hooks.onVarChanged = callback; } exports.registerVarChanged = registerVarChanged; exports.webContentEvent = (0, lite_event_1.createLiteEvent)(); exports.webContentResponseEvent = (0, lite_event_1.createLiteEvent)();