Index: chrome/browser/resources/access_chromevox/audio/common/local_earcons_manager.js |
=================================================================== |
--- chrome/browser/resources/access_chromevox/audio/common/local_earcons_manager.js (revision 0) |
+++ chrome/browser/resources/access_chromevox/audio/common/local_earcons_manager.js (revision 0) |
@@ -0,0 +1,74 @@ |
+// Copyright (c) 2011 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 Bridge that sends earcon messages from content scripts or |
+ * other pages to the main background page. |
+ */ |
+ |
+goog.provide('cvox.LocalEarconsManager'); |
+ |
+goog.require('cvox.AbstractEarconsManager'); |
+ |
+/** |
+ * @constructor |
+ * @param {Array} earcons Array of earcon classes. |
+ * @param {cvox.AbstractTtsManager} ttsManager A TTS provider. |
+ * @extends {cvox.AbstractEarconsManager} |
+ */ |
+cvox.LocalEarconsManager = function(earcons, ttsManager) { |
+ //Inherit AbstractEarconsManager |
+ cvox.AbstractEarconsManager.call(this); |
+ |
+ this.earcons = earcons; |
+ this.ttsManager = ttsManager; |
+ this.currentEarcons = null; |
+ this.currentEarconsIndex = -1; |
+ this.nextEarcons(false); |
+}; |
+goog.inherits(cvox.LocalEarconsManager, cvox.AbstractEarconsManager); |
+ |
+/** |
+ * @return {string} The human-readable name of this instance. |
+ */ |
+cvox.LocalEarconsManager.prototype.getName = function() { |
+ return 'LocalEarconsManager'; |
+}; |
+ |
+/** |
+ * Plays the specified earcon. |
+ * @param {number} earcon The index of the earcon to be played. |
+ */ |
+cvox.LocalEarconsManager.prototype.playEarcon = function(earcon) { |
+ cvox.LocalEarconsManager.superClass_.playEarcon.call(this, earcon); |
+ if (!this.currentEarcons) { |
+ return; |
+ } |
+ this.currentEarcons.playEarcon(earcon); |
+}; |
+ |
+/** |
+ * Switch to the next earcon set and optionally announce its name. |
+ * If no earcon sets have been specified this function is a NOOP. |
+ * @param {boolean} announce If true, will announce the name of the |
+ * new earcon set. |
+ */ |
+cvox.LocalEarconsManager.prototype.nextEarcons = function(announce) { |
+ cvox.LocalEarconsManager.superClass_.nextEarcons.call(this, announce); |
+ if (!this.earcons) { |
+ return; |
+ } |
+ this.currentEarcons = null; |
+ this.currentEarconsIndex = |
+ (this.currentEarconsIndex + 1) % this.earcons.length; |
+ try { |
+ this.currentEarcons = new this.earcons[this.currentEarconsIndex]; |
+ console.log('Switching to earcons: ' + this.currentEarcons.getName()); |
+ if (announce) { |
+ this.ttsManager.speak(this.currentEarcons.getName()); |
+ } |
+ } catch (err) { |
+ console.log('error switching to earcon #' + this.currentEarconsIndex); |
+ } |
+}; |
Property changes on: chrome/browser/resources/access_chromevox/audio/common/local_earcons_manager.js |
___________________________________________________________________ |
Added: svn:executable |
+ * |
Added: svn:eol-style |
+ LF |