Fix the bug of ignoring updated content info.
authorSung-jae Park <nicesj.park@samsung.com>
Wed, 1 May 2013 08:01:27 +0000 (17:01 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Wed, 1 May 2013 08:29:27 +0000 (17:29 +0900)
Even if the box tries to update its content info,
in case of script type box, the provider ignores it.

This patch will fix it.

Change-Id: Iff367b9affcc74d1282ae486163253192c0b54b1

include/instance.h
packaging/data-provider-master.spec
src/instance.c
src/script_handler.c
src/server.c

index 05339fb..a68dbcb 100644 (file)
@@ -141,8 +141,9 @@ extern int instance_activate(struct inst_info *inst);
 extern int instance_recover_state(struct inst_info *inst);
 extern int instance_need_slave(struct inst_info *inst);
 
-extern void instance_set_lb_info(struct inst_info *inst, int w, int h, double priority, const char *content, const char *title);
-extern void instance_set_pd_info(struct inst_info *inst, int w, int h);
+extern void instance_set_lb_info(struct inst_info *inst, double priority, const char *content, const char *title);
+extern void instance_set_lb_size(struct inst_info *inst, int w, int h);
+extern void instance_set_pd_size(struct inst_info *inst, int w, int h);
 
 extern int instance_set_pinup(struct inst_info *inst, int pinup);
 extern int instance_resize(struct inst_info *inst, int w, int h);
index f0e4515..b1f8314 100755 (executable)
@@ -1,6 +1,6 @@
 Name: data-provider-master
 Summary: Master service provider for liveboxes.
-Version: 0.22.2
+Version: 0.23.0
 Release: 1
 Group: HomeTF/Livebox
 License: Flora License
index 473636c..32d18cc 100644 (file)
@@ -686,7 +686,7 @@ static inline int fork_package(struct inst_info *inst, const char *pkgname)
        snprintf(inst->id, len, SCHEMA_FILE "%s%s_%d_%lf.png", IMAGE_PATH, package_name(info), client_pid(inst->client), inst->timestamp);
        inst->lb.auto_launch = package_auto_launch(info);
 
-       instance_set_pd_info(inst, package_pd_width(info), package_pd_height(info));
+       instance_set_pd_size(inst, package_pd_width(info), package_pd_height(info));
 
        inst->lb.timeout = package_timeout(info);
        inst->lb.period = package_period(info);
@@ -1153,7 +1153,8 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v
                 * just increase the loaded instance counter
                 * And then reset jobs.
                 */
-               instance_set_lb_info(inst, w, h, priority, content, title);
+               instance_set_lb_size(inst, w, h);
+               instance_set_lb_info(inst, priority, content, title);
 
                inst->state = INST_ACTIVATED;
 
@@ -1189,7 +1190,7 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v
 
                        if (package_pd_type(inst->info) == PD_TYPE_SCRIPT) {
                                if (inst->pd.width == 0 && inst->pd.height == 0)
-                                       instance_set_pd_info(inst, package_pd_width(inst->info), package_pd_height(inst->info));
+                                       instance_set_pd_size(inst, package_pd_width(inst->info), package_pd_height(inst->info));
 
                                inst->pd.canvas.script = script_handler_create(inst,
                                                                package_pd_path(inst->info),
@@ -1224,7 +1225,7 @@ out:
 HAPI int instance_create_pd_buffer(struct inst_info *inst)
 {
        if (inst->pd.width == 0 && inst->pd.height == 0)
-               instance_set_pd_info(inst, package_pd_width(inst->info), package_pd_height(inst->info));
+               instance_set_pd_size(inst, package_pd_width(inst->info), package_pd_height(inst->info));
 
        if (!inst->pd.canvas.buffer) {
                inst->pd.canvas.buffer = buffer_handler_create(inst, s_info.env_buf_type, inst->pd.width, inst->pd.height, sizeof(int));
@@ -1858,7 +1859,7 @@ HAPI int instance_active_update(struct inst_info *inst)
        return inst->active_update;
 }
 
-HAPI void instance_set_lb_info(struct inst_info *inst, int w, int h, double priority, const char *content, const char *title)
+HAPI void instance_set_lb_info(struct inst_info *inst, double priority, const char *content, const char *title)
 {
        char *_content = NULL;
        char *_title = NULL;
@@ -1887,7 +1888,10 @@ HAPI void instance_set_lb_info(struct inst_info *inst, int w, int h, double prio
 
        if (priority >= 0.0f && priority <= 1.0f)
                inst->lb.priority = priority;
+}
 
+HAPI void instance_set_lb_size(struct inst_info *inst, int w, int h)
+{
        if (inst->lb.width != w || inst->lb.height != h)
                instance_send_resized_event(inst, IS_LB, w, h, LB_STATUS_SUCCESS);
 
@@ -1895,7 +1899,7 @@ HAPI void instance_set_lb_info(struct inst_info *inst, int w, int h, double prio
        inst->lb.height = h;
 }
 
-HAPI void instance_set_pd_info(struct inst_info *inst, int w, int h)
+HAPI void instance_set_pd_size(struct inst_info *inst, int w, int h)
 {
        if (inst->pd.width != w || inst->pd.height != h)
                instance_send_resized_event(inst, IS_PD, w, h, LB_STATUS_SUCCESS);
index 50ec801..05d4b3a 100644 (file)
@@ -671,14 +671,12 @@ HAPI int script_handler_resize(struct script_info *info, int w, int h)
                        ErrPrint("Evas(nil) resize to %dx%d\n", w, h);
        }
 
-       if (info->w != w || info->h != h) {
-               if (instance_lb_script(info->inst) == info) {
-                       instance_set_lb_info(info->inst, w, h, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
-               } else if (instance_pd_script(info->inst) == info) {
-                       instance_set_pd_info(info->inst, w, h);
-               } else {
-                       ErrPrint("Script is not known\n");
-               }
+       if (instance_lb_script(info->inst) == info) {
+               instance_set_lb_size(info->inst, w, h);
+       } else if (instance_pd_script(info->inst) == info) {
+               instance_set_pd_size(info->inst, w, h);
+       } else {
+               ErrPrint("Script is not known\n");
        }
 
        info->w = w;
index 9755dd8..fea14c9 100644 (file)
@@ -6699,6 +6699,8 @@ static struct packet *slave_updated(pid_t pid, int handle, const struct packet *
        } else {
                char *filename;
 
+               instance_set_lb_info(inst, priority, content_info, title);
+
                switch (package_lb_type(instance_package(inst))) {
                case LB_TYPE_SCRIPT:
                        script_handler_resize(instance_lb_script(inst), w, h);
@@ -6718,7 +6720,7 @@ static struct packet *slave_updated(pid_t pid, int handle, const struct packet *
                         * \check
                         * text format (inst)
                         */
-                       instance_set_lb_info(inst, w, h, priority, content_info, title);
+                       instance_set_lb_size(inst, w, h);
                        instance_lb_updated_by_instance(inst);
                        break;
                }
@@ -6803,7 +6805,7 @@ static struct packet *slave_desc_updated(pid_t pid, int handle, const struct pac
                        }
                        break;
                case PD_TYPE_TEXT:
-                       instance_set_pd_info(inst, 0, 0);
+                       instance_set_pd_size(inst, 0, 0);
                case PD_TYPE_BUFFER:
                        instance_pd_updated(pkgname, id, descfile);
                        break;
@@ -6926,7 +6928,8 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
 
                        ret = buffer_handler_load(info);
                        if (ret == 0) {
-                               instance_set_lb_info(inst, w, h, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
+                               instance_set_lb_size(inst, w, h);
+                               instance_set_lb_info(inst, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
                                id = buffer_handler_id(info);
                                DbgPrint("Buffer handler ID: %s\n", id);
                        } else {
@@ -6960,7 +6963,7 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
 
                        ret = buffer_handler_load(info);
                        if (ret == 0) {
-                               instance_set_pd_info(inst, w, h);
+                               instance_set_pd_size(inst, w, h);
                                id = buffer_handler_id(info);
                                DbgPrint("Buffer handler ID: %s\n", id);
                        } else {
@@ -7057,7 +7060,8 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
                                 */
                                if (!ret) {
                                        id = buffer_handler_id(info);
-                                       instance_set_lb_info(inst, w, h, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
+                                       instance_set_lb_size(inst, w, h);
+                                       instance_set_lb_info(inst, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
                                }
                        }
                }
@@ -7074,7 +7078,7 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
                                 */
                                if (!ret) {
                                        id = buffer_handler_id(info);
-                                       instance_set_pd_info(inst, w, h);
+                                       instance_set_pd_size(inst, w, h);
                                }
                        }
                }