blob: 486bdc98db31aa938f665bb1f4eea816b6eed19c [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Custom binding for the ttsEngine API.
var binding = apiBridge || require('binding').Binding.create('ttsEngine');
var registerArgumentMassager = bindingUtil ?
$Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
require('event_bindings').registerArgumentMassager;
var sendRequest = bindingUtil ?
$Function.bind(bindingUtil.sendRequest, bindingUtil) :
require('sendRequest').sendRequest;
registerArgumentMassager('ttsEngine.onSpeak', function(args, dispatch) {
var text = args[0];
var options = args[1];
var requestId = args[2];
var sendTtsEvent = function(event) {
chrome.ttsEngine.sendTtsEvent(requestId, event);
};
dispatch([text, options, sendTtsEvent]);
});
binding.registerCustomHook(function(api) {
// Provide a warning if deprecated parameters are used.
api.apiFunctions.setHandleRequest('updateVoices', function(voices) {
for (var i = 0; i < voices.length; i++) {
if (voices[i].gender) {
console.warn(
'chrome.ttsEngine.updateVoices: ' +
'Voice gender is deprecated and values will be ignored ' +
'starting in Chrome 71.');
break;
}
}
sendRequest(
'ttsEngine.updateVoices', [voices],
bindingUtil ? undefined : this.definition.parameters, undefined);
});
}.bind(this));
if (!apiBridge)
exports.$set('binding', binding.generate());