From 64c4b5e50cdf4fee3af3f278e38d94cec79ada26 Mon Sep 17 00:00:00 2001 From: Sung-jae Park Date: Fri, 25 Jan 2013 11:02:50 +0000 Subject: [PATCH] Key down/up, accessibility events is added Update spec file Change-Id: Ice619a0493cdc5adb768d25db33c4b081fffd025 --- include/livebox.h | 69 +++++++++--- packaging/liblivebox-viewer.spec | 10 +- src/livebox.c | 232 ++++++++++++--------------------------- 3 files changed, 133 insertions(+), 178 deletions(-) diff --git a/include/livebox.h b/include/livebox.h index 683eaf3..55266e4 100644 --- a/include/livebox.h +++ b/include/livebox.h @@ -35,19 +35,62 @@ struct livebox; #define DEFAULT_PERIOD -1.0f enum content_event_type { - LB_MOUSE_DOWN = 0x0001, /*!< LB mouse down event for livebox */ - LB_MOUSE_UP = 0x0002, /*!< LB mouse up event for livebox */ - LB_MOUSE_MOVE = 0x0004, /*!< LB mouse move event for livebox */ - LB_MOUSE_ENTER = 0x0008, /*!< LB mouse enter event for livebox */ - LB_MOUSE_LEAVE = 0x0010, /*!< LB mouse leave event for livebox */ - - PD_MOUSE_DOWN = 0x0100, /*!< PD mouse down event for livebox */ - PD_MOUSE_UP = 0x0200, /*!< PD mouse up event for livebox */ - PD_MOUSE_MOVE = 0x0400, /*!< PD mouse move event for livebox */ - PD_MOUSE_ENTER = 0x0800, /*!< PD mouse enter event for livebox */ - PD_MOUSE_LEAVE = 0x1000, /*!< PD mouse leave event for livebox */ - - PD_EVENT_MAX = 0xFFFFFFFF, + CONTENT_EVENT_MOUSE_DOWN = 0x00000001, /*!< LB mouse down event for livebox */ + CONTENT_EVENT_MOUSE_UP = 0x00000002, /*!< LB mouse up event for livebox */ + CONTENT_EVENT_MOUSE_MOVE = 0x00000004, /*!< LB mouse move event for livebox */ + CONTENT_EVENT_MOUSE_ENTER = 0x00000008, /*!< LB mouse enter event for livebox */ + CONTENT_EVENT_MOUSE_LEAVE = 0x00000010, /*!< LB mouse leave event for livebox */ + + CONTENT_EVENT_ACCESS_READ = 0x00000100, /*!< LB accessibility read for livebox */ + CONTENT_EVENT_ACCESS_READ_NEXT = 0x00000200, /*!< LB accessibility read next for livebox */ + CONTENT_EVENT_ACCESS_READ_PREV = 0x00000400, /*!< LB accessibility read prev for livebox */ + CONTENT_EVENT_ACCESS_ACTIVATE = 0x00000800, /*!< LB accessibility activate */ + CONTENT_EVENT_ACCESS_UP = 0x00001000, /*!< LB accessibility up */ + CONTENT_EVENT_ACCESS_DOWN = 0x00002000, /*!< LB accessibility down */ + + CONTENT_EVENT_KEY_DOWN = 0x00100000, /*!< LB key press */ + CONTENT_EVENT_KEY_UP = 0x00200000, /*!< LB key release */ + + CONTENT_EVENT_KEY_MASK = 0x80000000, + CONTENT_EVENT_ACCESS_MASK = 0x40000000, + CONTENT_EVENT_MOUSE_MASK = 0x20000000, + CONTENT_EVENT_PD_MASK = 0x10000000, + CONTENT_EVENT_LB_MASK = 0x00000000, + + LB_MOUSE_DOWN = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_DOWN, + LB_MOUSE_UP = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_UP, + LB_MOUSE_MOVE = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_MOVE, + LB_MOUSE_ENTER = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_ENTER, + LB_MOUSE_LEAVE = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_LEAVE, + + PD_MOUSE_DOWN = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_DOWN, + PD_MOUSE_UP = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_UP, + PD_MOUSE_MOVE = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_MOVE, + PD_MOUSE_ENTER = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_ENTER, + PD_MOUSE_LEAVE = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_LEAVE, + + LB_ACCESS_READ = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_READ, + LB_ACCESS_READ_NEXT = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_READ_NEXT, + LB_ACCESS_READ_PREV = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_READ_PREV, + LB_ACCESS_ACTIVATE = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_ACTIVATE, + LB_ACCESS_UP = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_UP, + LB_ACCESS_DOWN = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_DOWN, + + PD_ACCESS_READ = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_READ, + PD_ACCESS_READ_NEXT = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_READ_NEXT, + PD_ACCESS_READ_PREV = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_READ_PREV, + PD_ACCESS_ACTIVATE = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_ACTIVATE, + PD_ACCESS_UP = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_UP, + PD_ACCESS_DOWN = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_DOWN, + + LB_KEY_DOWN = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_KEY_MASK | CONTENT_EVENT_KEY_DOWN, + LB_KEY_UP = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_KEY_MASK | CONTENT_EVENT_KEY_UP, + + PD_KEY_DOWN = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_KEY_MASK | CONTENT_EVENT_KEY_DOWN, + PD_KEY_UP = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_KEY_MASK | CONTENT_EVENT_KEY_UP, + + + CONTENT_EVENT_MAX = 0xFFFFFFFF, }; /* Exported to user app */ diff --git a/packaging/liblivebox-viewer.spec b/packaging/liblivebox-viewer.spec index 4f1a240..7c571d3 100644 --- a/packaging/liblivebox-viewer.spec +++ b/packaging/liblivebox-viewer.spec @@ -1,8 +1,8 @@ Name: liblivebox-viewer -Summary: Library for the development of a livebox viewer -Version: 0.8.12 +Summary: Library for developing the application. +Version: 0.8.13 Release: 1 -Group: main/app +Group: framework/livebox License: Flora License Source0: %{name}-%{version}.tar.gz BuildRequires: cmake, gettext-tools, coreutils @@ -18,10 +18,10 @@ BuildRequires: pkgconfig(db-util) BuildRequires: pkgconfig(livebox-service) %description -Livebox viewer development library +This library supports the API for creating a new instance of the livebox and managing its life-cycle. %package devel -Summary: Files for livebox viewer development. +Summary: Header and package configuration files for the livebox viewer development. Group: Development/Libraries Requires: %{name} = %{version}-%{release} diff --git a/src/livebox.c b/src/livebox.c index e3fc6cb..055778b 100644 --- a/src/livebox.c +++ b/src/livebox.c @@ -1044,7 +1044,8 @@ EAPI int livebox_content_event(struct livebox *handler, enum content_event_type { int w; int h; - const char *cmd; + char cmd[20] = { '\0', }; + char *ptr = cmd; if (!handler) { ErrPrint("Handler is NIL\n"); @@ -1056,185 +1057,96 @@ EAPI int livebox_content_event(struct livebox *handler, enum content_event_type return -EINVAL; } - switch (type) { - case LB_MOUSE_DOWN: - if (!handler->lb.mouse_event) { - ErrPrint("Box is not support the mouse event\n"); - return -EINVAL; - } - - if (!handler->lb.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - cmd = "lb_mouse_down"; - w = handler->lb.width; - h = handler->lb.height; - - handler->lb.x = x; - handler->lb.y = y; - break; - - case LB_MOUSE_UP: - if (!handler->lb.mouse_event) { - ErrPrint("Box is not support the mouse event\n"); - return -EINVAL; - } - - if (!handler->lb.data.fb) { - ErrPrint("Handler is not valid\n"); + if (type & CONTENT_EVENT_PD_MASK) { + if (!handler->is_pd_created) { + ErrPrint("PD is not created\n"); return -EINVAL; } - cmd = "lb_mouse_up"; - w = handler->lb.width; - h = handler->lb.height; - break; + if (type & CONTENT_EVENT_MOUSE_MASK) { + if (!handler->pd.data.fb) { + ErrPrint("Handler is not valid\n"); + return -EINVAL; + } - case LB_MOUSE_MOVE: - if (!handler->lb.mouse_event) { - ErrPrint("Box is not support the mouse event\n"); - return -EINVAL; + if (type & CONTENT_EVENT_MOUSE_MOVE) { + if (fabs(x - handler->pd.x) < MINIMUM_EVENT && fabs(y - handler->pd.y) < MINIMUM_EVENT) + return -EBUSY; + } } - if (!handler->lb.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; + w = handler->pd.width; + h = handler->pd.height; + handler->pd.x = x; + handler->pd.y = y; + *ptr++ = 'p'; + *ptr++ = 'd'; + } else { + if (type & CONTENT_EVENT_MOUSE_MASK) { + if (!handler->lb.mouse_event) { + ErrPrint("Box is not support the mouse event\n"); + return -EINVAL; + } + + if (!handler->lb.data.fb) { + ErrPrint("Handler is not valid\n"); + return -EINVAL; + } + + if (type & CONTENT_EVENT_MOUSE_MOVE) { + if (fabs(x - handler->lb.x) < MINIMUM_EVENT && fabs(y - handler->lb.y) < MINIMUM_EVENT) + return -EBUSY; + } } - if (fabs(x - handler->lb.x) < MINIMUM_EVENT && fabs(y - handler->lb.y) < MINIMUM_EVENT) - return -EBUSY; - - cmd = "lb_mouse_move"; w = handler->lb.width; h = handler->lb.height; - handler->lb.x = x; handler->lb.y = y; - break; - - case LB_MOUSE_ENTER: - if (!handler->lb.mouse_event) { - ErrPrint("Box is not support the mouse event\n"); - return -EINVAL; - } - - if (!handler->lb.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } + *ptr++ = 'l'; + *ptr++ = 'b'; + } - cmd = "lb_mouse_enter"; - w = handler->lb.width; - h = handler->lb.height; + switch ((type & ~CONTENT_EVENT_PD_MASK)) { + case CONTENT_EVENT_ACCESS_READ | CONTENT_EVENT_ACCESS_MASK: + strcpy(ptr, "_access_read"); break; - - case LB_MOUSE_LEAVE: - if (!handler->lb.mouse_event) { - ErrPrint("Box is not support the mouse event\n"); - return -EINVAL; - } - - if (!handler->lb.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - cmd = "lb_mouse_leave"; - w = handler->lb.width; - h = handler->lb.height; + case CONTENT_EVENT_ACCESS_READ_PREV | CONTENT_EVENT_ACCESS_MASK: + strcpy(ptr, "_access_read_prev"); break; - - case PD_MOUSE_ENTER: - if (!handler->is_pd_created) { - ErrPrint("PD is not created\n"); - return -EINVAL; - } - - if (!handler->pd.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - cmd = "pd_mouse_enter"; - w = handler->pd.width; - h = handler->pd.height; + case CONTENT_EVENT_ACCESS_READ_NEXT | CONTENT_EVENT_ACCESS_MASK: + strcpy(ptr, "_access_read_next"); break; - - case PD_MOUSE_LEAVE: - if (!handler->is_pd_created) { - ErrPrint("PD is not created\n"); - return -EINVAL; - } - - if (!handler->pd.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - cmd = "pd_mouse_leave"; - w = handler->pd.width; - h = handler->pd.height; + case CONTENT_EVENT_ACCESS_ACTIVATE | CONTENT_EVENT_ACCESS_MASK: + strcpy(ptr, "_access_activate"); break; - - case PD_MOUSE_DOWN: - if (!handler->is_pd_created) { - ErrPrint("PD is not created\n"); - return -EINVAL; - } - - if (!handler->pd.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - cmd = "pd_mouse_down"; - w = handler->pd.width; - h = handler->pd.height; - - handler->pd.x = x; - handler->pd.y = y; + case CONTENT_EVENT_ACCESS_UP | CONTENT_EVENT_ACCESS_MASK: + strcpy(ptr, "_access_up"); break; - - case PD_MOUSE_MOVE: - if (!handler->is_pd_created) { - ErrPrint("PD is not created\n"); - return -EINVAL; - } - - if (!handler->pd.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - if (fabs(x - handler->pd.x) < MINIMUM_EVENT && fabs(y - handler->pd.y) < MINIMUM_EVENT) - return -EBUSY; - - cmd = "pd_mouse_move"; - w = handler->pd.width; - h = handler->pd.height; - - handler->pd.x = x; - handler->pd.y = y; + case CONTENT_EVENT_ACCESS_DOWN | CONTENT_EVENT_ACCESS_MASK: + strcpy(ptr, "_access_down"); break; - - case PD_MOUSE_UP: - if (!handler->is_pd_created) { - ErrPrint("PD is not created\n"); - return -EINVAL; - } - - if (!handler->pd.data.fb) { - ErrPrint("Handler is not valid\n"); - return -EINVAL; - } - - cmd = "pd_mouse_up"; - w = handler->pd.width; - h = handler->pd.height; + case CONTENT_EVENT_MOUSE_ENTER | CONTENT_EVENT_MOUSE_MASK: + strcpy(ptr, "_mouse_enter"); + break; + case CONTENT_EVENT_MOUSE_LEAVE | CONTENT_EVENT_MOUSE_MASK: + strcpy(ptr, "_mouse_leave"); + break; + case CONTENT_EVENT_MOUSE_UP | CONTENT_EVENT_MOUSE_MASK: + strcpy(ptr, "_mouse_up"); + break; + case CONTENT_EVENT_MOUSE_DOWN | CONTENT_EVENT_MOUSE_MASK: + strcpy(ptr, "_mouse_down"); + break; + case CONTENT_EVENT_MOUSE_MOVE | CONTENT_EVENT_MOUSE_MASK: + strcpy(ptr, "_mouse_move"); + break; + case CONTENT_EVENT_KEY_DOWN | CONTENT_EVENT_KEY_MASK: + strcpy(ptr, "_key_down"); + break; + case CONTENT_EVENT_KEY_UP | CONTENT_EVENT_KEY_MASK: + strcpy(ptr, "_key_up"); break; - default: ErrPrint("Invalid event type\n"); return -EINVAL; -- 2.7.4