@enact/webos
Version:
webOS support library
85 lines (82 loc) • 2.64 kB
JavaScript
;
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;