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;
* So the user can only get the resized value(result) from the first update event
* after this request.
*/
-
- if (cb)
+ if (ret == 0) {
+ handler->size_changed_cb = cb;
+ handler->size_cbdata = cbdata;
+ } else {
cb(handler, ret, cbdata);
+ }
}
static void text_signal_cb(struct livebox *handler, const struct packet *result, void *data)
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);
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));
}
{
int w;
int h;
- const char *cmd;
+ char cmd[20] = { '\0', };
+ char *ptr = cmd;
if (!handler) {
ErrPrint("Handler is NIL\n");
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;
return master_rpc_request_only(NULL, packet);
}
+EAPI int livebox_refresh(struct livebox *handler)
+{
+ struct packet *packet;
+
+ if (!handler) {
+ ErrPrint("Hnalder is NIL\n");
+ return -EINVAL;
+ }
+
+ if (handler->state != CREATE || !handler->id)
+ return -EINVAL;
+
+ packet = packet_create_noack("update", "ss", handler->pkgname, handler->id);
+ if (!packet) {
+ ErrPrint("Failed to create a packet\n");
+ return -EFAULT;
+ }
+
+ return master_rpc_request_only(handler, packet);
+}
+
EAPI int livebox_refresh_group(const char *cluster, const char *category)
{
struct packet *packet;