Index: chrome/browser/ui/webui/app_list/start_page_handler.cc |
diff --git a/chrome/browser/ui/webui/app_list/start_page_handler.cc b/chrome/browser/ui/webui/app_list/start_page_handler.cc |
index eb0b89cd63d980598c5defb066b85422db2f5319..c93dab21c51e98841359d841ff8384d02523d7a0 100644 |
--- a/chrome/browser/ui/webui/app_list/start_page_handler.cc |
+++ b/chrome/browser/ui/webui/app_list/start_page_handler.cc |
@@ -22,6 +22,7 @@ |
#include "content/public/browser/web_contents_view.h" |
#include "content/public/browser/web_ui.h" |
#include "extensions/common/extension.h" |
+#include "ui/app_list/speech_ui_model_observer.h" |
#include "ui/events/event_constants.h" |
namespace app_list { |
@@ -65,8 +66,13 @@ void StartPageHandler::RegisterMessages() { |
"launchApp", |
base::Bind(&StartPageHandler::HandleLaunchApp, base::Unretained(this))); |
web_ui()->RegisterMessageCallback( |
- "search", |
- base::Bind(&StartPageHandler::HandleSearch, base::Unretained(this))); |
+ "speechResult", |
+ base::Bind(&StartPageHandler::HandleSpeechResult, |
+ base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback( |
+ "speechSoundLevel", |
+ base::Bind(&StartPageHandler::HandleSpeechSoundLevel, |
+ base::Unretained(this))); |
web_ui()->RegisterMessageCallback( |
"setSpeechRecognitionState", |
base::Bind(&StartPageHandler::HandleSpeechRecognition, |
@@ -124,20 +130,38 @@ void StartPageHandler::HandleLaunchApp(const base::ListValue* args) { |
ui::EF_NONE); |
} |
-void StartPageHandler::HandleSearch(const base::ListValue* args) { |
+void StartPageHandler::HandleSpeechResult(const base::ListValue* args) { |
base::string16 query; |
+ bool is_final = false; |
CHECK(args->GetString(0, &query)); |
+ CHECK(args->GetBoolean(1, &is_final)); |
- StartPageService::Get(Profile::FromWebUI(web_ui()))->OnSearch(query); |
+ StartPageService::Get(Profile::FromWebUI(web_ui()))->OnSpeechResult( |
+ query, is_final); |
+} |
+ |
+void StartPageHandler::HandleSpeechSoundLevel(const base::ListValue* args) { |
+ double level; |
+ CHECK(args->GetDouble(0, &level)); |
+ |
+ StartPageService* service = |
+ StartPageService::Get(Profile::FromWebUI(web_ui())); |
+ service->OnSpeechSoundLevelChanged(static_cast<int16>(level)); |
} |
void StartPageHandler::HandleSpeechRecognition(const base::ListValue* args) { |
- bool recognizing; |
- CHECK(args->GetBoolean(0, &recognizing)); |
+ std::string state_string; |
+ CHECK(args->GetString(0, &state_string)); |
+ |
+ SpeechRecognitionState new_state = SPEECH_RECOGNITION_NOT_STARTED; |
+ if (state_string == "on") |
+ new_state = SPEECH_RECOGNITION_ON; |
+ else if (state_string == "in-speech") |
+ new_state = SPEECH_RECOGNITION_IN_SPEECH; |
StartPageService* service = |
StartPageService::Get(Profile::FromWebUI(web_ui())); |
- service->OnSpeechRecognitionStateChanged(recognizing); |
+ service->OnSpeechRecognitionStateChanged(new_state); |
} |
} // namespace app_list |