json_array_unref(mUiClckbleArr);
mUiClckbleArr = nullptr;
}
- if (mUiObjObj) {
- json_object_unref(mUiObjObj);
- mUiObjObj = nullptr;
+ if (mUiClckbleObjObj) {
+ json_object_unref(mUiClckbleObjObj);
+ mUiClckbleObjObj = nullptr;
}
+ if (mUiClckedObjObj) {
+ json_object_unref(mUiClckedObjObj);
+ mUiClckedObjObj = nullptr;
+ }
+ if (mRejectObj) {
+ json_object_unref(mRejectObj);
+ mRejectObj = nullptr;
+ }
+ if (mErrorObj) {
+ json_object_unref(mErrorObj);
+ mErrorObj = nullptr;
+ }
+
if (mOutputArr) {
json_array_unref(mOutputArr);
mOutputArr = nullptr;
json_object_set_int_member(mAsrFinalObj, MMI_KEY_TIMESTAMP, timeStamp);
}
-void JsonProvider::setUiObject(const char* resultType, const char* fgApp, const char* tooltipType, int numClickableObj, int timeStamp)
+void JsonProvider::setUiClickableObject(const char* resultType, const char* fgApp, const char* tooltipType, int numClickableObj, int timeStamp)
{
- if (!mUiObjObj)
- mUiObjObj = json_object_new();
+ if (!mUiClckbleObjObj)
+ mUiClckbleObjObj = json_object_new();
- json_object_set_object_member(mRootObj, MMI_KEY_UI_OBJECT, mUiObjObj);
- json_object_set_string_member(mUiObjObj, MMI_KEY_UI_OBJECT_RESULT_TYPE, resultType);
- json_object_set_string_member(mUiObjObj, MMI_KEY_FOREGROUND_APP, fgApp);
- json_object_set_string_member(mUiObjObj, MMI_KEY_TOOLTIP_TYPE, tooltipType);
- json_object_set_int_member(mUiObjObj, MMI_KEY_NUM_OF_CLICKABLE_OBJECTS, numClickableObj);
- json_object_set_int_member(mUiObjObj, MMI_KEY_TIMESTAMP, timeStamp);
+ json_object_set_object_member(mRootObj, MMI_KEY_UI_CLICKABLE_OBJECT, mUiClckbleObjObj);
+ json_object_set_string_member(mUiClckbleObjObj, MMI_KEY_UI_OBJECT_RESULT_TYPE, resultType);
+ json_object_set_string_member(mUiClckbleObjObj, MMI_KEY_FOREGROUND_APP, fgApp);
+ json_object_set_string_member(mUiClckbleObjObj, MMI_KEY_TOOLTIP_TYPE, tooltipType);
+ json_object_set_int_member(mUiClckbleObjObj, MMI_KEY_NUM_OF_CLICKABLE_OBJECTS, numClickableObj);
+ json_object_set_int_member(mUiClckbleObjObj, MMI_KEY_TIMESTAMP, timeStamp);
mNumClickableObj = numClickableObj;
{
if (!mUiClckbleArr) {
mUiClckbleArr = json_array_new();
- json_object_set_array_member(mUiObjObj, MMI_KEY_OUTPUT_EVENT, mUiClckbleArr);
+ json_object_set_array_member(mUiClckbleObjObj, MMI_KEY_INFO_OF_CLICKABLE_OBJECTS, mUiClckbleArr);
}
JsonObject* obj = json_object_new();
json_array_add_object_element(mUiClckbleArr, obj);
- json_object_set_int_member(obj, MMI_KEY_INDEX, idx);
- json_object_set_int_member(obj, MMI_KEY_X, x);
- json_object_set_int_member(obj, MMI_KEY_Y, y);
- json_object_set_int_member(obj, MMI_KEY_WIDTH, w);
- json_object_set_int_member(obj, MMI_KEY_HEIGHT, h);
- json_object_set_string_member(obj, MMI_KEY_TEXT, text);
+ 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);
+}
+
+void JsonProvider::setUiClickedObject(const char* fgApp, int timeStamp, int idx, int x, int y, int w, int h, const char* text)
+{
+ if (!mUiClckedObjObj)
+ mUiClckedObjObj = json_object_new();
+
+ json_object_set_object_member(mRootObj, MMI_KEY_UI_CLICKED_OBJECT, mUiClckedObjObj);
+ json_object_set_string_member(mUiClckedObjObj, MMI_KEY_UI_OBJECT_RESULT_TYPE, MMI_KEY_CLICK_OBJECT);
+ json_object_set_string_member(mUiClckedObjObj, MMI_KEY_FOREGROUND_APP, fgApp);
+ json_object_set_int_member(mUiClckedObjObj, MMI_KEY_TIMESTAMP, timeStamp);
+
+ JsonObject* obj = json_object_new();
+ json_object_set_object_member(mUiClckedObjObj, 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);
+}
+
+void JsonProvider::setRejectEvent(const char* reason, int timeStamp)
+{
+ if (!mRejectObj)
+ mRejectObj = json_object_new();
+
+ json_object_set_object_member(mRootObj, MMI_KEY_REJECT, mRejectObj);
+ json_object_set_string_member(mRejectObj, MMI_KEY_REASON, reason);
+ json_object_set_int_member(mRejectObj, MMI_KEY_TIMESTAMP, timeStamp);
+}
+
+void JsonProvider::setErrorEvent(const char* reason, int timeStamp)
+{
+ if (!mErrorObj)
+ mErrorObj = json_object_new();
+
+ json_object_set_object_member(mRootObj, MMI_KEY_ERROR, mErrorObj);
+ json_object_set_string_member(mErrorObj, MMI_KEY_REASON, reason);
+ json_object_set_int_member(mErrorObj, MMI_KEY_TIMESTAMP, timeStamp);
}
std::string JsonProvider::jsonToString(void)
#define MMI_KEY_ASR_PARTIAL_RESULT "asr-partial-result"
#define MMI_KEY_ASR_FINAL_RESULT "asr-final-result"
#define MMI_KEY_RESULT "result"
+#define MMI_KEY_REJECT "reject"
+#define MMI_KEY_ERROR "error"
+#define MMI_KEY_REASON "reason"
#define MMI_KEY_TIMESTAMP "timestamp"
-#define MMI_KEY_UI_OBJECT "ui-object"
+#define MMI_KEY_UI_CLICKABLE_OBJECT "ui-clickable-object"
+#define MMI_KEY_UI_CLICKED_OBJECT "ui-clicked-object"
#define MMI_KEY_UI_OBJECT_RESULT_TYPE "ui-object-result-type"
#define MMI_KEY_SHOW_TOOLTIPS "show-tooltips" // TODO: make as enum type
#define MMI_KEY_SHOW_GRIDS "show-grids" // TODO: make as enum type
-#define MMI_KEY_CLICKED_OBJECT "clicked-object" // TODO: make as enum type
+#define MMI_KEY_CLICK_OBJECT "click-object" // TODO: make as enum type
#define MMI_KEY_FOREGROUND_APP "foreground-app"
#define MMI_KEY_TOOLTIP_TYPE "tooltip-type"
-#define MMI_KEY_NUMBER "number"
-#define MMI_KEY_TEXT "text"
+#define MMI_KEY_TOOLTIP_TYPE_NUMBER "tooltip-number"
+#define MMI_KEY_TOOLTIP_TYPE_TEXT "tooltip-text"
#define MMI_KEY_NUM_OF_CLICKABLE_OBJECTS "num-of-clickable-objects"
#define MMI_KEY_INFO_OF_CLICKABLE_OBJECTS "info-of-clickable-objects"
-#define MMI_KEY_INDEX "idx"
-#define MMI_KEY_X "x"
-#define MMI_KEY_Y "y"
-#define MMI_KEY_WIDTH "w"
-#define MMI_KEY_HEIGHT "h"
+#define MMI_KEY_INFO_OF_CLICKED_OBJECTS "info-of-clicked-objects"
+#define MMI_KEY_UI_OBJECT_INDEX "idx"
+#define MMI_KEY_UI_OBJECT_X "x"
+#define MMI_KEY_UI_OBJECT_Y "y"
+#define MMI_KEY_UI_OBJECT_WIDTH "w"
+#define MMI_KEY_UI_OBJECT_HEIGHT "h"
+#define MMI_KEY_UI_OBJECT_TEXT "ui-object-text"
#define MMI_KEY_GRID_DEPTH "grid-depth"
+#define MMI_REASON_NO_MATCHED_COMMANDS "no-matched-commands"
+#define MMI_REASON_NO_CLICKABLE_OBJECTS "no-clickable-objects"
+
class JsonProvider {
public:
void setAsrPartialResult(const char* result, int timeStamp); // "asr-partial-result", object
void setAsrFinalResult(const char* result, int timeStamp); // "asr-final-result", object
- void setUiObject(const char* resultType, const char* fgApp, const char* tooltipType, int numClickableObj, int timeStamp); // "ui-object", object
+ void setUiClickableObject(const char* resultType, const char* fgApp, const char* tooltipType, int numClickableObj, int timeStamp); // "ui-clickable-object", object
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 setRejectEvent(const char* reason, int timeStamp);
+ void setErrorEvent(const char* reason, int timeStamp);
+
std::string jsonToString(void);
private:
JsonArray* mOutputArr = nullptr;
JsonObject* mAsrPartialObj = nullptr;
JsonObject* mAsrFinalObj = nullptr;
- JsonObject* mUiObjObj = nullptr;
+ JsonObject* mUiClckbleObjObj = nullptr;
JsonArray* mUiClckbleArr = nullptr;
+ JsonObject* mUiClckedObjObj = nullptr;
+ JsonObject* mRejectObj = nullptr;
+ JsonObject* mErrorObj = nullptr;
+
int mNumClickableObj;
};