Commit 2bc068e4 authored by David Tseng's avatar David Tseng Committed by Commit Bot

Add progress tones on initial ChromeVox startup

Bug: 1046430
Change-Id: I583b0ac6928a1c209368507f427c0c40dbd22c04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2026110
Commit-Queue: David Tseng <dtseng@chromium.org>
Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737441}
parent fdb4fa0c
...@@ -154,6 +154,29 @@ Background = class extends ChromeVoxState { ...@@ -154,6 +154,29 @@ Background = class extends ChromeVoxState {
// Set the darkScreen state to false, since the display will be on whenever // Set the darkScreen state to false, since the display will be on whenever
// ChromeVox starts. // ChromeVox starts.
sessionStorage.setItem('darkScreen', 'false'); sessionStorage.setItem('darkScreen', 'false');
// A self-contained class to start and stop progress sounds before any
// speech has been generated on startup. This is important in cases where
// speech is severely delayed.
/** @implements {TtsCapturingEventListener} */
const ProgressPlayer = class {
constructor() {
ChromeVox.tts.addCapturingEventListener(this);
ChromeVox.earcons.playEarcon(Earcon.PAGE_START_LOADING);
}
/** @override */
onTtsStart() {
ChromeVox.earcons.playEarcon(Earcon.PAGE_FINISH_LOADING);
ChromeVox.tts.removeCapturingEventListener(this);
}
/** @override */
onTtsEnd() {}
/** @override */
onTtsInterrupted() {}
};
new ProgressPlayer();
} }
/** /**
......
...@@ -88,6 +88,9 @@ AbstractTts = class { ...@@ -88,6 +88,9 @@ AbstractTts = class {
/** @override */ /** @override */
addCapturingEventListener(listener) {} addCapturingEventListener(listener) {}
/** @override */
removeCapturingEventListener(listener) {}
/** @override */ /** @override */
increaseOrDecreaseProperty(propertyName, increase) { increaseOrDecreaseProperty(propertyName, increase) {
const min = this.propertyMin[propertyName]; const min = this.propertyMin[propertyName];
......
...@@ -64,15 +64,20 @@ CompositeTts = class { ...@@ -64,15 +64,20 @@ CompositeTts = class {
}); });
} }
/** /** @override */
* @override
*/
addCapturingEventListener(listener) { addCapturingEventListener(listener) {
this.ttsEngines_.forEach(function(engine) { this.ttsEngines_.forEach(function(engine) {
engine.addCapturingEventListener(listener); engine.addCapturingEventListener(listener);
}); });
} }
/** @override */
removeCapturingEventListener(listener) {
this.ttsEngines_.forEach(function(engine) {
engine.removeCapturingEventListener(listener);
});
}
/** /**
* @override * @override
*/ */
......
...@@ -55,6 +55,9 @@ ConsoleTts = class { ...@@ -55,6 +55,9 @@ ConsoleTts = class {
/** @override */ /** @override */
addCapturingEventListener(listener) {} addCapturingEventListener(listener) {}
/** @override */
removeCapturingEventListener(listener) {}
/** @override */ /** @override */
increaseOrDecreaseProperty() {} increaseOrDecreaseProperty() {}
......
...@@ -511,6 +511,14 @@ TtsBackground = class extends ChromeTtsBase { ...@@ -511,6 +511,14 @@ TtsBackground = class extends ChromeTtsBase {
this.capturingTtsEventListeners_.push(listener); this.capturingTtsEventListeners_.push(listener);
} }
/** @override */
removeCapturingEventListener(listener) {
this.capturingTtsEventListeners_ =
this.capturingTtsEventListeners_.filter((item) => {
return item != listener;
});
}
/** /**
* An error handler passed as a callback to chrome.tts.speak. * An error handler passed as a callback to chrome.tts.speak.
* @param {string} errorMessage Describes the error (set by onEvent). * @param {string} errorMessage Describes the error (set by onEvent).
......
...@@ -48,13 +48,11 @@ QueueMode = { ...@@ -48,13 +48,11 @@ QueueMode = {
}; };
/** /**
* @interface
* An interface for clients who want to get notified when an utterance * An interface for clients who want to get notified when an utterance
* starts or ends from any source. * starts or ends from any source.
* @interface
*/ */
TtsCapturingEventListener = class { TtsCapturingEventListener = class {
constructor() {}
/** /**
* Called when any utterance starts. * Called when any utterance starts.
*/ */
...@@ -102,6 +100,12 @@ TtsInterface = class { ...@@ -102,6 +100,12 @@ TtsInterface = class {
*/ */
addCapturingEventListener(listener) {} addCapturingEventListener(listener) {}
/**
* Removes a listener to get called whenever any utterance starts or ends.
* @param {TtsCapturingEventListener} listener Listener to get called.
*/
removeCapturingEventListener(listener) {}
/** /**
* Increases a TTS speech property. * Increases a TTS speech property.
* @param {string} propertyName The name of the property to change. * @param {string} propertyName The name of the property to change.
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
"version": "{{set_version}}", "version": "{{set_version}}",
"description": "__MSG_CHROMEVOX_DESCRIPTION__", "description": "__MSG_CHROMEVOX_DESCRIPTION__",
{% if is_guest_manifest == '1' %} {% if is_guest_manifest == '1' %}
"incognito": "split", "incognito": "spanning",
{% endif %} {% endif %}
"background": { "background": {
"page": "background/background.html" "page": "background/background.html"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment