static const vector<string> __SHOW_NUMBER_KOKR = {"힌트 보여줘", "숫자 힌트 보여줘", "숫자 보여줘", "숫자"};
static const vector<string> __SHOW_LABEL_KOKR = {"힌트 메세지 보여줘", "텍스트 보여줘", "텍스트", "텍스트 힌트 보여줘"};
static const vector<string> __SHOW_GRID_KOKR = {"그리드", "그리드 모드", "그리드로 보여줘", "그리드 보여줘"};
+static const vector<string> __REFRESH_WINDOW_INFO = {"화면 갱신해줘", "화면 업데이트", "리프레시", "새로고침", "새로 고침"};
static const int __DEFAULT_DISPLAY_WIDTH = 1920;
static const int __DEFAULT_DISPLAY_HEIGHT = 1080;
return false;
}
+static bool __is_exist_in_candidates(const string &text, const vector<string> &candidates)
+{
+ for (auto &candidate : candidates) {
+ if (0 == text.compare(candidate)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+static void __refresh_screen_inform_event_free(void *data EINA_UNUSED, void *event)
+{
+ mmi_event_refresh_screen_inform *ev = (mmi_event_refresh_screen_inform *)event;
+ free(ev);
+}
+
+static void __invoke_event_for_refreshing_window()
+{
+ mmi_event_refresh_screen_inform *ev = (mmi_event_refresh_screen_inform *)calloc(1, sizeof(mmi_event_refresh_screen_inform));
+ if (ev == NULL) {
+ LOGE("mmi_event_refresh_screen_inform malloc failed");
+ return;
+ }
+
+ ev->seconds = 2.0;
+ ecore_event_add(MMI_EVENT_REFRESH_SCREEN_INFORM, ev, __refresh_screen_inform_event_free, nullptr);
+}
+
bool VoiceTouchEngine::handleVoiceInput(mmi_provider_event_voice *voiceEvent)
{
_I("[VoiceTouchEngine] Voice modality");
setFinalAsrResult(asrResult, timestamp, provider);
invokeOutputResultCallback(provider.jsonToString());
+ bool isRefreshNeed = __is_exist_in_candidates(asrResult, __REFRESH_WINDOW_INFO);
+ if (isRefreshNeed) {
+ _I("[VoiceTouchEngine] Request to refresh clickable object information.");
+ __invoke_event_for_refreshing_window();
+ return true;
+ }
+
bool isModeUpdated = checkVoiceTouchMode(asrResult);
if (isModeUpdated) {
_I("[VoiceTouchEngine] Voice touch mode is changed. (%d)", static_cast<int>(__currentMode));
}
}
-static bool __is_exist_in_candidates(const string &text, const vector<string> &candidates)
-{
- for (auto &candidate : candidates) {
- if (0 == text.compare(candidate)) {
- return true;
- }
- }
-
- return false;
-}
-
bool VoiceTouchEngine::checkVoiceTouchMode(const std::string &text)
{
_I("[VoiceTouchEngine] Input text(%s)", text.c_str());