1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/speech/tts_platform.h" 6 7// Chrome OS doesn't have native TTS, instead it includes a built-in 8// component extension that provides speech synthesis. This class includes 9// an implementation of LoadBuiltInTtsExtension and dummy implementations of 10// everything else. 11 12class TtsPlatformImplChromeOs : public TtsPlatformImpl { 13 public: 14 // TtsPlatformImpl overrides: 15 virtual bool PlatformImplAvailable() OVERRIDE { 16 return false; 17 } 18 19 virtual bool LoadBuiltInTtsExtension( 20 content::BrowserContext* browser_context) OVERRIDE { 21 TtsEngineDelegate* tts_engine_delegate = 22 TtsController::GetInstance()->GetTtsEngineDelegate(); 23 if (tts_engine_delegate) 24 return tts_engine_delegate->LoadBuiltInTtsExtension(browser_context); 25 return false; 26 } 27 28 virtual bool Speak( 29 int utterance_id, 30 const std::string& utterance, 31 const std::string& lang, 32 const VoiceData& voice, 33 const UtteranceContinuousParameters& params) OVERRIDE { 34 return false; 35 } 36 37 virtual bool StopSpeaking() OVERRIDE { 38 return false; 39 } 40 41 virtual void Pause() OVERRIDE {} 42 43 virtual void Resume() OVERRIDE {} 44 45 virtual bool IsSpeaking() OVERRIDE { 46 return false; 47 } 48 49 virtual void GetVoices(std::vector<VoiceData>* out_voices) OVERRIDE { 50 } 51 52 // Get the single instance of this class. 53 static TtsPlatformImplChromeOs* GetInstance(); 54 55 private: 56 TtsPlatformImplChromeOs() {} 57 virtual ~TtsPlatformImplChromeOs() {} 58 59 friend struct DefaultSingletonTraits<TtsPlatformImplChromeOs>; 60 61 DISALLOW_COPY_AND_ASSIGN(TtsPlatformImplChromeOs); 62}; 63 64// static 65TtsPlatformImpl* TtsPlatformImpl::GetInstance() { 66 return TtsPlatformImplChromeOs::GetInstance(); 67} 68 69// static 70TtsPlatformImplChromeOs* 71TtsPlatformImplChromeOs::GetInstance() { 72 return Singleton<TtsPlatformImplChromeOs>::get(); 73} 74