1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @fileoverview A TTS engine that writes to window.console. 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.provide('cvox.ConsoleTts'); 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.AbstractTts'); 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.TtsInterface'); 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @constructor 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @implements {cvox.TtsInterface} 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts = function() { 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * True if the console TTS is enabled by the user. 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {boolean} 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.enabled_ = false; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.addSingletonGetter(cvox.ConsoleTts); 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** @override */ 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.speak = function(textString, queueMode, properties) { 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (this.enabled_ && window['console']) { 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) var logStr = 'Speak'; 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (queueMode == cvox.AbstractTts.QUEUE_MODE_FLUSH) { 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) logStr += ' (I)'; 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } else if (queueMode == cvox.AbstractTts.QUEUE_MODE_CATEGORY_FLUSH) { 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci logStr += ' (C)'; 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } else { 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) logStr += ' (Q)'; 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (properties && properties.category) { 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci logStr += ' category=' + properties.category; 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) logStr += ' "' + textString + '"'; 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) window['console']['log'](logStr); 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (properties && properties['startCallback'] != undefined) { 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) window.console.log(' using startCallback'); 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (properties && properties['endCallback'] != undefined) { 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) window.console.log(' using endCallback'); 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return this; 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** @override */ 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.isSpeaking = function() { return false; }; 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** @override */ 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.stop = function() { 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (this.enabled_) { 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) window['console']['log']('Stop'); 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** @override */ 68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.addCapturingEventListener = function(listener) { }; 69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** @override */ 71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.increaseOrDecreaseProperty = function() { }; 72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Sets the enabled bit. 75cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {boolean} enabled The new enabled bit. 76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 77cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.setEnabled = function(enabled) { 78cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.enabled_ = enabled; 79cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 80cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 81cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** @override */ 82cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.ConsoleTts.prototype.getDefaultProperty = function(property) { }; 83