UNPKG

@enact/webos

Version:

webOS support library

85 lines (82 loc) 2.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readAlert = exports["default"] = void 0; var _LS2Request = _interopRequireDefault(require("../LS2Request")); var _platform = require("../platform"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /* eslint-disable no-console */ var audioGuidanceEnabled = null; var checkAudioGuidance = function checkAudioGuidance() { return new Promise(function (resolve, reject) { if (audioGuidanceEnabled === null) { new _LS2Request["default"]().send({ service: 'luna://com.webos.settingsservice', method: 'getSystemSettings', subscribe: true, parameters: { 'keys': ['audioGuidance'], 'category': 'option' }, onSuccess: function onSuccess(res) { if (res && res.settings.audioGuidance === 'on') { audioGuidanceEnabled = true; resolve(); return; } audioGuidanceEnabled = false; reject(); }, onFailure: function onFailure(err) { reject('Failed to get system AudioGuidance settings: ' + JSON.stringify(err)); } }); } else if (audioGuidanceEnabled) { resolve(); } else { reject(); } }); }; var readAlertMessage = function readAlertMessage(string, clear) { return function () { return new Promise(function (resolve, reject) { new _LS2Request["default"]().send({ service: 'luna://com.webos.service.tts', method: 'speak', parameters: { 'text': string, 'clear': clear }, onSuccess: resolve, onFailure: function onFailure(err) { reject('Failed to readAlertMessage: ' + JSON.stringify(err)); } }); }); }; }; /** * Read alert text when accessibility audio guidance is enabled. * * @function * @param {String} string String to voice readout * @param {Boolean} [clear=true] Clear option for TTS. If true, it will cut off previous reading. * @returns {undefined} * @memberof webos/speech * @public */ var readAlert = exports.readAlert = function readAlert(string) { var clear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (_platform.platform.tv) { checkAudioGuidance().then(readAlertMessage(string, clear))["catch"](function (message) { if (message) { console.error("Failed to readAlert: ".concat(message)); } }); } else { console.warn('Platform doesn\'t support TTS api.'); } }; var _default = exports["default"] = readAlert;