#include "dependency_resolver.h"
#include <algorithm>
+
+#include <boost/optional.hpp>
+
namespace multiassistant
{
namespace wakeup
bool start_recording = false;
bool stop_recording = false;
+ boost::optional<ma_voice_key_status_e> next_voice_key_status;
if (MAS_PLUGIN_EVENT_VOICE_KEY_PRESSED == event) {
if (VOICE_KEY_SUPPORT_MODE_NONE != mCurrentVoiceKeySupportMode) {
start_recording = true;
}
- change_voice_key_status(MA_VOICE_KEY_STATUS_PRESSED);
+ next_voice_key_status = MA_VOICE_KEY_STATUS_PRESSED;
} else if (MAS_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH == event) {
if (VOICE_KEY_SUPPORT_MODE_PUSH_TO_TALK == mCurrentVoiceKeySupportMode ||
VOICE_KEY_SUPPORT_MODE_ALL == mCurrentVoiceKeySupportMode) {
stop_recording = true;
}
- change_voice_key_status(MA_VOICE_KEY_STATUS_RELEASED_AFTER_PUSH);
+ next_voice_key_status = MA_VOICE_KEY_STATUS_RELEASED_AFTER_PUSH;
} else if (MAS_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP == event) {
if (VOICE_KEY_SUPPORT_MODE_PUSH_TO_TALK == mCurrentVoiceKeySupportMode) {
stop_recording = true;
}
- change_voice_key_status(MA_VOICE_KEY_STATUS_RELEASED_AFTER_TAP);
+ next_voice_key_status = MA_VOICE_KEY_STATUS_RELEASED_AFTER_TAP;
}
if (start_recording) {
}
}
+ if (next_voice_key_status) {
+ change_voice_key_status(*next_voice_key_status);
+ }
+
MWR_LOGD("[END]");
return true;
}