Index: content/browser/speech/speech_recognizer_impl.h |
diff --git a/content/browser/speech/speech_recognizer_impl.h b/content/browser/speech/speech_recognizer_impl.h |
index f28417143d6902e32d769ab6c096e692f8cf2804..79be021344f32e569ad1c0606f9b74822e40193c 100644 |
--- a/content/browser/speech/speech_recognizer_impl.h |
+++ b/content/browser/speech/speech_recognizer_impl.h |
@@ -8,6 +8,7 @@ |
#include <memory> |
#include "base/macros.h" |
+#include "base/memory/weak_ptr.h" |
#include "content/browser/speech/endpointer/endpointer.h" |
#include "content/browser/speech/speech_recognition_engine.h" |
#include "content/browser/speech/speech_recognizer.h" |
@@ -19,7 +20,7 @@ |
namespace media { |
class AudioBus; |
-class AudioManager; |
+class AudioSystem; |
} |
namespace content { |
@@ -41,9 +42,10 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
static const int kNoSpeechTimeoutMs; |
static const int kEndpointerEstimationTimeMs; |
- static void SetAudioManagerForTesting(media::AudioManager* audio_manager); |
+ static void SetAudioSystemForTesting(media::AudioSystem* audio_system); |
SpeechRecognizerImpl(SpeechRecognitionEventListener* listener, |
+ media::AudioSystem* audio_system, |
int session_id, |
bool continuous, |
bool provisional_results, |
@@ -61,6 +63,7 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
enum FSMState { |
STATE_IDLE = 0, |
+ STATE_PREPARING, |
STATE_STARTING, |
STATE_ESTIMATING_ENVIRONMENT, |
STATE_WAITING_FOR_SPEECH, |
@@ -72,6 +75,7 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
enum FSMEvent { |
EVENT_ABORT = 0, |
+ EVENT_PREPARE, |
EVENT_START, |
EVENT_STOP_CAPTURE, |
EVENT_AUDIO_DATA, |
@@ -104,7 +108,11 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
// Process a new audio chunk in the audio pipeline (endpointer, vumeter, etc). |
void ProcessAudioPipeline(const AudioChunk& raw_audio); |
+ // Callback from AudioSystem. |
+ void OnDeviceInfo(const media::AudioParameters& params); |
+ |
// The methods below handle transitions of the recognizer FSM. |
+ FSMState PrepareRecognition(const FSMEventArgs&); |
FSMState StartRecording(const FSMEventArgs& event_args); |
FSMState StartRecognitionEngine(const FSMEventArgs& event_args); |
FSMState WaitEnvironmentEstimationCompletion(const FSMEventArgs& event_args); |
@@ -152,8 +160,10 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
void OnSpeechRecognitionEngineError( |
const SpeechRecognitionError& error) override; |
- static media::AudioManager* audio_manager_for_tests_; |
+ media::AudioSystem* GetAudioSystem(); |
+ static media::AudioSystem* audio_system_for_tests_; |
+ media::AudioSystem* audio_system_; |
std::unique_ptr<SpeechRecognitionEngine> recognition_engine_; |
Endpointer endpointer_; |
scoped_refptr<media::AudioInputController> audio_controller_; |
@@ -165,6 +175,7 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
bool end_of_utterance_; |
FSMState state_; |
std::string device_id_; |
+ media::AudioParameters device_params_; |
class OnDataConverter; |
@@ -172,6 +183,7 @@ class CONTENT_EXPORT SpeechRecognizerImpl |
// output format. |
std::unique_ptr<SpeechRecognizerImpl::OnDataConverter> audio_converter_; |
+ base::WeakPtrFactory<SpeechRecognizerImpl> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(SpeechRecognizerImpl); |
}; |