Eina_List *data_list;
};
-#define CLIENT_SEND_EVENT(instance, packet) ((instance)->client ? client_rpc_async_request((instance)->client, (packet)) : client_broadcast((instance), (packet)))
-
static Eina_Bool update_timer_cb(void *data);
+static int client_send_event(struct inst_info *instance, struct packet *packet)
+{
+ /*!
+ * \note
+ * If a instance has owner, send event to it first.
+ */
+ if (instance->client) {
+ client_rpc_async_request(instance->client, packet);
+ }
+
+ /*!
+ * And then broadcast events to all client (viewer)
+ */
+ return client_broadcast(instance, packet);
+}
+
static inline void timer_thaw(struct inst_info *inst)
{
double pending;
packet = packet_create_noack((const char *)&cmd, "ssii", pkgname, inst->id, status, active_mode);
if (packet) {
- CLIENT_SEND_EVENT(inst, packet);
+ client_send_event(inst, packet);
} else {
ErrPrint("Failed to send update mode event\n");
}
packet = packet_create_noack((const char *)&cmd, "ds", inst->timestamp, inst->id);
if (packet) {
- CLIENT_SEND_EVENT(inst, packet);
+ client_send_event(inst, packet);
} else {
ErrPrint("Failed to create update_id packet\n");
}
packet = packet_create_noack((const char *)&cmd, "sssiiii", pkgname, inst->id, id, is_gbar, w, h, status);
if (packet) {
- CLIENT_SEND_EVENT(inst, packet);
+ client_send_event(inst, packet);
} else {
ErrPrint("Failed to send size changed event\n");
}
client_browse_group_list(inst->cluster, inst->category, update_client_list, inst);
}
+ client_browse_category_list(package_category(inst->info), update_client_list, inst);
+
packet = packet_create_noack((const char *)&cmd, "dsssiiiisssssdiiiiidsi",
inst->timestamp,
package_name(inst->info), inst->id, inst->content,
}
inst->unicast_delete_event = 0;
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_unicast_deleted_event(struct inst_info *inst, struct client_node *client, int reason)
return DBOX_STATUS_ERROR_FAULT;
}
- ret = CLIENT_SEND_EVENT(inst, packet);
+ ret = client_send_event(inst, packet);
EINA_LIST_FOREACH_SAFE(inst->client_list, l, n, client) {
instance_del_client(inst, client);
inst->gbar.need_to_send_close_event = 0;
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
static inline void invoke_delete_callbacks(struct inst_info *inst)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_dbox_update_end(struct inst_info *inst)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_gbar_update_begin(struct inst_info *inst)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_gbar_update_end(struct inst_info *inst)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI void instance_extra_info_updated_by_instance(struct inst_info *inst)
return;
}
- (void)CLIENT_SEND_EVENT(inst, packet);
+ (void)client_send_event(inst, packet);
}
HAPI void instance_extra_updated_by_instance(struct inst_info *inst, int is_gbar, int idx, int x, int y, int w, int h)
return;
}
- (void)CLIENT_SEND_EVENT(inst, packet);
+ (void)client_send_event(inst, packet);
}
HAPI void instance_dbox_updated_by_instance(struct inst_info *inst, const char *safe_file, int x, int y, int w, int h)
return;
}
- (void)CLIENT_SEND_EVENT(inst, packet);
+ (void)client_send_event(inst, packet);
}
HAPI int instance_hold_scroll(struct inst_info *inst, int hold)
}
inst->scroll_locked = hold;
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI void instance_gbar_updated_by_instance(struct inst_info *inst, const char *descfile, int x, int y, int w, int h)
return;
}
- (void)CLIENT_SEND_EVENT(inst, packet);
+ (void)client_send_event(inst, packet);
}
HAPI void instance_gbar_updated(const char *pkgname, const char *id, const char *descfile, int x, int y, int w, int h)
result = packet_create_noack((const char *)&cmd, "iisss", ret, cbdata->inst->is_pinned_up,
package_name(cbdata->inst->info), cbdata->inst->id, cbdata->inst->content);
if (result) {
- (void)CLIENT_SEND_EVENT(cbdata->inst, result);
+ (void)client_send_event(cbdata->inst, result);
} else {
ErrPrint("Failed to build a packet for %s\n", package_name(cbdata->inst->info));
}
out:
result = packet_create_noack((const char *)&cmd, "idss", ret, cbdata->inst->dbox.period, package_name(cbdata->inst->info), cbdata->inst->id);
if (result) {
- (void)CLIENT_SEND_EVENT(cbdata->inst, result);
+ (void)client_send_event(cbdata->inst, result);
} else {
ErrPrint("Failed to build a packet for %s\n", package_name(cbdata->inst->info));
}
result = packet_create_noack((const char *)&cmd, "idss", 0, inst->dbox.period, package_name(inst->info), inst->id);
if (result) {
- (void)CLIENT_SEND_EVENT(inst, result);
+ (void)client_send_event(inst, result);
} else {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
}
if (!result) {
ErrPrint("Failed to build a packet %s\n", package_name(cbdata->inst->info));
} else {
- (void)CLIENT_SEND_EVENT(cbdata->inst, result);
+ (void)client_send_event(cbdata->inst, result);
}
instance_unref(cbdata->inst);
HAPI int instance_forward_packet(struct inst_info *inst, struct packet *packet)
{
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_send_key_status(struct inst_info *inst, int status)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_send_access_status(struct inst_info *inst, int status)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI void instance_slave_set_gbar_pos(struct inst_info *inst, double x, double y)
return DBOX_STATUS_ERROR_FAULT;
}
- ret = CLIENT_SEND_EVENT(inst, packet);
+ ret = client_send_event(inst, packet);
if (inst->gbar.need_to_send_close_event && inst->gbar.pended_update_cnt) {
DbgPrint("Apply pended desc(%d) - %s\n", inst->gbar.pended_update_cnt, inst->gbar.pended_update_desc);
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_client_gbar_extra_buffer_destroyed(struct inst_info *inst, int idx)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_client_dbox_extra_buffer_created(struct inst_info *inst, int idx)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_client_dbox_extra_buffer_destroyed(struct inst_info *inst, int idx)
return DBOX_STATUS_ERROR_FAULT;
}
- return CLIENT_SEND_EVENT(inst, packet);
+ return client_send_event(inst, packet);
}
HAPI int instance_add_client(struct inst_info *inst, struct client_node *client)