Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/next_earcons.js |
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/next_earcons.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/next_earcons.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b50621304bc16740d14ad89ce4ea50926e21f2de |
--- /dev/null |
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/next_earcons.js |
@@ -0,0 +1,115 @@ |
+// Copyright 2015 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. |
+ |
+/** |
+ * @fileoverview Earcons library that uses EarconEngine to play back |
+ * auditory cues. |
+ * |
Peter Lundblad
2015/09/29 09:27:34
nit: empty line
dmazzoni
2015/10/01 20:41:43
Done.
|
+ */ |
+ |
+ |
+goog.provide('NextEarcons'); |
+ |
+goog.require('EarconEngine'); |
+goog.require('cvox.AbstractEarcons'); |
+ |
+ |
+/** |
+ * @constructor |
+ * @extends {cvox.AbstractEarcons} |
+ */ |
+NextEarcons = function() { |
+ cvox.AbstractEarcons.call(this); |
+ |
+ /** |
+ * The ChromeVox Next earcon engine. |
Peter Lundblad
2015/09/29 09:27:34
nit: redundant.
dmazzoni
2015/10/01 20:41:43
Done.
|
+ * @type {EarconEngine} |
+ * @private |
+ */ |
+ this.engine_ = new EarconEngine(); |
+}; |
Peter Lundblad
2015/09/29 09:27:34
The enabled flag is not initialized from the prefs
dmazzoni
2015/10/13 23:07:03
Moved to AbstractEarcons instead.
|
+ |
+ |
+NextEarcons.prototype = { |
Peter Lundblad
2015/09/29 09:27:34
nit: no need for double line break.
dmazzoni
2015/10/01 20:41:43
Done.
|
+ /** |
+ * @return {string} The human-readable name of the earcon set. |
+ */ |
+ getName: function() { |
+ return 'ChromeVox Next earcons'; |
+ }, |
+ |
+ /** |
+ * @override |
+ */ |
+ playEarcon: function(earcon) { |
+ if (!this.enabled) { |
+ return; |
+ } |
+ console.log('Earcon ' + earcon); |
+ |
+ switch (earcon) { |
+ case cvox.Earcon.ALERT_MODAL: |
+ case cvox.Earcon.ALERT_NONMODAL: |
+ this.engine_.onAlert(); |
+ break; |
+ case cvox.Earcon.BUTTON: |
+ this.engine_.onButton(); |
+ break; |
+ case cvox.Earcon.CHECK_OFF: |
+ this.engine_.onCheckOff(); |
+ break; |
+ case cvox.Earcon.CHECK_ON: |
+ this.engine_.onCheckOn(); |
+ break; |
+ case cvox.Earcon.EDITABLE_TEXT: |
+ this.engine_.onTextField(); |
+ break; |
+ case cvox.Earcon.INVALID_KEYPRESS: |
+ break; |
Peter Lundblad
2015/09/29 09:27:34
Can you add a comment explaining why this is not h
dmazzoni
2015/10/01 20:41:43
Oops, I meant to map this one to onWrap().
|
+ case cvox.Earcon.LINK: |
+ this.engine_.onLink(); |
+ break; |
+ case cvox.Earcon.LISTBOX: |
+ this.engine_.onSelect(); |
+ break; |
+ case cvox.Earcon.LIST_ITEM: |
+ case cvox.Earcon.LONG_DESC: |
+ case cvox.Earcon.MATH: |
+ case cvox.Earcon.OBJECT_CLOSE: |
+ case cvox.Earcon.OBJECT_ENTER: |
+ case cvox.Earcon.OBJECT_EXIT: |
+ case cvox.Earcon.OBJECT_OPEN: |
+ case cvox.Earcon.OBJECT_SELECT: |
+ break; |
Peter Lundblad
2015/09/29 09:27:34
Can you add a comment explaining why these are not
dmazzoni
2015/10/01 20:41:43
Done.
|
+ case cvox.Earcon.PAGE_FINISH_LOADING: |
+ this.engine_.cancelProgress(); |
+ break; |
+ case cvox.Earcon.PAGE_START_LOADING: |
+ // TODO(dmazzoni): only when the page has focus. |
+ this.engine_.startProgress(); |
+ break; |
+ case cvox.Earcon.POP_UP_BUTTON: |
+ this.engine_.onPopUpButton(); |
+ break; |
+ case cvox.Earcon.RECOVER_FOCUS: |
Peter Lundblad
2015/09/29 09:27:34
Can you add a comment explaining why this is not h
dmazzoni
2015/10/01 20:41:43
Done.
|
+ break; |
+ case cvox.Earcon.SELECTION: |
+ this.engine_.onSelection(); |
+ break; |
+ case cvox.Earcon.SELECTION_REVERSE: |
+ this.engine_.onSelectionReverse(); |
+ break; |
+ case cvox.Earcon.SKIP: |
+ this.engine_.onSkim(); |
+ break; |
+ case cvox.Earcon.SLIDER: |
+ this.engine_.onSlider(); |
+ break; |
+ case cvox.Earcon.WRAP: |
+ case cvox.Earcon.WRAP_EDGE: |
+ this.engine_.onWrap(); |
+ break; |
+ } |
+ } |
+}; |