vision-embedded-web
Version:
Cubic Vision methods for embedded web content.
129 lines (128 loc) • 5.4 kB
JavaScript
;
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)();