bool CWakeupManager::update_recognition_result(string appid, int result)
{
MWR_LOGD("[ENTER]");
+ if (WAKEUP_MANAGER_STATE_UTTERANCE == mWakeupManagerState) {
+ mAudioManager.set_recording_session(RECORDING_SESSION_WAKE_WORD);
+ }
mWakeupEngineManager.update_recognition_result(appid, result);
if (WAKEUP_MANAGER_STATE_PROCESSING == mWakeupManagerState ||
WAKEUP_MANAGER_STATE_UTTERANCE == mWakeupManagerState) {
void CWakeupManager::CPolicyEventObserver::on_wakeup(wakeup_event_info wakeup_info)
{
if (nullptr == mWakeupManager) return;
+
+ CAudioManager *audio_manager = mWakeupManager->get_audio_manager();
+ CWakeupEngineManager *engine_manager = mWakeupManager->get_engine_manager();
+ if (nullptr == audio_manager || nullptr == engine_manager) return;
+
mWakeupManager->stop_streaming_utterance_data();
mWakeupManager->stop_streaming_previous_utterance_data();
mWakeupManager->stop_streaming_follow_up_data();
mWakeupManager->change_manager_state(WAKEUP_MANAGER_STATE_UTTERANCE);
- CWakeupEngineManager *engine_manager = mWakeupManager->get_engine_manager();
- if (nullptr == engine_manager) return;
-
mWakeupManager->set_last_wakeup_event_info(wakeup_info);
engine_manager->set_selected_wakeup_info(wakeup_info);
vector<IWakeupEventObserver*> observers = mWakeupManager->get_wakeup_observers();
for (const auto& observer : observers) {
observer->on_wakeup(wakeup_info);
}
+
+ audio_manager->set_recording_session(RECORDING_SESSION_UTTERANCE);
}
bool CWakeupManager::CAudioEventObserver::on_recording_audio_data(long time, void* data, int len)