Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(491)

Unified Diff: chrome/browser/extensions/extension_tts_api.cc

Issue 9808024: Move TTS extension API to chrome/browser/speech/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix chromeos compile error, rebase Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_tts_api.cc
diff --git a/chrome/browser/extensions/extension_tts_api.cc b/chrome/browser/extensions/extension_tts_api.cc
deleted file mode 100644
index 5ab297ddfd9e6eef0b483ac1246a69650494a3a0..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/extension_tts_api.cc
+++ /dev/null
@@ -1,174 +0,0 @@
-// 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.
-
-#include "chrome/browser/extensions/extension_tts_api.h"
-
-#include <string>
-
-#include "base/values.h"
-#include "chrome/browser/extensions/extension_tts_api_constants.h"
-#include "chrome/browser/extensions/extension_tts_api_controller.h"
-#include "chrome/browser/profiles/profile.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace constants = extension_tts_api_constants;
-
-bool ExtensionTtsSpeakFunction::RunImpl() {
- std::string text;
- EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &text));
- if (text.size() > 32768) {
- error_ = constants::kErrorUtteranceTooLong;
- return false;
- }
-
- scoped_ptr<DictionaryValue> options(new DictionaryValue());
- if (args_->GetSize() >= 2) {
- DictionaryValue* temp_options = NULL;
- if (args_->GetDictionary(1, &temp_options))
- options.reset(temp_options->DeepCopy());
- }
-
- std::string voice_name;
- if (options->HasKey(constants::kVoiceNameKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetString(constants::kVoiceNameKey, &voice_name));
- }
-
- std::string lang;
- if (options->HasKey(constants::kLangKey))
- EXTENSION_FUNCTION_VALIDATE(options->GetString(constants::kLangKey, &lang));
- if (!lang.empty() && !l10n_util::IsValidLocaleSyntax(lang)) {
- error_ = constants::kErrorInvalidLang;
- return false;
- }
-
- std::string gender;
- if (options->HasKey(constants::kGenderKey))
- EXTENSION_FUNCTION_VALIDATE(
- options->GetString(constants::kGenderKey, &gender));
- if (!gender.empty() &&
- gender != constants::kGenderFemale &&
- gender != constants::kGenderMale) {
- error_ = constants::kErrorInvalidGender;
- return false;
- }
-
- double rate = 1.0;
- if (options->HasKey(constants::kRateKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetDouble(constants::kRateKey, &rate));
- if (rate < 0.1 || rate > 10.0) {
- error_ = constants::kErrorInvalidRate;
- return false;
- }
- }
-
- double pitch = 1.0;
- if (options->HasKey(constants::kPitchKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetDouble(constants::kPitchKey, &pitch));
- if (pitch < 0.0 || pitch > 2.0) {
- error_ = constants::kErrorInvalidPitch;
- return false;
- }
- }
-
- double volume = 1.0;
- if (options->HasKey(constants::kVolumeKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetDouble(constants::kVolumeKey, &volume));
- if (volume < 0.0 || volume > 1.0) {
- error_ = constants::kErrorInvalidVolume;
- return false;
- }
- }
-
- bool can_enqueue = false;
- if (options->HasKey(constants::kEnqueueKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetBoolean(constants::kEnqueueKey, &can_enqueue));
- }
-
- std::set<std::string> required_event_types;
- if (options->HasKey(constants::kRequiredEventTypesKey)) {
- ListValue* list;
- EXTENSION_FUNCTION_VALIDATE(
- options->GetList(constants::kRequiredEventTypesKey, &list));
- for (size_t i = 0; i < list->GetSize(); i++) {
- std::string event_type;
- if (!list->GetString(i, &event_type))
- required_event_types.insert(event_type);
- }
- }
-
- std::set<std::string> desired_event_types;
- if (options->HasKey(constants::kDesiredEventTypesKey)) {
- ListValue* list;
- EXTENSION_FUNCTION_VALIDATE(
- options->GetList(constants::kDesiredEventTypesKey, &list));
- for (size_t i = 0; i < list->GetSize(); i++) {
- std::string event_type;
- if (!list->GetString(i, &event_type))
- desired_event_types.insert(event_type);
- }
- }
-
- std::string voice_extension_id;
- if (options->HasKey(constants::kExtensionIdKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetString(constants::kExtensionIdKey, &voice_extension_id));
- }
-
- int src_id = -1;
- if (options->HasKey(constants::kSrcIdKey)) {
- EXTENSION_FUNCTION_VALIDATE(
- options->GetInteger(constants::kSrcIdKey, &src_id));
- }
-
- // If we got this far, the arguments were all in the valid format, so
- // send the success response to the callback now - this ensures that
- // the callback response always arrives before events, which makes
- // the behavior more predictable and easier to write unit tests for too.
- SendResponse(true);
-
- UtteranceContinuousParameters continuous_params;
- continuous_params.rate = rate;
- continuous_params.pitch = pitch;
- continuous_params.volume = volume;
-
- Utterance* utterance = new Utterance(profile());
- utterance->set_text(text);
- utterance->set_voice_name(voice_name);
- utterance->set_src_extension_id(extension_id());
- utterance->set_src_id(src_id);
- utterance->set_src_url(source_url());
- utterance->set_lang(lang);
- utterance->set_gender(gender);
- utterance->set_continuous_parameters(continuous_params);
- utterance->set_can_enqueue(can_enqueue);
- utterance->set_required_event_types(required_event_types);
- utterance->set_desired_event_types(desired_event_types);
- utterance->set_extension_id(voice_extension_id);
- utterance->set_options(options.get());
-
- ExtensionTtsController* controller = ExtensionTtsController::GetInstance();
- controller->SpeakOrEnqueue(utterance);
- return true;
-}
-
-bool ExtensionTtsStopSpeakingFunction::RunImpl() {
- ExtensionTtsController::GetInstance()->Stop();
- return true;
-}
-
-bool ExtensionTtsIsSpeakingFunction::RunImpl() {
- result_.reset(Value::CreateBooleanValue(
- ExtensionTtsController::GetInstance()->IsSpeaking()));
- return true;
-}
-
-bool ExtensionTtsGetVoicesFunction::RunImpl() {
- result_.reset(ExtensionTtsController::GetInstance()->GetVoices(profile()));
- return true;
-}
« no previous file with comments | « chrome/browser/extensions/extension_tts_api.h ('k') | chrome/browser/extensions/extension_tts_api_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698