| Index: chrome/common/extensions/docs/examples/extensions/speak_selection/background.js
|
| ===================================================================
|
| --- chrome/common/extensions/docs/examples/extensions/speak_selection/background.js (revision 0)
|
| +++ chrome/common/extensions/docs/examples/extensions/speak_selection/background.js (revision 0)
|
| @@ -0,0 +1,77 @@
|
| +var lastUtterance = '';
|
| +var speaking = false;
|
| +var globalUtteranceIndex = 0;
|
| +
|
| +if (localStorage['lastVersionUsed'] != '1') {
|
| + localStorage['lastVersionUsed'] = '1';
|
| + chrome.tabs.create({
|
| + url: chrome.extension.getURL('options.html')
|
| + });
|
| +}
|
| +
|
| +function speak(utterance) {
|
| + if (speaking && utterance == lastUtterance) {
|
| + chrome.tts.stop();
|
| + return;
|
| + }
|
| +
|
| + speaking = true;
|
| + lastUtterance = utterance;
|
| + globalUtteranceIndex++;
|
| + var utteranceIndex = globalUtteranceIndex;
|
| +
|
| + chrome.browserAction.setIcon({path: 'SpeakSel19-active.png'});
|
| +
|
| + var rate = localStorage['rate'] || 1.0;
|
| + var pitch = localStorage['pitch'] || 1.0;
|
| + var volume = localStorage['volume'] || 1.0;
|
| + var voice = localStorage['voice'];
|
| + chrome.tts.speak(
|
| + utterance,
|
| + {voiceName: voice,
|
| + rate: parseFloat(rate),
|
| + pitch: parseFloat(pitch),
|
| + volume: parseFloat(volume),
|
| + onEvent: function(evt) {
|
| + if (evt.type == 'end' ||
|
| + evt.type == 'interrupted' ||
|
| + evt.type == 'cancelled' ||
|
| + evt.type == 'error') {
|
| + if (utteranceIndex == globalUtteranceIndex) {
|
| + speaking = false;
|
| + chrome.browserAction.setIcon({path: 'SpeakSel19.png'});
|
| + }
|
| + }
|
| + }
|
| + });
|
| +}
|
| +
|
| +function initBackground() {
|
| + loadContentScriptInAllTabs();
|
| +
|
| + var defaultKeyString = getDefaultKeyString();
|
| + var keyString = localStorage['speakKey'];
|
| + if (keyString == undefined) {
|
| + keyString = defaultKeyString;
|
| + localStorage['speakKey'] = keyString;
|
| + }
|
| + sendKeyToAllTabs(keyString);
|
| +
|
| + chrome.extension.onRequest.addListener(
|
| + function(request, sender, sendResponse) {
|
| + if (request['init']) {
|
| + sendResponse({'key': localStorage['speakKey']});
|
| + } else if (request['speak']) {
|
| + speak(request['speak']);
|
| + }
|
| + });
|
| +
|
| + chrome.browserAction.onClicked.addListener(
|
| + function(tab) {
|
| + chrome.tabs.sendRequest(
|
| + tab.id,
|
| + {'speakSelection': true});
|
| + });
|
| +}
|
| +
|
| +initBackground();
|
|
|
| Property changes on: chrome/common/extensions/docs/examples/extensions/speak_selection/background.js
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|