OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/speech/speech_recognition_request.h" | 5 #include "chrome/browser/speech/speech_recognition_request.h" |
6 | 6 |
| 7 #include "app/l10n_util.h" |
7 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
8 #include "base/string_util.h" | 9 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
10 #include "base/values.h" | 11 #include "base/values.h" |
11 #include "chrome/common/net/url_request_context_getter.h" | 12 #include "chrome/common/net/url_request_context_getter.h" |
12 #include "net/base/escape.h" | 13 #include "net/base/escape.h" |
13 #include "net/base/load_flags.h" | 14 #include "net/base/load_flags.h" |
14 #include "net/url_request/url_request_status.h" | 15 #include "net/url_request/url_request_status.h" |
15 | 16 |
16 namespace { | 17 namespace { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 111 |
111 SpeechRecognitionRequest::SpeechRecognitionRequest( | 112 SpeechRecognitionRequest::SpeechRecognitionRequest( |
112 URLRequestContextGetter* context, Delegate* delegate) | 113 URLRequestContextGetter* context, Delegate* delegate) |
113 : url_context_(context), | 114 : url_context_(context), |
114 delegate_(delegate) { | 115 delegate_(delegate) { |
115 DCHECK(delegate); | 116 DCHECK(delegate); |
116 } | 117 } |
117 | 118 |
118 SpeechRecognitionRequest::~SpeechRecognitionRequest() {} | 119 SpeechRecognitionRequest::~SpeechRecognitionRequest() {} |
119 | 120 |
120 bool SpeechRecognitionRequest::Send(const std::string& grammar, | 121 bool SpeechRecognitionRequest::Send(const std::string& language, |
| 122 const std::string& grammar, |
121 const std::string& content_type, | 123 const std::string& content_type, |
122 const std::string& audio_data) { | 124 const std::string& audio_data) { |
123 DCHECK(!url_fetcher_.get()); | 125 DCHECK(!url_fetcher_.get()); |
124 | 126 |
125 std::vector<std::string> parts; | 127 std::vector<std::string> parts; |
126 // TODO(leandro): Replace with the language tag given by WebKit. | 128 if (!language.empty()) { |
127 parts.push_back("lang=en-us"); | 129 parts.push_back("lang=" + EscapeQueryParamValue(language, true)); |
| 130 } else { |
| 131 std::string app_locale = l10n_util::GetApplicationLocale(""); |
| 132 parts.push_back("lang=" + EscapeQueryParamValue(app_locale, true)); |
| 133 } |
| 134 |
128 if (!grammar.empty()) | 135 if (!grammar.empty()) |
129 parts.push_back("grammar=" + EscapeQueryParamValue(grammar, true)); | 136 parts.push_back("grammar=" + EscapeQueryParamValue(grammar, true)); |
130 GURL url(std::string(kDefaultSpeechRecognitionUrl) + JoinString(parts, '&')); | 137 GURL url(std::string(kDefaultSpeechRecognitionUrl) + JoinString(parts, '&')); |
131 | 138 |
132 url_fetcher_.reset(URLFetcher::Create(url_fetcher_id_for_tests, | 139 url_fetcher_.reset(URLFetcher::Create(url_fetcher_id_for_tests, |
133 url, | 140 url, |
134 URLFetcher::POST, | 141 URLFetcher::POST, |
135 this)); | 142 this)); |
136 url_fetcher_->set_upload_data(content_type, audio_data); | 143 url_fetcher_->set_upload_data(content_type, audio_data); |
137 url_fetcher_->set_request_context(url_context_); | 144 url_fetcher_->set_request_context(url_context_); |
(...skipping 22 matching lines...) Expand all Loading... |
160 SpeechInputResultArray result; | 167 SpeechInputResultArray result; |
161 if (!error) | 168 if (!error) |
162 error = !ParseServerResponse(data, &result); | 169 error = !ParseServerResponse(data, &result); |
163 url_fetcher_.reset(); | 170 url_fetcher_.reset(); |
164 | 171 |
165 DVLOG(1) << "SpeechRecognitionRequest: Invoking delegate with result."; | 172 DVLOG(1) << "SpeechRecognitionRequest: Invoking delegate with result."; |
166 delegate_->SetRecognitionResult(error, result); | 173 delegate_->SetRecognitionResult(error, result); |
167 } | 174 } |
168 | 175 |
169 } // namespace speech_input | 176 } // namespace speech_input |
OLD | NEW |