_I("[VoiceTouchEngine] Set clicked object information into output. timestamp(%d). item(%s)", timestamp, item.objectId.c_str());
provider.setOutputEvent(MMI_KEY_UI_CLICKED_OBJECT);
- provider.setUiClickedObject(__appId.c_str(), timestamp, item.index, item.coordX, item.coordY, item.width, item.height, item.label.c_str());
+ UiClickedObject object;
+ object.fgApp = __appId.c_str();
+ object.timeStamp = timestamp;
+ object.idx = item.index;
+ object.x = item.coordX;
+ object.y = item.coordY;
+ object.w = item.width;
+ object.h = item.height;
+ object.text = item.label.c_str();
+
+ switch (__currentMode)
+ {
+ case VOICE_TOUCH_MODE_GRID:
+ object.resultType = MMI_KEY_SHOW_GRIDS;
+ object.gridDepth = __currentGridInfo.currentStep + 1;
+ break;
+
+ case VOICE_TOUCH_MODE_TOOLTIP_NUMBER:
+ case VOICE_TOUCH_MODE_TOOLTIP_TEXT:
+ object.resultType = MMI_KEY_SHOW_TOOLTIPS;
+ object.gridDepth = 1;
+ break;
+
+ default:
+ _E("[VoiceTouchEngine] Invalid mode classfier. Update item as lable tooltip.");
+ object.resultType = MMI_KEY_SHOW_TOOLTIPS;
+ object.gridDepth = 1;
+ break;
+ }
+
+ provider.setUiClickedObject(object);
}
void VoiceTouchEngine::makeGridItemList(const grid_info_s &parentInfo, std::list<ClickableItem> &list)
json_object_set_string_member(obj, MMI_KEY_UI_OBJECT_TEXT, text);
}
-void JsonProvider::setUiClickedObject(const char* fgApp, int timeStamp, int idx, int x, int y, int w, int h, const char* text)
+void JsonProvider::setUiClickedObject(UiClickedObject &object)
{
if (!mUiClickedObj)
mUiClickedObj = json_object_new();
- json_object_set_object_member(mRootObj, MMI_KEY_UI_CLICKED_OBJECT, mUiClickedObj);
- json_object_set_string_member(mUiClickedObj, MMI_KEY_FOREGROUND_APP, fgApp);
- json_object_set_int_member(mUiClickedObj, MMI_KEY_TIMESTAMP, timeStamp);
-
- JsonObject* obj = json_object_new();
- json_object_set_object_member(mUiClickedObj, MMI_KEY_INFO_OF_CLICKED_OBJECTS, obj);
- json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_INDEX, idx);
- json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_X, x);
- json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_Y, y);
- json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_WIDTH, w);
- json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_HEIGHT, h);
- json_object_set_string_member(obj, MMI_KEY_UI_OBJECT_TEXT, text);
+ json_object_set_object_member(mRootObj, MMI_KEY_UI_CLICKED_OBJECT, mUiClickedObj);
+ json_object_set_string_member(mUiClickedObj, MMI_KEY_FOREGROUND_APP, object.fgApp);
+ json_object_set_int_member(mUiClickedObj, MMI_KEY_TIMESTAMP, object.timeStamp);
+
+ JsonObject* obj = json_object_new();
+ json_object_set_object_member(mUiClickedObj, MMI_KEY_INFO_OF_CLICKED_OBJECTS, obj);
+ json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_INDEX, object.idx);
+ json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_X, object.x);
+ json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_Y, object.y);
+ json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_WIDTH, object.w);
+ json_object_set_int_member(obj, MMI_KEY_UI_OBJECT_HEIGHT, object.h);
+ json_object_set_string_member(obj, MMI_KEY_UI_OBJECT_TEXT, object.text);
+ json_object_set_string_member(obj, MMI_KEY_UI_OBJECT_RESULT_TYPE, object.resultType);
+ json_object_set_int_member(obj, MMI_KEY_GRID_DEPTH, object.gridDepth);
}
void JsonProvider::setRejectEvent(const char* reason, int timeStamp)
#define MMI_REASON_NO_MATCHED_COMMANDS "noMatchedCommands"
#define MMI_REASON_NO_CLICKABLE_OBJECTS "noClickableObjects"
+struct UiClickedObject{
+ const char* fgApp;
+ int timeStamp;
+ int idx;
+ int x;
+ int y;
+ int w;
+ int h;
+ const char* text;
+ const char* resultType;
+ int gridDepth;
+};
+
class JsonProvider {
public:
void setGridDepth(int gridDepth);
void addInfoClickableObject(int idx, int x, int y, int w, int h, const char* text);
- void setUiClickedObject(const char* fgApp, int timeStamp, int idx, int x, int y, int w, int h, const char* text); // "ui-clicked-object", object
+ void setUiClickedObject(UiClickedObject &object); // "ui-clicked-object", object
void setRejectEvent(const char* reason, int timeStamp);
void setErrorEvent(const char* reason, int timeStamp);