Add new accessibility event types
authorSung-jae Park <nicesj.park@samsung.com>
Tue, 12 Aug 2014 14:04:36 +0000 (23:04 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Tue, 12 Aug 2014 14:04:36 +0000 (23:04 +0900)
Change-Id: I055021e7ad65449735938d743e29fe0f0a74d138

include/livebox.h
src/livebox.c

index cb76c60..36d46d5 100644 (file)
@@ -133,6 +133,13 @@ enum access_event_type {
        ACCESS_EVENT_SCROLL_DOWN        = 0x00100000, /**< LB accessibility scroll down */
        ACCESS_EVENT_SCROLL_MOVE        = 0x00200000, /**< LB accessibility scroll move */
        ACCESS_EVENT_SCROLL_UP          = 0x00400000, /**< LB accessibility scroll up */
+       ACCESS_EVENT_VALUE_CHANGE       = 0x00800000, /**< LB accessibility value change */
+       ACCESS_EVENT_MOUSE              = 0x01000000, /**< Give mouse event to highlight object */
+       ACCESS_EVENT_BACK               = 0x02000000, /**< Go back to a previous view ex: pop naviframe item */
+       ACCESS_EVENT_OVER               = 0x04000000, /**< Mouse over an object */
+       ACCESS_EVENT_READ               = 0x08000000, /**< Highlight an object */
+       ACCESS_EVENT_ENABLE             = 0x00000001, /**< Enable highlight and read ability */
+       ACCESS_EVENT_DISABLE            = 0x00000002, /**< Disable highlight and read ability */
 
        LB_ACCESS_HIGHLIGHT             = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_HIGHLIGHT,        /**< Access event - Highlight an object in the livebox */
        LB_ACCESS_HIGHLIGHT_NEXT        = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_HIGHLIGHT_NEXT,   /**< Access event - Move highlight to the next object in a livebox */
@@ -144,6 +151,13 @@ enum access_event_type {
        LB_ACCESS_SCROLL_DOWN           = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_SCROLL_DOWN,      /**< Access event - scroll down */
        LB_ACCESS_SCROLL_MOVE           = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_SCROLL_MOVE,      /**< Access event - scroll move */
        LB_ACCESS_SCROLL_UP             = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_SCROLL_UP,        /**< Access event - scroll up */
+       LB_ACCESS_VALUE_CHANGE          = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_VALUE_CHANGE,     /**< Access event - value change */
+       LB_ACCESS_MOUSE                 = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_MOUSE,            /**< Access event - mouse */
+       LB_ACCESS_BACK                  = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_BACK,             /**< Access event - back */
+       LB_ACCESS_OVER                  = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_OVER,             /**< Access event - over */
+       LB_ACCESS_READ                  = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_READ,             /**< Access event - read */
+       LB_ACCESS_ENABLE                = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_ENABLE,           /**< Access event - enable */
+       LB_ACCESS_DISABLE               = ACCESS_EVENT_LB_MASK | ACCESS_EVENT_DISABLE,          /**< Access event - disable */
 
        PD_ACCESS_HIGHLIGHT             = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_HIGHLIGHT,        /**< Access event - Highlight an object in the PD */
        PD_ACCESS_HIGHLIGHT_NEXT        = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_HIGHLIGHT_NEXT,   /**< Access event - Move highlight to the next object in a PD */
@@ -155,6 +169,13 @@ enum access_event_type {
        PD_ACCESS_SCROLL_DOWN           = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_SCROLL_DOWN,      /**< Access event - scroll down */
        PD_ACCESS_SCROLL_MOVE           = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_SCROLL_MOVE,      /**< Access event - scroll move */
        PD_ACCESS_SCROLL_UP             = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_SCROLL_UP         /**< Access event - scroll up */
+       PD_ACCESS_VALUE_CHANGE          = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_VALUE_CHANGE,     /**< Access event - value change */
+       PD_ACCESS_MOUSE                 = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_MOUSE,            /**< Access event - mouse */
+       PD_ACCESS_BACK                  = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_BACK,             /**< Access event - back */
+       PD_ACCESS_OVER                  = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_OVER,             /**< Access event - over */
+       PD_ACCESS_READ                  = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_READ,             /**< Access event - read */
+       PD_ACCESS_ENABLE                = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_ENABLE,           /**< Access event - enable */
+       PD_ACCESS_DISABLE               = ACCESS_EVENT_PD_MASK | ACCESS_EVENT_DISABLE           /**< Access event - disable */
 };
 
 /**
index 6dc47e7..7eb37cb 100644 (file)
 FILE *__file_log_fp;
 #endif
 
+#define ACCESS_TYPE_DOWN 0
+#define ACCESS_TYPE_MOVE 1
+#define ACCESS_TYPE_UP 2
+#define ACCESS_TYPE_CUR 0
+#define ACCESS_TYPE_NEXT 1
+#define ACCESS_TYPE_PREV 2
+#define ACCESS_TYPE_OFF 3
+
 static int default_launch_handler(struct livebox *handler, const char *appid, void *data);
 
 enum event_state {
@@ -931,14 +939,14 @@ errout:
        }
 }
 
-static int send_access_event(struct livebox *handler, const char *event, int x, int y)
+static int send_access_event(struct livebox *handler, const char *event, int x, int y, int type)
 {
        struct packet *packet;
        double timestamp;
 
        timestamp = util_timestamp();
 
-       packet = packet_create(event, "ssdii", handler->common->pkgname, handler->common->id, timestamp, x, y);
+       packet = packet_create(event, "ssdiii", handler->common->pkgname, handler->common->id, timestamp, x, y, type);
        if (!packet) {
                ErrPrint("Failed to build packet\n");
                return LB_STATUS_ERROR_FAULT;
@@ -2487,6 +2495,7 @@ EAPI int livebox_access_event(struct livebox *handler, enum access_event_type ty
        char cmd[32] = { '\0', };
        char *ptr = cmd;
        int ret;
+       int type = 0;
 
        if (!handler || handler->state != CREATE) {
                ErrPrint("Handler is invalid\n");
@@ -2530,33 +2539,65 @@ EAPI int livebox_access_event(struct livebox *handler, enum access_event_type ty
        switch (type & ~(ACCESS_EVENT_PD_MASK | ACCESS_EVENT_LB_MASK)) {
        case ACCESS_EVENT_HIGHLIGHT:
                strcpy(ptr, "_access_hl");
+               type = ACCESS_TYPE_CUR;
                break;
        case ACCESS_EVENT_HIGHLIGHT_NEXT:
-               strcpy(ptr, "_access_hl_next");
+               strcpy(ptr, "_access_hl");
+               type = ACCESS_TYPE_NEXT;
                break;
        case ACCESS_EVENT_HIGHLIGHT_PREV:
-               strcpy(ptr, "_access_hl_prev");
+               strcpy(ptr, "_access_hl");
+               type = ACCESS_TYPE_PREV;
+               break;
+       case ACCESS_EVENT_UNHIGHLIGHT:
+               strcpy(ptr, "_access_hl");
+               type = ACCESS_TYPE_OFF;
                break;
        case ACCESS_EVENT_ACTIVATE:
                strcpy(ptr, "_access_activate");
                break;
        case ACCESS_EVENT_ACTION_DOWN:
-               strcpy(ptr, "_access_action_down");
+               strcpy(ptr, "_access_action");
+               type = ACCESS_TYPE_DOWN;
                break;
        case ACCESS_EVENT_ACTION_UP:
-               strcpy(ptr, "_access_action_up");
-               break;
-       case ACCESS_EVENT_UNHIGHLIGHT:
-               strcpy(ptr, "_access_unhighlight");
+               strcpy(ptr, "_access_action");
+               type = ACCESS_TYPE_UP;
                break;
        case ACCESS_EVENT_SCROLL_DOWN:
-               strcpy(ptr, "_access_scroll_down");
+               strcpy(ptr, "_access_scroll");
+               type = ACCESS_TYPE_DOWN;
                break;
        case ACCESS_EVENT_SCROLL_MOVE:
-               strcpy(ptr, "_access_scroll_move");
+               strcpy(ptr, "_access_scroll");
+               type = ACCESS_TYPE_MOVE;
                break;
        case ACCESS_EVENT_SCROLL_UP:
-               strcpy(ptr, "_access_scroll_up");
+               strcpy(ptr, "_access_scroll");
+               type = ACCESS_TYPE_UP;
+               break;
+       case ACCESS_EVENT_VALUE_CHANGE:
+               strcpy(ptr, "_access_value_change");
+               break;
+       case ACCESS_EVENT_MOUSE:
+               strcpy(ptr, "_access_mouse");
+               break;
+       case ACCESS_EVENT_BACK:
+               strcpy(ptr, "_access_back");
+               break;
+       case ACCESS_EVENT_OVER:
+               strcpy(ptr, "_access_over");
+               break;
+       case ACCESS_EVENT_READ:
+               strcpy(ptr, "_access_read");
+               break;
+       case ACCESS_EVENT_ENABLE:
+               strcpy(ptr, "_access_enable");
+               type = 1;
+               break;
+       case ACCESS_EVENT_DISABLE:
+               strcpy(ptr, "_access_enable");
+               type = 0;
                break;
        default:
                return LB_STATUS_ERROR_INVALID;
@@ -2566,7 +2607,7 @@ EAPI int livebox_access_event(struct livebox *handler, enum access_event_type ty
                cb = default_access_event_cb;
        }
 
-       ret = send_access_event(handler, cmd, x * w, y * h);
+       ret = send_access_event(handler, cmd, x * w, y * h, type);
        if (ret == (int)LB_STATUS_SUCCESS) {
                handler->cbs.access_event.cb = cb;
                handler->cbs.access_event.data = data;