Add new event path & change pixmap 24 to 32.
authorSung-jae Park <nicesj.park@samsung.com>
Sun, 31 Mar 2013 09:26:43 +0000 (09:26 +0000)
committerSung-jae Park <nicesj.park@samsung.com>
Sun, 31 Mar 2013 23:09:46 +0000 (23:09 +0000)
Accessibility event paths are added.

Fix the bug of size changed event handler.
Because of invalid fbfile, the size of a box is resetted.
I used instance id instead of fb id,.
So the box buffer info indicates invalid uri
This patch will fix it.

master will send a new fbid when it sending the size,changed event.
Then the viewer will get it and update the fbinfo using received fbid.

Change-Id: I29fc45cc5bd693eb796d4ea256c0b23afe39b192

include/livebox.h
packaging/liblivebox-viewer.spec
src/client.c
src/fb.c
src/livebox.c

index 8c31f58..fc859a5 100644 (file)
@@ -43,12 +43,12 @@ enum content_event_type {
        CONTENT_EVENT_MOUSE_SET         = 0x00000020, /*!< LB mouse set auto event for livebox */
        CONTENT_EVENT_MOUSE_UNSET       = 0x00000040, /*!< LB mouse unset auto 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_HIGHLIGHT  = 0x00000100, /*!< LB accessibility: Hightlight a object */
+       CONTENT_EVENT_ACCESS_HIGHLIGHT_NEXT     = 0x00000200, /*!< LB accessibility: Set highlight to next object */
+       CONTENT_EVENT_ACCESS_HIGHLIGHT_PREV     = 0x00000400, /*!< LB accessibility: Set highlight to prev object */
        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_ACCESS_VALUE_CHANGE       = 0x00001000, /*!< LB accessibility up */
+       CONTENT_EVENT_ACCESS_SCROLL     = 0x00002000, /*!< LB accessibility down */
 
        CONTENT_EVENT_KEY_DOWN          = 0x00100000, /*!< LB key press */
        CONTENT_EVENT_KEY_UP            = 0x00200000, /*!< LB key release */
@@ -75,19 +75,19 @@ enum content_event_type {
        PD_MOUSE_SET                    = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_SET,
        PD_MOUSE_UNSET                  = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_MOUSE_MASK | CONTENT_EVENT_MOUSE_UNSET,
 
-       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_HIGHLIGHT             = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_HIGHLIGHT,
+       LB_ACCESS_HIGHLIGHT_NEXT        = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_HIGHLIGHT_NEXT,
+       LB_ACCESS_HIGHLIGHT_PREV        = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_HIGHLIGHT_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,
+       LB_ACCESS_VALUE_CHANGE          = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_VALUE_CHANGE,
+       LB_ACCESS_SCROLL                = CONTENT_EVENT_LB_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_SCROLL,
 
-       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_HIGHLIGHT             = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_HIGHLIGHT,
+       PD_ACCESS_HIGHLIGHT_NEXT        = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_HIGHLIGHT_NEXT,
+       PD_ACCESS_HIGHLIGHT_PREV        = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_HIGHLIGHT_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,
+       PD_ACCESS_VALUE_CHANGE          = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_VALUE_CHANGE,
+       PD_ACCESS_SCROLL                = CONTENT_EVENT_PD_MASK | CONTENT_EVENT_ACCESS_MASK | CONTENT_EVENT_ACCESS_SCROLL,
 
        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,
index 994c068..e7b3954 100644 (file)
@@ -1,6 +1,6 @@
 Name: liblivebox-viewer
 Summary: Library for developing the application.
-Version: 0.10.3
+Version: 0.11.0
 Release: 1
 Group: HomeTF/Livebox
 License: Flora License
index fa12d6b..c565cd8 100644 (file)
@@ -262,9 +262,9 @@ static struct packet *master_lb_updated(pid_t pid, int handle, const struct pack
        lb_set_priority(handler, priority);
        lb_set_content(handler, content);
        lb_set_title(handler, title);
+       lb_set_size(handler, lb_w, lb_h);
 
        if (lb_text_lb(handler)) {
-               lb_set_size(handler, lb_w, lb_h);
                (void)parse_desc(handler, livebox_filename(handler), 0);
                /*!
                 * \note
@@ -273,13 +273,11 @@ static struct packet *master_lb_updated(pid_t pid, int handle, const struct pack
                 */
                goto out;
        } else if (lb_get_lb_fb(handler)) {
-               lb_set_size(handler, lb_w, lb_h);
                lb_set_lb_fb(handler, fbfile);
                ret = fb_sync(lb_get_lb_fb(handler));
                if (ret < 0)
                        ErrPrint("Failed to do sync FB (%s - %s) (%d)\n", pkgname, util_basename(util_uri_to_path(id)), ret);
        } else {
-               lb_set_size(handler, lb_w, lb_h);
                ret = 0;
        }
 
@@ -447,6 +445,7 @@ static struct packet *master_size_changed(pid_t pid, int handle, const struct pa
        struct livebox *handler;
        const char *pkgname;
        const char *id;
+       const char *fbfile;
        int status;
        int ret;
        int w;
@@ -458,13 +457,13 @@ static struct packet *master_size_changed(pid_t pid, int handle, const struct pa
                goto out;
        }
 
-       ret = packet_get(packet, "ssiiii", &pkgname, &id, &is_pd, &w, &h, &status);
-       if (ret != 6) {
+       ret = packet_get(packet, "sssiiii", &pkgname, &id, &fbfile, &is_pd, &w, &h, &status);
+       if (ret != 7) {
                ErrPrint("Invalid argument\n");
                goto out;
        }
 
-       DbgPrint("Size is changed: %dx%d (%s)\n", w, h, id);
+       DbgPrint("Size is changed: %dx%d (%s), fb: [%s]\n", w, h, id, fbfile);
 
        handler = lb_find_livebox(pkgname, id);
        if (!handler) {
@@ -502,8 +501,15 @@ static struct packet *master_size_changed(pid_t pid, int handle, const struct pa
                         * If there is a created LB FB, 
                         * Update it too.
                         */
-                       if (lb_get_lb_fb(handler))
-                               (void)lb_set_lb_fb(handler, id);
+                       if (lb_get_lb_fb(handler)) {
+                               lb_set_lb_fb(handler, fbfile);
+
+                               ret = fb_sync(lb_get_lb_fb(handler));
+                               if (ret < 0)
+                                       ErrPrint("Failed to do sync FB (%s - %s)\n", pkgname, util_basename(util_uri_to_path(id)));
+
+                               /* Just update the size info only. */
+                       }
 
                        /*!
                         * \NOTE
index d1fe2de..4aa5cfc 100644 (file)
--- a/src/fb.c
+++ b/src/fb.c
@@ -227,7 +227,7 @@ static inline __attribute__((always_inline)) int sync_for_pixmap(struct fb_info
         * Use the 24 bits Pixmap for Video player
         */
        xim = XShmCreateImage(s_info.disp, s_info.visual,
-                               24 /* (s_info.depth << 3) */, ZPixmap, NULL,
+                               (s_info.depth << 3), ZPixmap, NULL,
                                &si,
                                info->w, info->h);
        if (xim == NULL) {
index c88761c..b9303c3 100644 (file)
@@ -1104,7 +1104,7 @@ EAPI int livebox_content_event(struct livebox *handler, enum content_event_type
 {
        int w = 1;
        int h = 1;
-       char cmd[20] = { '\0', };
+       char cmd[32] = { '\0', };
        char *ptr = cmd;
 
        if (!handler) {
@@ -1179,24 +1179,27 @@ EAPI int livebox_content_event(struct livebox *handler, enum content_event_type
                *ptr++ = 'b';
        }
 
+       /*!
+        * Must be short than 29 bytes.
+        */
        switch ((type & ~CONTENT_EVENT_PD_MASK)) {
-       case CONTENT_EVENT_ACCESS_READ | CONTENT_EVENT_ACCESS_MASK:
-               strcpy(ptr, "_access_read");
+       case CONTENT_EVENT_ACCESS_HIGHLIGHT | CONTENT_EVENT_ACCESS_MASK:
+               strcpy(ptr, "_access_hl");
                break;
-       case CONTENT_EVENT_ACCESS_READ_PREV | CONTENT_EVENT_ACCESS_MASK:
-               strcpy(ptr, "_access_read_prev");
+       case CONTENT_EVENT_ACCESS_HIGHLIGHT_PREV | CONTENT_EVENT_ACCESS_MASK:
+               strcpy(ptr, "_access_hl_prev");
                break;
-       case CONTENT_EVENT_ACCESS_READ_NEXT | CONTENT_EVENT_ACCESS_MASK:
-               strcpy(ptr, "_access_read_next");
+       case CONTENT_EVENT_ACCESS_HIGHLIGHT_NEXT | CONTENT_EVENT_ACCESS_MASK:
+               strcpy(ptr, "_access_hl_next");
                break;
        case CONTENT_EVENT_ACCESS_ACTIVATE | CONTENT_EVENT_ACCESS_MASK:
                strcpy(ptr, "_access_activate");
                break;
-       case CONTENT_EVENT_ACCESS_UP | CONTENT_EVENT_ACCESS_MASK:
-               strcpy(ptr, "_access_up");
+       case CONTENT_EVENT_ACCESS_VALUE_CHANGE | CONTENT_EVENT_ACCESS_MASK:
+               strcpy(ptr, "_access_value_change");
                break;
-       case CONTENT_EVENT_ACCESS_DOWN | CONTENT_EVENT_ACCESS_MASK:
-               strcpy(ptr, "_access_down");
+       case CONTENT_EVENT_ACCESS_SCROLL | CONTENT_EVENT_ACCESS_MASK:
+               strcpy(ptr, "_access_scroll");
                break;
        case CONTENT_EVENT_MOUSE_ENTER | CONTENT_EVENT_MOUSE_MASK:
                strcpy(ptr, "_mouse_enter");