// Copyright (c) 2010 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. #include "extension_tts_api.h" #include #include "base/values.h" #include "chrome/browser/extensions/extension_function.h" #import static NSSpeechSynthesizer* speech_synthesizer_; void InitializeSpeechSynthesizer() { if (!speech_synthesizer_) speech_synthesizer_ = [[NSSpeechSynthesizer alloc] init]; } bool ExtensionTtsSpeakFunction::RunImpl() { InitializeSpeechSynthesizer(); std::string utterance; EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &utterance)); return [speech_synthesizer_ startSpeakingString: [NSString stringWithUTF8String: utterance.c_str()]]; } bool ExtensionTtsStopSpeakingFunction::RunImpl() { InitializeSpeechSynthesizer(); [speech_synthesizer_ stopSpeaking]; return true; } bool ExtensionTtsIsSpeakingFunction::RunImpl() { InitializeSpeechSynthesizer(); return [speech_synthesizer_ isSpeaking]; }