Change output event json format 79/281579/1
authorsooyeon <sooyeon.kim@samsung.com>
Fri, 16 Sep 2022 03:36:21 +0000 (12:36 +0900)
committerTizen AI <ai.tzn.sec@samsung.com>
Tue, 20 Sep 2022 04:30:33 +0000 (13:30 +0900)
Change-Id: I4fd42d2c3fe89c2c9f42492ed6061f9546704910
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
src/mmimgr/iu/json_provider.cpp
src/mmimgr/iu/json_provider.h

index 22ee2f6..1ec0ffe 100644 (file)
@@ -44,10 +44,23 @@ JsonProvider::~JsonProvider()
         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;
@@ -88,17 +101,17 @@ void JsonProvider::setAsrFinalResult(const char* result, int timeStamp)
        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;
        
@@ -108,17 +121,57 @@ void JsonProvider::addInfoClickableObject(int idx, int x, int y, int w, int h, c
 {
     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)
index 32cd0bc..6734419 100644 (file)
@@ -15,25 +15,34 @@ using namespace std;
 #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:
@@ -46,9 +55,14 @@ 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:
@@ -57,8 +71,12 @@ 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;
 };