X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flivebox.c;h=6ca3adc025b0a521b863968b9bbabe60af856200;hb=e74ddc0aafa37e7e12ef4c3e9695ea438d4026d1;hp=641e3a84dfbfd36e397b503cb7b87f01659ed745;hpb=99fae6c259e2516f2dabc277831e9a51746cd084;p=platform%2Fframework%2Fweb%2Flivebox-viewer.git diff --git a/src/livebox.c b/src/livebox.c index 641e3a8..6ca3adc 100644 --- a/src/livebox.c +++ b/src/livebox.c @@ -110,6 +110,11 @@ static inline void default_pd_destroyed_cb(struct livebox *handler, int ret, voi DbgPrint("Default PD destroyed event handler: %d\n", ret); } +static inline void default_lb_size_changed_cb(struct livebox *handler, int ret, void *data) +{ + DbgPrint("Default LB size changed event handler: %d\n", ret); +} + static inline __attribute__((always_inline)) struct cb_info *create_cb_info(ret_cb_t cb, void *data) { struct cb_info *info; @@ -157,9 +162,14 @@ static void resize_cb(struct livebox *handler, const struct packet *result, void * So the user can only get the resized value(result) from the first update event * after this request. */ - - if (cb) + if (ret == 0) { + DbgPrint("Resize request is done, prepare the size changed event\n"); + handler->size_changed_cb = cb; + handler->size_cbdata = cbdata; + } else { + DbgPrint("Resize request is failed: %d\n", ret); cb(handler, ret, cbdata); + } } static void text_signal_cb(struct livebox *handler, const struct packet *result, void *data) @@ -589,11 +599,6 @@ EAPI struct livebox *livebox_add_with_size(const char *pkgname, const char *cont return NULL; } - if (livebox_service_is_enabled(pkgname) == 0) { - DbgPrint("Livebox [%s] is disabled package\n", pkgname); - return NULL; - } - if (type != LB_SIZE_TYPE_UNKNOWN) livebox_service_get_size(type, &width, &height); @@ -610,6 +615,13 @@ EAPI struct livebox *livebox_add_with_size(const char *pkgname, const char *cont return NULL; } + if (livebox_service_is_enabled(handler->pkgname) == 0) { + DbgPrint("Livebox [%s](%s) is disabled package\n", handler->pkgname, pkgname); + free(handler->pkgname); + free(handler); + return NULL; + } + if (content) { handler->content = strdup(content); if (!handler->content) { @@ -717,6 +729,9 @@ EAPI int livebox_set_period(struct livebox *handler, double period, ret_cb_t cb, return -EALREADY; } + if (handler->period_changed_cb) + DbgPrint("Already requested\n"); + packet = packet_create("set_period", "ssd", handler->pkgname, handler->id, period); if (!packet) { ErrPrint("Failed to build a packet %s\n", handler->pkgname); @@ -876,12 +891,18 @@ EAPI int livebox_resize(struct livebox *handler, int type, ret_cb_t cb, void *da return -EALREADY; } + if (handler->size_changed_cb) + DbgPrint("Already pended\n"); + packet = packet_create("resize", "ssii", handler->pkgname, handler->id, w, h); if (!packet) { ErrPrint("Failed to build param\n"); return -EFAULT; } + if (!cb) + cb = default_lb_size_changed_cb; + return master_rpc_async_request(handler, packet, 0, resize_cb, create_cb_info(cb, data)); } @@ -1276,6 +1297,9 @@ EAPI int livebox_set_group(struct livebox *handler, const char *cluster, const c return -EALREADY; } + if (handler->group_changed_cb) + DbgPrint("Already sent\n"); + packet = packet_create("change_group", "ssss", handler->pkgname, handler->id, cluster, category); if (!packet) { ErrPrint("Failed to build a param\n"); @@ -1789,6 +1813,9 @@ EAPI int livebox_set_pinup(struct livebox *handler, int flag, ret_cb_t cb, void return -EALREADY; } + if (handler->pinup_cb) + DbgPrint("Already sent\n"); + packet = packet_create("pinup_changed", "ssi", handler->pkgname, handler->id, flag); if (!packet) { ErrPrint("Failed to build a param\n"); @@ -2507,4 +2534,30 @@ int lb_send_delete(struct livebox *handler, ret_cb_t cb, void *data) return master_rpc_async_request(handler, packet, 0, del_ret_cb, create_cb_info(cb, data)); } +EAPI int livebox_client_paused(void) +{ + struct packet *packet; + + packet = packet_create_noack("client_paused", "d", util_timestamp()); + if (!packet) { + ErrPrint("Failed to create a pause packet\n"); + return -EFAULT; + } + + return master_rpc_request_only(NULL, packet); +} + +EAPI int livebox_client_resumed(void) +{ + struct packet *packet; + + packet = packet_create_noack("client_resumed", "d", util_timestamp()); + if (!packet) { + ErrPrint("Failed to create a resume packet\n"); + return -EFAULT; + } + + return master_rpc_request_only(NULL, packet); +} + /* End of a file */