summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjk7744.park <jk7744.park@samsung.com>2015-02-01 13:06:58 +0900
committerjk7744.park <jk7744.park@samsung.com>2015-02-01 13:06:58 +0900
commit5c0922653889209693ca3f6495c50e6cf900cc1e (patch)
tree54957d4196c4f2428de14b558054cf3f33117a29 /src
parent61a319403b0dd277ab47a2e08a1ce6a6e1cd9e0a (diff)
downloaddata-provider-master-tizen_2.3.tar.gz
data-provider-master-tizen_2.3.tar.bz2
data-provider-master-tizen_2.3.zip
Diffstat (limited to 'src')
-rw-r--r--src/abi.c18
-rw-r--r--src/badge_service.c28
-rw-r--r--src/buffer_handler.c650
-rw-r--r--src/buffer_handler_wayland.c116
-rw-r--r--src/client_life.c86
-rw-r--r--src/client_rpc.c26
-rw-r--r--src/conf.c953
-rw-r--r--src/critical_log.c27
-rw-r--r--src/dead_monitor.c1
-rw-r--r--src/event.c930
-rw-r--r--src/fault_manager.c38
-rw-r--r--src/file_service.c53
-rw-r--r--src/group.c92
-rw-r--r--src/instance.c1619
-rw-r--r--src/io.c137
-rw-r--r--src/liveinfo.c6
-rw-r--r--src/main.c109
-rw-r--r--src/notification_service.c243
-rw-r--r--src/package.c636
-rw-r--r--src/parser.c195
-rw-r--r--src/pkgmgr.c80
-rw-r--r--src/script_handler.c225
-rw-r--r--src/server.c5996
-rw-r--r--src/service_common.c16
-rw-r--r--src/setting.c114
-rw-r--r--src/shortcut_service.c20
-rw-r--r--src/slave_life.c594
-rw-r--r--src/slave_rpc.c99
-rw-r--r--src/util.c167
-rw-r--r--src/util_wayland.c8
-rw-r--r--src/util_x11.c18
-rw-r--r--src/utility_service.c52
-rw-r--r--src/xmonitor.c63
-rw-r--r--src/xmonitor_wayland.c28
34 files changed, 6953 insertions, 6490 deletions
diff --git a/src/abi.c b/src/abi.c
index edbfa21..dfc9251 100644
--- a/src/abi.c
+++ b/src/abi.c
@@ -20,7 +20,7 @@
#include <Eina.h>
#include <dlog.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include "util.h"
#include "debug.h"
@@ -46,14 +46,14 @@ HAPI int abi_add_entry(const char *abi, const char *pkgname)
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Failed to add a new entry for abi[%s - %s]\n", abi, pkgname);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->abi = strdup(abi);
if (!item->abi) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->pkgname = strdup(pkgname);
@@ -61,11 +61,11 @@ HAPI int abi_add_entry(const char *abi, const char *pkgname)
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item->abi);
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
s_abi.list = eina_list_append(s_abi.list, item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int abi_update_entry(const char *abi, const char *pkgname)
@@ -78,7 +78,7 @@ HAPI int abi_update_entry(const char *abi, const char *pkgname)
_pkgname = strdup(pkgname);
if (!_pkgname) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
EINA_LIST_FOREACH_SAFE(s_abi.list, l, n, item) {
@@ -90,7 +90,7 @@ HAPI int abi_update_entry(const char *abi, const char *pkgname)
}
DbgFree(_pkgname);
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int abi_del_entry(const char *abi)
@@ -105,11 +105,11 @@ HAPI int abi_del_entry(const char *abi)
DbgFree(item->abi);
DbgFree(item->pkgname);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI void abi_del_all(void)
diff --git a/src/badge_service.c b/src/badge_service.c
index 2b1dc0b..5502245 100644
--- a/src/badge_service.c
+++ b/src/badge_service.c
@@ -20,7 +20,7 @@
#include <dlog.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#else
#include "lite-errno.h"
#endif
@@ -127,7 +127,7 @@ static void _handler_insert_badge(struct tcb *tcb, struct packet *packet, void *
if (pkgname != NULL && writable_pkg != NULL && caller != NULL) {
ret = badge_db_insert(pkgname, writable_pkg, caller);
} else {
- ret = BADGE_ERROR_INVALID_DATA;
+ ret = BADGE_ERROR_INVALID_PARAMETER;
}
packet_reply = packet_create_reply(packet, "i", ret);
@@ -177,7 +177,7 @@ static void _handler_delete_badge(struct tcb *tcb, struct packet *packet, void *
ret = badge_db_delete(pkgname, caller);
}
} else {
- ret = BADGE_ERROR_INVALID_DATA;
+ ret = BADGE_ERROR_INVALID_PARAMETER;
}
packet_reply = packet_create_reply(packet, "i", ret);
@@ -224,7 +224,7 @@ static void _handler_set_badge_count(struct tcb *tcb, struct packet *packet, voi
if (pkgname != NULL && caller != NULL) {
ret = badge_db_set_count(pkgname, caller, count);
} else {
- ret = BADGE_ERROR_INVALID_DATA;
+ ret = BADGE_ERROR_INVALID_PARAMETER;
}
packet_reply = packet_create_reply(packet, "i", ret);
@@ -271,7 +271,7 @@ static void _handler_set_display_option(struct tcb *tcb, struct packet *packet,
if (pkgname != NULL && caller != NULL) {
ret = badge_db_set_display_option(pkgname, caller, is_display);
} else {
- ret = BADGE_ERROR_INVALID_DATA;
+ ret = BADGE_ERROR_INVALID_PARAMETER;
}
packet_reply = packet_create_reply(packet, "i", ret);
@@ -320,7 +320,7 @@ static void _handler_set_setting_property(struct tcb *tcb, struct packet *packet
if (pkgname != NULL && property != NULL && value != NULL) {
ret = badge_setting_db_set(pkgname, property, value);
} else {
- ret = BADGE_ERROR_INVALID_DATA;
+ ret = BADGE_ERROR_INVALID_PARAMETER;
}
packet_reply = packet_create_reply(packet, "ii", ret, ret);
@@ -374,7 +374,7 @@ static void _handler_get_setting_property(struct tcb *tcb, struct packet *packet
if (pkgname != NULL && property != NULL) {
ret = badge_setting_db_get(pkgname, property, &value);
} else {
- ret = BADGE_ERROR_INVALID_DATA;
+ ret = BADGE_ERROR_INVALID_PARAMETER;
}
packet_reply = packet_create_reply(packet, "is", ret, value);
@@ -547,13 +547,13 @@ HAPI int badge_service_init(void)
{
if (s_info.svc_ctx) {
ErrPrint("Already initialized\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
s_info.svc_ctx = service_common_create(BADGE_SOCKET, service_thread_main, NULL);
if (!s_info.svc_ctx) {
ErrPrint("Unable to activate service thread\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (smack_fsetlabel(service_common_fd(s_info.svc_ctx), BADGE_SMACK_LABEL, SMACK_LABEL_IPOUT) != 0) {
@@ -561,7 +561,7 @@ HAPI int badge_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
@@ -570,24 +570,24 @@ HAPI int badge_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
DbgPrint("Successfully initiated\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int badge_service_fini(void)
{
if (!s_info.svc_ctx) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
DbgPrint("Successfully finalized\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/buffer_handler.c b/src/buffer_handler.c
index c27eecf..416fea6 100644
--- a/src/buffer_handler.c
+++ b/src/buffer_handler.c
@@ -42,7 +42,10 @@
#include <dlog.h>
#include <packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_buffer.h>
+#include <dynamicbox_conf.h>
#include "debug.h"
#include "conf.h"
@@ -54,17 +57,6 @@
#include "buffer_handler.h"
#include "script_handler.h" // Reverse dependency. must has to be broken
-struct buffer {
- enum {
- CREATED = 0x00beef00,
- DESTROYED = 0x00dead00
- } state;
- enum buffer_type type;
- int refcnt;
- void *info;
- char data[];
-};
-
/*!
* \brief Allocate this in the buffer->data.
*/
@@ -88,10 +80,9 @@ struct buffer_info
{
void *buffer;
char *id;
- char *lock;
- int lock_fd;
+ dynamicbox_lock_info_t lock_info;
- enum buffer_type type;
+ enum dynamicbox_fb_type type;
int w;
int h;
@@ -116,127 +107,10 @@ static struct {
.pixmap_list = NULL,
};
-static int destroy_lock_file(struct buffer_info *info)
-{
- if (!info->inst) {
- return LB_STATUS_ERROR_INVALID;
- }
-
- if (!info->lock) {
- return LB_STATUS_ERROR_INVALID;
- }
-
- if (close(info->lock_fd) < 0) {
- ErrPrint("close: %s\n", strerror(errno));
- }
- info->lock_fd = -1;
-
- if (unlink(info->lock) < 0) {
- ErrPrint("unlink: %s\n", strerror(errno));
- }
-
- DbgFree(info->lock);
- info->lock = NULL;
- return LB_STATUS_SUCCESS;
-}
-
-static int create_lock_file(struct buffer_info *info)
-{
- const char *id;
- int len;
- char *file;
- char target[3] = "pd";
-
- if (!info->inst) {
- return LB_STATUS_ERROR_INVALID;
- }
-
- id = instance_id(info->inst);
- if (!id) {
- return LB_STATUS_ERROR_INVALID;
- }
-
- len = strlen(id);
- file = malloc(len + 20);
- if (!file) {
- ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
- }
-
- if (script_handler_buffer_info(instance_pd_script(info->inst)) != info && instance_pd_buffer(info->inst) != info) {
- target[0] = 'l';
- target[1] = 'b';
- /* target[2] = '\0'; // We already have this ;) */
- }
-
- snprintf(file, len + 20, "%s.%s.lck", util_uri_to_path(id), target);
- info->lock_fd = open(file, O_WRONLY|O_CREAT, 0644);
- if (info->lock_fd < 0) {
- ErrPrint("open: %s\n", strerror(errno));
- DbgFree(file);
- return LB_STATUS_ERROR_IO;
- }
-
- info->lock = file;
- return LB_STATUS_SUCCESS;
-}
-
-static int do_buffer_lock(struct buffer_info *buffer)
-{
- struct flock flock;
- int ret;
-
- if (buffer->lock_fd < 0) {
- return LB_STATUS_SUCCESS;
- }
-
- flock.l_type = F_WRLCK;
- flock.l_whence = SEEK_SET;
- flock.l_start = 0;
- flock.l_len = 0;
- flock.l_pid = getpid();
-
- do {
- ret = fcntl(buffer->lock_fd, F_SETLKW, &flock);
- if (ret < 0) {
- ret = errno;
- ErrPrint("fcntl: %s\n", strerror(errno));
- }
- } while (ret == EINTR);
-
- return LB_STATUS_SUCCESS;
-}
-
-static int do_buffer_unlock(struct buffer_info *buffer)
-{
- struct flock flock;
- int ret;
-
- if (buffer->lock_fd < 0) {
- return LB_STATUS_SUCCESS;
- }
-
- flock.l_type = F_UNLCK;
- flock.l_whence = SEEK_SET;
- flock.l_start = 0;
- flock.l_len = 0;
- flock.l_pid = getpid();
-
- do {
- ret = fcntl(buffer->lock_fd, F_SETLKW, &flock);
- if (ret < 0) {
- ret = errno;
- ErrPrint("fcntl: %s\n", strerror(errno));
- }
- } while (ret == EINTR);
-
- return LB_STATUS_SUCCESS;
-}
-
-static inline struct buffer *create_pixmap(struct buffer_info *info)
+static inline dynamicbox_fb_t create_pixmap(struct buffer_info *info)
{
struct gem_data *gem;
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
Display *disp;
Window parent;
XGCValues gcv;
@@ -257,9 +131,9 @@ static inline struct buffer *create_pixmap(struct buffer_info *info)
gem = (struct gem_data *)buffer->data;
- buffer->type = BUFFER_TYPE_PIXMAP;
+ buffer->type = DBOX_FB_TYPE_PIXMAP;
buffer->refcnt = 1;
- buffer->state = CREATED;
+ buffer->state = DBOX_FB_STATE_CREATED;
gem->attachments[0] = DRI2BufferFrontLeft;
gem->count = 1;
@@ -297,7 +171,7 @@ static inline struct buffer *create_pixmap(struct buffer_info *info)
return buffer;
}
-static inline int create_gem(struct buffer *buffer)
+static inline int create_gem(dynamicbox_fb_t buffer)
{
struct gem_data *gem;
Display *disp;
@@ -305,7 +179,7 @@ static inline int create_gem(struct buffer *buffer)
disp = ecore_x_display_get();
if (!disp) {
ErrPrint("Failed to get display\n");
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
gem = (struct gem_data *)buffer->data;
@@ -314,21 +188,21 @@ static inline int create_gem(struct buffer *buffer)
gem->data = calloc(1, gem->w * gem->h * gem->depth);
if (!gem->data) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
ErrPrint("DRI2(gem) is not supported - Fallback to the S/W Backend\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
DRI2CreateDrawable(disp, gem->pixmap);
gem->dri2_buffer = DRI2GetBuffers(disp, gem->pixmap,
- &gem->w, &gem->h, gem->attachments, gem->count, &gem->buf_count);
+ &gem->w, &gem->h, gem->attachments, gem->count, &gem->buf_count);
if (!gem->dri2_buffer || !gem->dri2_buffer->name) {
ErrPrint("Failed to get a gem buffer\n");
DRI2DestroyDrawable(disp, gem->pixmap);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/*!
* \How can I destroy this?
@@ -337,24 +211,24 @@ static inline int create_gem(struct buffer *buffer)
if (!gem->pixmap_bo) {
ErrPrint("Failed to import BO\n");
DRI2DestroyDrawable(disp, gem->pixmap);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- if (gem->dri2_buffer->pitch != gem->w * gem->depth) {
+ if (DYNAMICBOX_CONF_AUTO_ALIGN && gem->dri2_buffer->pitch != gem->w * gem->depth) {
gem->compensate_data = calloc(1, gem->w * gem->h * gem->depth);
if (!gem->compensate_data) {
ErrPrint("Failed to allocate heap\n");
}
}
- DbgPrint("dri2_buffer: %p, name: %p, %dx%d, pitch: %d, buf_count: %d, depth: %d, compensate: %p\n",
- gem->dri2_buffer, gem->dri2_buffer->name, gem->w, gem->h,
- gem->dri2_buffer->pitch, gem->buf_count, gem->depth, gem->compensate_data);
+ DbgPrint("dri2_buffer: %p, name: %p, %dx%d, pitch: %d, buf_count: %d, depth: %d, compensate: %p (%d)\n",
+ gem->dri2_buffer, gem->dri2_buffer->name, gem->w, gem->h,
+ gem->dri2_buffer->pitch, gem->buf_count, gem->depth, gem->compensate_data, DYNAMICBOX_CONF_AUTO_ALIGN);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-static inline void *acquire_gem(struct buffer *buffer)
+static inline void *acquire_gem(dynamicbox_fb_t buffer)
{
struct gem_data *gem;
@@ -394,7 +268,7 @@ static inline void *acquire_gem(struct buffer *buffer)
return gem->compensate_data ? gem->compensate_data : gem->data;
}
-static inline void release_gem(struct buffer *buffer)
+static inline void release_gem(dynamicbox_fb_t buffer)
{
struct gem_data *gem;
@@ -453,7 +327,7 @@ static inline void release_gem(struct buffer *buffer)
}
}
-static inline int destroy_pixmap(struct buffer *buffer)
+static inline int destroy_pixmap(dynamicbox_fb_t buffer)
{
struct gem_data *gem;
@@ -464,24 +338,24 @@ static inline int destroy_pixmap(struct buffer *buffer)
disp = ecore_x_display_get();
if (!disp) {
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
DbgPrint("pixmap %lu\n", gem->pixmap);
XFreePixmap(disp, gem->pixmap);
}
- buffer->state = DESTROYED;
+ buffer->state = DBOX_FB_STATE_DESTROYED;
DbgFree(buffer);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-static inline int destroy_gem(struct buffer *buffer)
+static inline int destroy_gem(dynamicbox_fb_t buffer)
{
struct gem_data *gem;
if (!buffer) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
/*!
@@ -489,7 +363,7 @@ static inline int destroy_gem(struct buffer *buffer)
*/
gem = (struct gem_data *)buffer->data;
if (!gem) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (s_info.fd >= 0) {
@@ -512,44 +386,44 @@ static inline int destroy_gem(struct buffer *buffer)
gem->data = NULL;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int load_file_buffer(struct buffer_info *info)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
double timestamp;
int size;
char *new_id;
int len;
- len = strlen(IMAGE_PATH) + 40;
+ len = strlen(DYNAMICBOX_CONF_IMAGE_PATH) + 40;
new_id = malloc(len);
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
timestamp = util_timestamp();
- snprintf(new_id, len, SCHEMA_FILE "%s%lf", IMAGE_PATH, timestamp);
+ snprintf(new_id, len, SCHEMA_FILE "%s%lf", DYNAMICBOX_CONF_IMAGE_PATH, timestamp);
size = sizeof(*buffer) + info->w * info->h * info->pixel_size;
if (!size) {
ErrPrint("Canvas buffer size is ZERO\n");
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
buffer = calloc(1, size);
if (!buffer) {
ErrPrint("Failed to allocate buffer\n");
DbgFree(new_id);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- buffer->type = BUFFER_TYPE_FILE;
+ buffer->type = DBOX_FB_TYPE_FILE;
buffer->refcnt = 0;
- buffer->state = CREATED;
+ buffer->state = DBOX_FB_STATE_CREATED;
buffer->info = info;
DbgFree(info->id);
@@ -558,27 +432,27 @@ static inline int load_file_buffer(struct buffer_info *info)
info->is_loaded = 1;
DbgPrint("FILE type %d created\n", size);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int load_shm_buffer(struct buffer_info *info)
{
int id;
int size;
- struct buffer *buffer; /* Just for getting a size */
+ dynamicbox_fb_t buffer; /* Just for getting a size */
char *new_id;
int len;
size = info->w * info->h * info->pixel_size;
if (!size) {
ErrPrint("Invalid buffer size\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
id = shmget(IPC_PRIVATE, size + sizeof(*buffer), IPC_CREAT | 0666);
if (id < 0) {
ErrPrint("shmget: %s\n", strerror(errno));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
buffer = shmat(id, NULL, 0);
@@ -589,12 +463,12 @@ static inline int load_shm_buffer(struct buffer_info *info)
ErrPrint("%s shmctl: %s\n", info->id, strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- buffer->type = BUFFER_TYPE_SHM;
+ buffer->type = DBOX_FB_TYPE_SHM;
buffer->refcnt = id;
- buffer->state = CREATED; /*!< Needless */
+ buffer->state = DBOX_FB_STATE_CREATED; /*!< Needless */
buffer->info = (void *)size; /*!< Use this field to indicates the size of SHM */
len = strlen(SCHEMA_SHM) + 30; /* strlen("shm://") + 30 */
@@ -610,7 +484,7 @@ static inline int load_shm_buffer(struct buffer_info *info)
ErrPrint("shmctl: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
snprintf(new_id, len, SCHEMA_SHM "%d", id);
@@ -619,12 +493,12 @@ static inline int load_shm_buffer(struct buffer_info *info)
info->id = new_id;
info->buffer = buffer;
info->is_loaded = 1;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int load_pixmap_buffer(struct buffer_info *info)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
struct gem_data *gem;
char *new_id;
int len;
@@ -645,7 +519,7 @@ static inline int load_pixmap_buffer(struct buffer_info *info)
if (!buffer) {
DbgPrint("Failed to make a reference of a pixmap\n");
info->is_loaded = 0;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
len = strlen(SCHEMA_PIXMAP) + 30; /* strlen("pixmap://") + 30 */
@@ -654,7 +528,7 @@ static inline int load_pixmap_buffer(struct buffer_info *info)
ErrPrint("Heap: %s\n", strerror(errno));
info->is_loaded = 0;
buffer_handler_pixmap_unref(buffer);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgFree(info->id);
@@ -664,38 +538,47 @@ static inline int load_pixmap_buffer(struct buffer_info *info)
snprintf(info->id, len, SCHEMA_PIXMAP "%d:%d", (int)gem->pixmap, info->pixel_size);
DbgPrint("Loaded pixmap(info->id): %s\n", info->id);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_load(struct buffer_info *info)
{
int ret;
+ dynamicbox_target_type_e type = DBOX_TYPE_GBAR;
if (!info) {
ErrPrint("buffer handler is nil\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (info->is_loaded) {
DbgPrint("Buffer is already loaded\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
switch (info->type) {
- case BUFFER_TYPE_FILE:
+ case DBOX_FB_TYPE_FILE:
ret = load_file_buffer(info);
- (void)create_lock_file(info);
+
+ if (script_handler_buffer_info(instance_gbar_script(info->inst)) != info && instance_gbar_buffer(info->inst) != info) {
+ type = DBOX_TYPE_DBOX;
+ }
+ info->lock_info = dynamicbox_service_create_lock(instance_id(info->inst), type, DBOX_LOCK_WRITE);
break;
- case BUFFER_TYPE_SHM:
+ case DBOX_FB_TYPE_SHM:
ret = load_shm_buffer(info);
- (void)create_lock_file(info);
+
+ if (script_handler_buffer_info(instance_gbar_script(info->inst)) != info && instance_gbar_buffer(info->inst) != info) {
+ type = DBOX_TYPE_DBOX;
+ }
+ info->lock_info = dynamicbox_service_create_lock(instance_id(info->inst), type, DBOX_LOCK_WRITE);
break;
- case BUFFER_TYPE_PIXMAP:
+ case DBOX_FB_TYPE_PIXMAP:
ret = load_pixmap_buffer(info);
break;
default:
ErrPrint("Invalid buffer\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
@@ -710,7 +593,7 @@ static inline int unload_file_buffer(struct buffer_info *info)
new_id = strdup(SCHEMA_FILE "/tmp/.live.undefined");
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgFree(info->buffer);
@@ -723,7 +606,7 @@ static inline int unload_file_buffer(struct buffer_info *info)
DbgFree(info->id);
info->id = new_id;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int unload_shm_buffer(struct buffer_info *info)
@@ -734,19 +617,19 @@ static inline int unload_shm_buffer(struct buffer_info *info)
new_id = strdup(SCHEMA_SHM "-1");
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
if (sscanf(info->id, SCHEMA_SHM "%d", &id) != 1) {
ErrPrint("%s Invalid ID\n", info->id);
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (id < 0) {
ErrPrint("(%s) Invalid id: %d\n", info->id, id);
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (shmdt(info->buffer) < 0) {
@@ -761,7 +644,7 @@ static inline int unload_shm_buffer(struct buffer_info *info)
DbgFree(info->id);
info->id = new_id;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int unload_pixmap_buffer(struct buffer_info *info)
@@ -773,19 +656,19 @@ static inline int unload_pixmap_buffer(struct buffer_info *info)
new_id = strdup(SCHEMA_PIXMAP "0:0");
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
if (sscanf(info->id, SCHEMA_PIXMAP "%d:%d", &id, &pixels) != 2) {
ErrPrint("Invalid ID (%s)\n", info->id);
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (id == 0) {
ErrPrint("(%s) Invalid id: %d\n", info->id, id);
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
/*!
@@ -802,7 +685,7 @@ static inline int unload_pixmap_buffer(struct buffer_info *info)
DbgFree(info->id);
info->id = new_id;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_unload(struct buffer_info *info)
@@ -811,29 +694,31 @@ EAPI int buffer_handler_unload(struct buffer_info *info)
if (!info) {
ErrPrint("buffer handler is NIL\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!info->is_loaded) {
ErrPrint("Buffer is not loaded\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (info->type) {
- case BUFFER_TYPE_FILE:
- (void)destroy_lock_file(info);
+ case DBOX_FB_TYPE_FILE:
+ dynamicbox_service_destroy_lock(info->lock_info);
+ info->lock_info = NULL;
ret = unload_file_buffer(info);
break;
- case BUFFER_TYPE_SHM:
- (void)destroy_lock_file(info);
+ case DBOX_FB_TYPE_SHM:
+ dynamicbox_service_destroy_lock(info->lock_info);
+ info->lock_info = NULL;
ret = unload_shm_buffer(info);
break;
- case BUFFER_TYPE_PIXMAP:
+ case DBOX_FB_TYPE_PIXMAP:
ret = unload_pixmap_buffer(info);
break;
default:
ErrPrint("Invalid buffer\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
@@ -849,14 +734,14 @@ EAPI const char *buffer_handler_id(const struct buffer_info *info)
return info ? info->id : "";
}
-EAPI enum buffer_type buffer_handler_type(const struct buffer_info *info)
+EAPI enum dynamicbox_fb_type buffer_handler_type(const struct buffer_info *info)
{
- return info ? info->type : BUFFER_TYPE_ERROR;
+ return info ? info->type : DBOX_FB_TYPE_ERROR;
}
EAPI void *buffer_handler_fb(struct buffer_info *info)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
if (!info) {
return NULL;
@@ -864,7 +749,7 @@ EAPI void *buffer_handler_fb(struct buffer_info *info)
buffer = info->buffer;
- if (info->type == BUFFER_TYPE_PIXMAP) {
+ if (info->type == DBOX_FB_TYPE_PIXMAP) {
void *canvas;
int ret;
@@ -885,7 +770,7 @@ EAPI void *buffer_handler_fb(struct buffer_info *info)
EAPI int buffer_handler_pixmap(const struct buffer_info *info)
{
- struct buffer *buf;
+ dynamicbox_fb_t buf;
struct gem_data *gem;
if (!info) {
@@ -893,12 +778,12 @@ EAPI int buffer_handler_pixmap(const struct buffer_info *info)
return 0;
}
- if (info->type != BUFFER_TYPE_PIXMAP) {
+ if (info->type != DBOX_FB_TYPE_PIXMAP) {
ErrPrint("Invalid buffer type\n");
return 0;
}
- buf = (struct buffer *)info->buffer;
+ buf = (dynamicbox_fb_t)info->buffer;
if (!buf) {
ErrPrint("Invalid buffer data\n");
return 0;
@@ -910,7 +795,7 @@ EAPI int buffer_handler_pixmap(const struct buffer_info *info)
EAPI void *buffer_handler_pixmap_acquire_buffer(struct buffer_info *info)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
if (!info || !info->is_loaded) {
ErrPrint("Buffer is not loaded\n");
@@ -927,7 +812,7 @@ EAPI void *buffer_handler_pixmap_acquire_buffer(struct buffer_info *info)
EAPI void *buffer_handler_pixmap_buffer(struct buffer_info *info)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
struct gem_data *gem;
if (!info) {
@@ -948,19 +833,19 @@ EAPI void *buffer_handler_pixmap_buffer(struct buffer_info *info)
return gem->compensate_data ? gem->compensate_data : gem->data;
}
-/*!
- * \return "buffer" object (Not the buffer_info)
+/**
+ * @return "buffer" object (Not the buffer_info)
*/
EAPI void *buffer_handler_pixmap_ref(struct buffer_info *info)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
if (!info->is_loaded) {
ErrPrint("Buffer is not loaded\n");
return NULL;
}
- if (info->type != BUFFER_TYPE_PIXMAP) {
+ if (info->type != DBOX_FB_TYPE_PIXMAP) {
ErrPrint("Buffer type is not matched\n");
return NULL;
}
@@ -980,24 +865,43 @@ EAPI void *buffer_handler_pixmap_ref(struct buffer_info *info)
if (info->inst) {
struct pkg_info *pkg;
- if (instance_lb_buffer(info->inst) == info) {
- pkg = instance_package(info->inst);
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
+ pkg = instance_package(info->inst);
+
+ if (instance_dbox_buffer(info->inst) == info) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
need_gem = 0;
}
- } else if (instance_pd_buffer(info->inst) == info) {
- pkg = instance_package(info->inst);
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
+ } else if (instance_gbar_buffer(info->inst) == info) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
need_gem = 0;
}
+ } else {
+ int idx;
+
+ for (idx = 0; idx < DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT; idx++) {
+ if (instance_dbox_extra_buffer(info->inst, idx) == info) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ need_gem = 0;
+ break;
+ }
+ }
+
+ if (instance_gbar_extra_buffer(info->inst, idx) == info) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ need_gem = 0;
+ break;
+ }
+ }
+ }
}
}
if (need_gem) {
- create_gem(buffer);
+ if (create_gem(buffer) < 0) {
+ /* okay, something goes wrong */
+ }
}
-
- } else if (buffer->state != CREATED || buffer->type != BUFFER_TYPE_PIXMAP) {
+ } else if (buffer->state != DBOX_FB_STATE_CREATED || buffer->type != DBOX_FB_TYPE_PIXMAP) {
ErrPrint("Invalid buffer\n");
return NULL;
} else if (buffer->refcnt > 0) {
@@ -1014,7 +918,7 @@ EAPI void *buffer_handler_pixmap_ref(struct buffer_info *info)
*/
EAPI void *buffer_handler_pixmap_find(int pixmap)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
struct gem_data *gem;
Eina_List *l;
Eina_List *n;
@@ -1024,7 +928,7 @@ EAPI void *buffer_handler_pixmap_find(int pixmap)
}
EINA_LIST_FOREACH_SAFE(s_info.pixmap_list, l, n, buffer) {
- if (!buffer || buffer->state != CREATED || buffer->type != BUFFER_TYPE_PIXMAP) {
+ if (!buffer || buffer->state != DBOX_FB_STATE_CREATED || buffer->type != DBOX_FB_TYPE_PIXMAP) {
s_info.pixmap_list = eina_list_remove(s_info.pixmap_list, buffer);
DbgPrint("Invalid buffer (List Removed: %p)\n", buffer);
continue;
@@ -1041,18 +945,18 @@ EAPI void *buffer_handler_pixmap_find(int pixmap)
EAPI int buffer_handler_pixmap_release_buffer(void *canvas)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
struct gem_data *gem;
Eina_List *l;
Eina_List *n;
void *_ptr;
if (!canvas) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
EINA_LIST_FOREACH_SAFE(s_info.pixmap_list, l, n, buffer) {
- if (!buffer || buffer->state != CREATED || buffer->type != BUFFER_TYPE_PIXMAP) {
+ if (!buffer || buffer->state != DBOX_FB_STATE_CREATED || buffer->type != DBOX_FB_TYPE_PIXMAP) {
s_info.pixmap_list = eina_list_remove(s_info.pixmap_list, buffer);
continue;
}
@@ -1067,11 +971,11 @@ EAPI int buffer_handler_pixmap_release_buffer(void *canvas)
if (_ptr == canvas) {
release_gem(buffer);
buffer_handler_pixmap_unref(buffer);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
/*!
@@ -1082,12 +986,12 @@ EAPI int buffer_handler_pixmap_release_buffer(void *canvas)
*/
EAPI int buffer_handler_pixmap_unref(void *buffer_ptr)
{
- struct buffer *buffer = buffer_ptr;
+ dynamicbox_fb_t buffer = buffer_ptr;
struct buffer_info *info;
buffer->refcnt--;
if (buffer->refcnt > 0) {
- return LB_STATUS_SUCCESS; /* Return NULL means, gem buffer still in use */
+ return DBOX_STATUS_ERROR_NONE; /* Return NULL means, gem buffer still in use */
}
s_info.pixmap_list = eina_list_remove(s_info.pixmap_list, buffer);
@@ -1106,7 +1010,7 @@ EAPI int buffer_handler_pixmap_unref(void *buffer_ptr)
info->buffer = NULL;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_is_loaded(const struct buffer_info *info)
@@ -1130,19 +1034,19 @@ EAPI int buffer_handler_resize(struct buffer_info *info, int w, int h)
if (!info) {
ErrPrint("Invalid handler\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (info->w == w && info->h == h) {
DbgPrint("No changes\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
buffer_handler_update_size(info, w, h);
if (!info->is_loaded) {
DbgPrint("Buffer size is updated[%dx%d]\n", w, h);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
ret = buffer_handler_unload(info);
@@ -1155,13 +1059,13 @@ EAPI int buffer_handler_resize(struct buffer_info *info, int w, int h)
ErrPrint("Load: %d\n", ret);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_get_size(struct buffer_info *info, int *w, int *h)
{
if (!info) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (w) {
@@ -1171,7 +1075,7 @@ EAPI int buffer_handler_get_size(struct buffer_info *info, int *w, int *h)
*h = info->h;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI struct inst_info *buffer_handler_instance(struct buffer_info *info)
@@ -1183,7 +1087,7 @@ EAPI struct inst_info *buffer_handler_instance(struct buffer_info *info)
* \note
* Only for used S/W Backend
*/
-static inline int sync_for_pixmap(struct buffer *buffer)
+static inline int sync_for_pixmap(dynamicbox_fb_t buffer)
{
XShmSegmentInfo si;
XImage *xim;
@@ -1193,32 +1097,32 @@ static inline int sync_for_pixmap(struct buffer *buffer)
Screen *screen;
Visual *visual;
- if (buffer->state != CREATED) {
+ if (buffer->state != DBOX_FB_STATE_CREATED) {
ErrPrint("Invalid state of a FB\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- if (buffer->type != BUFFER_TYPE_PIXMAP) {
+ if (buffer->type != DBOX_FB_TYPE_PIXMAP) {
ErrPrint("Invalid buffer\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
disp = ecore_x_display_get();
if (!disp) {
ErrPrint("Failed to get a display\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
gem = (struct gem_data *)buffer->data;
if (gem->w == 0 || gem->h == 0) {
DbgPrint("Nothing can be sync\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
si.shmid = shmget(IPC_PRIVATE, gem->w * gem->h * gem->depth, IPC_CREAT | 0666);
if (si.shmid < 0) {
ErrPrint("shmget: %s\n", strerror(errno));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
si.readOnly = False;
@@ -1227,7 +1131,7 @@ static inline int sync_for_pixmap(struct buffer *buffer)
if (shmctl(si.shmid, IPC_RMID, 0) < 0) {
ErrPrint("shmctl: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
screen = DefaultScreenOfDisplay(disp);
@@ -1245,7 +1149,7 @@ static inline int sync_for_pixmap(struct buffer *buffer)
if (shmctl(si.shmid, IPC_RMID, 0) < 0) {
ErrPrint("shmctl: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
xim->data = si.shmaddr;
@@ -1265,7 +1169,7 @@ static inline int sync_for_pixmap(struct buffer *buffer)
ErrPrint("shmctl: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
memcpy(xim->data, gem->data, gem->w * gem->h * gem->depth);
@@ -1289,14 +1193,14 @@ static inline int sync_for_pixmap(struct buffer *buffer)
ErrPrint("shmctl: %s\n", strerror(errno));
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI void buffer_handler_flush(struct buffer_info *info)
{
int fd;
int size;
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
if (!info || !info->buffer) {
return;
@@ -1304,7 +1208,7 @@ EAPI void buffer_handler_flush(struct buffer_info *info)
buffer = info->buffer;
- if (buffer->type == BUFFER_TYPE_PIXMAP) {
+ if (buffer->type == DBOX_FB_TYPE_PIXMAP) {
if (s_info.fd > 0) {
//return;
//PERF_INIT();
@@ -1327,7 +1231,7 @@ EAPI void buffer_handler_flush(struct buffer_info *info)
ErrPrint("Failed to sync via S/W Backend\n");
}
}
- } else if (buffer->type == BUFFER_TYPE_FILE) {
+ } else if (buffer->type == DBOX_FB_TYPE_FILE) {
fd = open(util_uri_to_path(info->id), O_WRONLY | O_CREAT, 0644);
if (fd < 0) {
ErrPrint("%s open falied: %s\n", util_uri_to_path(info->id), strerror(errno));
@@ -1335,11 +1239,11 @@ EAPI void buffer_handler_flush(struct buffer_info *info)
}
size = info->w * info->h * info->pixel_size;
- do_buffer_lock(info);
+ dynamicbox_service_acquire_lock(info->lock_info);
if (write(fd, info->buffer, size) != size) {
ErrPrint("Write is not completed: %s\n", strerror(errno));
}
- do_buffer_unlock(info);
+ dynamicbox_service_release_lock(info->lock_info);
if (close(fd) < 0) {
ErrPrint("close: %s\n", strerror(errno));
@@ -1357,30 +1261,30 @@ HAPI int buffer_handler_init(void)
if (!DRI2QueryExtension(ecore_x_display_get(), &s_info.evt_base, &s_info.err_base)) {
ErrPrint("DRI2 is not supported\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (!DRI2QueryVersion(ecore_x_display_get(), &dri2Major, &dri2Minor)) {
ErrPrint("DRI2 is not supported\n");
s_info.evt_base = 0;
s_info.err_base = 0;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (!DRI2Connect(ecore_x_display_get(), DefaultRootWindow(ecore_x_display_get()), &driverName, &deviceName)) {
ErrPrint("DRI2 is not supported\n");
s_info.evt_base = 0;
s_info.err_base = 0;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
- if (USE_SW_BACKEND) {
+ if (DYNAMICBOX_CONF_USE_SW_BACKEND) {
DbgPrint("Fallback to the S/W Backend\n");
s_info.evt_base = 0;
s_info.err_base = 0;
DbgFree(deviceName);
DbgFree(driverName);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
s_info.fd = open(deviceName, O_RDWR);
@@ -1390,7 +1294,7 @@ HAPI int buffer_handler_init(void)
ErrPrint("Failed to open a drm device: (%s)\n", strerror(errno));
s_info.evt_base = 0;
s_info.err_base = 0;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
drmGetMagic(s_info.fd, &magic);
@@ -1403,7 +1307,7 @@ HAPI int buffer_handler_init(void)
s_info.fd = -1;
s_info.evt_base = 0;
s_info.err_base = 0;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
s_info.slp_bufmgr = tbm_bufmgr_init(s_info.fd);
@@ -1415,10 +1319,10 @@ HAPI int buffer_handler_init(void)
s_info.fd = -1;
s_info.evt_base = 0;
s_info.err_base = 0;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int buffer_handler_fini(void)
@@ -1435,12 +1339,12 @@ HAPI int buffer_handler_fini(void)
s_info.slp_bufmgr = NULL;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-static inline struct buffer *raw_open_file(const char *filename)
+static inline dynamicbox_fb_t raw_open_file(const char *filename)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
int fd;
off_t off;
int ret;
@@ -1483,8 +1387,8 @@ static inline struct buffer *raw_open_file(const char *filename)
return NULL;
}
- buffer->state = CREATED;
- buffer->type = BUFFER_TYPE_FILE;
+ buffer->state = DBOX_FB_STATE_CREATED;
+ buffer->type = DBOX_FB_TYPE_FILE;
buffer->refcnt = 0;
buffer->info = (void *)off;
@@ -1507,18 +1411,18 @@ static inline struct buffer *raw_open_file(const char *filename)
return buffer;
}
-static inline int raw_close_file(struct buffer *buffer)
+static inline int raw_close_file(dynamicbox_fb_t buffer)
{
DbgFree(buffer);
return 0;
}
-static inline struct buffer *raw_open_shm(int shm)
+static inline dynamicbox_fb_t raw_open_shm(int shm)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
- buffer = (struct buffer *)shmat(shm, NULL, SHM_RDONLY);
- if (buffer == (struct buffer *)-1) {
+ buffer = (dynamicbox_fb_t)shmat(shm, NULL, SHM_RDONLY);
+ if (buffer == (dynamicbox_fb_t)-1) {
ErrPrint("shmat: %s\n", strerror(errno));
return NULL;
}
@@ -1526,7 +1430,7 @@ static inline struct buffer *raw_open_shm(int shm)
return buffer;
}
-static inline int raw_close_shm(struct buffer *buffer)
+static inline int raw_close_shm(dynamicbox_fb_t buffer)
{
int ret;
@@ -1538,58 +1442,58 @@ static inline int raw_close_shm(struct buffer *buffer)
return ret;
}
-static inline struct buffer *raw_open_pixmap(unsigned int pixmap)
+static inline dynamicbox_fb_t raw_open_pixmap(unsigned int pixmap)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
- buffer = calloc(1, sizeof(*buffer) + DEFAULT_PIXELS);
+ buffer = calloc(1, sizeof(*buffer) + DYNAMICBOX_CONF_DEFAULT_PIXELS);
if (!buffer) {
ErrPrint("Heap: %s\n", strerror(errno));
return NULL;
}
- buffer->state = CREATED;
- buffer->type = BUFFER_TYPE_PIXMAP;
+ buffer->state = DBOX_FB_STATE_CREATED;
+ buffer->type = DBOX_FB_TYPE_PIXMAP;
return buffer;
}
-static inline int raw_close_pixmap(struct buffer *buffer)
+static inline int raw_close_pixmap(dynamicbox_fb_t buffer)
{
DbgFree(buffer);
return 0;
}
-EAPI void *buffer_handler_raw_data(struct buffer *buffer)
+EAPI void *buffer_handler_raw_data(dynamicbox_fb_t buffer)
{
- if (!buffer || buffer->state != CREATED) {
+ if (!buffer || buffer->state != DBOX_FB_STATE_CREATED) {
return NULL;
}
return buffer->data;
}
-EAPI int buffer_handler_raw_size(struct buffer *buffer)
+EAPI int buffer_handler_raw_size(dynamicbox_fb_t buffer)
{
- if (!buffer || buffer->state != CREATED) {
- return LB_STATUS_ERROR_INVALID;
+ if (!buffer || buffer->state != DBOX_FB_STATE_CREATED) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
return (int)buffer->info;
}
-EAPI struct buffer *buffer_handler_raw_open(enum buffer_type buffer_type, void *resource)
+EAPI dynamicbox_fb_t buffer_handler_raw_open(enum dynamicbox_fb_type dynamicbox_fb_type, void *resource)
{
- struct buffer *handle;
+ dynamicbox_fb_t handle;
- switch (buffer_type) {
- case BUFFER_TYPE_SHM:
+ switch (dynamicbox_fb_type) {
+ case DBOX_FB_TYPE_SHM:
handle = raw_open_shm((int)resource);
break;
- case BUFFER_TYPE_FILE:
+ case DBOX_FB_TYPE_FILE:
handle = raw_open_file(resource);
break;
- case BUFFER_TYPE_PIXMAP:
+ case DBOX_FB_TYPE_PIXMAP:
handle = raw_open_pixmap((unsigned int)resource);
break;
default:
@@ -1600,52 +1504,125 @@ EAPI struct buffer *buffer_handler_raw_open(enum buffer_type buffer_type, void *
return handle;
}
-EAPI int buffer_handler_raw_close(struct buffer *buffer)
+EAPI int buffer_handler_raw_close(dynamicbox_fb_t buffer)
{
int ret;
+ if (!buffer || buffer->state != DBOX_FB_STATE_CREATED) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
switch (buffer->type) {
- case BUFFER_TYPE_SHM:
+ case DBOX_FB_TYPE_SHM:
ret = raw_close_shm(buffer);
break;
- case BUFFER_TYPE_FILE:
+ case DBOX_FB_TYPE_FILE:
ret = raw_close_file(buffer);
break;
- case BUFFER_TYPE_PIXMAP:
+ case DBOX_FB_TYPE_PIXMAP:
ret = raw_close_pixmap(buffer);
break;
default:
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
return ret;
}
-EAPI int buffer_handler_lock(struct buffer_info *buffer)
+EAPI int buffer_handler_lock(struct buffer_info *info)
+{
+ if (!info) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (info->type == DBOX_FB_TYPE_PIXMAP) {
+ return DBOX_STATUS_ERROR_NONE;
+ }
+
+ if (info->type == DBOX_FB_TYPE_FILE) {
+ return DBOX_STATUS_ERROR_NONE;
+ }
+
+ return dynamicbox_service_acquire_lock(info->lock_info);
+}
+
+EAPI int buffer_handler_unlock(struct buffer_info *info)
{
- if (buffer->type == BUFFER_TYPE_PIXMAP) {
- return LB_STATUS_SUCCESS;
+ if (!info) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (info->type == DBOX_FB_TYPE_PIXMAP) {
+ return DBOX_STATUS_ERROR_NONE;
}
- if (buffer->type == BUFFER_TYPE_FILE) {
- return LB_STATUS_SUCCESS;
+ if (info->type == DBOX_FB_TYPE_FILE) {
+ return DBOX_STATUS_ERROR_NONE;
+ }
+
+ return dynamicbox_service_release_lock(info->lock_info);
+}
+
+EAPI int buffer_handler_pixels(struct buffer_info *info)
+{
+ if (!info) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return do_buffer_lock(buffer);
+ return info->pixel_size;
}
-EAPI int buffer_handler_unlock(struct buffer_info *buffer)
+EAPI int buffer_handler_auto_align(void)
{
- if (buffer->type == BUFFER_TYPE_PIXMAP) {
- return LB_STATUS_SUCCESS;
+ return DYNAMICBOX_CONF_AUTO_ALIGN;
+}
+
+EAPI int buffer_handler_stride(struct buffer_info *info)
+{
+ dynamicbox_fb_t buffer;
+ struct gem_data *gem;
+ int stride;
+
+ if (!info) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- if (buffer->type == BUFFER_TYPE_FILE) {
- return LB_STATUS_SUCCESS;
+ switch (info->type) {
+ case DBOX_FB_TYPE_FILE:
+ case DBOX_FB_TYPE_SHM:
+ stride = info->w * info->pixel_size;
+ break;
+ case DBOX_FB_TYPE_PIXMAP:
+ buffer = info->buffer;
+ if (!buffer) {
+ stride = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ gem = (struct gem_data *)buffer->data;
+ if (!gem) {
+ stride = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ if (!gem->dri2_buffer) {
+ /*
+ * Uhm...
+ */
+ ErrPrint("dri2_buffer info is not ready yet!\n");
+ stride = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ stride = gem->dri2_buffer->pitch;
+ break;
+ default:
+ stride = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ break;
}
- return do_buffer_unlock(buffer);
+ return stride;
}
/*!
@@ -1654,35 +1631,35 @@ EAPI int buffer_handler_unlock(struct buffer_info *buffer)
* Plugin cannot access the user data
*/
-HAPI int buffer_handler_set_data(struct buffer_info *buffer, void *data)
+HAPI int buffer_handler_set_data(struct buffer_info *info, void *data)
{
- if (!buffer) {
+ if (!info) {
ErrPrint("Invalid handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- buffer->data = data;
- return LB_STATUS_SUCCESS;
+ info->data = data;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI void *buffer_handler_data(struct buffer_info *buffer)
+HAPI void *buffer_handler_data(struct buffer_info *info)
{
- if (!buffer) {
+ if (!info) {
ErrPrint("Invalid handle\n");
return NULL;
}
- return buffer->data;
+ return info->data;
}
HAPI int buffer_handler_destroy(struct buffer_info *info)
{
Eina_List *l;
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
if (!info) {
DbgPrint("Buffer is not created yet. info is NIL\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EINA_LIST_FOREACH(s_info.pixmap_list, l, buffer) {
@@ -1694,10 +1671,10 @@ HAPI int buffer_handler_destroy(struct buffer_info *info)
buffer_handler_unload(info);
DbgFree(info->id);
DbgFree(info);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buffer_type type, int w, int h, int pixel_size)
+HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum dynamicbox_fb_type type, int w, int h, int pixel_size)
{
struct buffer_info *info;
@@ -1708,10 +1685,10 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buff
}
switch (type) {
- case BUFFER_TYPE_SHM:
- if (pixel_size != DEFAULT_PIXELS) {
- DbgPrint("SHM only supportes %d bytes pixels (requested: %d)\n", DEFAULT_PIXELS, pixel_size);
- pixel_size = DEFAULT_PIXELS;
+ case DBOX_FB_TYPE_SHM:
+ if (pixel_size != DYNAMICBOX_CONF_DEFAULT_PIXELS) {
+ DbgPrint("SHM only supportes %d bytes pixels (requested: %d)\n", DYNAMICBOX_CONF_DEFAULT_PIXELS, pixel_size);
+ pixel_size = DYNAMICBOX_CONF_DEFAULT_PIXELS;
}
info->id = strdup(SCHEMA_SHM "-1");
@@ -1721,10 +1698,10 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buff
return NULL;
}
break;
- case BUFFER_TYPE_FILE:
- if (pixel_size != DEFAULT_PIXELS) {
- DbgPrint("FILE only supportes %d bytes pixels (requested: %d)\n", DEFAULT_PIXELS, pixel_size);
- pixel_size = DEFAULT_PIXELS;
+ case DBOX_FB_TYPE_FILE:
+ if (pixel_size != DYNAMICBOX_CONF_DEFAULT_PIXELS) {
+ DbgPrint("FILE only supportes %d bytes pixels (requested: %d)\n", DYNAMICBOX_CONF_DEFAULT_PIXELS, pixel_size);
+ pixel_size = DYNAMICBOX_CONF_DEFAULT_PIXELS;
}
info->id = strdup(SCHEMA_FILE "/tmp/.live.undefined");
@@ -1734,7 +1711,7 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buff
return NULL;
}
break;
- case BUFFER_TYPE_PIXMAP:
+ case DBOX_FB_TYPE_PIXMAP:
info->id = strdup(SCHEMA_PIXMAP "0:0");
if (!info->id) {
ErrPrint("Heap: %s\n", strerror(errno));
@@ -1748,8 +1725,7 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buff
return NULL;
}
- info->lock = NULL;
- info->lock_fd = -1;
+ info->lock_info = NULL;
info->w = w;
info->h = h;
info->pixel_size = pixel_size;
diff --git a/src/buffer_handler_wayland.c b/src/buffer_handler_wayland.c
index 947e1b4..8530dd5 100644
--- a/src/buffer_handler_wayland.c
+++ b/src/buffer_handler_wayland.c
@@ -30,7 +30,7 @@
#include <dlog.h>
#include <packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include "debug.h"
#include "conf.h"
@@ -65,6 +65,7 @@ struct buffer_info
int w;
int h;
int pixel_size;
+ int auto_align;
int is_loaded;
struct inst_info *inst;
@@ -74,11 +75,11 @@ struct buffer_info
static int destroy_lock_file(struct buffer_info *info)
{
if (!info->inst) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!info->lock) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (close(info->lock_fd) < 0) {
@@ -92,7 +93,7 @@ static int destroy_lock_file(struct buffer_info *info)
DbgFree(info->lock);
info->lock = NULL;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int create_lock_file(struct buffer_info *info)
@@ -103,22 +104,22 @@ static int create_lock_file(struct buffer_info *info)
char target[3] = "pd";
if (!info->inst) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
id = instance_id(info->inst);
if (!id) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
len = strlen(id);
file = malloc(len + 20);
if (!file) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- if (script_handler_buffer_info(instance_pd_script(info->inst)) != info && instance_pd_buffer(info->inst) != info) {
+ if (script_handler_buffer_info(instance_gbar_script(info->inst)) != info && instance_gbar_buffer(info->inst) != info) {
target[0] = 'l';
target[1] = 'b';
/* target[2] = '\0'; // We already have this ;) */
@@ -129,11 +130,11 @@ static int create_lock_file(struct buffer_info *info)
if (info->lock_fd < 0) {
ErrPrint("open: %s\n", strerror(errno));
DbgFree(file);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
info->lock = file;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int do_buffer_lock(struct buffer_info *buffer)
@@ -142,7 +143,7 @@ static int do_buffer_lock(struct buffer_info *buffer)
int ret;
if (buffer->lock_fd < 0) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
flock.l_type = F_WRLCK;
@@ -159,7 +160,7 @@ static int do_buffer_lock(struct buffer_info *buffer)
}
} while (ret == EINTR);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int do_buffer_unlock(struct buffer_info *buffer)
@@ -168,7 +169,7 @@ static int do_buffer_unlock(struct buffer_info *buffer)
int ret;
if (buffer->lock_fd < 0) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
flock.l_type = F_UNLCK;
@@ -185,7 +186,7 @@ static int do_buffer_unlock(struct buffer_info *buffer)
}
} while (ret == EINTR);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int load_file_buffer(struct buffer_info *info)
@@ -200,7 +201,7 @@ static inline int load_file_buffer(struct buffer_info *info)
new_id = malloc(len);
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
timestamp = util_timestamp();
@@ -210,14 +211,14 @@ static inline int load_file_buffer(struct buffer_info *info)
if (!size) {
ErrPrint("Canvas buffer size is ZERO\n");
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
buffer = calloc(1, size);
if (!buffer) {
ErrPrint("Failed to allocate buffer\n");
DbgFree(new_id);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
buffer->type = BUFFER_TYPE_FILE;
@@ -231,7 +232,7 @@ static inline int load_file_buffer(struct buffer_info *info)
info->is_loaded = 1;
DbgPrint("FILE type %d created\n", size);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int load_shm_buffer(struct buffer_info *info)
@@ -245,13 +246,13 @@ static inline int load_shm_buffer(struct buffer_info *info)
size = info->w * info->h * info->pixel_size;
if (!size) {
ErrPrint("Invalid buffer size\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
id = shmget(IPC_PRIVATE, size + sizeof(*buffer), IPC_CREAT | 0666);
if (id < 0) {
ErrPrint("shmget: %s\n", strerror(errno));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
buffer = shmat(id, NULL, 0);
@@ -262,7 +263,7 @@ static inline int load_shm_buffer(struct buffer_info *info)
ErrPrint("%s shmctl: %s\n", info->id, strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
buffer->type = BUFFER_TYPE_SHM;
@@ -283,7 +284,7 @@ static inline int load_shm_buffer(struct buffer_info *info)
ErrPrint("shmctl: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
snprintf(new_id, len, SCHEMA_SHM "%d", id);
@@ -292,7 +293,7 @@ static inline int load_shm_buffer(struct buffer_info *info)
info->id = new_id;
info->buffer = buffer;
info->is_loaded = 1;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_load(struct buffer_info *info)
@@ -301,12 +302,12 @@ EAPI int buffer_handler_load(struct buffer_info *info)
if (!info) {
ErrPrint("buffer handler is nil\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (info->is_loaded) {
DbgPrint("Buffer is already loaded\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
switch (info->type) {
@@ -321,7 +322,7 @@ EAPI int buffer_handler_load(struct buffer_info *info)
case BUFFER_TYPE_PIXMAP:
default:
ErrPrint("Invalid buffer\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
@@ -336,7 +337,7 @@ static inline int unload_file_buffer(struct buffer_info *info)
new_id = strdup(SCHEMA_FILE "/tmp/.live.undefined");
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgFree(info->buffer);
@@ -349,7 +350,7 @@ static inline int unload_file_buffer(struct buffer_info *info)
DbgFree(info->id);
info->id = new_id;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int unload_shm_buffer(struct buffer_info *info)
@@ -360,19 +361,19 @@ static inline int unload_shm_buffer(struct buffer_info *info)
new_id = strdup(SCHEMA_SHM "-1");
if (!new_id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
if (sscanf(info->id, SCHEMA_SHM "%d", &id) != 1) {
ErrPrint("%s Invalid ID\n", info->id);
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (id < 0) {
ErrPrint("(%s) Invalid id: %d\n", info->id, id);
DbgFree(new_id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (shmdt(info->buffer) < 0) {
@@ -387,7 +388,7 @@ static inline int unload_shm_buffer(struct buffer_info *info)
DbgFree(info->id);
info->id = new_id;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_unload(struct buffer_info *info)
@@ -396,12 +397,12 @@ EAPI int buffer_handler_unload(struct buffer_info *info)
if (!info) {
ErrPrint("buffer handler is NIL\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!info->is_loaded) {
ErrPrint("Buffer is not loaded\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (info->type) {
@@ -416,7 +417,7 @@ EAPI int buffer_handler_unload(struct buffer_info *info)
case BUFFER_TYPE_PIXMAP:
default:
ErrPrint("Invalid buffer\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
@@ -487,7 +488,7 @@ EAPI void *buffer_handler_pixmap_find(int pixmap)
EAPI int buffer_handler_pixmap_release_buffer(void *canvas)
{
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
/*!
@@ -498,7 +499,7 @@ EAPI int buffer_handler_pixmap_release_buffer(void *canvas)
*/
EAPI int buffer_handler_pixmap_unref(void *buffer_ptr)
{
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_is_loaded(const struct buffer_info *info)
@@ -522,19 +523,19 @@ EAPI int buffer_handler_resize(struct buffer_info *info, int w, int h)
if (!info) {
ErrPrint("Invalid handler\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (info->w == w && info->h == h) {
DbgPrint("No changes\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
buffer_handler_update_size(info, w, h);
if (!info->is_loaded) {
DbgPrint("Buffer size is updated[%dx%d]\n", w, h);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
ret = buffer_handler_unload(info);
@@ -547,13 +548,13 @@ EAPI int buffer_handler_resize(struct buffer_info *info, int w, int h)
ErrPrint("Load: %d\n", ret);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI int buffer_handler_get_size(struct buffer_info *info, int *w, int *h)
{
if (!info) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (w) {
@@ -563,7 +564,7 @@ EAPI int buffer_handler_get_size(struct buffer_info *info, int *w, int *h)
*h = info->h;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
EAPI struct inst_info *buffer_handler_instance(struct buffer_info *info)
@@ -618,10 +619,10 @@ HAPI int buffer_handler_init(void)
*/
if (USE_SW_BACKEND) {
DbgPrint("Fallback to the S/W Backend\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int buffer_handler_fini(void)
@@ -630,7 +631,7 @@ HAPI int buffer_handler_fini(void)
* \TODO
* Implement this for wayland
*/
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline struct buffer *raw_open_file(const char *filename)
@@ -745,7 +746,7 @@ EAPI void *buffer_handler_raw_data(struct buffer *buffer)
EAPI int buffer_handler_raw_size(struct buffer *buffer)
{
if (!buffer || buffer->state != CREATED) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
return (int)buffer->info;
@@ -784,7 +785,7 @@ EAPI int buffer_handler_raw_close(struct buffer *buffer)
break;
case BUFFER_TYPE_PIXMAP:
default:
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
@@ -794,11 +795,11 @@ EAPI int buffer_handler_raw_close(struct buffer *buffer)
EAPI int buffer_handler_lock(struct buffer_info *buffer)
{
if (buffer->type == BUFFER_TYPE_PIXMAP) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (buffer->type == BUFFER_TYPE_FILE) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
return do_buffer_lock(buffer);
@@ -807,11 +808,11 @@ EAPI int buffer_handler_lock(struct buffer_info *buffer)
EAPI int buffer_handler_unlock(struct buffer_info *buffer)
{
if (buffer->type == BUFFER_TYPE_PIXMAP) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (buffer->type == BUFFER_TYPE_FILE) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
return do_buffer_unlock(buffer);
@@ -827,11 +828,11 @@ HAPI int buffer_handler_set_data(struct buffer_info *buffer, void *data)
{
if (!buffer) {
ErrPrint("Invalid handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
buffer->data = data;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void *buffer_handler_data(struct buffer_info *buffer)
@@ -851,16 +852,16 @@ HAPI int buffer_handler_destroy(struct buffer_info *info)
if (!info) {
DbgPrint("Buffer is not created yet. info is NIL\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
buffer_handler_unload(info);
DbgFree(info->id);
DbgFree(info);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buffer_type type, int w, int h, int pixel_size)
+HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buffer_type type, int w, int h, int pixel_size, int auto_align)
{
struct buffer_info *info;
@@ -914,6 +915,7 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum buff
info->inst = inst;
info->buffer = NULL;
info->data = NULL;
+ info->auto_align = auto_align;
return info;
}
diff --git a/src/client_life.c b/src/client_life.c
index d01dc2a..edb5048 100644
--- a/src/client_life.c
+++ b/src/client_life.c
@@ -16,13 +16,19 @@
#include <stdio.h>
#include <errno.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/smack.h>
#include <Eina.h>
#include <Ecore.h>
#include <dlog.h>
#include <packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
#include "client_life.h"
#include "instance.h"
@@ -96,6 +102,7 @@ struct client_node {
Eina_List *subscribe_list;
int faulted;
+ char *direct_addr;
};
static inline void invoke_global_destroyed_cb(struct client_node *client)
@@ -234,6 +241,11 @@ static inline void destroy_client_data(struct client_node *client)
s_info.nr_of_paused_clients--;
}
+ if (client->direct_addr) {
+ (void)unlink(client->direct_addr);
+ DbgFree(client->direct_addr);
+ }
+
s_info.client_list = eina_list_remove(s_info.client_list, client);
DbgFree(client);
@@ -245,7 +257,7 @@ static inline void destroy_client_data(struct client_node *client)
xmonitor_handle_state_changes();
}
-static inline struct client_node *create_client_data(pid_t pid)
+static inline struct client_node *create_client_data(pid_t pid, const char *direct_addr)
{
struct client_node *client;
@@ -258,6 +270,13 @@ static inline struct client_node *create_client_data(pid_t pid)
client->pid = pid;
client->refcnt = 1;
+ if (direct_addr && direct_addr[0]) {
+ client->direct_addr = strdup(direct_addr);
+ if (!client->direct_addr) {
+ ErrPrint("Failed to allocate direct_addr (%s)\n", direct_addr);
+ }
+ }
+
s_info.client_list = eina_list_append(s_info.client_list, client);
/*!
@@ -293,7 +312,7 @@ static Eina_Bool created_cb(void *data)
* So we just create its ADT in this function.
* And invoke the global created event & activated event callbacks
*/
-HAPI struct client_node *client_create(pid_t pid, int handle)
+HAPI struct client_node *client_create(pid_t pid, int handle, const char *direct_addr)
{
struct client_node *client;
int ret;
@@ -304,7 +323,7 @@ HAPI struct client_node *client_create(pid_t pid, int handle)
return client;
}
- client = create_client_data(pid);
+ client = create_client_data(pid, direct_addr);
if (!client) {
ErrPrint("Failed to create a new client (%d)\n", pid);
return NULL;
@@ -468,13 +487,13 @@ HAPI int client_event_callback_add(struct client_node *client, enum client_event
if (!cb) {
ErrPrint("Invalid callback (cb == NULL)\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->cb = cb;
@@ -508,10 +527,10 @@ HAPI int client_event_callback_add(struct client_node *client, enum client_event
break;
default:
DbgFree(item);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int client_event_callback_del(struct client_node *client, enum client_event event, int (*cb)(struct client_node *, void *), void *data)
@@ -522,7 +541,7 @@ HAPI int client_event_callback_del(struct client_node *client, enum client_event
if (!cb) {
ErrPrint("Invalid callback (cb == NULL)\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (event) {
@@ -535,7 +554,7 @@ HAPI int client_event_callback_del(struct client_node *client, enum client_event
client->event_deactivate_list = eina_list_remove(client->event_deactivate_list, item);
DbgFree(item);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -549,7 +568,7 @@ HAPI int client_event_callback_del(struct client_node *client, enum client_event
client->event_activate_list = eina_list_remove(client->event_activate_list, item);
DbgFree(item);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -559,7 +578,7 @@ HAPI int client_event_callback_del(struct client_node *client, enum client_event
break;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int client_set_data(struct client_node *client, const char *tag, void *data)
@@ -569,20 +588,20 @@ HAPI int client_set_data(struct client_node *client, const char *tag, void *data
item = calloc(1, sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->tag = strdup(tag);
if (!item->tag) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->data = data;
client->data_list = eina_list_append(client->data_list, item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void *client_data(struct client_node *client, const char *tag)
@@ -641,7 +660,7 @@ HAPI void client_resumed(struct client_node *client)
HAPI int client_init(void)
{
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void client_fini(void)
@@ -671,7 +690,7 @@ HAPI int client_global_event_handler_add(enum client_global_event event_type, in
handler = malloc(sizeof(*handler));
if (!handler) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
handler->cbdata = data;
@@ -687,10 +706,10 @@ HAPI int client_global_event_handler_add(enum client_global_event event_type, in
break;
default:
DbgFree(handler);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int client_global_event_handler_del(enum client_global_event event_type, int (*cb)(struct client_node *, void *), void *data)
@@ -709,7 +728,7 @@ HAPI int client_global_event_handler_del(enum client_global_event event_type, in
s_info.create_event_list = eina_list_remove(s_info.create_event_list, item);
DbgFree(item);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -722,7 +741,7 @@ HAPI int client_global_event_handler_del(enum client_global_event event_type, in
s_info.destroy_event_list = eina_list_remove(s_info.destroy_event_list, item);
DbgFree(item);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -730,7 +749,7 @@ HAPI int client_global_event_handler_del(enum client_global_event event_type, in
break;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int client_subscribe(struct client_node *client, const char *cluster, const char *category)
@@ -740,14 +759,14 @@ HAPI int client_subscribe(struct client_node *client, const char *cluster, const
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->cluster = strdup(cluster);
if (!item->cluster) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->category = strdup(category);
@@ -755,11 +774,11 @@ HAPI int client_subscribe(struct client_node *client, const char *cluster, const
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item->cluster);
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
client->subscribe_list = eina_list_append(client->subscribe_list, item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int client_unsubscribe(struct client_node *client, const char *cluster, const char *category)
@@ -774,11 +793,11 @@ HAPI int client_unsubscribe(struct client_node *client, const char *cluster, con
DbgFree(item->cluster);
DbgFree(item->category);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int client_is_subscribed(struct client_node *client, const char *cluster, const char *category)
@@ -814,7 +833,7 @@ HAPI int client_browse_list(const char *cluster, const char *category, int (*cb)
int cnt;
if (!cb || !cluster || !category) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
cnt = 0;
@@ -824,7 +843,7 @@ HAPI int client_browse_list(const char *cluster, const char *category, int (*cb)
}
if (cb(client, data) < 0) {
- return LB_STATUS_ERROR_CANCEL;
+ return DBOX_STATUS_ERROR_CANCEL;
}
cnt++;
@@ -864,7 +883,12 @@ HAPI int client_broadcast(struct inst_info *inst, struct packet *packet)
}
packet_unref(packet);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
+}
+
+HAPI const char *client_direct_addr(const struct client_node *client)
+{
+ return client ? client->direct_addr : NULL;
}
/* End of a file */
diff --git a/src/client_rpc.c b/src/client_rpc.c
index a9b00f4..fb9c99f 100644
--- a/src/client_rpc.c
+++ b/src/client_rpc.c
@@ -23,7 +23,9 @@
#include <dlog.h>
#include <com-core_packet.h>
#include <packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
+#include <dynamicbox_service.h>
#include "client_life.h"
#include "instance.h"
@@ -151,7 +153,7 @@ static inline void push_command(struct command *command)
return;
}
- s_info.command_consumer = ecore_timer_add(PACKET_TIME, command_consumer_cb, NULL);
+ s_info.command_consumer = ecore_timer_add(DYNAMICBOX_CONF_PACKET_TIME, command_consumer_cb, NULL);
if (!s_info.command_consumer) {
ErrPrint("Failed to add command consumer\n");
s_info.command_list = eina_list_remove(s_info.command_list, command);
@@ -165,13 +167,13 @@ HAPI int client_rpc_async_request(struct client_node *client, struct packet *pac
struct client_rpc *rpc;
if (!client || !packet) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (client_is_faulted(client)) {
ErrPrint("Client[%p] is faulted\n", client);
packet_unref(packet);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
rpc = client_data(client, RPC_TAG);
@@ -182,12 +184,12 @@ HAPI int client_rpc_async_request(struct client_node *client, struct packet *pac
command = create_command(client, packet);
if (!command) {
packet_unref(packet);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
push_command(command);
packet_unref(packet);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int deactivated_cb(struct client_node *client, void *data)
@@ -200,7 +202,7 @@ static int deactivated_cb(struct client_node *client, void *data)
rpc = client_data(client, RPC_TAG);
if (!rpc) {
ErrPrint("client is not valid\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
DbgPrint("Reset handle for %d\n", client_pid(client));
@@ -215,7 +217,7 @@ static int deactivated_cb(struct client_node *client, void *data)
}
DbgPrint("End: Destroying command\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int client_rpc_init(struct client_node *client, int handle)
@@ -226,7 +228,7 @@ HAPI int client_rpc_init(struct client_node *client, int handle)
rpc = calloc(1, sizeof(*rpc));
if (!rpc) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
ret = client_set_data(client, RPC_TAG, rpc);
@@ -259,12 +261,12 @@ HAPI int client_rpc_fini(struct client_node *client)
rpc = client_del_data(client, RPC_TAG);
if (!rpc) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
client_event_callback_del(client, CLIENT_EVENT_DEACTIVATE, deactivated_cb, NULL);
DbgFree(rpc);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int client_rpc_handle(struct client_node *client)
@@ -274,7 +276,7 @@ HAPI int client_rpc_handle(struct client_node *client)
rpc = client_data(client, RPC_TAG);
if (!rpc) {
DbgPrint("Client has no RPC\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
return rpc->handle;
diff --git a/src/conf.c b/src/conf.c
index 53941ca..8f52983 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -1,953 +1,8 @@
-/*
- * Copyright 2013 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <dlog.h>
-#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
-#else
-#include "lite-errno.h"
-#endif
-#include <Eina.h>
-
#include "conf.h"
-#include "util.h"
-#include "debug.h"
-
-static const char *CONF_DEFAULT_SERVICES = "[livebox],[shortcut],[notification],[badge],[utility],[file]";
-static const char *CONF_DEFAULT_EMERGENCY_DISK = "source=tmpfs;type=tmpfs;option=size=6M";
-static const char *CONF_DEFAULT_PATH_CONF = "/opt/usr/live/%s/etc/%s.conf";
-static const char *CONF_DEFAULT_PATH_IMAGE = "/opt/usr/share/live_magazine/";
-static const char *CONF_DEFAULT_PATH_LOG = "/opt/usr/share/live_magazine/log";
-static const char *CONF_DEFAULT_PATH_READER = "/opt/usr/share/live_magazine/reader";
-static const char *CONF_DEFAULT_PATH_ALWAYS = "/opt/usr/share/live_magazine/always";
-static const char *CONF_DEFAULT_PATH_SCRIPT = "/opt/usr/live/%s/res/script/%s.edj";
-static const char *CONF_DEFAULT_PATH_ROOT = "/opt/usr/live/";
-static const char *CONF_DEFAULT_PATH_SCRIPT_PORT = "/usr/share/data-provider-master/plugin-script/";
-static const char *CONF_DEFAULT_PATH_DB = "/opt/dbspace/.livebox.db";
-static const char *CONF_DEFAULT_PATH_INPUT = "/dev/input/event2";
-static const char *CONF_DEFAULT_SCRIPT_TYPE = "edje";
-static const char *CONF_DEFAULT_ABI = "c";
-static const char *CONF_DEFAULT_PD_GROUP = "disclosure";
-static const char *CONF_DEFAULT_LAUNCH_BUNDLE_NAME = "name";
-static const char *CONF_DEFAULT_LAUNCH_BUNDLE_SECURED = "secured";
-static const char *CONF_DEFAULT_LAUNCH_BUNDLE_ABI = "abi";
-static const char *CONF_DEFAULT_CONTENT = "default";
-static const char *CONF_DEFAULT_TITLE = "";
-static const char *CONF_DEFAULT_EMPTY_CONTENT = "";
-static const char *CONF_DEFAULT_EMPTY_TITLE = "";
-static const char *CONF_DEFAULT_REPLACE_TAG = "/APPID/";
-static const char *CONF_DEFAULT_PROVIDER_METHOD = "pixmap";
-static const int CONF_DEFAULT_WIDTH = 0;
-static const int CONF_DEFAULT_HEIGHT = 0;
-static const int CONF_DEFAULT_BASE_WIDTH = 720;
-static const int CONF_DEFAULT_BASE_HEIGHT = 1280;
-static const double CONF_DEFAULT_MINIMUM_PERIOD = 1.0f;
-static const double CONF_DEFAULT_PERIOD = -1.0f;
-static const double CONF_DEFAULT_PACKET_TIME = 0.0001f;
-static const unsigned long CONF_DEFAULT_MINIMUM_SPACE = 5242880;
-static const double CONF_DEFAULT_SLAVE_TTL = 30.0f;
-static const double CONF_DEFAULT_SLAVE_ACTIVATE_TIME = 30.0f;
-static const double CONF_DEFAULT_SLAVE_RELAUNCH_TIME = 3.0f;
-static const int CONF_DEFAULT_SLAVE_RELAUNCH_COUNT = 3;
-static const int CONF_DEFAULT_MAX_LOG_LINE = 1000;
-static const int CONF_DEFAULT_MAX_LOG_FILE = 3;
-static const int CONF_DEFAULT_SQLITE_FLUSH_MAX = 1048576;
-static const double CONF_DEFAULT_PING_TIME = 240.0f;
-static const int CONF_DEFAULT_SLAVE_MAX_LOAD = 30;
-static const int CONF_DEFAULT_USE_SW_BACKEND = 0;
-static const int CONF_DEFAULT_DEBUG_MODE = 0;
-static const int CONF_DEFAULT_OVERWRITE_CONTENT = 0;
-static const int CONF_DEFAULT_COM_CORE_THREAD = 1;
-static const int CONF_DEFAULT_USE_XMONITOR = 0;
-static const int CONF_DEFAULT_PREMULTIPLIED = 1;
-static const double CONF_DEFAULT_SCALE_WIDTH_FACTOR = 1.0f;
-static const double CONF_DEFAULT_SCALE_HEIGHT_FACTOR = 1.0f;
-static const double CONF_DEFAULT_PD_REQUEST_TIMEOUT = 5.0f;
-static const int CONF_DEFAULT_PIXELS = sizeof(int);
-
-int errno;
-
-HAPI struct conf g_conf;
-
-HAPI void conf_update_size(void)
-{
- util_screen_size_get(&g_conf.width, &g_conf.height);
-
- g_conf.scale_width_factor = (double)g_conf.width / (double)BASE_W;
- g_conf.scale_height_factor = (double)g_conf.height / (double)BASE_H;
-}
-
-static void use_xmonitor(char *buffer)
-{
- g_conf.use_xmonitor = !strcasecmp(buffer, "true");
-}
-
-static void emergency_disk_handler(char *buffer)
-{
- g_conf.emergency_disk = strdup(buffer);
- if (!g_conf.emergency_disk) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void services_handler(char *buffer)
-{
- g_conf.services = strdup(buffer);
- if (!g_conf.services) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void use_sw_backend_handler(char *buffer)
-{
- g_conf.use_sw_backend = !strcasecmp(buffer, "true");
-}
-
-static void provider_method_handler(char *buffer)
-{
- g_conf.provider_method = strdup(buffer);
- if (!g_conf.provider_method) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void debug_mode_handler(char *buffer)
-{
- g_conf.debug_mode = !strcasecmp(buffer, "true");
-}
-
-static void overwrite_content_handler(char *buffer)
-{
- g_conf.overwrite_content = !strcasecmp(buffer, "true");
-}
-
-static void com_core_thread_handler(char *buffer)
-{
- g_conf.com_core_thread = !strcasecmp(buffer, "true");
-}
-
-static void base_width_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.base_width) != 1) {
- ErrPrint("Failed to parse the base_width\n");
- }
-}
-
-static void base_height_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.base_height) != 1) {
- ErrPrint("Failed to parse the base_height\n");
- }
-}
-
-static void minimum_period_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.minimum_period) != 1) {
- ErrPrint("Failed to parse the minimum_period\n");
- }
- DbgPrint("Minimum period: %lf\n", g_conf.minimum_period);
-}
-
-static void pixels_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.default_conf.pixels) != 1) {
- ErrPrint("Failed to parse the minimum_period\n");
- }
- DbgPrint("Default pixels: %lf\n", g_conf.default_conf.pixels);
-}
-
-static void script_handler(char *buffer)
-{
- g_conf.default_conf.script = strdup(buffer);
- if (!g_conf.default_conf.script) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void default_abi_handler(char *buffer)
-{
- g_conf.default_conf.abi = strdup(buffer);
- if (!g_conf.default_conf.abi) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void default_group_handler(char *buffer)
-{
- g_conf.default_conf.pd_group = strdup(buffer);
- if (!g_conf.default_conf.pd_group) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void default_period_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.default_conf.period) != 1) {
- ErrPrint("Failed to parse the default_period\n");
- }
- DbgPrint("Default Period: %lf\n", g_conf.default_conf.period);
-}
-
-static void default_packet_time_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.default_packet_time) != 1) {
- ErrPrint("Failed to parse the default_packet_time\n");
- }
- DbgPrint("Default packet time: %lf\n", g_conf.default_packet_time);
-}
-
-static void default_content_handler(char *buffer)
-{
- g_conf.default_content = strdup(buffer);
- if (!g_conf.default_content) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void default_title_handler(char *buffer)
-{
- g_conf.default_title = strdup(buffer);
- if (!g_conf.default_title) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void minimum_space_handler(char *buffer)
-{
- if (sscanf(buffer, "%lu", &g_conf.minimum_space) != 1) {
- ErrPrint("Failed to parse the minimum_space\n");
- }
-}
-
-static void replace_tag_handler(char *buffer)
-{
- g_conf.replace_tag = strdup(buffer);
- if (!g_conf.replace_tag) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void slave_ttl_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.slave_ttl) != 1) {
- ErrPrint("Failed to parse the slave_ttl\n");
- }
- DbgPrint("Slave TTL: %lf\n", g_conf.slave_ttl);
-}
-
-static void slave_activate_time_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.slave_activate_time) != 1) {
- ErrPrint("Failed to parse the slave_activate_time\n");
- }
- DbgPrint("Slave activate time: %lf\n", g_conf.slave_activate_time);
-}
-
-static void slave_relaunch_time_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.slave_relaunch_time) != 1) {
- ErrPrint("Failed to parse the slave_activate_time\n");
- }
- DbgPrint("Slave relaunch time: %lf\n", g_conf.slave_relaunch_time);
-}
-
-static void slave_relaunch_count_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.slave_relaunch_count) != 1) {
- ErrPrint("Failed to parse the max_log_line\n");
- }
-}
-
-static void max_log_line_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.max_log_line) != 1) {
- ErrPrint("Failed to parse the max_log_line\n");
- }
-}
-
-static void max_log_file_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.max_log_file) != 1) {
- ErrPrint("Failed to parse the max_log_file\n");
- }
-}
-
-static void sqlite_flush_max_handler(char *buffer)
-{
- if (sscanf(buffer, "%lu", &g_conf.sqlite_flush_max) != 1) {
- ErrPrint("Failed to parse the sqlite_flush_max\n");
- }
-}
-
-static void db_path_handler(char *buffer)
-{
- g_conf.path.db = strdup(buffer);
- if (!g_conf.path.db) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void reader_path_handler(char *buffer)
-{
- g_conf.path.reader = strdup(buffer);
- if (!g_conf.path.reader) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void always_path_handler(char *buffer)
-{
- g_conf.path.always = strdup(buffer);
- if (!g_conf.path.always) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void log_path_handler(char *buffer)
-{
- g_conf.path.slave_log = strdup(buffer);
- if (!g_conf.path.slave_log) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void script_port_path_handler(char *buffer)
-{
- g_conf.path.script_port = strdup(buffer);
- if (!g_conf.path.script_port) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void share_path_handler(char *buffer)
-{
- g_conf.path.image = strdup(buffer);
- if (!g_conf.path.image) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void input_path_handler(char *buffer)
-{
- g_conf.path.input = strdup(buffer);
- if (!g_conf.path.input) {
- ErrPrint("Heap: %s\n", strerror(errno));
- }
-}
-
-static void ping_time_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.ping_time) != 1) {
- ErrPrint("Failed to parse the ping_time\n");
- }
- DbgPrint("Default ping time: %lf\n", g_conf.ping_time);
-}
-
-static void slave_max_loader(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.slave_max_load) != 1) {
- ErrPrint("Failed to parse the slave_max_load\n");
- }
-}
-
-static void premultiplied_handler(char *buffer)
-{
- if (sscanf(buffer, "%d", &g_conf.premultiplied) != 1) {
- ErrPrint("Failed to parse the premultiplied color\n");
- }
-
- DbgPrint("Premultiplied: %d\n", g_conf.premultiplied);
-}
-
-static void pd_request_timeout_handler(char *buffer)
-{
- if (sscanf(buffer, "%lf", &g_conf.pd_request_timeout) != 1) {
- ErrPrint("Failed to parse the request_timeout\n");
- }
- DbgPrint("Default PD request timeout: %lf\n", g_conf.pd_request_timeout);
-}
-
-HAPI void conf_init(void)
-{
- g_conf.width = CONF_DEFAULT_WIDTH;
- g_conf.height = CONF_DEFAULT_HEIGHT;
- g_conf.base_width = CONF_DEFAULT_BASE_WIDTH;
- g_conf.base_height = CONF_DEFAULT_BASE_HEIGHT;
- g_conf.minimum_period = CONF_DEFAULT_MINIMUM_PERIOD;
- g_conf.default_conf.period = CONF_DEFAULT_PERIOD;
- g_conf.default_conf.pixels = CONF_DEFAULT_PIXELS;
- g_conf.minimum_space = CONF_DEFAULT_MINIMUM_SPACE;
- g_conf.default_packet_time = CONF_DEFAULT_PACKET_TIME;
- g_conf.slave_ttl = CONF_DEFAULT_SLAVE_TTL;
- g_conf.slave_activate_time = CONF_DEFAULT_SLAVE_ACTIVATE_TIME;
- g_conf.slave_relaunch_time = CONF_DEFAULT_SLAVE_RELAUNCH_TIME;
- g_conf.slave_relaunch_count = CONF_DEFAULT_SLAVE_RELAUNCH_COUNT;
- g_conf.max_log_line = CONF_DEFAULT_MAX_LOG_LINE;
- g_conf.max_log_file = CONF_DEFAULT_MAX_LOG_FILE;
- g_conf.sqlite_flush_max = CONF_DEFAULT_SQLITE_FLUSH_MAX;
- g_conf.ping_time = CONF_DEFAULT_PING_TIME;
- g_conf.slave_max_load = CONF_DEFAULT_SLAVE_MAX_LOAD;
- g_conf.use_sw_backend = CONF_DEFAULT_USE_SW_BACKEND;
- g_conf.debug_mode = CONF_DEFAULT_DEBUG_MODE;
- g_conf.overwrite_content = CONF_DEFAULT_OVERWRITE_CONTENT;
- g_conf.com_core_thread = CONF_DEFAULT_COM_CORE_THREAD;
- g_conf.use_xmonitor = CONF_DEFAULT_USE_XMONITOR;
- g_conf.scale_width_factor = CONF_DEFAULT_SCALE_WIDTH_FACTOR;
- g_conf.scale_height_factor = CONF_DEFAULT_SCALE_HEIGHT_FACTOR;
- g_conf.pd_request_timeout = CONF_DEFAULT_PD_REQUEST_TIMEOUT;
- g_conf.premultiplied = CONF_DEFAULT_PREMULTIPLIED;
- g_conf.default_conf.script = (char *)CONF_DEFAULT_SCRIPT_TYPE;
- g_conf.default_conf.abi = (char *)CONF_DEFAULT_ABI;
- g_conf.default_conf.pd_group = (char *)CONF_DEFAULT_PD_GROUP;
- g_conf.launch_key.name = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_NAME;
- g_conf.launch_key.secured = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_SECURED;
- g_conf.launch_key.abi = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_ABI;
- g_conf.empty_content = (char *)CONF_DEFAULT_EMPTY_CONTENT;
- g_conf.empty_title = (char *)CONF_DEFAULT_EMPTY_TITLE;
- g_conf.default_content = (char *)CONF_DEFAULT_CONTENT;
- g_conf.default_title = (char *)CONF_DEFAULT_TITLE;
- g_conf.replace_tag = (char *)CONF_DEFAULT_REPLACE_TAG;
- g_conf.path.conf = (char *)CONF_DEFAULT_PATH_CONF;
- g_conf.path.image = (char *)CONF_DEFAULT_PATH_IMAGE;
- g_conf.path.slave_log = (char *)CONF_DEFAULT_PATH_LOG;
- g_conf.path.reader = (char *)CONF_DEFAULT_PATH_READER;
- g_conf.path.always = (char *)CONF_DEFAULT_PATH_ALWAYS;
- g_conf.path.script = (char *)CONF_DEFAULT_PATH_SCRIPT;
- g_conf.path.root = (char *)CONF_DEFAULT_PATH_ROOT;
- g_conf.path.script_port = (char *)CONF_DEFAULT_PATH_SCRIPT_PORT;
- g_conf.path.db = (char *)CONF_DEFAULT_PATH_DB;
- g_conf.path.input = (char *)CONF_DEFAULT_PATH_INPUT;
- g_conf.provider_method = (char *)CONF_DEFAULT_PROVIDER_METHOD;
- g_conf.emergency_disk = (char *)CONF_DEFAULT_EMERGENCY_DISK;
- g_conf.services = (char *)CONF_DEFAULT_SERVICES;
-}
-
-HAPI int conf_loader(void)
-{
- FILE *fp;
- int c;
- enum state {
- START,
- SPACE,
- TOKEN,
- VALUE,
- ERROR,
- COMMENT,
- END
- } state;
- int ch_idx;
- int token_idx;
- int buffer_idx;
- int quote;
- int linelen;
- char buffer[256];
- static const struct token_parser {
- const char *name;
- void (*handler)(char *buffer);
- } token_handler[] = {
- {
- .name = "base_width",
- .handler = base_width_handler,
- },
- {
- .name = "base_height",
- .handler = base_height_handler,
- },
- {
- .name = "minimum_period",
- .handler = minimum_period_handler,
- },
- {
- .name = "script",
- .handler = script_handler,
- },
- {
- .name = "pixels",
- .handler = pixels_handler,
- },
- {
- .name = "default_abi",
- .handler = default_abi_handler,
- },
- {
- .name = "default_group",
- .handler = default_group_handler,
- },
- {
- .name = "default_period",
- .handler = default_period_handler,
- },
- {
- .name = "default_packet_time",
- .handler = default_packet_time_handler,
- },
- {
- .name = "default_content",
- .handler = default_content_handler,
- },
- {
- .name = "default_title",
- .handler = default_title_handler,
- },
- {
- .name = "minimum_space",
- .handler = minimum_space_handler,
- },
- {
- .name = "replace_tag",
- .handler = replace_tag_handler,
- },
- {
- .name = "slave_ttl",
- .handler = slave_ttl_handler,
- },
- {
- .name = "slave_activate_time",
- .handler = slave_activate_time_handler,
- },
- {
- .name = "slave_relaunch_time",
- .handler = slave_relaunch_time_handler,
- },
- {
- .name = "slave_relaunch_count",
- .handler = slave_relaunch_count_handler,
- },
- {
- .name = "max_log_line",
- .handler = max_log_line_handler,
- },
- {
- .name = "max_log_file",
- .handler = max_log_file_handler,
- },
- {
- .name = "sqilte_flush_max",
- .handler = sqlite_flush_max_handler,
- },
- {
- .name = "db_path",
- .handler = db_path_handler,
- },
- {
- .name = "log_path",
- .handler = log_path_handler,
- },
- {
- .name = "reader_path",
- .handler = reader_path_handler,
- },
- {
- .name = "always_path",
- .handler = always_path_handler,
- },
- {
- .name = "share_path",
- .handler = share_path_handler,
- },
- {
- .name = "script_port_path",
- .handler = script_port_path_handler,
- },
- {
- .name = "ping_interval",
- .handler = ping_time_handler,
- },
- {
- .name = "slave_max_load",
- .handler = slave_max_loader,
- },
- {
- .name = "use_sw_backend",
- .handler = use_sw_backend_handler,
- },
- {
- .name = "emergency_disk",
- .handler = emergency_disk_handler,
- },
- {
- .name = "services",
- .handler = services_handler,
- },
- {
- .name = "use_xmonitor",
- .handler = use_xmonitor,
- },
- {
- .name = "provider_method",
- .handler = provider_method_handler,
- },
- {
- .name = "debug_mode",
- .handler = debug_mode_handler,
- },
- {
- .name = "overwrite_content",
- .handler = overwrite_content_handler,
- },
- {
- .name = "com_core_thread",
- .handler = com_core_thread_handler,
- },
- {
- .name = "input",
- .handler = input_path_handler,
- },
- {
- .name = "pd_request_timeout",
- .handler = pd_request_timeout_handler,
- },
- {
- .name = "premultiplied",
- .handler = premultiplied_handler,
- },
- {
- .name = NULL,
- .handler = NULL,
- },
- };
-
- fp = fopen(DEFAULT_MASTER_CONF, "rt");
- if (!fp) {
- ErrPrint("Error: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
- }
-
- state = START;
- ch_idx = 0;
- token_idx = -1;
- buffer_idx = 0;
- quote = 0;
- linelen = 0;
- do {
- c = getc(fp);
- if ((c == EOF) && (state == VALUE)) {
- DbgPrint("[%s:%d] VALUE state EOF\n", __func__, __LINE__);
- state = END;
- }
-
- switch (state) {
- case COMMENT:
- if (c == CR || c == LF || c == EOF) {
- buffer[buffer_idx] = '\0';
-
- state = START;
- token_idx = -1;
- ch_idx = 0;
- buffer_idx = 0;
- linelen = -1; /* Will be ZERO by follwing increment code */
- quote = 0;
- } else {
- buffer[buffer_idx++] = c;
- if (buffer_idx == (sizeof(buffer) - 1)) {
- buffer[buffer_idx] = '\0';
- buffer_idx = 0;
- }
- }
- break;
- case START:
- if (linelen == 0 && c == '#') {
- state = COMMENT;
- } else if (isspace(c)) {
- /* Ignore empty space */
- } else {
- state = TOKEN;
- ungetc(c, fp);
- }
- break;
- case SPACE:
- if (c == '=') {
- state = VALUE;
- } else if (!isspace(c)) {
- state = ERROR;
- }
- break;
- case VALUE:
- if (c == '"') {
- if (quote == 1) {
- buffer[buffer_idx] = '\0';
- state = END;
- } else if (buffer_idx != 0) {
- buffer[buffer_idx++] = c;
- if (buffer_idx >= sizeof(buffer)) {
- state = ERROR;
- }
- } else {
- quote = 1;
- }
- } else if (isspace(c)) {
- if (buffer_idx == 0) {
- /* Ignore */
- } else if (quote == 1) {
- buffer[buffer_idx++] = c;
- if (buffer_idx >= sizeof(buffer)) {
- state = ERROR;
- }
- } else {
- buffer[buffer_idx] = '\0';
- ungetc(c, fp);
- state = END;
- }
- } else {
- buffer[buffer_idx++] = c;
- if (buffer_idx >= sizeof(buffer)) {
- state = ERROR;
- }
- }
- break;
- case TOKEN:
- if (c == '=') {
- if (token_idx < 0) {
- state = ERROR;
- } else {
- state = VALUE;
- }
- } else if (isspace(c)) {
- if (token_idx < 0) {
- break;
- }
-
- if (token_handler[token_idx].name[ch_idx] != '\0') {
- state = ERROR;
- } else {
- state = SPACE;
- }
- } else {
- if (token_idx < 0) {
- /* Now start to find a token! */
- token_idx = 0;
- }
-
- if (token_handler[token_idx].name[ch_idx] == c) {
- ch_idx++;
- } else {
- ungetc(c, fp);
- while (ch_idx-- > 0)
- ungetc(token_handler[token_idx].name[ch_idx], fp);
-
- token_idx++;
-
- if (token_handler[token_idx].name == NULL) {
- state = ERROR;
- } else {
- ch_idx = 0;
- }
- }
- }
- break;
- case ERROR:
- if (c == CR || c == LF || c == EOF) {
- state = START;
- token_idx = -1;
- buffer_idx = 0;
- ch_idx = 0;
- linelen = -1;
- quote = 0;
- }
- break;
- case END:
- if (c == LF || c == CR || c == EOF) {
- state = START;
-
- if (token_idx >= 0 && token_handler[token_idx].handler) {
- buffer[buffer_idx] = '\0';
- token_handler[token_idx].handler(buffer);
- }
-
- token_idx = -1;
- ch_idx = 0;
- buffer_idx = 0;
- linelen = -1;
- quote = 0;
- /* Finish */
- } else if (isspace(c)) {
- /* ignore */
- } else {
- state = ERROR;
- }
- break;
- default:
- /* ?? */
- break;
- }
-
- linelen++;
- } while (c != EOF);
-
- if (fclose(fp) != 0) {
- ErrPrint("fclose: %s\n", strerror(errno));
- }
- return LB_STATUS_SUCCESS;
-}
-
-HAPI void conf_reset(void)
-{
- g_conf.width = CONF_DEFAULT_WIDTH;
- g_conf.height = CONF_DEFAULT_HEIGHT;
- g_conf.base_width = CONF_DEFAULT_BASE_WIDTH;
- g_conf.base_height = CONF_DEFAULT_BASE_HEIGHT;
- g_conf.minimum_period = CONF_DEFAULT_MINIMUM_PERIOD;
- g_conf.default_conf.period = CONF_DEFAULT_PERIOD;
- g_conf.minimum_space = CONF_DEFAULT_MINIMUM_SPACE;
- g_conf.default_packet_time = CONF_DEFAULT_PACKET_TIME;
- g_conf.slave_ttl = CONF_DEFAULT_SLAVE_TTL;
- g_conf.slave_activate_time = CONF_DEFAULT_SLAVE_ACTIVATE_TIME;
- g_conf.slave_relaunch_time = CONF_DEFAULT_SLAVE_RELAUNCH_TIME;
- g_conf.slave_relaunch_count = CONF_DEFAULT_SLAVE_RELAUNCH_COUNT;
- g_conf.max_log_line = CONF_DEFAULT_MAX_LOG_LINE;
- g_conf.max_log_file = CONF_DEFAULT_MAX_LOG_FILE;
- g_conf.sqlite_flush_max = CONF_DEFAULT_SQLITE_FLUSH_MAX;
- g_conf.ping_time = CONF_DEFAULT_PING_TIME;
- g_conf.slave_max_load = CONF_DEFAULT_SLAVE_MAX_LOAD;
- g_conf.use_sw_backend = CONF_DEFAULT_USE_SW_BACKEND;
- g_conf.debug_mode = CONF_DEFAULT_DEBUG_MODE;
- g_conf.overwrite_content = CONF_DEFAULT_OVERWRITE_CONTENT;
- g_conf.com_core_thread = CONF_DEFAULT_COM_CORE_THREAD;
- g_conf.use_xmonitor = CONF_DEFAULT_USE_XMONITOR;
- g_conf.scale_width_factor = CONF_DEFAULT_SCALE_WIDTH_FACTOR;
- g_conf.scale_height_factor = CONF_DEFAULT_SCALE_HEIGHT_FACTOR;
- g_conf.pd_request_timeout = CONF_DEFAULT_PD_REQUEST_TIMEOUT;
- g_conf.premultiplied = CONF_DEFAULT_PREMULTIPLIED;
- g_conf.default_conf.pixels = CONF_DEFAULT_PIXELS;
-
- if (g_conf.default_conf.script != CONF_DEFAULT_SCRIPT_TYPE) {
- DbgFree(g_conf.default_conf.script);
- g_conf.default_conf.script = (char *)CONF_DEFAULT_SCRIPT_TYPE;
- }
-
- if (g_conf.default_conf.abi != CONF_DEFAULT_ABI) {
- DbgFree(g_conf.default_conf.abi);
- g_conf.default_conf.abi = (char *)CONF_DEFAULT_ABI;
- }
-
- if (g_conf.default_conf.pd_group != CONF_DEFAULT_PD_GROUP) {
- DbgFree(g_conf.default_conf.pd_group);
- g_conf.default_conf.pd_group = (char *)CONF_DEFAULT_PD_GROUP;
- }
-
- if (g_conf.launch_key.name != CONF_DEFAULT_LAUNCH_BUNDLE_NAME) {
- DbgFree(g_conf.launch_key.name);
- g_conf.launch_key.name = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_NAME;
- }
-
- if (g_conf.launch_key.secured != CONF_DEFAULT_LAUNCH_BUNDLE_SECURED) {
- DbgFree(g_conf.launch_key.secured);
- g_conf.launch_key.secured = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_SECURED;
- }
-
- if (g_conf.launch_key.abi != CONF_DEFAULT_LAUNCH_BUNDLE_ABI) {
- DbgFree(g_conf.launch_key.abi);
- g_conf.launch_key.abi = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_ABI;
- }
-
- if (g_conf.empty_content != CONF_DEFAULT_EMPTY_CONTENT) {
- DbgFree(g_conf.empty_content);
- g_conf.empty_content = (char *)CONF_DEFAULT_EMPTY_CONTENT;
- }
-
- if (g_conf.empty_title != CONF_DEFAULT_EMPTY_TITLE) {
- DbgFree(g_conf.empty_title);
- g_conf.empty_title = (char *)CONF_DEFAULT_EMPTY_TITLE;
- }
-
- if (g_conf.default_content != CONF_DEFAULT_CONTENT) {
- DbgFree(g_conf.default_content);
- g_conf.default_content = (char *)CONF_DEFAULT_CONTENT;
- }
-
- if (g_conf.default_title != CONF_DEFAULT_TITLE) {
- DbgFree(g_conf.default_title);
- g_conf.default_title = (char *)CONF_DEFAULT_TITLE;
- }
-
- if (g_conf.replace_tag != CONF_DEFAULT_REPLACE_TAG) {
- DbgFree(g_conf.replace_tag);
- g_conf.replace_tag = (char *)CONF_DEFAULT_REPLACE_TAG;
- }
-
- if (g_conf.path.conf != CONF_DEFAULT_PATH_CONF) {
- DbgFree(g_conf.path.conf);
- g_conf.path.conf = (char *)CONF_DEFAULT_PATH_CONF;
- }
-
- if (g_conf.path.image != CONF_DEFAULT_PATH_IMAGE) {
- DbgFree(g_conf.path.image);
- g_conf.path.image = (char *)CONF_DEFAULT_PATH_IMAGE;
- }
-
- if (g_conf.path.slave_log != CONF_DEFAULT_PATH_LOG) {
- DbgFree(g_conf.path.slave_log);
- g_conf.path.slave_log = (char *)CONF_DEFAULT_PATH_LOG;
- }
-
- if (g_conf.path.reader != CONF_DEFAULT_PATH_READER) {
- DbgFree(g_conf.path.reader);
- g_conf.path.reader = (char *)CONF_DEFAULT_PATH_READER;
- }
-
- if (g_conf.path.always != CONF_DEFAULT_PATH_ALWAYS) {
- DbgFree(g_conf.path.always);
- g_conf.path.always = (char *)CONF_DEFAULT_PATH_ALWAYS;
- }
-
- if (g_conf.path.script != CONF_DEFAULT_PATH_SCRIPT) {
- DbgFree(g_conf.path.script);
- g_conf.path.script = (char *)CONF_DEFAULT_PATH_SCRIPT;
- }
-
- if (g_conf.path.root != CONF_DEFAULT_PATH_ROOT) {
- DbgFree(g_conf.path.root);
- g_conf.path.root = (char *)CONF_DEFAULT_PATH_ROOT;
- }
-
- if (g_conf.path.script_port != CONF_DEFAULT_PATH_SCRIPT_PORT) {
- DbgFree(g_conf.path.script_port);
- g_conf.path.script_port = (char *)CONF_DEFAULT_PATH_SCRIPT_PORT;
- }
-
- if (g_conf.path.db != CONF_DEFAULT_PATH_DB) {
- DbgFree(g_conf.path.db);
- g_conf.path.db = (char *)CONF_DEFAULT_PATH_DB;
- }
-
- if (g_conf.path.input != CONF_DEFAULT_PATH_INPUT) {
- DbgFree(g_conf.path.input);
- g_conf.path.input = (char *)CONF_DEFAULT_PATH_INPUT;
- }
-
- if (g_conf.provider_method != CONF_DEFAULT_PROVIDER_METHOD) {
- DbgFree(g_conf.provider_method);
- g_conf.provider_method = (char *)CONF_DEFAULT_PROVIDER_METHOD;
- }
-
- if (g_conf.emergency_disk != CONF_DEFAULT_EMERGENCY_DISK) {
- DbgFree(g_conf.emergency_disk);
- g_conf.emergency_disk = (char *)CONF_DEFAULT_EMERGENCY_DISK;
- }
- if (g_conf.services != CONF_DEFAULT_SERVICES) {
- DbgFree(g_conf.services);
- g_conf.services = (char *)CONF_DEFAULT_SERVICES;
- }
-}
+struct conf g_conf = {
+ .debug_mode = 0,
+ .slave_max_load = -1,
+};
/* End of a file */
diff --git a/src/critical_log.c b/src/critical_log.c
index 6bf10d6..2ff1e7d 100644
--- a/src/critical_log.c
+++ b/src/critical_log.c
@@ -28,7 +28,8 @@
#include <dlog.h>
#include <Eina.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
#else
#include "lite-errno.h"
#endif
@@ -59,16 +60,16 @@ static inline void rotate_log(void)
char *filename;
int namelen;
- if (s_info.nr_of_lines < MAX_LOG_LINE) {
+ if (s_info.nr_of_lines < DYNAMICBOX_CONF_MAX_LOG_LINE) {
return;
}
- s_info.file_id = (s_info.file_id + 1) % MAX_LOG_FILE;
+ s_info.file_id = (s_info.file_id + 1) % DYNAMICBOX_CONF_MAX_LOG_FILE;
- namelen = strlen(s_info.filename) + strlen(SLAVE_LOG_PATH) + 30;
+ namelen = strlen(s_info.filename) + strlen(DYNAMICBOX_CONF_LOG_PATH) + 30;
filename = malloc(namelen);
if (filename) {
- snprintf(filename, namelen, "%s/%d_%s.%d", SLAVE_LOG_PATH, s_info.file_id, s_info.filename, getpid());
+ snprintf(filename, namelen, "%s/%d_%s.%d", DYNAMICBOX_CONF_LOG_PATH, s_info.file_id, s_info.filename, getpid());
if (s_info.fp) {
if (fclose(s_info.fp) != 0) {
@@ -95,7 +96,7 @@ HAPI int critical_log(const char *func, int line, const char *fmt, ...)
int ret;
if (!s_info.fp) {
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
CRITICAL_SECTION_BEGIN(&s_info.cri_lock);
@@ -123,26 +124,26 @@ HAPI int critical_log_init(const char *name)
char *filename;
if (s_info.fp) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
s_info.filename = strdup(name);
if (!s_info.filename) {
ErrPrint("Failed to create a log file\n");
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- namelen = strlen(name) + strlen(SLAVE_LOG_PATH) + 30;
+ namelen = strlen(name) + strlen(DYNAMICBOX_CONF_LOG_PATH) + 30;
filename = malloc(namelen);
if (!filename) {
ErrPrint("Failed to create a log file\n");
DbgFree(s_info.filename);
s_info.filename = NULL;
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- snprintf(filename, namelen, "%s/%d_%s.%d", SLAVE_LOG_PATH, s_info.file_id, name, getpid());
+ snprintf(filename, namelen, "%s/%d_%s.%d", DYNAMICBOX_CONF_LOG_PATH, s_info.file_id, name, getpid());
s_info.fp = fopen(filename, "w+");
if (!s_info.fp) {
@@ -150,11 +151,11 @@ HAPI int critical_log_init(const char *name)
DbgFree(s_info.filename);
s_info.filename = NULL;
DbgFree(filename);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
DbgFree(filename);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
diff --git a/src/dead_monitor.c b/src/dead_monitor.c
index 313327f..bd2a0ee 100644
--- a/src/dead_monitor.c
+++ b/src/dead_monitor.c
@@ -23,6 +23,7 @@
#include <dlog.h>
#include <Eina.h>
+#include <dynamicbox_service.h> /* destroy_type for instance.h */
#include "slave_life.h"
#include "client_life.h"
diff --git a/src/event.c b/src/event.c
index 0604c11..64f46ca 100644
--- a/src/event.c
+++ b/src/event.c
@@ -29,7 +29,8 @@
#include <Eina.h>
#include <Ecore.h>
#include <dlog.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
#include "util.h"
#include "debug.h"
@@ -37,13 +38,18 @@
#include "event.h"
#define EVENT_CH 'e'
+#define EVENT_EXIT 'x'
-#if !defined(ABS_MT_TOOL_X)
-#define ABS_MT_TOOL_X 0x3c /* Center X tool position */
-#endif
+#define PRESSURE 10
+#define DELAY_COMPENSATOR 0.1f
-#if !defined(ABS_MT_TOOL_Y)
-#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */
+#if !defined(EVIOCSCLOCKID)
+/**
+ * @note
+ * I just copy this from the latest input.h file.
+ * It could not be compatible with the latest one.
+ */
+#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */
#endif
int errno;
@@ -58,13 +64,20 @@ static struct info {
Ecore_Fd_Handler *event_handler;
struct event_data event_data;
+ struct event_data skipped_event_data;
Eina_List *event_listener_list;
Eina_List *reactivate_list;
+
+ enum event_handler_activate_type event_handler_activated;
+ int timestamp_updated;
} s_info = {
+ .event_handler_activated = EVENT_HANDLER_DEACTIVATED,
.event_list = NULL,
.handle = -1,
.event_handler = NULL,
+ .evt_pipe = { -1, -1 },
+ .tcb_pipe = { -1, -1 },
.event_data = {
.x = -1,
@@ -74,105 +87,369 @@ static struct info {
.keycode = 0,
},
+ .skipped_event_data = {
+ .x = -1,
+ .y = -1,
+ .device = -1,
+ .slot = -1,
+ .keycode = 0,
+ },
+
.event_listener_list = NULL,
.reactivate_list = NULL,
+ .timestamp_updated = 0,
};
struct event_listener {
int (*event_cb)(enum event_state state, struct event_data *event, void *data);
void *cbdata;
+ enum event_state prev_state;
enum event_state state;
-#if defined(_USE_ECORE_TIME_GET)
double tv;
-#else
- struct timeval tv; /* Recording Activate / Deactivate time */
-#endif
int x; /* RelX */
int y; /* RelY */
};
-static int activate_thread(void);
+static int event_control_fini(void);
HAPI int event_init(void)
{
int ret;
+
ret = pthread_mutex_init(&s_info.event_list_lock, NULL);
if (ret != 0) {
ErrPrint("Mutex: %s\n", strerror(ret));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- return LB_STATUS_SUCCESS;
+
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int event_fini(void)
{
int ret;
+
+ event_control_fini();
+
ret = pthread_mutex_destroy(&s_info.event_list_lock);
if (ret != 0) {
ErrPrint("Mutex destroy failed: %s\n", strerror(ret));
}
- return LB_STATUS_SUCCESS;
+
+ return DBOX_STATUS_ERROR_NONE;
}
-static inline int processing_input_event(struct input_event *event)
+/*
+ * This function can be called Event Thread.
+ */
+static int push_event_item(void)
{
struct event_data *item;
- switch (event->type) {
- case EV_SYN:
- switch (event->code) {
- break;
- case SYN_CONFIG:
- break;
- case SYN_MT_REPORT:
- case SYN_REPORT:
- if (s_info.event_data.x < 0 || s_info.event_data.y < 0) {
- /* Waiting full event packet */
- break;
- }
+ if (s_info.event_data.x < 0 || s_info.event_data.y < 0) {
+ /* Waiting full event packet */
+ return DBOX_STATUS_ERROR_NONE;
+ }
- item = malloc(sizeof(*item));
- if (item) {
- char event_ch = EVENT_CH;
+ item = malloc(sizeof(*item));
+ if (item) {
+ char event_ch = EVENT_CH;
-#if defined(_USE_ECORE_TIME_GET)
- s_info.event_data.tv = ecore_time_get();
-#else
- if (gettimeofday(&s_info.event_data.tv, NULL) < 0) {
- ErrPrint("gettimeofday: %s\n", strerror(errno));
- }
+ memcpy(item, &s_info.event_data, sizeof(*item));
+
+ CRITICAL_SECTION_BEGIN(&s_info.event_list_lock);
+ s_info.event_list = eina_list_append(s_info.event_list, item);
+ CRITICAL_SECTION_END(&s_info.event_list_lock);
+
+ if (write(s_info.evt_pipe[PIPE_WRITE], &event_ch, sizeof(event_ch)) != sizeof(event_ch)) {
+ ErrPrint("Unable to send an event: %s\n", strerror(errno));
+ return DBOX_STATUS_ERROR_IO_ERROR;
+ }
+
+ /* Take a breathe */
+ pthread_yield();
+ } else {
+ ErrPrint("Heap: %s\n", strerror(errno));
+ }
+
+ return DBOX_STATUS_ERROR_NONE;
+}
+
+static double current_time_get(void)
+{
+ double ret;
+
+ if (DYNAMICBOX_CONF_USE_GETTIMEOFDAY) {
+ struct timeval tv;
+ if (gettimeofday(&tv, NULL) < 0) {
+ ErrPrint("gettimeofday: %s\n", strerror(errno));
+ ret = ecore_time_get();
+ } else {
+ ret = (double)tv.tv_sec + ((double)tv.tv_usec / 1000000.0f);
+ }
+ } else {
+ ret = ecore_time_get();
+ }
+
+ return ret;
+}
+
+static void update_timestamp(struct input_event *event)
+{
+ /*
+ * Input event uses timeval instead of timespec,
+ * but its value is same as MONOTIC CLOCK TIME
+ * So we should handles it properly.
+ */
+ s_info.event_data.tv = (double)event->time.tv_sec + (double)event->time.tv_usec / 1000000.0f;
+ s_info.timestamp_updated = 1;
+}
+
+static void processing_ev_abs(struct input_event *event)
+{
+ switch (event->code) {
+#if defined(ABS_X)
+ case ABS_X:
+ break;
+#endif
+#if defined(ABS_Y)
+ case ABS_Y:
+ break;
+#endif
+#if defined(ABS_Z)
+ case ABS_Z:
+ break;
+#endif
+#if defined(ABS_RX)
+ case ABS_RX:
+ break;
+#endif
+#if defined(ABS_RY)
+ case ABS_RY:
+ break;
+#endif
+#if defined(ABS_RZ)
+ case ABS_RZ:
+ break;
+#endif
+#if defined(ABS_THROTTLE)
+ case ABS_THROTTLE:
+ break;
+#endif
+#if defined(ABS_RUDDER)
+ case ABS_RUDDER:
+ break;
+#endif
+#if defined(ABS_WHEEL)
+ case ABS_WHEEL:
+ break;
+#endif
+#if defined(ABS_GAS)
+ case ABS_GAS:
+ break;
+#endif
+#if defined(ABS_BRAKE)
+ case ABS_BRAKE:
+ break;
+#endif
+#if defined(ABS_HAT0X)
+ case ABS_HAT0X:
+ break;
+#endif
+#if defined(ABS_HAT0Y)
+ case ABS_HAT0Y:
+ break;
+#endif
+#if defined(ABS_HAT1X)
+ case ABS_HAT1X:
+ break;
+#endif
+#if defined(ABS_HAT1Y)
+ case ABS_HAT1Y:
+ break;
+#endif
+#if defined(ABS_HAT2X)
+ case ABS_HAT2X:
+ break;
+#endif
+#if defined(ABS_HAT2Y)
+ case ABS_HAT2Y:
+ break;
+#endif
+#if defined(ABS_HAT3X)
+ case ABS_HAT3X:
+ break;
+#endif
+#if defined(ABS_HAT3Y)
+ case ABS_HAT3Y:
+ break;
+#endif
+#if defined(ABS_PRESSURE)
+ case ABS_PRESSURE:
+ break;
+#endif
+#if defined(ABS_TILT_X)
+ case ABS_TILT_X:
+ break;
+#endif
+#if defined(ABS_TILT_Y)
+ case ABS_TILT_Y:
+ break;
+#endif
+#if defined(ABS_TOOL_WIDTH)
+ case ABS_TOOL_WIDTH:
+ break;
+#endif
+#if defined(ABS_VOLUME)
+ case ABS_VOLUME:
+ break;
+#endif
+#if defined(ABS_MISC)
+ case ABS_MISC:
+ break;
+#endif
+#if defined(ABS_DISTANCE)
+ case ABS_DISTANCE:
+ s_info.event_data.distance = event->value;
+ break;
+#endif
+#if defined(ABS_MT_POSITION_X)
+ case ABS_MT_POSITION_X:
+ s_info.event_data.x = event->value;
+ break;
+#endif
+#if defined(ABS_MT_POSITION_Y)
+ case ABS_MT_POSITION_Y:
+ s_info.event_data.y = event->value;
+ break;
+#endif
+#if defined(ABS_MT_SLOT)
+ case ABS_MT_SLOT:
+ s_info.event_data.slot = event->value;
+ break;
+#endif
+#if defined(ABS_MT_TRACKING_ID)
+ case ABS_MT_TRACKING_ID:
+ s_info.event_data.device = event->value;
+ break;
+#endif
+#if defined(ABS_MT_TOUCH_MAJOR)
+ case ABS_MT_TOUCH_MAJOR:
+ s_info.event_data.touch.major = event->value;
+ break;
+#endif
+#if defined(ABS_MT_TOUCH_MINOR)
+ case ABS_MT_TOUCH_MINOR:
+ s_info.event_data.touch.minor = event->value;
+ break;
+#endif
+#if defined(ABS_MT_WIDTH_MAJOR)
+ case ABS_MT_WIDTH_MAJOR:
+ s_info.event_data.width.major = event->value;
+ break;
+#endif
+#if defined(ABS_MT_WIDTH_MINOR)
+ case ABS_MT_WIDTH_MINOR:
+ s_info.event_data.width.minor = event->value;
+ break;
+#endif
+#if defined(ABS_MT_ORIENTATION)
+ case ABS_MT_ORIENTATION:
+ s_info.event_data.orientation = event->value;
+ break;
#endif
+#if defined(ABS_MT_PRESSURE)
+ case ABS_MT_PRESSURE:
+ s_info.event_data.pressure = event->value;
+ break;
+#endif
+#if defined(ABS_MT_TOOL_X)
+ case ABS_MT_TOOL_X:
+ DbgPrint("TOOL_X: %d\n", event->value);
+ break;
+#endif
+#if defined(ABS_MT_TOOL_Y)
+ case ABS_MT_TOOL_Y:
+ DbgPrint("TOOL_Y: %d\n", event->value);
+ break;
+#endif
+#if defined(ABS_MT_TOOL_TYPE)
+ case ABS_MT_TOOL_TYPE:
+ DbgPrint("TOOL_TYPE: %d\n", event->value);
+ break;
+#endif
+#if defined(ABS_MT_BLOB_ID)
+ case ABS_MT_BLOB_ID:
+ DbgPrint("BLOB_ID: %d\n", event->value);
+ break;
+#endif
+#if defined(ABS_MT_DISTANCE)
+ case ABS_MT_DISTANCE:
+ DbgPrint("DISTANCE: %d\n", event->value);
+ break;
+#endif
+#if defined(ABS_MT_PALM)
+ case ABS_MT_PALM:
+ DbgPrint("PALM: %d\n", event->value);
+ break;
+#endif
+ default:
+#if defined(ABS_MT_COMPONENT)
+ if (event->code == ABS_MT_COMPONENT) {
+ DbgPrint("COMPONENT: %d\n", event->value);
+ break;
+ }
+#endif
+#if defined(ABS_MT_ANGLE)
+ if (event->code == ABS_MT_ANGLE) {
+ DbgPrint("ANGLE: %d\n", event->value);
+ break;
+ }
+#endif
+#if defined(ABS_MT_SUMSIZE)
+ if (event->code == ABS_MT_SUMSIZE) {
+ DbgPrint("SUMSIZE: %d\n", event->value);
+ break;
+ }
+#endif
+ break;
+ }
- memcpy(item, &s_info.event_data, sizeof(*item));
+ return;
+}
- CRITICAL_SECTION_BEGIN(&s_info.event_list_lock);
- s_info.event_list = eina_list_append(s_info.event_list, item);
- CRITICAL_SECTION_END(&s_info.event_list_lock);
+/*
+ * Called by Event Thread
+ */
+static inline int processing_input_event(struct input_event *event)
+{
+ int ret;
- if (write(s_info.evt_pipe[PIPE_WRITE], &event_ch, sizeof(event_ch)) != sizeof(event_ch)) {
- ErrPrint("Unable to send an event: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
- }
+ if (s_info.timestamp_updated == 0) {
+ update_timestamp(event);
+ }
- /* Take a breathe */
- pthread_yield();
- } else {
- ErrPrint("Heap: %s\n", strerror(errno));
+ switch (event->type) {
+ case EV_SYN:
+ switch (event->code) {
+ case SYN_CONFIG:
+ break;
+ case SYN_MT_REPORT:
+ case SYN_REPORT:
+ s_info.timestamp_updated = 0;
+ ret = push_event_item();
+ if (ret < 0) {
+ return ret;
}
- if (s_info.event_data.device < 0) {
- s_info.event_data.x = -1;
- s_info.event_data.y = -1;
- s_info.event_data.slot = -1;
- }
break;
- /*
+#if defined(SYN_DROPPED)
case SYN_DROPPED:
DbgPrint("EV_SYN, SYN_DROPPED\n");
break;
- */
+#endif
default:
DbgPrint("EV_SYN, 0x%x\n", event->code);
break;
@@ -183,66 +460,25 @@ static inline int processing_input_event(struct input_event *event)
s_info.event_data.keycode = event->value;
break;
case EV_REL:
+ DbgPrint("EV_REL: 0x%X\n", event->value);
break;
case EV_ABS:
- switch (event->code) {
- case ABS_DISTANCE:
- s_info.event_data.distance = event->value;
- break;
- case ABS_MT_TOOL_X:
- case ABS_MT_TOOL_Y:
- break;
- case ABS_MT_POSITION_X:
- s_info.event_data.x = event->value;
- break;
- case ABS_MT_POSITION_Y:
- s_info.event_data.y = event->value;
- break;
- case ABS_MT_SLOT:
- s_info.event_data.slot = event->value;
- break;
- case ABS_MT_TRACKING_ID:
- s_info.event_data.device = event->value;
- break;
- case ABS_MT_TOUCH_MAJOR:
- s_info.event_data.touch.major = event->value;
- break;
- case ABS_MT_TOUCH_MINOR:
- s_info.event_data.touch.minor = event->value;
- break;
- case ABS_MT_WIDTH_MAJOR:
- s_info.event_data.width.major = event->value;
- break;
- case ABS_MT_WIDTH_MINOR:
- s_info.event_data.width.minor = event->value;
- break;
- default:
- DbgPrint("EV_ABS, 0x%x\n", event->code);
- break;
- }
+ processing_ev_abs(event);
break;
case EV_MSC:
- break;
case EV_SW:
- break;
case EV_LED:
- break;
case EV_SND:
- break;
case EV_REP:
- break;
case EV_FF:
- break;
case EV_PWR:
- break;
case EV_FF_STATUS:
- break;
default:
DbgPrint("0x%X, 0x%X\n", event->type, event->code);
break;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static void *event_thread_main(void *data)
@@ -254,8 +490,7 @@ static void *event_thread_main(void *data)
int offset = 0;
int readsize = 0;
int fd;
-
- DbgPrint("Initiated\n");
+ char event_ch;
while (1) {
FD_ZERO(&set);
@@ -274,7 +509,7 @@ static void *event_thread_main(void *data)
break;
} else if (ret == 0) {
ErrPrint("Timeout expired\n");
- ret = LB_STATUS_ERROR_TIMEOUT;
+ ret = DBOX_STATUS_ERROR_TIMEOUT;
break;
}
@@ -282,7 +517,7 @@ static void *event_thread_main(void *data)
readsize = read(s_info.handle, ptr + offset, sizeof(input_event) - offset);
if (readsize < 0) {
ErrPrint("Unable to read device: %s / fd: %d / offset: %d / size: %d - %d\n", strerror(errno), s_info.handle, offset, sizeof(input_event), readsize);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
break;
}
@@ -290,48 +525,104 @@ static void *event_thread_main(void *data)
if (offset == sizeof(input_event)) {
offset = 0;
if (processing_input_event(&input_event) < 0) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
break;
}
}
- }
-
- if (FD_ISSET(s_info.tcb_pipe[PIPE_READ], &set)) {
- char event_ch;
+ /*
+ * If there is input event,
+ * Try again to get the input event.
+ */
+ } else if (!s_info.timestamp_updated && FD_ISSET(s_info.tcb_pipe[PIPE_READ], &set)) {
+ /*!
+ * Check the s_info.timestamp_updated flag.
+ * If it is not ZERO, it means, there is event to be processed.
+ * So we have to wait it to be finished.
+ */
if (read(s_info.tcb_pipe[PIPE_READ], &event_ch, sizeof(event_ch)) != sizeof(event_ch)) {
ErrPrint("Unable to read TCB_PIPE: %s\n", strerror(errno));
}
- ret = LB_STATUS_ERROR_CANCEL;
+ ret = DBOX_STATUS_ERROR_CANCEL;
break;
}
}
+ event_ch = EVENT_EXIT;
+ if (write(s_info.evt_pipe[PIPE_WRITE], &event_ch, sizeof(event_ch)) != sizeof(event_ch)) {
+ ErrPrint("Unable to send an event: %s\n", strerror(errno));
+ }
+
return (void *)ret;
}
+static int invoke_event_cb(struct event_listener *listener, struct event_data *item)
+{
+ struct event_data modified_item;
+
+ memcpy(&modified_item, item, sizeof(modified_item));
+
+ modified_item.x -= listener->x;
+ modified_item.y -= listener->y;
+
+ if (!DYNAMICBOX_CONF_USE_EVENT_TIME) {
+ item->tv = current_time_get();
+ }
+
+ if (listener->event_cb(listener->state, &modified_item, listener->cbdata) < 0) {
+ if (eina_list_data_find(s_info.event_listener_list, listener)) {
+ s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
+ DbgFree(listener);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
static inline void clear_all_listener_list(void)
{
struct event_listener *listener;
enum event_state next_state;
+ struct event_data event_data;
+ struct event_data *p_event_data;
Eina_List *l;
Eina_List *n;
- s_info.event_handler = NULL;
- CLOSE_PIPE(s_info.evt_pipe);
+ DbgPrint("event listeners: %d\n", eina_list_count(s_info.event_listener_list));
+
+ if (s_info.event_data.x == -1 || s_info.event_data.y == -1) {
+ memcpy(&s_info.event_data, &s_info.skipped_event_data, sizeof(s_info.event_data));
+ DbgPrint("Use skipped event: %dx%d\n", s_info.skipped_event_data.x, s_info.skipped_event_data.y);
+ }
while (s_info.event_listener_list) {
EINA_LIST_FOREACH_SAFE(s_info.event_listener_list, l, n, listener) {
+
+ DbgPrint("listener[%p] prev[%x] state[%x]\n", listener, listener->prev_state, listener->state);
+
switch (listener->state) {
case EVENT_STATE_ACTIVATE:
+ p_event_data = &s_info.event_data;
next_state = EVENT_STATE_ACTIVATED;
break;
case EVENT_STATE_ACTIVATED:
+ p_event_data = &s_info.event_data;
next_state = EVENT_STATE_DEACTIVATE;
break;
case EVENT_STATE_DEACTIVATE:
- next_state = EVENT_STATE_DEACTIVATED;
+ memcpy(&event_data, &s_info.event_data, sizeof(event_data));
+ p_event_data = &event_data;
+
+ if (listener->prev_state == EVENT_STATE_ACTIVATE) {
+ /* There is no move event. we have to emulate it */
+ DbgPrint ("Let's emulate move event (%dx%d)\n", p_event_data->x, p_event_data->y);
+ listener->state = EVENT_STATE_ACTIVATE;
+ next_state = EVENT_STATE_ACTIVATED;
+ } else {
+ next_state = EVENT_STATE_DEACTIVATED;
+ }
break;
case EVENT_STATE_DEACTIVATED:
default:
@@ -340,19 +631,32 @@ static inline void clear_all_listener_list(void)
continue;
}
- if (listener->event_cb(listener->state, &s_info.event_data, listener->cbdata) < 0) {
- if (eina_list_data_find(s_info.event_listener_list, listener)) {
- s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
- DbgFree(listener);
- continue;
- }
+ if (invoke_event_cb(listener, p_event_data)) {
+ continue;
}
+ /*!
+ * Changing state of listener will affect to the event collecting thread.
+ */
+ listener->prev_state = listener->state;
listener->state = next_state;
}
}
}
+static int compare_timestamp(struct event_listener *listener, struct event_data *item)
+{
+ int ret;
+ if (listener->tv > item->tv) {
+ ret = 1;
+ } else if (listener->tv < item->tv) {
+ ret = -1;
+ } else {
+ ret = 0;
+ }
+ return ret;
+}
+
static Eina_Bool event_read_cb(void *data, Ecore_Fd_Handler *handler)
{
int fd;
@@ -362,8 +666,6 @@ static Eina_Bool event_read_cb(void *data, Ecore_Fd_Handler *handler)
Eina_List *l;
Eina_List *n;
enum event_state next_state;
- enum event_state cur_state;
- struct event_data modified_item;
fd = ecore_main_fd_handler_fd_get(handler);
if (fd < 0) {
@@ -376,6 +678,37 @@ static Eina_Bool event_read_cb(void *data, Ecore_Fd_Handler *handler)
return ECORE_CALLBACK_CANCEL;
}
+ if (event_ch == EVENT_EXIT) {
+ /*!
+ * If the master gets event exit from evt_pipe,
+ * The event item list should be empty.
+ */
+ if (!s_info.event_list) {
+ /* This callback must has to clear all listeners in this case */
+ ecore_main_fd_handler_del(s_info.event_handler);
+ s_info.event_handler = NULL;
+ clear_all_listener_list();
+
+ EINA_LIST_FREE(s_info.reactivate_list, listener) {
+ s_info.event_listener_list = eina_list_append(s_info.event_listener_list, listener);
+ }
+ DbgPrint("Reactivate: %p\n", s_info.event_listener_list);
+
+ if (s_info.event_listener_list) {
+ if (event_activate_thread(EVENT_HANDLER_ACTIVATED_BY_MOUSE_SET) < 0) {
+ EINA_LIST_FREE(s_info.event_listener_list, listener) {
+ (void)listener->event_cb(EVENT_STATE_ERROR, NULL, listener->cbdata);
+ }
+ }
+ }
+
+ DbgPrint("Event read callback finshed (%p)\n", s_info.event_listener_list);
+ return ECORE_CALLBACK_CANCEL;
+ } else {
+ ErrPrint("Something goes wrong, the event_list is not flushed\n");
+ }
+ }
+
CRITICAL_SECTION_BEGIN(&s_info.event_list_lock);
item = eina_list_nth(s_info.event_list, 0);
if (item) {
@@ -383,108 +716,86 @@ static Eina_Bool event_read_cb(void *data, Ecore_Fd_Handler *handler)
}
CRITICAL_SECTION_END(&s_info.event_list_lock);
- if (item) {
- EINA_LIST_FOREACH_SAFE(s_info.event_listener_list, l, n, listener) {
- switch (listener->state) {
- case EVENT_STATE_ACTIVATE:
-#if defined(_USE_ECORE_TIME_GET)
- if (listener->tv > item->tv) {
- continue;
- }
-#else
- if (timercmp(&listener->tv, &item->tv, >)) {
- /* Ignore previous events before activating this listener */
- continue;
- }
-#endif
-
- next_state = EVENT_STATE_ACTIVATED;
- cur_state = listener->state;
- break;
- case EVENT_STATE_DEACTIVATE:
-#if defined(_USE_ECORE_TIME_GET)
- if (listener->tv > item->tv) {
- /* Consuming all events occurred while activating this listener */
- cur_state = EVENT_STATE_ACTIVATED;
- next_state = EVENT_STATE_ACTIVATED;
- break;
- }
-#else
- if (timercmp(&listener->tv, &item->tv, >)) {
- /* Consuming all events occurred while activating this listener */
- cur_state = EVENT_STATE_ACTIVATED;
- next_state = EVENT_STATE_ACTIVATED;
- break;
- }
-#endif
-
- cur_state = listener->state;
- next_state = EVENT_STATE_DEACTIVATED;
- break;
- case EVENT_STATE_ACTIVATED:
- cur_state = listener->state;
- next_state = listener->state;
- break;
- case EVENT_STATE_DEACTIVATED:
- default:
- /* Remove this from the list */
- /* Check the item again. the listener can be deleted from the callback */
- if (eina_list_data_find(s_info.event_listener_list, listener)) {
- s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
- DbgFree(listener);
- }
+ if (!item) {
+ ErrPrint("There is no remained event\n");
+ return ECORE_CALLBACK_RENEW;
+ }
+ EINA_LIST_FOREACH_SAFE(s_info.event_listener_list, l, n, listener) {
+ switch (listener->state) {
+ case EVENT_STATE_ACTIVATE:
+ if (compare_timestamp(listener, item) > 0) {
+ memcpy(&s_info.skipped_event_data, item, sizeof(s_info.skipped_event_data));
continue;
}
- memcpy(&modified_item, item, sizeof(modified_item));
- modified_item.x -= listener->x;
- modified_item.y -= listener->y;
-
- if (listener->event_cb(cur_state, &modified_item, listener->cbdata) < 0) {
- if (eina_list_data_find(s_info.event_listener_list, listener)) {
- s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
- DbgFree(listener);
+ next_state = EVENT_STATE_ACTIVATED;
+ break;
+ case EVENT_STATE_DEACTIVATE:
+ if (compare_timestamp(listener, item) < 0) {
+ /* Consuming all events occurred while activating this listener */
+ listener->prev_state = listener->state;
+ listener->state = EVENT_STATE_ACTIVATED;
+ if (invoke_event_cb(listener, item) == 1) {
+ /* listener is deleted */
continue;
}
- }
-
- listener->state = next_state;
- }
- DbgFree(item);
- }
+ listener->prev_state = listener->state;
+ listener->state = EVENT_STATE_DEACTIVATE;
+ } else {
+ memcpy(&s_info.skipped_event_data, item, sizeof(s_info.skipped_event_data));
+ }
- if (s_info.handle < 0 && !s_info.event_list) {
- /* This callback must has to clear all listeners in this case */
- clear_all_listener_list();
+ /* Do not terminate this listener, until this mets EVENT_EXIT */
+ continue;
+ case EVENT_STATE_ACTIVATED:
+ if (compare_timestamp(listener, item) > 0) {
+ DbgPrint("Drop event (%lf > %lf)\n", listener->tv, item->tv);
+ memcpy(&s_info.skipped_event_data, item, sizeof(s_info.skipped_event_data));
+ continue;
+ }
+ next_state = listener->state;
+ break;
+ case EVENT_STATE_DEACTIVATED:
+ default:
+ /* Remove this from the list */
+ /* Check the item again. the listener can be deleted from the callback */
+ if (eina_list_data_find(s_info.event_listener_list, listener)) {
+ s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
+ DbgFree(listener);
+ }
- EINA_LIST_FREE(s_info.reactivate_list, listener) {
- s_info.event_listener_list = eina_list_append(s_info.event_listener_list, listener);
+ continue;
}
- if (s_info.event_listener_list) {
- if (activate_thread() < 0) {
- EINA_LIST_FREE(s_info.event_listener_list, listener) {
- (void)listener->event_cb(EVENT_STATE_ERROR, NULL, listener->cbdata);
- }
- }
+ if (invoke_event_cb(listener, item) == 1) {
+ continue;
}
- return ECORE_CALLBACK_CANCEL;
+ listener->prev_state = listener->state;
+ listener->state = next_state;
}
+ DbgFree(item);
+
return ECORE_CALLBACK_RENEW;
}
-static int activate_thread(void)
+static int event_control_init(void)
{
int status;
+ unsigned int clockId = CLOCK_MONOTONIC;
+
+ DbgPrint("Initializing event controller\n");
+ if (s_info.handle != -1) {
+ return DBOX_STATUS_ERROR_NONE;
+ }
- s_info.handle = open(INPUT_PATH, O_RDONLY);
+ s_info.handle = open(DYNAMICBOX_CONF_INPUT_PATH, O_RDONLY);
if (s_info.handle < 0) {
ErrPrint("Unable to access the device: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (fcntl(s_info.handle, F_SETFD, FD_CLOEXEC) < 0) {
@@ -495,6 +806,13 @@ static int activate_thread(void)
ErrPrint("Error: %s\n", strerror(errno));
}
+ if (DYNAMICBOX_CONF_USE_EVENT_TIME && !DYNAMICBOX_CONF_USE_GETTIMEOFDAY) {
+ DbgPrint("Change timestamp to monotonic\n");
+ if (ioctl(s_info.handle, EVIOCSCLOCKID, &clockId) < 0) {
+ ErrPrint("Error: %s\n", strerror(errno));
+ }
+ }
+
status = pipe2(s_info.evt_pipe, O_CLOEXEC);
if (status < 0) {
ErrPrint("Unable to prepare evt pipe: %s\n", strerror(errno));
@@ -502,7 +820,7 @@ static int activate_thread(void)
ErrPrint("Failed to close handle: %s\n", strerror(errno));
}
s_info.handle = -1;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
status = pipe2(s_info.tcb_pipe, O_CLOEXEC);
@@ -513,39 +831,98 @@ static int activate_thread(void)
}
s_info.handle = -1;
CLOSE_PIPE(s_info.evt_pipe);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- s_info.event_handler = ecore_main_fd_handler_add(s_info.evt_pipe[PIPE_READ], ECORE_FD_READ, event_read_cb, NULL, NULL, NULL);
- if (!s_info.event_handler) {
+ return DBOX_STATUS_ERROR_NONE;
+}
+
+/*!
+ * This function must has to be called after event collecting thread is terminated
+ */
+static int event_control_fini(void)
+{
+ DbgPrint("Finalizing event controller\n");
+ if (s_info.handle != -1) {
if (close(s_info.handle) < 0) {
- ErrPrint("Failed to close handle: %s\n", strerror(errno));
+ ErrPrint("Unable to release the fd: %s\n", strerror(errno));
}
+
s_info.handle = -1;
+ }
- CLOSE_PIPE(s_info.tcb_pipe);
- CLOSE_PIPE(s_info.evt_pipe);
- return LB_STATUS_ERROR_FAULT;
+ if (!eina_list_count(s_info.event_list)) {
+ if (s_info.event_handler) {
+ ecore_main_fd_handler_del(s_info.event_handler);
+ s_info.event_handler = NULL;
+ }
+ clear_all_listener_list();
}
- status = pthread_create(&s_info.tid, NULL, event_thread_main, NULL);
- if (status != 0) {
- ErrPrint("Failed to initiate the thread: %s\n", strerror(status));
+ CLOSE_PIPE(s_info.tcb_pipe);
+ CLOSE_PIPE(s_info.evt_pipe);
+
+ return DBOX_STATUS_ERROR_NONE;
+}
+
+int event_activate_thread(enum event_handler_activate_type activate_type)
+{
+ int ret;
+
+ ret = event_control_init();
+ if (ret != DBOX_STATUS_ERROR_NONE) {
+ return ret;
+ }
+
+ if (s_info.event_handler) {
+ ErrPrint("Event handler is already registered\n");
+ return DBOX_STATUS_ERROR_ALREADY;
+ }
+
+ s_info.event_handler = ecore_main_fd_handler_add(s_info.evt_pipe[PIPE_READ], ECORE_FD_READ, event_read_cb, NULL, NULL, NULL);
+ if (!s_info.event_handler) {
+ ErrPrint("Failed to add monitor for EVT READ\n");
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ ret = pthread_create(&s_info.tid, NULL, event_thread_main, NULL);
+ if (ret != 0) {
+ ErrPrint("Failed to initiate the thread: %s\n", strerror(ret));
ecore_main_fd_handler_del(s_info.event_handler);
s_info.event_handler = NULL;
+ return DBOX_STATUS_ERROR_FAULT;
+ }
- if (close(s_info.handle) < 0) {
- ErrPrint("close: %s\n", strerror(errno));
- }
- s_info.handle = -1;
+ DbgPrint("Event handler activated\n");
+ s_info.event_handler_activated = activate_type;
+ return DBOX_STATUS_ERROR_NONE;
+}
- CLOSE_PIPE(s_info.tcb_pipe);
- CLOSE_PIPE(s_info.evt_pipe);
- return LB_STATUS_ERROR_FAULT;
+int event_deactivate_thread(enum event_handler_activate_type activate_type)
+{
+ int status;
+ void *ret;
+ char event_ch = EVENT_CH;
+
+ if (s_info.event_handler_activated != activate_type) {
+ ErrPrint("Event handler activate type is mismatched\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- DbgPrint("Event handler activated\n");
- return LB_STATUS_SUCCESS;
+ /* Terminating thread */
+ if (write(s_info.tcb_pipe[PIPE_WRITE], &event_ch, sizeof(event_ch)) != sizeof(event_ch)) {
+ ErrPrint("Unable to write tcb_pipe: %s\n", strerror(errno));
+ }
+
+ status = pthread_join(s_info.tid, &ret);
+ if (status != 0) {
+ ErrPrint("Failed to join a thread: %s\n", strerror(errno));
+ } else {
+ DbgPrint("Thread returns: %p\n", ret);
+ }
+
+ s_info.event_handler_activated = EVENT_HANDLER_DEACTIVATED;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!
@@ -554,36 +931,38 @@ static int activate_thread(void)
HAPI int event_activate(int x, int y, int (*event_cb)(enum event_state state, struct event_data *event, void *data), void *data)
{
struct event_listener *listener;
- int ret = LB_STATUS_SUCCESS;
+ int ret = DBOX_STATUS_ERROR_NONE;
+ Eina_List *l;
+
+ EINA_LIST_FOREACH(s_info.event_listener_list, l, listener) {
+ if (listener->event_cb == event_cb && listener->cbdata == data) {
+ ErrPrint("Already registered\n");
+ return DBOX_STATUS_ERROR_ALREADY;
+ }
+ }
listener = malloc(sizeof(*listener));
if (!listener) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
-#if defined(_USE_ECORE_TIME_GET)
- listener->tv = ecore_time_get();
-#else
- if (gettimeofday(&listener->tv, NULL) < 0) {
- ErrPrint("gettimeofday: %s\n", strerror(errno));
- DbgFree(listener);
- return LB_STATUS_ERROR_FAULT;
- }
-#endif
+ listener->tv = current_time_get() - DELAY_COMPENSATOR; // Let's use the previous event.
+ DbgPrint("Activated at: %lf (%dx%d)\n", listener->tv, x, y);
listener->event_cb = event_cb;
listener->cbdata = data;
+ listener->prev_state = EVENT_STATE_DEACTIVATED;
listener->state = EVENT_STATE_ACTIVATE;
listener->x = x;
listener->y = y;
- if (s_info.handle < 0) {
+ if (s_info.event_handler_activated == EVENT_HANDLER_DEACTIVATED) {
/*!
* \note
* We don't need to lock to access event_list here.
* If the _sinfo.handle is greater than 0, the event_list will not be touched.
- * But if the s_info.handle is less than 0, it means, there is not thread,
+ * But if the s_info.handle is less than 0, it means, there is no thread,
* so we can access the event_list without lock.
*/
if (s_info.event_list) {
@@ -592,7 +971,7 @@ HAPI int event_activate(int x, int y, int (*event_cb)(enum event_state state, st
} else {
s_info.event_listener_list = eina_list_append(s_info.event_listener_list, listener);
- if ((ret = activate_thread()) < 0) {
+ if ((ret = event_activate_thread(EVENT_HANDLER_ACTIVATED_BY_MOUSE_SET)) < 0) {
s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
DbgFree(listener);
}
@@ -604,68 +983,81 @@ HAPI int event_activate(int x, int y, int (*event_cb)(enum event_state state, st
return ret;
}
+HAPI int event_input_fd(void)
+{
+ event_control_init();
+ DbgPrint("Input event handler: %d\n", s_info.handle);
+ return s_info.handle;
+}
+
HAPI int event_deactivate(int (*event_cb)(enum event_state state, struct event_data *event, void *data), void *data)
{
- int status;
- void *ret;
- char event_ch = EVENT_CH;
struct event_listener *listener = NULL;
+ struct event_listener *item;
Eina_List *l;
int keep_thread = 0;
- EINA_LIST_FOREACH(s_info.event_listener_list, l, listener) {
- if (listener->event_cb == event_cb && listener->cbdata == data) {
- listener->state = EVENT_STATE_DEACTIVATE;
+ EINA_LIST_FOREACH(s_info.event_listener_list, l, item) {
+ if (item->event_cb == event_cb && item->cbdata == data) {
+ switch (item->state) {
+ case EVENT_STATE_ACTIVATE:
+ case EVENT_STATE_ACTIVATED:
+ item->prev_state = item->state;
+ item->state = EVENT_STATE_DEACTIVATE;
+ listener = item;
+ break;
+ default:
+ /* Item is already deactivated */
+ break;
+ }
}
- keep_thread += (listener->state == EVENT_STATE_ACTIVATE || listener->state == EVENT_STATE_ACTIVATED);
+ keep_thread += (item->state == EVENT_STATE_ACTIVATE || item->state == EVENT_STATE_ACTIVATED);
}
if (!listener) {
- ErrPrint("Listener is not registered\n");
- return LB_STATUS_ERROR_NOT_EXIST;
+ ErrPrint("Listener is not registered or already deactivated\n");
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
- if (s_info.handle < 0) {
+ if (s_info.event_handler_activated == EVENT_HANDLER_DEACTIVATED) {
ErrPrint("Event handler is not actiavated\n");
+ s_info.event_listener_list = eina_list_remove(s_info.event_listener_list, listener);
DbgFree(listener);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (keep_thread) {
- return LB_STATUS_SUCCESS;
+ DbgPrint("Keep thread\n");
+ return DBOX_STATUS_ERROR_NONE;
}
- /* Terminating thread */
- if (write(s_info.tcb_pipe[PIPE_WRITE], &event_ch, sizeof(event_ch)) != sizeof(event_ch)) {
- ErrPrint("Unable to write tcb_pipe: %s\n", strerror(errno));
- }
+ event_deactivate_thread(EVENT_HANDLER_ACTIVATED_BY_MOUSE_SET);
- status = pthread_join(s_info.tid, &ret);
- if (status != 0) {
- ErrPrint("Failed to join a thread: %s\n", strerror(errno));
- } else {
- DbgPrint("Thread returns: %p\n", ret);
- }
-
- if (close(s_info.handle) < 0) {
- ErrPrint("Unable to release the fd: %s\n", strerror(errno));
- }
+ return DBOX_STATUS_ERROR_NONE;
+}
- s_info.handle = -1;
- DbgPrint("Event handler deactivated\n");
+HAPI int event_reset_cbdata(int (*event_cb)(enum event_state state, struct event_data *event, void *data), void *data, void *new_data)
+{
+ struct event_listener *item;
+ Eina_List *l;
+ int updated = 0;
- CLOSE_PIPE(s_info.tcb_pipe);
+ EINA_LIST_FOREACH(s_info.event_listener_list, l, item) {
+ if (item->event_cb == event_cb && item->cbdata == data) {
+ item->cbdata = new_data;
+ updated++;
+ }
+ }
- if (!eina_list_count(s_info.event_list)) {
- ecore_main_fd_handler_del(s_info.event_handler);
- clear_all_listener_list();
+ EINA_LIST_FOREACH(s_info.reactivate_list, l, item) {
+ if (item->event_cb == event_cb && item->cbdata == data) {
+ item->cbdata = new_data;
+ updated++;
+ }
}
- s_info.event_data.x = -1;
- s_info.event_data.y = -1;
- s_info.event_data.slot = -1;
- return LB_STATUS_SUCCESS;
+ return updated;
}
HAPI int event_is_activated(void)
diff --git a/src/fault_manager.c b/src/fault_manager.c
index 1ec4398..4029229 100644
--- a/src/fault_manager.c
+++ b/src/fault_manager.c
@@ -23,8 +23,10 @@
#include <Eina.h>
#include <packet.h>
#include <dlog.h>
-#include <livebox-errno.h>
-#include <livebox-service.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_conf.h>
+#include <dynamicbox_cmd_list.h>
#include "util.h"
#include "debug.h"
@@ -63,7 +65,7 @@ static void clear_log_file(struct slave_node *slave)
char filename[BUFSIZ];
int ret;
- ret = snprintf(filename, sizeof(filename) - 1, "%s/slave.%d", SLAVE_LOG_PATH, slave_pid(slave));
+ ret = snprintf(filename, sizeof(filename) - 1, "%s/slave.%d", DYNAMICBOX_CONF_LOG_PATH, slave_pid(slave));
if (ret == sizeof(filename) - 1) {
filename[sizeof(filename) - 1] = '\0';
ErrPrint("filename buffer is overflowed\n");
@@ -81,7 +83,7 @@ static char *check_log_file(struct slave_node *slave)
FILE *fp;
char filename[BUFSIZ];
- snprintf(filename, sizeof(filename), "%s/slave.%d", SLAVE_LOG_PATH, slave_pid(slave));
+ snprintf(filename, sizeof(filename), "%s/slave.%d", DYNAMICBOX_CONF_LOG_PATH, slave_pid(slave));
fp = fopen(filename, "rt");
if (!fp) {
ErrPrint("No log file found [%s]\n", strerror(errno));
@@ -102,7 +104,7 @@ static char *check_log_file(struct slave_node *slave)
ErrPrint("Failed to unlink %s\n", filename);
}
- ptr = livebox_service_pkgname_by_libexec(libexec);
+ ptr = dynamicbox_service_dbox_id_by_libexec(libexec);
if (!ptr) {
ErrPrint("Failed to find the faulted package\n");
}
@@ -114,12 +116,13 @@ static char *check_log_file(struct slave_node *slave)
HAPI void fault_unicast_info(struct client_node *client, const char *pkgname, const char *filename, const char *func)
{
struct packet *packet;
+ unsigned int cmd = CMD_FAULT_PACKAGE;
if (!client || !pkgname || !filename || !func) {
return;
}
- packet = packet_create_noack("fault_package", "sss", pkgname, filename, func);
+ packet = packet_create_noack((const char *)&cmd, "sss", pkgname, filename, func);
if (!packet) {
return;
}
@@ -130,8 +133,9 @@ HAPI void fault_unicast_info(struct client_node *client, const char *pkgname, co
HAPI void fault_broadcast_info(const char *pkgname, const char *filename, const char *func)
{
struct packet *packet;
+ unsigned int cmd = CMD_FAULT_PACKAGE;
- packet = packet_create_noack("fault_package", "sss", pkgname, filename, func);
+ packet = packet_create_noack((const char *)&cmd, "sss", pkgname, filename, func);
if (!packet) {
ErrPrint("Failed to create a param\n");
return;
@@ -155,12 +159,12 @@ HAPI int fault_info_set(struct slave_node *slave, const char *pkgname, const cha
pkg = package_find(pkgname);
if (!pkg) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
ret = package_set_fault_info(pkg, util_timestamp(), id, func);
if (ret < 0) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
dump_fault_info(slave_name(slave), slave_pid(slave), pkgname, id, func);
@@ -172,7 +176,7 @@ HAPI int fault_info_set(struct slave_node *slave, const char *pkgname, const cha
* Update statistics
*/
s_info.fault_mark_count++;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int fault_check_pkgs(struct slave_node *slave)
@@ -273,7 +277,7 @@ HAPI int fault_check_pkgs(struct slave_node *slave)
} else {
DbgPrint("Treated as a false log\n");
dump_fault_info(
- slave_name(info->slave), slave_pid(info->slave), info->pkgname, filename, func);
+ slave_name(info->slave), slave_pid(info->slave), info->pkgname, filename, func);
}
s_info.call_list = eina_list_remove_list(s_info.call_list, l);
@@ -297,7 +301,7 @@ HAPI int fault_func_call(struct slave_node *slave, const char *pkgname, const ch
info = malloc(sizeof(*info));
if (!info) {
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
info->slave = slave;
@@ -305,14 +309,14 @@ HAPI int fault_func_call(struct slave_node *slave, const char *pkgname, const ch
info->pkgname = strdup(pkgname);
if (!info->pkgname) {
DbgFree(info);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
info->filename = strdup(filename);
if (!info->filename) {
DbgFree(info->pkgname);
DbgFree(info);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
info->func = strdup(func);
@@ -320,7 +324,7 @@ HAPI int fault_func_call(struct slave_node *slave, const char *pkgname, const ch
DbgFree(info->filename);
DbgFree(info->pkgname);
DbgFree(info);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
info->timestamp = util_timestamp();
@@ -328,7 +332,7 @@ HAPI int fault_func_call(struct slave_node *slave, const char *pkgname, const ch
s_info.call_list = eina_list_append(s_info.call_list, info);
s_info.fault_mark_count++;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int fault_func_ret(struct slave_node *slave, const char *pkgname, const char *filename, const char *func)
@@ -363,7 +367,7 @@ HAPI int fault_func_ret(struct slave_node *slave, const char *pkgname, const cha
return 0;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
/* End of a file */
diff --git a/src/file_service.c b/src/file_service.c
index f473ade..ce33d03 100644
--- a/src/file_service.c
+++ b/src/file_service.c
@@ -27,7 +27,8 @@
#include <dlog.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
#include <packet.h>
#include <com-core.h>
@@ -139,11 +140,11 @@ static inline int destroy_request_item(struct request_item *item)
case REQUEST_TYPE_PIXMAP:
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int request_file_handler(struct tcb *tcb, struct packet *packet, struct request_item **item)
@@ -152,11 +153,11 @@ static int request_file_handler(struct tcb *tcb, struct packet *packet, struct r
if (packet_get(packet, "s", &filename) != 1) {
ErrPrint("Invalid packet\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
*item = create_request_item(tcb, REQUEST_TYPE_FILE, (void *)filename);
- return *item ? LB_STATUS_SUCCESS : LB_STATUS_ERROR_MEMORY;
+ return *item ? DBOX_STATUS_ERROR_NONE : DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
static int request_pixmap_handler(struct tcb *tcb, struct packet *packet, struct request_item **item)
@@ -165,12 +166,12 @@ static int request_pixmap_handler(struct tcb *tcb, struct packet *packet, struct
if (packet_get(packet, "i", &pixmap) != 1) {
ErrPrint("Invalid packet\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (pixmap == 0) {
ErrPrint("pixmap is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
/*!
@@ -178,7 +179,7 @@ static int request_pixmap_handler(struct tcb *tcb, struct packet *packet, struct
* Attach to pixmap and copy its data to the client
*/
*item = create_request_item(tcb, REQUEST_TYPE_PIXMAP, (void *)pixmap);
- return *item ? LB_STATUS_SUCCESS : LB_STATUS_ERROR_MEMORY;
+ return *item ? DBOX_STATUS_ERROR_NONE : DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
static int request_shm_handler(struct tcb *tcb, struct packet *packet, struct request_item **item)
@@ -187,12 +188,12 @@ static int request_shm_handler(struct tcb *tcb, struct packet *packet, struct re
if (packet_get(packet, "i", &shm) != 1) {
ErrPrint("Invalid packet\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (shm < 0) {
ErrPrint("shm is not valid: %d\n", shm);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
/*!
@@ -200,7 +201,7 @@ static int request_shm_handler(struct tcb *tcb, struct packet *packet, struct re
* Attach to SHM and copy its buffer to the client
*/
*item = create_request_item(tcb, REQUEST_TYPE_SHM, (void *)shm);
- return *item ? LB_STATUS_SUCCESS : LB_STATUS_ERROR_MEMORY;
+ return *item ? DBOX_STATUS_ERROR_NONE : DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
/* SERVER THREAD */
@@ -236,13 +237,13 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
if (!packet) {
DbgPrint("TCB %p is disconnected\n", tcb);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
cmd = packet_command(packet);
if (!cmd) {
ErrPrint("Invalid packet. cmd is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (packet_type(packet)) {
@@ -279,7 +280,7 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
* \note
* After send the reply packet, file push thread can sending a file
*/
- if (ret != LB_STATUS_SUCCESS || !item) {
+ if (ret != DBOX_STATUS_ERROR_NONE || !item) {
break;
}
@@ -316,7 +317,7 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
break;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int send_file(int handle, const struct request_item *item)
@@ -445,7 +446,7 @@ errout:
static int send_buffer(int handle, const struct request_item *item)
{
- struct buffer *buffer;
+ dynamicbox_fb_t buffer;
struct burst_head *head;
struct burst_data *body;
char *data;
@@ -456,9 +457,9 @@ static int send_buffer(int handle, const struct request_item *item)
int type;
if (item->type == REQUEST_TYPE_SHM) {
- type = BUFFER_TYPE_SHM;
+ type = DBOX_FB_TYPE_SHM;
} else {
- type = BUFFER_TYPE_PIXMAP;
+ type = DBOX_FB_TYPE_PIXMAP;
}
buffer = buffer_handler_raw_open(type, (void *)item->data.shm);
@@ -615,19 +616,19 @@ int file_service_init(void)
if (s_info.svc_ctx) {
ErrPrint("Already initialized\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
if (pipe2(s_info.request_pipe, O_CLOEXEC) < 0) {
ErrPrint("pipe: %s\n", strerror(errno));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
status = pthread_mutex_init(&s_info.request_list_lock, NULL);
if (status != 0) {
ErrPrint("Failed to create lock: %s\n", strerror(status));
CLOSE_PIPE(s_info.request_pipe);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
s_info.svc_ctx = service_common_create(FILE_SERVICE_ADDR, service_thread_main, NULL);
@@ -640,7 +641,7 @@ int file_service_init(void)
}
CLOSE_PIPE(s_info.request_pipe);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
status = pthread_create(&s_info.push_thid, NULL, push_main, NULL);
@@ -656,7 +657,7 @@ int file_service_init(void)
}
CLOSE_PIPE(s_info.request_pipe);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/*!
@@ -665,7 +666,7 @@ int file_service_init(void)
*/
DbgPrint("Successfully initiated\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* MAIN THREAD */
@@ -677,7 +678,7 @@ int file_service_fini(void)
void *retval;
if (!s_info.svc_ctx) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ch = PUSH_EXIT;
@@ -713,7 +714,7 @@ int file_service_fini(void)
CLOSE_PIPE(s_info.request_pipe);
DbgPrint("Successfully Finalized\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/group.c b/src/group.c
index ff03488..21627cf 100644
--- a/src/group.c
+++ b/src/group.c
@@ -22,7 +22,7 @@
#include <dlog.h>
#include <Eina.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include "util.h"
#include "debug.h"
@@ -145,14 +145,14 @@ HAPI int group_add_option(struct context_item *item, const char *key, const char
option = calloc(1, sizeof(*option));
if (!option) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
option->key = strdup(key);
if (!option->key) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(option);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
option->value = strdup(value);
@@ -160,12 +160,12 @@ HAPI int group_add_option(struct context_item *item, const char *key, const char
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(option->key);
DbgFree(option);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
option->item = item;
item->option_list = eina_list_append(item->option_list, option);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int group_destroy_context_info(struct context_info *info)
@@ -175,7 +175,7 @@ HAPI int group_destroy_context_info(struct context_info *info)
category = info->category;
if (!category) {
ErrPrint("No category found\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
category->info_list = eina_list_remove(category->info_list, info);
@@ -183,7 +183,7 @@ HAPI int group_destroy_context_info(struct context_info *info)
del_context_item(info);
DbgFree(info->pkgname);
DbgFree(info);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI struct cluster *group_create_cluster(const char *name)
@@ -271,11 +271,11 @@ HAPI int group_destroy_cluster(struct cluster *cluster)
if (item == cluster) {
s_info.cluster_list = eina_list_remove_list(s_info.cluster_list, l);
destroy_cluster(cluster);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
static inline void destroy_category(struct category *category)
@@ -302,7 +302,7 @@ HAPI int group_destroy_category(struct category *category)
}
destroy_category(category);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI struct category *group_find_category(struct cluster *cluster, const char *name)
@@ -380,18 +380,18 @@ HAPI int group_context_item_add_data(struct context_item *item, const char *tag,
tmp = malloc(sizeof(*tmp));
if (!tmp) {
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
tmp->tag = strdup(tag);
if (!tmp->tag) {
DbgFree(tmp);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
tmp->data = data;
item->data_list = eina_list_append(item->data_list, tmp);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void *group_context_item_data(struct context_item *item, const char *tag)
@@ -481,7 +481,7 @@ static inline char *get_token(char *ptr, int *len)
return name;
}
-HAPI int group_add_livebox(const char *group, const char *pkgname)
+HAPI int group_add_dynamicbox(const char *group, const char *pkgname)
{
struct cluster *cluster;
struct category *category;
@@ -516,7 +516,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
name = get_token(ptr, &len);
if (!name) {
ErrPrint("Failed to get token\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/* cluster{category{context{key=value,key=value},context{key=value}}} */
/* cluster{category} */
@@ -531,7 +531,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!cluster) {
ErrPrint("Failed to get cluster\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CATEGORY;
@@ -546,14 +546,14 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!category) {
ErrPrint("Failed to get category\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
info = group_create_context_info(category, pkgname);
if (!info) {
ErrPrint("Failed to create ctx info\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CONTEXT_ITEM;
@@ -564,7 +564,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!item) {
ErrPrint("Failed to create a context item\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CONTEXT_OPTION_KEY;
@@ -575,7 +575,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
default:
ErrPrint("Invalid state\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
DbgFree(name);
@@ -599,7 +599,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (is_open != 0) {
ErrPrint("Invalid state\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
cluster = group_find_cluster(name);
if (!cluster) {
@@ -609,7 +609,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!cluster) {
ErrPrint("Failed to get cluster\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CATEGORY;
@@ -619,7 +619,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (is_open != 1) {
ErrPrint("Invalid state\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
category = group_find_category(cluster, name);
if (!category) {
@@ -629,14 +629,14 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!category) {
ErrPrint("Failed to get category\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
info = group_create_context_info(category, pkgname);
if (!info) {
ErrPrint("Failed to create ctx info\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CONTEXT_ITEM;
@@ -651,27 +651,27 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!category) {
ErrPrint("Failed to get category\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
info = group_create_context_info(category, pkgname);
if (!info) {
ErrPrint("Failed to create ctx info\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
} else if (is_open == 2) {
item = group_add_context_item(info, name);
if (!item) {
ErrPrint("Failed to create a context item\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CONTEXT_OPTION_KEY;
} else {
ErrPrint("Invalid state\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
break;
@@ -679,7 +679,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (is_open != 3) {
ErrPrint("Invalid state\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (group_add_option(item, key, name) < 0) {
@@ -695,7 +695,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
default:
ErrPrint("Invalid state (%s)\n", name);
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
DbgFree(name);
@@ -706,13 +706,13 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
} else if (*ptr == '=') {
if (is_open != 3 || state != CONTEXT_OPTION_KEY) {
ErrPrint("Invalid state\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
key = get_token(ptr, &len);
if (!key) {
ErrPrint("Failed to get token\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CONTEXT_OPTION_VALUE;
@@ -723,7 +723,7 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
} else if (*ptr == '}') {
if (is_open <= 0) {
ErrPrint("Invalid state\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
name = get_token(ptr, &len);
@@ -746,14 +746,14 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!category) {
ErrPrint("Failed to get category\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
info = group_create_context_info(category, pkgname);
if (!info) {
ErrPrint("Failed to create ctx info\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CLUSTER;
@@ -768,14 +768,14 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
if (!category) {
ErrPrint("Failed to get category\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
info = group_create_context_info(category, pkgname);
if (!info) {
ErrPrint("Failed to create ctx info\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
state = CLUSTER;
@@ -784,14 +784,14 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
} else {
ErrPrint("Invalid state\n");
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
break;
case CONTEXT_OPTION_VALUE:
if (is_open != 2) {
ErrPrint("Invalid state (%s)\n", name);
DbgFree(name);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (group_add_option(item, key, name) < 0) {
@@ -826,13 +826,13 @@ HAPI int group_add_livebox(const char *group, const char *pkgname)
DbgFree(key);
if (state != CLUSTER) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI int group_del_livebox(const char *pkgname)
+HAPI int group_del_dynamicbox(const char *pkgname)
{
Eina_List *l;
Eina_List *n;
@@ -862,12 +862,12 @@ HAPI int group_del_livebox(const char *pkgname)
}
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int group_init(void)
{
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int group_fini(void)
@@ -883,7 +883,7 @@ HAPI int group_fini(void)
destroy_cluster(cluster);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/instance.c b/src/instance.c
index 32e6b91..1bc8b23 100644
--- a/src/instance.c
+++ b/src/instance.c
@@ -25,8 +25,11 @@
#include <packet.h>
#include <com-core_packet.h>
-#include <livebox-service.h>
-#include <livebox-errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_cmd_list.h>
+#include <dynamicbox_buffer.h>
+#include <dynamicbox_conf.h>
#include "conf.h"
#include "util.h"
@@ -44,9 +47,9 @@
int errno;
static struct info {
- enum buffer_type env_buf_type;
+ enum dynamicbox_fb_type env_buf_type;
} s_info = {
- .env_buf_type = BUFFER_TYPE_FILE,
+ .env_buf_type = DBOX_FB_TYPE_FILE,
};
struct set_pinup_cbdata {
@@ -92,8 +95,9 @@ struct inst_info {
enum instance_state state; /*!< Represents current state */
enum instance_state requested_state; /*!< Only ACTIVATED | DESTROYED is acceptable */
- enum instance_destroy_type destroy_type;
+ dynamicbox_destroy_type_e destroy_type;
int changing_state;
+ int unicast_delete_event;
char *id;
double timestamp;
@@ -110,7 +114,7 @@ struct inst_info {
char *icon;
char *name;
- enum livebox_visible_state visible;
+ enum dynamicbox_visible_state visible;
struct {
int width;
@@ -122,8 +126,10 @@ struct inst_info {
struct buffer_info *buffer;
} canvas;
+ struct buffer_info **extra_buffer;
+
double period;
- } lb;
+ } dbox;
struct {
int width;
@@ -136,18 +142,20 @@ struct inst_info {
struct buffer_info *buffer;
} canvas;
+ struct buffer_info **extra_buffer;
+
struct client_node *owner;
int is_opened_for_reactivate;
int need_to_send_close_event;
char *pended_update_desc;
int pended_update_cnt;
- } pd;
+ } gbar;
struct client_node *client; /*!< Owner - creator */
Eina_List *client_list; /*!< Viewer list */
int refcnt;
- Ecore_Timer *update_timer; /*!< Only used for secured livebox */
+ Ecore_Timer *update_timer; /*!< Only used for secured dynamicbox */
enum event_process {
INST_EVENT_PROCESS_IDLE = 0x00,
@@ -208,7 +216,6 @@ static inline void timer_freeze(struct inst_info *inst)
#endif
}
-
static int viewer_deactivated_cb(struct client_node *client, void *data)
{
struct inst_info *inst = data;
@@ -216,41 +223,43 @@ static int viewer_deactivated_cb(struct client_node *client, void *data)
DbgPrint("%d is deleted from the list of viewer of %s(%s)\n", client_pid(client), package_name(instance_package(inst)), instance_id(inst));
if (!eina_list_data_find(inst->client_list, client)) {
ErrPrint("Not found\n");
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
inst->client_list = eina_list_remove(inst->client_list, client);
if (!inst->client_list && !inst->client) {
DbgPrint("Has no clients\n");
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_FAULT);
}
instance_unref(inst);
return -1; /*!< Remove this callback from the cb list */
}
-static int pause_livebox(struct inst_info *inst)
+static int pause_dynamicbox(struct inst_info *inst)
{
struct packet *packet;
+ unsigned int cmd = CMD_DBOX_PAUSE;
- packet = packet_create_noack("lb_pause", "ss", package_name(inst->info), inst->id);
+ packet = packet_create_noack((const char *)&cmd, "ss", package_name(inst->info), inst->id);
if (!packet) {
ErrPrint("Failed to create a new packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(package_slave(inst->info), package_name(inst->info), packet, 0);
}
/*! \TODO Wake up the freeze'd timer */
-static int resume_livebox(struct inst_info *inst)
+static int resume_dynamicbox(struct inst_info *inst)
{
struct packet *packet;
+ unsigned int cmd = CMD_DBOX_RESUME;
- packet = packet_create_noack("lb_resume", "ss", package_name(inst->info), inst->id);
+ packet = packet_create_noack((const char *)&cmd, "ss", package_name(inst->info), inst->id);
if (!packet) {
ErrPrint("Failed to create a new packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(package_slave(inst->info), package_name(inst->info), packet, 0);
@@ -261,19 +270,19 @@ static inline int instance_recover_visible_state(struct inst_info *inst)
int ret;
switch (inst->visible) {
- case LB_SHOW:
- case LB_HIDE:
+ case DBOX_SHOW:
+ case DBOX_HIDE:
instance_thaw_updator(inst);
ret = 0;
break;
- case LB_HIDE_WITH_PAUSE:
- ret = pause_livebox(inst);
+ case DBOX_HIDE_WITH_PAUSE:
+ ret = pause_dynamicbox(inst);
instance_freeze_updator(inst);
break;
default:
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
break;
}
@@ -285,6 +294,7 @@ static inline void instance_send_update_mode_event(struct inst_info *inst, int a
{
struct packet *packet;
const char *pkgname;
+ unsigned int cmd = CMD_RESULT_UPDATE_MODE;
if (!inst->info) {
ErrPrint("Instance info is not ready to use\n");
@@ -293,7 +303,7 @@ static inline void instance_send_update_mode_event(struct inst_info *inst, int a
pkgname = package_name(inst->info);
- packet = packet_create_noack("update_mode", "ssii", pkgname, inst->id, status, active_mode);
+ packet = packet_create_noack((const char *)&cmd, "ssii", pkgname, inst->id, status, active_mode);
if (packet) {
CLIENT_SEND_EVENT(inst, packet);
} else {
@@ -301,12 +311,26 @@ static inline void instance_send_update_mode_event(struct inst_info *inst, int a
}
}
-static inline void instance_send_resized_event(struct inst_info *inst, int is_pd, int w, int h, int status)
+static inline void instance_send_update_id(struct inst_info *inst)
{
struct packet *packet;
- enum lb_type lb_type;
+ unsigned int cmd = CMD_UPDATE_ID;
+
+ packet = packet_create_noack((const char *)&cmd, "ds", inst->timestamp, inst->id);
+ if (packet) {
+ CLIENT_SEND_EVENT(inst, packet);
+ } else {
+ ErrPrint("Failed to create update_id packet\n");
+ }
+}
+
+static inline void instance_send_resized_event(struct inst_info *inst, int is_gbar, int w, int h, int status)
+{
+ struct packet *packet;
+ enum dynamicbox_dbox_type dbox_type;
const char *pkgname;
const char *id;
+ unsigned int cmd = CMD_SIZE_CHANGED;
if (!inst->info) {
ErrPrint("Instance info is not ready to use\n");
@@ -315,16 +339,16 @@ static inline void instance_send_resized_event(struct inst_info *inst, int is_pd
pkgname = package_name(inst->info);
- lb_type = package_lb_type(inst->info);
- if (lb_type == LB_TYPE_SCRIPT) {
- id = script_handler_buffer_id(inst->lb.canvas.script);
- } else if (lb_type == LB_TYPE_BUFFER) {
- id = buffer_handler_id(inst->lb.canvas.buffer);
+ dbox_type = package_dbox_type(inst->info);
+ if (dbox_type == DBOX_TYPE_SCRIPT) {
+ id = script_handler_buffer_id(inst->dbox.canvas.script);
+ } else if (dbox_type == DBOX_TYPE_BUFFER) {
+ id = buffer_handler_id(inst->dbox.canvas.buffer);
} else {
id = "";
}
- packet = packet_create_noack("size_changed", "sssiiii", pkgname, inst->id, id, is_pd, w, h, status);
+ packet = packet_create_noack((const char *)&cmd, "sssiiii", pkgname, inst->id, id, is_gbar, w, h, status);
if (packet) {
CLIENT_SEND_EVENT(inst, packet);
} else {
@@ -339,17 +363,17 @@ static void update_mode_cb(struct slave_node *slave, const struct packet *packet
if (!packet) {
ErrPrint("Invalid packet\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
if (packet_get(packet, "i", &ret) != 1) {
ErrPrint("Invalid parameters\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
cbdata->inst->active_update = cbdata->active_update;
}
@@ -362,55 +386,56 @@ out:
HAPI int instance_unicast_created_event(struct inst_info *inst, struct client_node *client)
{
struct packet *packet;
- enum lb_type lb_type;
- enum pd_type pd_type;
- const char *lb_file;
- const char *pd_file;
+ enum dynamicbox_dbox_type dbox_type;
+ enum dynamicbox_gbar_type gbar_type;
+ const char *dbox_file;
+ const char *gbar_file;
+ unsigned int cmd = CMD_CREATED;
if (!client) {
client = inst->client;
if (!client) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
- lb_type = package_lb_type(inst->info);
- pd_type = package_pd_type(inst->info);
+ dbox_type = package_dbox_type(inst->info);
+ gbar_type = package_gbar_type(inst->info);
- if (lb_type == LB_TYPE_SCRIPT) {
- lb_file = script_handler_buffer_id(inst->lb.canvas.script);
- } else if (lb_type == LB_TYPE_BUFFER) {
- lb_file = buffer_handler_id(inst->lb.canvas.buffer);
+ if (dbox_type == DBOX_TYPE_SCRIPT) {
+ dbox_file = script_handler_buffer_id(inst->dbox.canvas.script);
+ } else if (dbox_type == DBOX_TYPE_BUFFER) {
+ dbox_file = buffer_handler_id(inst->dbox.canvas.buffer);
} else {
- lb_file = "";
+ dbox_file = "";
}
- if (pd_type == PD_TYPE_SCRIPT) {
- pd_file = script_handler_buffer_id(inst->pd.canvas.script);
- } else if (pd_type == PD_TYPE_BUFFER) {
- pd_file = buffer_handler_id(inst->pd.canvas.buffer);
+ if (gbar_type == GBAR_TYPE_SCRIPT) {
+ gbar_file = script_handler_buffer_id(inst->gbar.canvas.script);
+ } else if (gbar_type == GBAR_TYPE_BUFFER) {
+ gbar_file = buffer_handler_id(inst->gbar.canvas.buffer);
} else {
- pd_file = "";
+ gbar_file = "";
}
- packet = packet_create_noack("created", "dsssiiiisssssdiiiiidsi",
+ packet = packet_create_noack((const char *)&cmd, "dsssiiiisssssdiiiiidsi",
inst->timestamp,
package_name(inst->info), inst->id, inst->content,
- inst->lb.width, inst->lb.height,
- inst->pd.width, inst->pd.height,
+ inst->dbox.width, inst->dbox.height,
+ inst->gbar.width, inst->gbar.height,
inst->cluster, inst->category,
- lb_file, pd_file,
+ dbox_file, gbar_file,
package_auto_launch(inst->info),
- inst->lb.priority,
+ inst->dbox.priority,
package_size_list(inst->info),
!!inst->client,
package_pinup(inst->info),
- lb_type, pd_type,
- inst->lb.period, inst->title,
+ dbox_type, gbar_type,
+ inst->dbox.period, inst->title,
inst->is_pinned_up);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return client_rpc_async_request(client, packet);
@@ -424,80 +449,83 @@ static int update_client_list(struct client_node *client, void *data)
instance_add_client(inst, client);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int instance_broadcast_created_event(struct inst_info *inst)
{
struct packet *packet;
- enum lb_type lb_type;
- enum pd_type pd_type;
- const char *lb_file;
- const char *pd_file;
-
- lb_type = package_lb_type(inst->info);
- pd_type = package_pd_type(inst->info);
-
- if (lb_type == LB_TYPE_SCRIPT) {
- lb_file = script_handler_buffer_id(inst->lb.canvas.script);
- } else if (lb_type == LB_TYPE_BUFFER) {
- lb_file = buffer_handler_id(inst->lb.canvas.buffer);
+ enum dynamicbox_dbox_type dbox_type;
+ enum dynamicbox_gbar_type gbar_type;
+ const char *dbox_file;
+ const char *gbar_file;
+ unsigned int cmd = CMD_CREATED;
+
+ dbox_type = package_dbox_type(inst->info);
+ gbar_type = package_gbar_type(inst->info);
+
+ if (dbox_type == DBOX_TYPE_SCRIPT) {
+ dbox_file = script_handler_buffer_id(inst->dbox.canvas.script);
+ } else if (dbox_type == DBOX_TYPE_BUFFER) {
+ dbox_file = buffer_handler_id(inst->dbox.canvas.buffer);
} else {
- lb_file = "";
+ dbox_file = "";
}
- if (pd_type == PD_TYPE_SCRIPT) {
- pd_file = script_handler_buffer_id(inst->pd.canvas.script);
- } else if (pd_type == PD_TYPE_BUFFER) {
- pd_file = buffer_handler_id(inst->pd.canvas.buffer);
+ if (gbar_type == GBAR_TYPE_SCRIPT) {
+ gbar_file = script_handler_buffer_id(inst->gbar.canvas.script);
+ } else if (gbar_type == GBAR_TYPE_BUFFER) {
+ gbar_file = buffer_handler_id(inst->gbar.canvas.buffer);
} else {
- pd_file = "";
+ gbar_file = "";
}
if (!inst->client) {
client_browse_list(inst->cluster, inst->category, update_client_list, inst);
}
- packet = packet_create_noack("created", "dsssiiiisssssdiiiiidsi",
+ packet = packet_create_noack((const char *)&cmd, "dsssiiiisssssdiiiiidsi",
inst->timestamp,
package_name(inst->info), inst->id, inst->content,
- inst->lb.width, inst->lb.height,
- inst->pd.width, inst->pd.height,
+ inst->dbox.width, inst->dbox.height,
+ inst->gbar.width, inst->gbar.height,
inst->cluster, inst->category,
- lb_file, pd_file,
+ dbox_file, gbar_file,
package_auto_launch(inst->info),
- inst->lb.priority,
+ inst->dbox.priority,
package_size_list(inst->info),
!!inst->client,
package_pinup(inst->info),
- lb_type, pd_type,
- inst->lb.period, inst->title,
+ dbox_type, gbar_type,
+ inst->dbox.period, inst->title,
inst->is_pinned_up);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
+ inst->unicast_delete_event = 0;
return CLIENT_SEND_EVENT(inst, packet);
}
HAPI int instance_unicast_deleted_event(struct inst_info *inst, struct client_node *client, int reason)
{
struct packet *packet;
+ unsigned int cmd = CMD_DELETED;
if (!client) {
client = inst->client;
if (!client) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
}
- packet = packet_create_noack("deleted", "ssdi", package_name(inst->info), inst->id, inst->timestamp, reason);
+ packet = packet_create_noack((const char *)&cmd, "ssdi", package_name(inst->info), inst->id, inst->timestamp, reason);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
-
+
return client_rpc_async_request(client, packet);
}
@@ -508,13 +536,14 @@ static int instance_broadcast_deleted_event(struct inst_info *inst, int reason)
Eina_List *l;
Eina_List *n;
int ret;
+ unsigned int cmd = CMD_DELETED;
- packet = packet_create_noack("deleted", "ssdi", package_name(inst->info), inst->id, inst->timestamp, reason);
+ packet = packet_create_noack((const char *)&cmd, "ssdi", package_name(inst->info), inst->id, inst->timestamp, reason);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
-
+
ret = CLIENT_SEND_EVENT(inst, packet);
EINA_LIST_FOREACH_SAFE(inst->client_list, l, n, client) {
@@ -527,26 +556,27 @@ static int instance_broadcast_deleted_event(struct inst_info *inst, int reason)
static int client_deactivated_cb(struct client_node *client, void *data)
{
struct inst_info *inst = data;
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
- return LB_STATUS_SUCCESS;
+ instance_destroy(inst, DBOX_DESTROY_TYPE_FAULT);
+ return DBOX_STATUS_ERROR_NONE;
}
-static int send_pd_destroyed_to_client(struct inst_info *inst, int status)
+static int send_gbar_destroyed_to_client(struct inst_info *inst, int status)
{
struct packet *packet;
+ unsigned int cmd = CMD_GBAR_DESTROYED;
- if (!inst->pd.need_to_send_close_event && status != LB_STATUS_ERROR_FAULT) {
- ErrPrint("PD is not created\n");
- return LB_STATUS_ERROR_INVALID;
+ if (!inst->gbar.need_to_send_close_event && status != DBOX_STATUS_ERROR_FAULT) {
+ ErrPrint("GBAR is not created\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("pd_destroyed", "ssi", package_name(inst->info), inst->id, status);
+ packet = packet_create_noack((const char *)&cmd, "ssi", package_name(inst->info), inst->id, status);
if (!packet) {
ErrPrint("Failed to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- inst->pd.need_to_send_close_event = 0;
+ inst->gbar.need_to_send_close_event = 0;
return CLIENT_SEND_EVENT(inst, packet);
}
@@ -567,12 +597,37 @@ static inline void invoke_delete_callbacks(struct inst_info *inst)
inst->in_event_process &= ~INST_EVENT_PROCESS_DELETE;
}
+HAPI int instance_event_callback_is_added(struct inst_info *inst, enum instance_event type, int (*event_cb)(struct inst_info *inst, void *data), void *data)
+{
+ struct event_item *item;
+ Eina_List *l;
+
+ if (!event_cb) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ switch (type) {
+ case INSTANCE_EVENT_DESTROY:
+ EINA_LIST_FOREACH(inst->delete_event_list, l, item) {
+ if (item->event_cb == event_cb && item->data == data) {
+ return 1;
+ }
+ }
+
+ break;
+ default:
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ return 0;
+}
+
HAPI int instance_event_callback_add(struct inst_info *inst, enum instance_event type, int (*event_cb)(struct inst_info *inst, void *data), void *data)
{
struct event_item *item;
if (!event_cb) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (type) {
@@ -580,7 +635,7 @@ HAPI int instance_event_callback_add(struct inst_info *inst, enum instance_event
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->event_cb = event_cb;
@@ -590,10 +645,10 @@ HAPI int instance_event_callback_add(struct inst_info *inst, enum instance_event
inst->delete_event_list = eina_list_append(inst->delete_event_list, item);
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int instance_event_callback_del(struct inst_info *inst, enum instance_event type, int (*event_cb)(struct inst_info *inst, void *data), void *data)
@@ -612,7 +667,7 @@ HAPI int instance_event_callback_del(struct inst_info *inst, enum instance_event
inst->delete_event_list = eina_list_remove(inst->delete_event_list, item);
DbgFree(item);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -620,51 +675,86 @@ HAPI int instance_event_callback_del(struct inst_info *inst, enum instance_event
break;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
static inline void destroy_instance(struct inst_info *inst)
{
struct pkg_info *pkg;
- enum lb_type lb_type;
- enum pd_type pd_type;
+ enum dynamicbox_dbox_type dbox_type;
+ enum dynamicbox_gbar_type gbar_type;
struct slave_node *slave;
struct event_item *item;
struct tag_item *tag_item;
- (void)send_pd_destroyed_to_client(inst, LB_STATUS_SUCCESS);
+ (void)send_gbar_destroyed_to_client(inst, DBOX_STATUS_ERROR_NONE);
invoke_delete_callbacks(inst);
pkg = inst->info;
- lb_type = package_lb_type(pkg);
- pd_type = package_pd_type(pkg);
+ dbox_type = package_dbox_type(pkg);
+ gbar_type = package_gbar_type(pkg);
slave = package_slave(inst->info);
DbgPrint("Instance is destroyed (%p), slave(%p)\n", inst, slave);
- if (lb_type == LB_TYPE_SCRIPT) {
- (void)script_handler_unload(inst->lb.canvas.script, 0);
- if (script_handler_destroy(inst->lb.canvas.script) == (int)LB_STATUS_SUCCESS) {
- inst->lb.canvas.script = NULL;
+ if (dbox_type == DBOX_TYPE_SCRIPT) {
+ (void)script_handler_unload(inst->dbox.canvas.script, 0);
+ if (script_handler_destroy(inst->dbox.canvas.script) == (int)DBOX_STATUS_ERROR_NONE) {
+ inst->dbox.canvas.script = NULL;
+ }
+ } else if (dbox_type == DBOX_TYPE_BUFFER) {
+ (void)buffer_handler_unload(inst->dbox.canvas.buffer);
+ if (buffer_handler_destroy(inst->dbox.canvas.buffer) == (int)DBOX_STATUS_ERROR_NONE) {
+ inst->dbox.canvas.buffer = NULL;
}
- } else if (lb_type == LB_TYPE_BUFFER) {
- (void)buffer_handler_unload(inst->lb.canvas.buffer);
- if (buffer_handler_destroy(inst->lb.canvas.buffer) == (int)LB_STATUS_SUCCESS) {
- inst->lb.canvas.buffer = NULL;
+
+ if (inst->dbox.extra_buffer) {
+ int i;
+
+ for (i = 0; i < DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT; i++) {
+ if (!inst->dbox.extra_buffer[i]) {
+ continue;
+ }
+
+ (void)buffer_handler_unload(inst->dbox.extra_buffer[i]);
+ if (buffer_handler_destroy(inst->dbox.extra_buffer[i]) == (int)DBOX_STATUS_ERROR_NONE) {
+ inst->dbox.extra_buffer[i] = NULL;
+ }
+ }
+
+ DbgFree(inst->dbox.extra_buffer);
+ inst->dbox.extra_buffer = NULL;
}
}
- if (pd_type == PD_TYPE_SCRIPT) {
- (void)script_handler_unload(inst->pd.canvas.script, 1);
- if (script_handler_destroy(inst->pd.canvas.script) == (int)LB_STATUS_SUCCESS) {
- inst->pd.canvas.script = NULL;
+ if (gbar_type == GBAR_TYPE_SCRIPT) {
+ (void)script_handler_unload(inst->gbar.canvas.script, 1);
+ if (script_handler_destroy(inst->gbar.canvas.script) == (int)DBOX_STATUS_ERROR_NONE) {
+ inst->gbar.canvas.script = NULL;
+ }
+ } else if (gbar_type == GBAR_TYPE_BUFFER) {
+ (void)buffer_handler_unload(inst->gbar.canvas.buffer);
+ if (buffer_handler_destroy(inst->gbar.canvas.buffer) == (int)DBOX_STATUS_ERROR_NONE) {
+ inst->gbar.canvas.buffer = NULL;
}
- } else if (pd_type == PD_TYPE_BUFFER) {
- (void)buffer_handler_unload(inst->pd.canvas.buffer);
- if (buffer_handler_destroy(inst->pd.canvas.buffer) == (int)LB_STATUS_SUCCESS) {
- inst->pd.canvas.buffer = NULL;
+ if (inst->gbar.extra_buffer) {
+ int i;
+
+ for (i = 0; i < DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT; i++) {
+ if (!inst->gbar.extra_buffer[i]) {
+ continue;
+ }
+
+ (void)buffer_handler_unload(inst->gbar.extra_buffer[i]);
+ if (buffer_handler_destroy(inst->gbar.extra_buffer[i]) == (int)DBOX_STATUS_ERROR_NONE) {
+ inst->gbar.extra_buffer[i] = NULL;
+ }
+ }
+
+ DbgFree(inst->gbar.extra_buffer);
+ inst->gbar.extra_buffer = NULL;
}
}
@@ -686,6 +776,7 @@ static inline void destroy_instance(struct inst_info *inst)
EINA_LIST_FREE(inst->delete_event_list, item) {
DbgFree(item);
}
+
DbgFree(inst->icon);
DbgFree(inst->name);
DbgFree(inst->category);
@@ -716,27 +807,27 @@ static inline int fork_package(struct inst_info *inst, const char *pkgname)
info = package_find(pkgname);
if (!info) {
ErrPrint("%s is not found\n", pkgname);
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
- len = strlen(SCHEMA_FILE "%s%s_%d_%lf.png") + strlen(IMAGE_PATH) + strlen(package_name(info)) + 50;
+ len = strlen(SCHEMA_FILE "%s%s_%d_%lf.png") + strlen(DYNAMICBOX_CONF_IMAGE_PATH) + strlen(package_name(info)) + 50;
inst->id = malloc(len);
if (!inst->id) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- snprintf(inst->id, len, SCHEMA_FILE "%s%s_%d_%lf.png", IMAGE_PATH, package_name(info), client_pid(inst->client), inst->timestamp);
+ snprintf(inst->id, len, SCHEMA_FILE "%s%s_%d_%lf.png", DYNAMICBOX_CONF_IMAGE_PATH, package_name(info), client_pid(inst->client), inst->timestamp);
- instance_set_pd_size(inst, package_pd_width(info), package_pd_height(info));
+ instance_set_gbar_size(inst, package_gbar_width(info), package_gbar_height(info));
- inst->lb.period = package_period(info);
+ inst->dbox.period = package_period(info);
inst->info = info;
- if (package_secured(info)) {
- if (inst->lb.period > 0.0f) {
- inst->update_timer = util_timer_add(inst->lb.period, update_timer_cb, inst);
+ if (package_secured(info) || (DBOX_IS_INHOUSE(package_abi(info)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL)) {
+ if (inst->dbox.period > 0.0f) {
+ inst->update_timer = util_timer_add(inst->dbox.period, update_timer_cb, inst);
if (!inst->update_timer) {
ErrPrint("Failed to add an update timer for instance %s\n", inst->id);
} else {
@@ -747,7 +838,7 @@ static inline int fork_package(struct inst_info *inst, const char *pkgname)
}
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI struct inst_info *instance_create(struct client_node *client, double timestamp, const char *pkgname, const char *content, const char *cluster, const char *category, double period, int width, int height)
@@ -761,8 +852,8 @@ HAPI struct inst_info *instance_create(struct client_node *client, double timest
}
inst->timestamp = timestamp;
- inst->lb.width = width;
- inst->lb.height = height;
+ inst->dbox.width = width;
+ inst->dbox.height = height;
inst->content = strdup(content);
if (!inst->content) {
@@ -788,7 +879,7 @@ HAPI struct inst_info *instance_create(struct client_node *client, double timest
return NULL;
}
- inst->title = strdup(DEFAULT_TITLE); /*!< Use the DEFAULT Title "" */
+ inst->title = strdup(DYNAMICBOX_CONF_DEFAULT_TITLE); /*!< Use the DEFAULT Title "" */
if (!inst->title) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(inst->category);
@@ -815,20 +906,35 @@ HAPI struct inst_info *instance_create(struct client_node *client, double timest
return NULL;
}
+ inst->unicast_delete_event = 1;
inst->state = INST_INIT;
inst->requested_state = INST_INIT;
+ if (DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT) {
+ inst->dbox.extra_buffer = calloc(DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT, sizeof(*inst->dbox.extra_buffer));
+ if (!inst->dbox.extra_buffer) {
+ ErrPrint("Failed to allocate buffer for dbox extra buffer\n");
+ }
+
+ inst->gbar.extra_buffer = calloc(DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT, sizeof(*inst->gbar.extra_buffer));
+ if (!inst->gbar.extra_buffer) {
+ ErrPrint("Failed to allocate buffer for gbar extra buffer\n");
+ }
+ }
instance_ref(inst);
if (package_add_instance(inst->info, inst) < 0) {
- instance_destroy(inst, INSTANCE_DESTROY_FAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_FAULT);
return NULL;
}
slave_load_instance(package_slave(inst->info));
+ // Before activate an instance, update its id first for client
+ instance_send_update_id(inst);
+
if (instance_activate(inst) < 0) {
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_FAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_FAULT);
inst = NULL;
}
@@ -913,21 +1019,25 @@ static void deactivate_cb(struct slave_node *slave, const struct packet *packet,
instance_reactivate(inst);
break;
case INST_DESTROYED:
- instance_broadcast_deleted_event(inst, ret);
+ if (inst->unicast_delete_event) {
+ instance_unicast_deleted_event(inst, NULL, ret);
+ } else {
+ instance_broadcast_deleted_event(inst, ret);
+ }
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
default:
/*!< Unable to reach here */
break;
}
break;
- case LB_STATUS_ERROR_INVALID:
+ case DBOX_STATUS_ERROR_INVALID_PARAMETER:
/*!
* \note
* Slave has no instance of this package.
*/
- case LB_STATUS_ERROR_NOT_EXIST:
+ case DBOX_STATUS_ERROR_NOT_EXIST:
/*!
* \note
* This instance's previous state is only can be the INST_ACTIVATED.
@@ -944,25 +1054,28 @@ static void deactivate_cb(struct slave_node *slave, const struct packet *packet,
/*!
* \note
* Failed to unload this instance.
- * This is not possible, slave will always return LB_STATUS_ERROR_NOT_EXIST, LB_STATUS_ERROR_INVALID, or 0.
+ * This is not possible, slave will always return DBOX_STATUS_ERROR_NOT_EXIST, DBOX_STATUS_ERROR_INVALID_PARAMETER, or 0.
* but care this exceptional case.
*/
instance_broadcast_deleted_event(inst, ret);
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
}
out:
- inst->changing_state = 0;
+ inst->changing_state--;
+ if (inst->changing_state < 0) {
+ ErrPrint("Changing state is not correct: %d\n", inst->changing_state);
+ }
instance_unref(inst);
}
static void reactivate_cb(struct slave_node *slave, const struct packet *packet, void *data)
{
struct inst_info *inst = data;
- enum lb_type lb_type;
- enum pd_type pd_type;
+ enum dynamicbox_dbox_type dbox_type;
+ enum dynamicbox_gbar_type gbar_type;
int ret;
const char *content;
const char *title;
@@ -1022,12 +1135,12 @@ static void reactivate_cb(struct slave_node *slave, const struct packet *packet,
inst->state = INST_ACTIVATED;
switch (inst->requested_state) {
case INST_DESTROYED:
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
case INST_ACTIVATED:
inst->is_pinned_up = is_pinned_up;
- lb_type = package_lb_type(inst->info);
- pd_type = package_pd_type(inst->info);
+ dbox_type = package_dbox_type(inst->info);
+ gbar_type = package_gbar_type(inst->info);
/*!
* \note
@@ -1041,64 +1154,64 @@ static void reactivate_cb(struct slave_node *slave, const struct packet *packet,
* Just leave it only for now.
*/
- if (lb_type == LB_TYPE_SCRIPT && inst->lb.canvas.script) {
- script_handler_load(inst->lb.canvas.script, 0);
- } else if (lb_type == LB_TYPE_BUFFER && inst->lb.canvas.buffer) {
- buffer_handler_load(inst->lb.canvas.buffer);
+ if (dbox_type == DBOX_TYPE_SCRIPT && inst->dbox.canvas.script) {
+ script_handler_load(inst->dbox.canvas.script, 0);
+ } else if (dbox_type == DBOX_TYPE_BUFFER && inst->dbox.canvas.buffer) {
+ buffer_handler_load(inst->dbox.canvas.buffer);
}
- if (pd_type == PD_TYPE_SCRIPT && inst->pd.canvas.script && inst->pd.is_opened_for_reactivate) {
+ if (gbar_type == GBAR_TYPE_SCRIPT && inst->gbar.canvas.script && inst->gbar.is_opened_for_reactivate) {
double x, y;
/*!
* \note
- * We should to send a request to open a PD to slave.
- * if we didn't send it, the slave will not recognize the state of a PD.
- * We have to keep the view of PD seamless even if the livebox is reactivated.
+ * We should to send a request to open a GBAR to slave.
+ * if we didn't send it, the slave will not recognize the state of a GBAR.
+ * We have to keep the view of GBAR seamless even if the dynamicbox is reactivated.
* To do that, send open request from here.
*/
- ret = instance_slave_open_pd(inst, NULL);
- instance_slave_get_pd_pos(inst, &x, &y);
+ ret = instance_slave_open_gbar(inst, NULL);
+ instance_slave_get_gbar_pos(inst, &x, &y);
/*!
* \note
- * In this case, master already loads the PD script.
- * So just send the pd,show event to the slave again.
+ * In this case, master already loads the GBAR script.
+ * So just send the gbar,show event to the slave again.
*/
- ret = instance_signal_emit(inst, "pd,show", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
- } else if (pd_type == PD_TYPE_BUFFER && inst->pd.canvas.buffer && inst->pd.is_opened_for_reactivate) {
+ ret = instance_signal_emit(inst, "gbar,show", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
+ } else if (gbar_type == GBAR_TYPE_BUFFER && inst->gbar.canvas.buffer && inst->gbar.is_opened_for_reactivate) {
double x, y;
- buffer_handler_load(inst->pd.canvas.buffer);
- instance_slave_get_pd_pos(inst, &x, &y);
+ buffer_handler_load(inst->gbar.canvas.buffer);
+ instance_slave_get_gbar_pos(inst, &x, &y);
/*!
* \note
- * We should to send a request to open a PD to slave.
- * if we didn't send it, the slave will not recognize the state of a PD.
- * We have to keep the view of PD seamless even if the livebox is reactivated.
+ * We should to send a request to open a GBAR to slave.
+ * if we didn't send it, the slave will not recognize the state of a GBAR.
+ * We have to keep the view of GBAR seamless even if the dynamicbox is reactivated.
* To do that, send open request from here.
*/
- ret = instance_slave_open_pd(inst, NULL);
+ ret = instance_slave_open_gbar(inst, NULL);
/*!
* \note
- * In this case, just send the pd,show event for keeping the compatibility
+ * In this case, just send the gbar,show event for keeping the compatibility
*/
- ret = instance_signal_emit(inst, "pd,show", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
+ ret = instance_signal_emit(inst, "gbar,show", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
}
/*!
* \note
* After create an instance again,
- * Send resize request to the livebox.
- * instance_resize(inst, inst->lb.width, inst->lb.height);
+ * Send resize request to the dynamicbox.
+ * instance_resize(inst, inst->dbox.width, inst->dbox.height);
*
- * renew request will resize the livebox while creating it again
+ * renew request will resize the dynamicbox while creating it again
*/
/*!
* \note
- * This function will check the visiblity of a livebox and
+ * This function will check the visiblity of a dynamicbox and
* make decision whether it thaw the update timer or not.
*/
instance_recover_visible_state(inst);
@@ -1109,12 +1222,15 @@ static void reactivate_cb(struct slave_node *slave, const struct packet *packet,
default:
instance_broadcast_deleted_event(inst, ret);
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
}
out:
- inst->changing_state = 0;
+ inst->changing_state--;
+ if (inst->changing_state < 0) {
+ ErrPrint("Changing state is not correct: %d\n", inst->changing_state);
+ }
instance_unref(inst);
}
@@ -1156,11 +1272,11 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v
switch (ret) {
case 1: /*!< need to create */
- if (util_free_space(IMAGE_PATH) > MINIMUM_SPACE) {
+ if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) > DYNAMICBOX_CONF_MINIMUM_SPACE) {
struct inst_info *new_inst;
new_inst = instance_create(inst->client, util_timestamp(), package_name(inst->info),
- inst->content, inst->cluster, inst->category,
- inst->lb.period, 0, 0);
+ inst->content, inst->cluster, inst->category,
+ inst->dbox.period, 0, 0);
if (!new_inst) {
ErrPrint("Failed to create a new instance\n");
}
@@ -1174,58 +1290,59 @@ 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_size(inst, w, h);
- instance_set_lb_info(inst, priority, content, title);
+ instance_set_dbox_size(inst, w, h);
+ instance_set_dbox_info(inst, priority, content, title);
inst->state = INST_ACTIVATED;
switch (inst->requested_state) {
case INST_DESTROYED:
- instance_unicast_deleted_event(inst, NULL, ret);
- instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ /**
+ * In this case, we should destroy the instance.
+ */
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
case INST_ACTIVATED:
default:
- /*!
- * \note
- * LB should be created at the create time
+ /**
+ * @note
+ * DBOX should be created at the create time
*/
inst->is_pinned_up = is_pinned_up;
- if (package_lb_type(inst->info) == LB_TYPE_SCRIPT) {
- if (inst->lb.width == 0 && inst->lb.height == 0) {
- livebox_service_get_size(LB_SIZE_TYPE_1x1, &inst->lb.width, &inst->lb.height);
+ if (package_dbox_type(inst->info) == DBOX_TYPE_SCRIPT) {
+ if (inst->dbox.width == 0 && inst->dbox.height == 0) {
+ dynamicbox_service_get_size(DBOX_SIZE_TYPE_1x1, &inst->dbox.width, &inst->dbox.height);
}
- inst->lb.canvas.script = script_handler_create(inst,
- package_lb_path(inst->info),
- package_lb_group(inst->info),
- inst->lb.width, inst->lb.height);
+ inst->dbox.canvas.script = script_handler_create(inst,
+ package_dbox_path(inst->info),
+ package_dbox_group(inst->info),
+ inst->dbox.width, inst->dbox.height);
- if (!inst->lb.canvas.script) {
- ErrPrint("Failed to create LB\n");
+ if (!inst->dbox.canvas.script) {
+ ErrPrint("Failed to create DBOX\n");
} else {
- script_handler_load(inst->lb.canvas.script, 0);
+ script_handler_load(inst->dbox.canvas.script, 0);
}
- } else if (package_lb_type(inst->info) == LB_TYPE_BUFFER) {
- instance_create_lb_buffer(inst, DEFAULT_PIXELS);
+ } else if (package_dbox_type(inst->info) == DBOX_TYPE_BUFFER) {
+ instance_create_dbox_buffer(inst, DYNAMICBOX_CONF_DEFAULT_PIXELS);
}
- if (package_pd_type(inst->info) == PD_TYPE_SCRIPT) {
- if (inst->pd.width == 0 && inst->pd.height == 0) {
- instance_set_pd_size(inst, package_pd_width(inst->info), package_pd_height(inst->info));
+ if (package_gbar_type(inst->info) == GBAR_TYPE_SCRIPT) {
+ if (inst->gbar.width == 0 && inst->gbar.height == 0) {
+ instance_set_gbar_size(inst, package_gbar_width(inst->info), package_gbar_height(inst->info));
}
- inst->pd.canvas.script = script_handler_create(inst,
- package_pd_path(inst->info),
- package_pd_group(inst->info),
- inst->pd.width, inst->pd.height);
+ inst->gbar.canvas.script = script_handler_create(inst,
+ package_gbar_path(inst->info),
+ package_gbar_group(inst->info),
+ inst->gbar.width, inst->gbar.height);
- if (!inst->pd.canvas.script) {
- ErrPrint("Failed to create PD\n");
+ if (!inst->gbar.canvas.script) {
+ ErrPrint("Failed to create GBAR\n");
}
- } else if (package_pd_type(inst->info) == PD_TYPE_BUFFER) {
- instance_create_pd_buffer(inst, DEFAULT_PIXELS);
+ } else if (package_gbar_type(inst->info) == GBAR_TYPE_BUFFER) {
+ instance_create_gbar_buffer(inst, DYNAMICBOX_CONF_DEFAULT_PIXELS);
}
instance_broadcast_created_event(inst);
@@ -1237,59 +1354,103 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v
default:
instance_unicast_deleted_event(inst, NULL, ret);
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
}
out:
- inst->changing_state = 0;
+ inst->changing_state--;
+ if (inst->changing_state < 0) {
+ ErrPrint("Changing state is not correct: %d\n", inst->changing_state);
+ }
instance_unref(inst);
}
-HAPI int instance_create_pd_buffer(struct inst_info *inst, int pixels)
+HAPI int instance_create_gbar_buffer(struct inst_info *inst, int pixels)
+{
+ if (inst->gbar.width == 0 && inst->gbar.height == 0) {
+ instance_set_gbar_size(inst, package_gbar_width(inst->info), package_gbar_height(inst->info));
+ }
+
+ if (!inst->gbar.canvas.buffer) {
+ inst->gbar.canvas.buffer = buffer_handler_create(inst, s_info.env_buf_type, inst->gbar.width, inst->gbar.height, pixels);
+ if (!inst->gbar.canvas.buffer) {
+ ErrPrint("Failed to create GBAR Buffer\n");
+ }
+ }
+
+ return !!inst->gbar.canvas.buffer;
+}
+
+HAPI int instance_create_gbar_extra_buffer(struct inst_info *inst, int pixels, int idx)
{
- if (inst->pd.width == 0 && inst->pd.height == 0) {
- instance_set_pd_size(inst, package_pd_width(inst->info), package_pd_height(inst->info));
+ if (!inst->gbar.extra_buffer) {
+ return 0;
+ }
+
+ if (inst->gbar.width == 0 && inst->gbar.height == 0) {
+ instance_set_gbar_size(inst, package_gbar_width(inst->info), package_gbar_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, pixels);
- if (!inst->pd.canvas.buffer) {
- ErrPrint("Failed to create PD Buffer\n");
+ if (!inst->gbar.extra_buffer[idx]) {
+ inst->gbar.extra_buffer[idx] = buffer_handler_create(inst, s_info.env_buf_type, inst->gbar.width, inst->gbar.height, pixels);
+ if (!inst->gbar.extra_buffer[idx]) {
+ ErrPrint("Failed to create GBAR Extra Buffer\n");
}
}
- return !!inst->pd.canvas.buffer;
+ return !!inst->gbar.extra_buffer[idx];
}
-HAPI int instance_create_lb_buffer(struct inst_info *inst, int pixels)
+HAPI int instance_create_dbox_buffer(struct inst_info *inst, int pixels)
{
- if (inst->lb.width == 0 && inst->lb.height == 0) {
- livebox_service_get_size(LB_SIZE_TYPE_1x1, &inst->lb.width, &inst->lb.height);
+ if (inst->dbox.width == 0 && inst->dbox.height == 0) {
+ dynamicbox_service_get_size(DBOX_SIZE_TYPE_1x1, &inst->dbox.width, &inst->dbox.height);
}
- if (!inst->lb.canvas.buffer) {
+ if (!inst->dbox.canvas.buffer) {
/*!
* \note
* Slave doesn't call the acquire_buffer.
* In this case, create the buffer from here.
*/
- inst->lb.canvas.buffer = buffer_handler_create(inst, s_info.env_buf_type, inst->lb.width, inst->lb.height, pixels);
- if (!inst->lb.canvas.buffer) {
- ErrPrint("Failed to create LB\n");
+ inst->dbox.canvas.buffer = buffer_handler_create(inst, s_info.env_buf_type, inst->dbox.width, inst->dbox.height, pixels);
+ if (!inst->dbox.canvas.buffer) {
+ ErrPrint("Failed to create DBOX\n");
}
}
- return !!inst->lb.canvas.buffer;
+ return !!inst->dbox.canvas.buffer;
}
-HAPI int instance_destroy(struct inst_info *inst, enum instance_destroy_type type)
+HAPI int instance_create_dbox_extra_buffer(struct inst_info *inst, int pixels, int idx)
+{
+ if (!inst->dbox.extra_buffer) {
+ return 0;
+ }
+
+ if (inst->dbox.width == 0 && inst->dbox.height == 0) {
+ dynamicbox_service_get_size(DBOX_SIZE_TYPE_1x1, &inst->dbox.width, &inst->dbox.height);
+ }
+
+ if (!inst->dbox.extra_buffer[idx]) {
+ inst->dbox.extra_buffer[idx] = buffer_handler_create(inst, s_info.env_buf_type, inst->dbox.width, inst->dbox.height, pixels);
+ if (!inst->dbox.extra_buffer[idx]) {
+ ErrPrint("Failed to create DBox Extra buffer\n");
+ }
+ }
+
+ return !!inst->dbox.extra_buffer[idx];
+}
+
+HAPI int instance_destroy(struct inst_info *inst, dynamicbox_destroy_type_e type)
{
struct packet *packet;
+ unsigned int cmd = CMD_DELETE;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (inst->state) {
@@ -1297,40 +1458,41 @@ HAPI int instance_destroy(struct inst_info *inst, enum instance_destroy_type typ
case INST_REQUEST_TO_DESTROY:
case INST_REQUEST_TO_REACTIVATE:
inst->requested_state = INST_DESTROYED;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_INIT:
inst->state = INST_DESTROYED;
inst->requested_state = INST_DESTROYED;
(void)instance_unref(inst);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_DESTROYED:
inst->requested_state = INST_DESTROYED;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
default:
break;
}
- packet = packet_create("delete", "ssi", package_name(inst->info), inst->id, type);
+ packet = packet_create((const char *)&cmd, "ssi", package_name(inst->info), inst->id, type);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
inst->destroy_type = type;
inst->requested_state = INST_DESTROYED;
inst->state = INST_REQUEST_TO_DESTROY;
- inst->changing_state = 1;
+ inst->changing_state++;
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, deactivate_cb, instance_ref(inst), 0);
}
-HAPI int instance_reload(struct inst_info *inst, enum instance_destroy_type type)
+HAPI int instance_reload(struct inst_info *inst, dynamicbox_destroy_type_e type)
{
struct packet *packet;
+ unsigned int cmd = CMD_DELETE;
int ret;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgPrint("Reload instance (%s)\n", instance_id(inst));
@@ -1338,42 +1500,42 @@ HAPI int instance_reload(struct inst_info *inst, enum instance_destroy_type type
switch (inst->state) {
case INST_REQUEST_TO_ACTIVATE:
case INST_REQUEST_TO_REACTIVATE:
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_INIT:
ret = instance_activate(inst);
if (ret < 0) {
ErrPrint("Failed to activate instance: %d (%s)\n", ret, instance_id(inst));
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_DESTROYED:
case INST_REQUEST_TO_DESTROY:
DbgPrint("Instance is destroying now\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
default:
break;
}
- packet = packet_create("delete", "ssi", package_name(inst->info), inst->id, type);
+ packet = packet_create((const char *)&cmd, "ssi", package_name(inst->info), inst->id, type);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
inst->destroy_type = type;
inst->requested_state = INST_ACTIVATED;
inst->state = INST_REQUEST_TO_DESTROY;
- inst->changing_state = 1;
+ inst->changing_state++;
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, deactivate_cb, instance_ref(inst), 0);
}
/* Client Deactivated Callback */
-static int pd_buffer_close_cb(struct client_node *client, void *inst)
+static int gbar_buffer_close_cb(struct client_node *client, void *inst)
{
int ret;
- ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_NORMAL);
+ ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_NORMAL);
if (ret < 0) {
- DbgPrint("Forcely close the PD ret: %d\n", ret);
+ DbgPrint("Forcely close the GBAR ret: %d\n", ret);
}
instance_unref(inst);
@@ -1382,18 +1544,18 @@ static int pd_buffer_close_cb(struct client_node *client, void *inst)
}
/* Client Deactivated Callback */
-static int pd_script_close_cb(struct client_node *client, void *inst)
+static int gbar_script_close_cb(struct client_node *client, void *inst)
{
int ret;
- ret = script_handler_unload(instance_pd_script(inst), 1);
+ ret = script_handler_unload(instance_gbar_script(inst), 1);
if (ret < 0) {
DbgPrint("Unload script: %d\n", ret);
}
- ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_NORMAL);
+ ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_NORMAL);
if (ret < 0) {
- DbgPrint("Forcely close the PD ret: %d\n", ret);
+ DbgPrint("Forcely close the GBAR ret: %d\n", ret);
}
instance_unref(inst);
@@ -1401,10 +1563,10 @@ static int pd_script_close_cb(struct client_node *client, void *inst)
return -1; /* Delete this callback */
}
-static inline void release_resource_for_closing_pd(struct pkg_info *info, struct inst_info *inst, struct client_node *client)
+static inline void release_resource_for_closing_gbar(struct pkg_info *info, struct inst_info *inst, struct client_node *client)
{
if (!client) {
- client = inst->pd.owner;
+ client = inst->gbar.owner;
if (!client) {
return;
}
@@ -1414,17 +1576,17 @@ static inline void release_resource_for_closing_pd(struct pkg_info *info, struct
* \note
* Clean up the resources
*/
- if (package_pd_type(info) == PD_TYPE_BUFFER) {
- if (client_event_callback_del(client, CLIENT_EVENT_DEACTIVATE, pd_buffer_close_cb, inst) == 0) {
+ if (package_gbar_type(info) == GBAR_TYPE_BUFFER) {
+ if (client_event_callback_del(client, CLIENT_EVENT_DEACTIVATE, gbar_buffer_close_cb, inst) == 0) {
/*!
* \note
- * Only if this function succeed to remove the pd_buffer_close_cb,
+ * Only if this function succeed to remove the gbar_buffer_close_cb,
* Decrease the reference count of this instance
*/
instance_unref(inst);
}
- } else if (package_pd_type(info) == PD_TYPE_SCRIPT) {
- if (client_event_callback_del(client, CLIENT_EVENT_DEACTIVATE, pd_script_close_cb, inst) == 0) {
+ } else if (package_gbar_type(info) == GBAR_TYPE_SCRIPT) {
+ if (client_event_callback_del(client, CLIENT_EVENT_DEACTIVATE, gbar_script_close_cb, inst) == 0) {
/*!
* \note
* Only if this function succeed to remove the script_close_cb,
@@ -1433,63 +1595,64 @@ static inline void release_resource_for_closing_pd(struct pkg_info *info, struct
instance_unref(inst);
}
} else {
- ErrPrint("Unknown PD type\n");
+ ErrPrint("Unknown GBAR type\n");
}
}
HAPI int instance_state_reset(struct inst_info *inst)
{
- enum lb_type lb_type;
- enum pd_type pd_type;
+ enum dynamicbox_dbox_type dbox_type;
+ enum dynamicbox_gbar_type gbar_type;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (inst->state == INST_DESTROYED) {
goto out;
}
- lb_type = package_lb_type(inst->info);
- pd_type = package_pd_type(inst->info);
+ dbox_type = package_dbox_type(inst->info);
+ gbar_type = package_gbar_type(inst->info);
- if (lb_type == LB_TYPE_SCRIPT && inst->lb.canvas.script) {
- script_handler_unload(inst->lb.canvas.script, 0);
- } else if (lb_type == LB_TYPE_BUFFER && inst->lb.canvas.buffer) {
- buffer_handler_unload(inst->lb.canvas.buffer);
+ if (dbox_type == DBOX_TYPE_SCRIPT && inst->dbox.canvas.script) {
+ script_handler_unload(inst->dbox.canvas.script, 0);
+ } else if (dbox_type == DBOX_TYPE_BUFFER && inst->dbox.canvas.buffer) {
+ buffer_handler_unload(inst->dbox.canvas.buffer);
}
- if (pd_type == PD_TYPE_SCRIPT && inst->pd.canvas.script) {
- inst->pd.is_opened_for_reactivate = script_handler_is_loaded(inst->pd.canvas.script);
- release_resource_for_closing_pd(instance_package(inst), inst, NULL);
- script_handler_unload(inst->pd.canvas.script, 1);
- } else if (pd_type == PD_TYPE_BUFFER && inst->pd.canvas.buffer) {
- inst->pd.is_opened_for_reactivate = buffer_handler_is_loaded(inst->pd.canvas.buffer);
- release_resource_for_closing_pd(instance_package(inst), inst, NULL);
- buffer_handler_unload(inst->pd.canvas.buffer);
+ if (gbar_type == GBAR_TYPE_SCRIPT && inst->gbar.canvas.script) {
+ inst->gbar.is_opened_for_reactivate = script_handler_is_loaded(inst->gbar.canvas.script);
+ release_resource_for_closing_gbar(instance_package(inst), inst, NULL);
+ script_handler_unload(inst->gbar.canvas.script, 1);
+ } else if (gbar_type == GBAR_TYPE_BUFFER && inst->gbar.canvas.buffer) {
+ inst->gbar.is_opened_for_reactivate = buffer_handler_is_loaded(inst->gbar.canvas.buffer);
+ release_resource_for_closing_gbar(instance_package(inst), inst, NULL);
+ buffer_handler_unload(inst->gbar.canvas.buffer);
}
out:
inst->state = INST_INIT;
inst->requested_state = INST_INIT;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int instance_reactivate(struct inst_info *inst)
{
struct packet *packet;
+ unsigned int cmd = CMD_RENEW;
int ret;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
switch (inst->state) {
@@ -1497,35 +1660,36 @@ HAPI int instance_reactivate(struct inst_info *inst)
case INST_REQUEST_TO_ACTIVATE:
case INST_REQUEST_TO_REACTIVATE:
inst->requested_state = INST_ACTIVATED;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_DESTROYED:
case INST_ACTIVATED:
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_INIT:
default:
break;
}
- packet = packet_create("renew", "sssiidssiisii",
+ packet = packet_create((const char *)&cmd, "sssiidssiisiis",
package_name(inst->info),
inst->id,
inst->content,
package_timeout(inst->info),
- !!package_lb_path(inst->info),
- inst->lb.period,
+ !!package_dbox_path(inst->info),
+ inst->dbox.period,
inst->cluster,
inst->category,
- inst->lb.width, inst->lb.height,
+ inst->dbox.width, inst->dbox.height,
package_abi(inst->info),
inst->scroll_locked,
- inst->active_update);
+ inst->active_update,
+ client_direct_addr(inst->client));
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
ret = slave_activate(package_slave(inst->info));
- if (ret < 0 && ret != LB_STATUS_ERROR_ALREADY) {
+ if (ret < 0 && ret != DBOX_STATUS_ERROR_ALREADY) {
/*!
* \note
* If the master failed to launch the slave,
@@ -1538,7 +1702,7 @@ HAPI int instance_reactivate(struct inst_info *inst)
inst->requested_state = INST_ACTIVATED;
inst->state = INST_REQUEST_TO_REACTIVATE;
- inst->changing_state = 1;
+ inst->changing_state++;
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, reactivate_cb, instance_ref(inst), 1);
}
@@ -1546,16 +1710,17 @@ HAPI int instance_reactivate(struct inst_info *inst)
HAPI int instance_activate(struct inst_info *inst)
{
struct packet *packet;
+ unsigned int cmd = CMD_NEW;
int ret;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
switch (inst->state) {
@@ -1563,35 +1728,36 @@ HAPI int instance_activate(struct inst_info *inst)
case INST_REQUEST_TO_ACTIVATE:
case INST_REQUEST_TO_DESTROY:
inst->requested_state = INST_ACTIVATED;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_ACTIVATED:
case INST_DESTROYED:
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
case INST_INIT:
default:
break;
}
- packet = packet_create("new", "sssiidssisii",
+ packet = packet_create((const char *)&cmd, "sssiidssisiis",
package_name(inst->info),
inst->id,
inst->content,
package_timeout(inst->info),
- !!package_lb_path(inst->info),
- inst->lb.period,
+ !!package_dbox_path(inst->info),
+ inst->dbox.period,
inst->cluster,
inst->category,
!!inst->client,
package_abi(inst->info),
- inst->lb.width,
- inst->lb.height);
+ inst->dbox.width,
+ inst->dbox.height,
+ client_direct_addr(inst->client));
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
ret = slave_activate(package_slave(inst->info));
- if (ret < 0 && ret != LB_STATUS_ERROR_ALREADY) {
+ if (ret < 0 && ret != DBOX_STATUS_ERROR_ALREADY) {
/*!
* \note
* If the master failed to launch the slave,
@@ -1604,7 +1770,7 @@ HAPI int instance_activate(struct inst_info *inst)
inst->state = INST_REQUEST_TO_ACTIVATE;
inst->requested_state = INST_ACTIVATED;
- inst->changing_state = 1;
+ inst->changing_state++;
/*!
* \note
@@ -1613,210 +1779,244 @@ HAPI int instance_activate(struct inst_info *inst)
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, activate_cb, instance_ref(inst), 1);
}
-HAPI int instance_lb_update_begin(struct inst_info *inst, double priority, const char *content, const char *title)
+HAPI int instance_dbox_update_begin(struct inst_info *inst, double priority, const char *content, const char *title)
{
struct packet *packet;
const char *fbfile;
+ unsigned int cmd = CMD_DBOX_UPDATE_BEGIN;
if (!inst->active_update) {
ErrPrint("Invalid request [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- switch (package_lb_type(inst->info)) {
- case LB_TYPE_BUFFER:
- if (!inst->lb.canvas.buffer) {
+ switch (package_dbox_type(inst->info)) {
+ case DBOX_TYPE_BUFFER:
+ if (!inst->dbox.canvas.buffer) {
ErrPrint("Buffer is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- fbfile = buffer_handler_id(inst->lb.canvas.buffer);
+ fbfile = buffer_handler_id(inst->dbox.canvas.buffer);
break;
- case LB_TYPE_SCRIPT:
- if (!inst->lb.canvas.script) {
+ case DBOX_TYPE_SCRIPT:
+ if (!inst->dbox.canvas.script) {
ErrPrint("Script is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- fbfile = script_handler_buffer_id(inst->lb.canvas.script);
+ fbfile = script_handler_buffer_id(inst->dbox.canvas.script);
break;
default:
ErrPrint("Invalid request[%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("lb_update_begin", "ssdsss", package_name(inst->info), inst->id, priority, content, title, fbfile);
+ packet = packet_create_noack((const char *)&cmd, "ssdsss", package_name(inst->info), inst->id, priority, content, title, fbfile);
if (!packet) {
ErrPrint("Unable to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return CLIENT_SEND_EVENT(inst, packet);
}
-HAPI int instance_lb_update_end(struct inst_info *inst)
+HAPI int instance_dbox_update_end(struct inst_info *inst)
{
struct packet *packet;
+ unsigned int cmd = CMD_DBOX_UPDATE_END;
if (!inst->active_update) {
ErrPrint("Invalid request [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- switch (package_lb_type(inst->info)) {
- case LB_TYPE_BUFFER:
- if (!inst->lb.canvas.buffer) {
+ switch (package_dbox_type(inst->info)) {
+ case DBOX_TYPE_BUFFER:
+ if (!inst->dbox.canvas.buffer) {
ErrPrint("Buffer is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
break;
- case LB_TYPE_SCRIPT:
- if (!inst->lb.canvas.script) {
+ case DBOX_TYPE_SCRIPT:
+ if (!inst->dbox.canvas.script) {
ErrPrint("Script is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
break;
default:
ErrPrint("Invalid request[%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("lb_update_end", "ss", package_name(inst->info), inst->id);
+ packet = packet_create_noack((const char *)&cmd, "ss", package_name(inst->info), inst->id);
if (!packet) {
ErrPrint("Unable to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return CLIENT_SEND_EVENT(inst, packet);
}
-HAPI int instance_pd_update_begin(struct inst_info *inst)
+HAPI int instance_gbar_update_begin(struct inst_info *inst)
{
struct packet *packet;
const char *fbfile;
+ unsigned int cmd = CMD_GBAR_UPDATE_BEGIN;
if (!inst->active_update) {
ErrPrint("Invalid request [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- switch (package_pd_type(inst->info)) {
- case PD_TYPE_BUFFER:
- if (!inst->pd.canvas.buffer) {
+ switch (package_gbar_type(inst->info)) {
+ case GBAR_TYPE_BUFFER:
+ if (!inst->gbar.canvas.buffer) {
ErrPrint("Buffer is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- fbfile = buffer_handler_id(inst->pd.canvas.buffer);
+ fbfile = buffer_handler_id(inst->gbar.canvas.buffer);
break;
- case PD_TYPE_SCRIPT:
- if (!inst->pd.canvas.script) {
+ case GBAR_TYPE_SCRIPT:
+ if (!inst->gbar.canvas.script) {
ErrPrint("Script is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- fbfile = script_handler_buffer_id(inst->pd.canvas.script);
+ fbfile = script_handler_buffer_id(inst->gbar.canvas.script);
break;
default:
ErrPrint("Invalid request[%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("pd_update_begin", "sss", package_name(inst->info), inst->id, fbfile);
+ packet = packet_create_noack((const char *)&cmd, "sss", package_name(inst->info), inst->id, fbfile);
if (!packet) {
ErrPrint("Unable to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return CLIENT_SEND_EVENT(inst, packet);
}
-HAPI int instance_pd_update_end(struct inst_info *inst)
+HAPI int instance_gbar_update_end(struct inst_info *inst)
{
struct packet *packet;
+ unsigned int cmd = CMD_GBAR_UPDATE_END;
if (!inst->active_update) {
ErrPrint("Invalid request [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- switch (package_pd_type(inst->info)) {
- case PD_TYPE_BUFFER:
- if (!inst->pd.canvas.buffer) {
+ switch (package_gbar_type(inst->info)) {
+ case GBAR_TYPE_BUFFER:
+ if (!inst->gbar.canvas.buffer) {
ErrPrint("Buffer is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
break;
- case PD_TYPE_SCRIPT:
- if (!inst->pd.canvas.script) {
+ case GBAR_TYPE_SCRIPT:
+ if (!inst->gbar.canvas.script) {
ErrPrint("Script is null [%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
break;
default:
ErrPrint("Invalid request[%s]\n", inst->id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("pd_update_end", "ss", package_name(inst->info), inst->id);
+ packet = packet_create_noack((const char *)&cmd, "ss", package_name(inst->info), inst->id);
if (!packet) {
ErrPrint("Unable to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return CLIENT_SEND_EVENT(inst, packet);
}
-HAPI void instance_lb_updated_by_instance(struct inst_info *inst, const char *safe_file)
+HAPI void instance_extra_info_updated_by_instance(struct inst_info *inst)
{
struct packet *packet;
- const char *id;
- enum lb_type lb_type;
- const char *title;
- const char *content;
- const char *icon;
- const char *name;
+ unsigned int cmd = CMD_EXTRA_INFO;
- if (inst->client && inst->visible != LB_SHOW) {
- if (inst->visible == LB_HIDE) {
- DbgPrint("Ignore update event %s(HIDE)\n", inst->id);
+ packet = packet_create_noack((const char *)&cmd, "ssssssd", package_name(inst->info), inst->id,
+ inst->content, inst->title,
+ inst->icon, inst->name,
+ inst->dbox.priority);
+ if (!packet) {
+ ErrPrint("Failed to create param (%s - %s)\n", package_name(inst->info), inst->id);
+ return;
+ }
+
+ (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)
+{
+ struct packet *packet;
+ enum dynamicbox_dbox_type dbox_type;
+ unsigned int cmd = CMD_EXTRA_UPDATED;
+
+ if (idx < 0 || idx > DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT) {
+ ErrPrint("Invalid index\n");
+ return;
+ }
+
+ if (is_gbar == 0) {
+ if (!inst->dbox.extra_buffer || inst->dbox.extra_buffer[idx] == 0u) {
+ ErrPrint("Invalid extra buffer\n");
+ return;
+ }
+ } else {
+ if (!inst->gbar.extra_buffer || inst->gbar.extra_buffer[idx] == 0u) {
+ ErrPrint("Invalid extra buffer\n");
return;
}
- DbgPrint("Livebox(%s) is PAUSED. But content is updated.\n", inst->id);
}
- lb_type = package_lb_type(inst->info);
- if (lb_type == LB_TYPE_SCRIPT) {
- id = script_handler_buffer_id(inst->lb.canvas.script);
- } else if (lb_type == LB_TYPE_BUFFER) {
- id = buffer_handler_id(inst->lb.canvas.buffer);
- } else {
- id = "";
+ if (inst->client && inst->visible != DBOX_SHOW) {
+ if (inst->visible == DBOX_HIDE) {
+ DbgPrint("Ignore update event %s(HIDE)\n", inst->id);
+ return;
+ }
}
- if (inst->content) {
- content = inst->content;
- } else {
- content = "";
+ dbox_type = package_dbox_type(inst->info);
+ if (dbox_type != DBOX_TYPE_BUFFER) {
+ ErrPrint("Unsupported type\n");
+ return;
}
- if (inst->title) {
- title = inst->title;
- } else {
- title = "";
+ packet = packet_create_noack((const char *)&cmd, "ssiiiiii", package_name(inst->info), inst->id, is_gbar, idx, x, y, w, h);
+ if (!packet) {
+ ErrPrint("Failed to create param (%s - %s)\n", package_name(inst->info), inst->id);
+ return;
}
- if (inst->icon) {
- icon = inst->icon;
- } else {
- icon = "";
+ (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)
+{
+ struct packet *packet;
+ const char *id = NULL;
+ enum dynamicbox_dbox_type dbox_type;
+ unsigned int cmd = CMD_DBOX_UPDATED;
+
+ if (inst->client && inst->visible != DBOX_SHOW) {
+ if (inst->visible == DBOX_HIDE) {
+ DbgPrint("Ignore update event %s(HIDE)\n", inst->id);
+ return;
+ }
}
- if (inst->name) {
- name = inst->name;
- } else {
- name = "";
+ dbox_type = package_dbox_type(inst->info);
+ if (dbox_type == DBOX_TYPE_SCRIPT) {
+ id = script_handler_buffer_id(inst->dbox.canvas.script);
+ } else if (dbox_type == DBOX_TYPE_BUFFER) {
+ id = buffer_handler_id(inst->dbox.canvas.buffer);
}
- packet = packet_create_noack("lb_updated", "sssiidsssss",
- package_name(inst->info), inst->id, id,
- inst->lb.width, inst->lb.height, inst->lb.priority, content, title, safe_file, icon, name);
+ packet = packet_create_noack((const char *)&cmd, "ssssiiii", package_name(inst->info), inst->id, id, safe_file, x, y, w, h);
if (!packet) {
ErrPrint("Failed to create param (%s - %s)\n", package_name(inst->info), inst->id);
return;
@@ -1828,48 +2028,50 @@ HAPI void instance_lb_updated_by_instance(struct inst_info *inst, const char *sa
HAPI int instance_hold_scroll(struct inst_info *inst, int hold)
{
struct packet *packet;
+ unsigned int cmd = CMD_SCROLL;
DbgPrint("HOLD: (%s) %d\n", inst->id, hold);
if (inst->scroll_locked == hold) {
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
- packet = packet_create_noack("scroll", "ssi", package_name(inst->info), inst->id, hold);
+ packet = packet_create_noack((const char *)&cmd, "ssi", package_name(inst->info), inst->id, hold);
if (!packet) {
ErrPrint("Failed to build a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
inst->scroll_locked = hold;
return CLIENT_SEND_EVENT(inst, packet);
}
-HAPI void instance_pd_updated_by_instance(struct inst_info *inst, const char *descfile)
+HAPI void instance_gbar_updated_by_instance(struct inst_info *inst, const char *descfile, int x, int y, int w, int h)
{
struct packet *packet;
+ unsigned int cmd = CMD_GBAR_UPDATED;
const char *id;
- if (inst->client && inst->visible != LB_SHOW) {
- DbgPrint("Livebox is hidden. ignore update event\n");
+ if (inst->client && inst->visible != DBOX_SHOW) {
+ DbgPrint("Dynamicbox is hidden. ignore update event\n");
return;
}
- if (!inst->pd.need_to_send_close_event) {
- DbgPrint("PD is not created yet. Ignore update event - %s\n", descfile);
+ if (!inst->gbar.need_to_send_close_event) {
+ DbgPrint("GBAR is not created yet. Ignore update event - %s\n", descfile);
- if (inst->pd.pended_update_desc) {
- DbgFree(inst->pd.pended_update_desc);
- inst->pd.pended_update_desc = NULL;
+ if (inst->gbar.pended_update_desc) {
+ DbgFree(inst->gbar.pended_update_desc);
+ inst->gbar.pended_update_desc = NULL;
}
if (descfile) {
- inst->pd.pended_update_desc = strdup(descfile);
- if (!inst->pd.pended_update_desc) {
+ inst->gbar.pended_update_desc = strdup(descfile);
+ if (!inst->gbar.pended_update_desc) {
ErrPrint("Heap: %s\n", strerror(errno));
}
}
- inst->pd.pended_update_cnt++;
+ inst->gbar.pended_update_cnt++;
return;
}
@@ -1877,22 +2079,20 @@ HAPI void instance_pd_updated_by_instance(struct inst_info *inst, const char *de
descfile = inst->id;
}
- switch (package_pd_type(inst->info)) {
- case PD_TYPE_SCRIPT:
- id = script_handler_buffer_id(inst->pd.canvas.script);
+ switch (package_gbar_type(inst->info)) {
+ case GBAR_TYPE_SCRIPT:
+ id = script_handler_buffer_id(inst->gbar.canvas.script);
break;
- case PD_TYPE_BUFFER:
- id = buffer_handler_id(inst->pd.canvas.buffer);
+ case GBAR_TYPE_BUFFER:
+ id = buffer_handler_id(inst->gbar.canvas.buffer);
break;
- case PD_TYPE_TEXT:
+ case GBAR_TYPE_TEXT:
default:
id = "";
break;
}
- packet = packet_create_noack("pd_updated", "ssssii",
- package_name(inst->info), inst->id, descfile, id,
- inst->pd.width, inst->pd.height);
+ packet = packet_create_noack((const char *)&cmd, "ssssiiii", package_name(inst->info), inst->id, id, descfile, x, y, w, h);
if (!packet) {
ErrPrint("Failed to create param (%s - %s)\n", package_name(inst->info), inst->id);
return;
@@ -1901,7 +2101,7 @@ HAPI void instance_pd_updated_by_instance(struct inst_info *inst, const char *de
(void)CLIENT_SEND_EVENT(inst, packet);
}
-HAPI void instance_pd_updated(const char *pkgname, const char *id, const char *descfile)
+HAPI void instance_gbar_updated(const char *pkgname, const char *id, const char *descfile, int x, int y, int w, int h)
{
struct inst_info *inst;
@@ -1910,40 +2110,41 @@ HAPI void instance_pd_updated(const char *pkgname, const char *id, const char *d
return;
}
- instance_pd_updated_by_instance(inst, descfile);
+ instance_gbar_updated_by_instance(inst, descfile, x, y, w, h);
}
HAPI int instance_set_update_mode(struct inst_info *inst, int active_update)
{
struct packet *packet;
struct update_mode_cbdata *cbdata;
+ unsigned int cmd = CMD_UPDATE_MODE;
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (inst->active_update == active_update) {
DbgPrint("Active update is not changed: %d\n", inst->active_update);
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
cbdata = malloc(sizeof(*cbdata));
if (!cbdata) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->inst = instance_ref(inst);
cbdata->active_update = active_update;
/* NOTE: param is resued from here */
- packet = packet_create("update_mode", "ssi", package_name(inst->info), inst->id, active_update);
+ packet = packet_create((const char *)&cmd, "ssi", package_name(inst->info), inst->id, active_update);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
instance_unref(cbdata->inst);
DbgFree(cbdata);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, update_mode_cb, cbdata, 0);
@@ -1954,7 +2155,7 @@ HAPI int instance_active_update(struct inst_info *inst)
return inst->active_update;
}
-HAPI void instance_set_lb_info(struct inst_info *inst, double priority, const char *content, const char *title)
+HAPI void instance_set_dbox_info(struct inst_info *inst, double priority, const char *content, const char *title)
{
char *_content = NULL;
char *_title = NULL;
@@ -1984,7 +2185,7 @@ HAPI void instance_set_lb_info(struct inst_info *inst, double priority, const ch
}
if (priority >= 0.0f && priority <= 1.0f) {
- inst->lb.priority = priority;
+ inst->dbox.priority = priority;
}
}
@@ -2018,24 +2219,24 @@ HAPI void instance_set_alt_info(struct inst_info *inst, const char *icon, const
}
}
-HAPI void instance_set_lb_size(struct inst_info *inst, int w, int h)
+HAPI void instance_set_dbox_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);
+ if (inst->dbox.width != w || inst->dbox.height != h) {
+ instance_send_resized_event(inst, IS_DBOX, w, h, DBOX_STATUS_ERROR_NONE);
}
- inst->lb.width = w;
- inst->lb.height = h;
+ inst->dbox.width = w;
+ inst->dbox.height = h;
}
-HAPI void instance_set_pd_size(struct inst_info *inst, int w, int h)
+HAPI void instance_set_gbar_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);
+ if (inst->gbar.width != w || inst->gbar.height != h) {
+ instance_send_resized_event(inst, IS_GBAR, w, h, DBOX_STATUS_ERROR_NONE);
}
- inst->pd.width = w;
- inst->pd.height = h;
+ inst->gbar.width = w;
+ inst->gbar.height = h;
}
static void pinup_cb(struct slave_node *slave, const struct packet *packet, void *data)
@@ -2043,6 +2244,7 @@ static void pinup_cb(struct slave_node *slave, const struct packet *packet, void
struct set_pinup_cbdata *cbdata = data;
const char *content;
struct packet *result;
+ unsigned int cmd = CMD_RESULT_PINUP;
int ret;
if (!packet) {
@@ -2050,7 +2252,7 @@ static void pinup_cb(struct slave_node *slave, const struct packet *packet, void
* \todo
* Send pinup failed event to client.
*/
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -2059,7 +2261,7 @@ static void pinup_cb(struct slave_node *slave, const struct packet *packet, void
* \todo
* Send pinup failed event to client
*/
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -2073,10 +2275,10 @@ static void pinup_cb(struct slave_node *slave, const struct packet *packet, void
* \note
* send pinup failed event to client
*/
- ret = LB_STATUS_ERROR_MEMORY;
+ ret = DBOX_STATUS_ERROR_OUT_OF_MEMORY;
goto out;
}
-
+
cbdata->inst->is_pinned_up = cbdata->pinup;
DbgFree(cbdata->inst->content);
@@ -2089,8 +2291,8 @@ out:
* Send PINUP Result to client.
* Client should wait this event.
*/
- result = packet_create_noack("pinup", "iisss", ret, cbdata->inst->is_pinned_up,
- package_name(cbdata->inst->info), cbdata->inst->id, cbdata->inst->content);
+ 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);
} else {
@@ -2105,39 +2307,40 @@ HAPI int instance_set_pinup(struct inst_info *inst, int pinup)
{
struct set_pinup_cbdata *cbdata;
struct packet *packet;
+ unsigned int cmd = CMD_PINUP;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!package_pinup(inst->info)) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (pinup == inst->is_pinned_up) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
cbdata = malloc(sizeof(*cbdata));
if (!cbdata) {
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->inst = instance_ref(inst);
cbdata->pinup = pinup;
- packet = packet_create("pinup", "ssi", package_name(inst->info), inst->id, pinup);
+ packet = packet_create((const char *)&cmd, "ssi", package_name(inst->info), inst->id, pinup);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
instance_unref(cbdata->inst);
DbgFree(cbdata);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, pinup_cb, cbdata, 0);
@@ -2146,47 +2349,47 @@ HAPI int instance_set_pinup(struct inst_info *inst, int pinup)
HAPI int instance_freeze_updator(struct inst_info *inst)
{
if (!inst->update_timer) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
timer_freeze(inst);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int instance_thaw_updator(struct inst_info *inst)
{
if (!inst->update_timer) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (client_is_all_paused() || setting_is_lcd_off()) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- if (inst->visible == LB_HIDE_WITH_PAUSE) {
- return LB_STATUS_ERROR_INVALID;
+ if (inst->visible == DBOX_HIDE_WITH_PAUSE) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
timer_thaw(inst);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI enum livebox_visible_state instance_visible_state(struct inst_info *inst)
+HAPI enum dynamicbox_visible_state instance_visible_state(struct inst_info *inst)
{
return inst->visible;
}
-HAPI int instance_set_visible_state(struct inst_info *inst, enum livebox_visible_state state)
+HAPI int instance_set_visible_state(struct inst_info *inst, enum dynamicbox_visible_state state)
{
if (inst->visible == state) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
switch (state) {
- case LB_SHOW:
- case LB_HIDE:
- if (inst->visible == LB_HIDE_WITH_PAUSE) {
- if (resume_livebox(inst) == 0) {
+ case DBOX_SHOW:
+ case DBOX_HIDE:
+ if (inst->visible == DBOX_HIDE_WITH_PAUSE) {
+ if (resume_dynamicbox(inst) == 0) {
inst->visible = state;
}
@@ -2196,19 +2399,19 @@ HAPI int instance_set_visible_state(struct inst_info *inst, enum livebox_visible
}
break;
- case LB_HIDE_WITH_PAUSE:
- if (pause_livebox(inst) == 0) {
- inst->visible = LB_HIDE_WITH_PAUSE;
+ case DBOX_HIDE_WITH_PAUSE:
+ if (pause_dynamicbox(inst) == 0) {
+ inst->visible = DBOX_HIDE_WITH_PAUSE;
}
instance_freeze_updator(inst);
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static void resize_cb(struct slave_node *slave, const struct packet *packet, void *data)
@@ -2218,7 +2421,7 @@ static void resize_cb(struct slave_node *slave, const struct packet *packet, voi
if (!packet) {
ErrPrint("RESIZE: Invalid packet\n");
- instance_send_resized_event(cbdata->inst, IS_LB, cbdata->inst->lb.width, cbdata->inst->lb.height, LB_STATUS_ERROR_FAULT);
+ instance_send_resized_event(cbdata->inst, IS_DBOX, cbdata->inst->dbox.width, cbdata->inst->dbox.height, DBOX_STATUS_ERROR_FAULT);
instance_unref(cbdata->inst);
DbgFree(cbdata);
return;
@@ -2226,18 +2429,18 @@ static void resize_cb(struct slave_node *slave, const struct packet *packet, voi
if (packet_get(packet, "i", &ret) != 1) {
ErrPrint("RESIZE: Invalid parameter\n");
- instance_send_resized_event(cbdata->inst, IS_LB, cbdata->inst->lb.width, cbdata->inst->lb.height, LB_STATUS_ERROR_INVALID);
+ instance_send_resized_event(cbdata->inst, IS_DBOX, cbdata->inst->dbox.width, cbdata->inst->dbox.height, DBOX_STATUS_ERROR_INVALID_PARAMETER);
instance_unref(cbdata->inst);
DbgFree(cbdata);
return;
}
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
/*!
* \note
* else waiting the first update with new size
*/
- if (cbdata->inst->lb.width == cbdata->w && cbdata->inst->lb.height == cbdata->h) {
+ if (cbdata->inst->dbox.width == cbdata->w && cbdata->inst->dbox.height == cbdata->h) {
/*!
* \note
* Right after the viewer adds a new box,
@@ -2265,14 +2468,14 @@ static void resize_cb(struct slave_node *slave, const struct packet *packet, voi
* And if the size is already updated, send the ALREADY event to the viewer
* to get the size changed event callback correctly.
*/
- instance_send_resized_event(cbdata->inst, IS_LB, cbdata->inst->lb.width, cbdata->inst->lb.height, LB_STATUS_ERROR_ALREADY);
- DbgPrint("RESIZE: Livebox is already resized [%s - %dx%d]\n", instance_id(cbdata->inst), cbdata->w, cbdata->h);
+ instance_send_resized_event(cbdata->inst, IS_DBOX, cbdata->inst->dbox.width, cbdata->inst->dbox.height, DBOX_STATUS_ERROR_ALREADY);
+ DbgPrint("RESIZE: Dynamicbox is already resized [%s - %dx%d]\n", instance_id(cbdata->inst), cbdata->w, cbdata->h);
} else {
DbgPrint("RESIZE: Request is successfully sent [%s - %dx%d]\n", instance_id(cbdata->inst), cbdata->w, cbdata->h);
}
} else {
- DbgPrint("RESIZE: Livebox rejects the new size: %s - %dx%d (%d)\n", instance_id(cbdata->inst), cbdata->w, cbdata->h, ret);
- instance_send_resized_event(cbdata->inst, IS_LB, cbdata->inst->lb.width, cbdata->inst->lb.height, ret);
+ DbgPrint("RESIZE: Dynamicbox rejects the new size: %s - %dx%d (%d)\n", instance_id(cbdata->inst), cbdata->w, cbdata->h, ret);
+ instance_send_resized_event(cbdata->inst, IS_DBOX, cbdata->inst->dbox.width, cbdata->inst->dbox.height, ret);
}
instance_unref(cbdata->inst);
@@ -2283,22 +2486,23 @@ HAPI int instance_resize(struct inst_info *inst, int w, int h)
{
struct resize_cbdata *cbdata;
struct packet *packet;
+ unsigned int cmd = CMD_RESIZE;
int ret;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package: %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
cbdata = malloc(sizeof(*cbdata));
if (!cbdata) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->inst = instance_ref(inst);
@@ -2306,12 +2510,12 @@ HAPI int instance_resize(struct inst_info *inst, int w, int h)
cbdata->h = h;
/* NOTE: param is resued from here */
- packet = packet_create("resize", "ssii", package_name(inst->info), inst->id, w, h);
+ packet = packet_create((const char *)&cmd, "ssii", package_name(inst->info), inst->id, w, h);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
instance_unref(cbdata->inst);
DbgFree(cbdata);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
DbgPrint("RESIZE: [%s] resize[%dx%d]\n", instance_id(inst), w, h);
@@ -2321,28 +2525,29 @@ HAPI int instance_resize(struct inst_info *inst, int w, int h)
static void set_period_cb(struct slave_node *slave, const struct packet *packet, void *data)
{
- int ret;
struct period_cbdata *cbdata = data;
+ unsigned int cmd = CMD_PERIOD_CHANGED;
struct packet *result;
+ int ret;
if (!packet) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
if (packet_get(packet, "i", &ret) != 1) {
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
if (ret == 0) {
- cbdata->inst->lb.period = cbdata->period;
+ cbdata->inst->dbox.period = cbdata->period;
} else {
ErrPrint("Failed to set period %d\n", ret);
}
out:
- result = packet_create_noack("period_changed", "idss", ret, cbdata->inst->lb.period, package_name(cbdata->inst->info), cbdata->inst->id);
+ 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);
} else {
@@ -2358,23 +2563,24 @@ static Eina_Bool timer_updator_cb(void *data)
{
struct period_cbdata *cbdata = data;
struct inst_info *inst;
- double period;
struct packet *result;
+ unsigned int cmd = CMD_PERIOD_CHANGED;
+ double period;
period = cbdata->period;
inst = cbdata->inst;
DbgFree(cbdata);
- inst->lb.period = period;
+ inst->dbox.period = period;
if (inst->update_timer) {
- if (inst->lb.period == 0.0f) {
+ if (inst->dbox.period == 0.0f) {
ecore_timer_del(inst->update_timer);
inst->update_timer = NULL;
} else {
- util_timer_interval_set(inst->update_timer, inst->lb.period);
+ util_timer_interval_set(inst->update_timer, inst->dbox.period);
}
- } else if (inst->lb.period > 0.0f) {
- inst->update_timer = util_timer_add(inst->lb.period, update_timer_cb, inst);
+ } else if (inst->dbox.period > 0.0f) {
+ inst->update_timer = util_timer_add(inst->dbox.period, update_timer_cb, inst);
if (!inst->update_timer) {
ErrPrint("Failed to add an update timer for instance %s\n", inst->id);
} else {
@@ -2382,7 +2588,7 @@ static Eina_Bool timer_updator_cb(void *data)
}
}
- result = packet_create_noack("period_changed", "idss", 0, inst->lb.period, package_name(inst->info), inst->id);
+ 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);
} else {
@@ -2395,59 +2601,60 @@ static Eina_Bool timer_updator_cb(void *data)
HAPI void instance_reload_period(struct inst_info *inst, double period)
{
- inst->lb.period = period;
+ inst->dbox.period = period;
}
HAPI int instance_set_period(struct inst_info *inst, double period)
{
struct packet *packet;
struct period_cbdata *cbdata;
+ unsigned int cmd = CMD_SET_PERIOD;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (period < 0.0f) { /* Use the default period */
period = package_period(inst->info);
- } else if (period > 0.0f && period < MINIMUM_PERIOD) {
- period = MINIMUM_PERIOD; /* defined at conf.h */
+ } else if (period > 0.0f && period < DYNAMICBOX_CONF_MINIMUM_PERIOD) {
+ period = DYNAMICBOX_CONF_MINIMUM_PERIOD; /* defined at conf.h */
}
cbdata = malloc(sizeof(*cbdata));
if (!cbdata) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->period = period;
cbdata->inst = instance_ref(inst);
- if (package_secured(inst->info)) {
+ if (package_secured(inst->info) || (DBOX_IS_INHOUSE(package_abi(inst->info)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL)) {
/*!
* \note
- * Secured livebox doesn't need to send its update period to the slave.
- * Slave has no local timer for updating liveboxes
+ * Secured dynamicbox doesn't need to send its update period to the slave.
+ * Slave has no local timer for updating dynamicboxes
*
* So update its timer at here.
*/
if (!ecore_timer_add(DELAY_TIME, timer_updator_cb, cbdata)) {
timer_updator_cb(cbdata);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
- packet = packet_create("set_period", "ssd", package_name(inst->info), inst->id, period);
+ packet = packet_create((const char *)&cmd, "ssd", package_name(inst->info), inst->id, period);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
instance_unref(cbdata->inst);
DbgFree(cbdata);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, set_period_cb, cbdata, 0);
@@ -2456,22 +2663,23 @@ HAPI int instance_set_period(struct inst_info *inst, double period)
HAPI int instance_clicked(struct inst_info *inst, const char *event, double timestamp, double x, double y)
{
struct packet *packet;
+ unsigned int cmd = CMD_CLICKED;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/* NOTE: param is resued from here */
- packet = packet_create_noack("clicked", "sssddd", package_name(inst->info), inst->id, event, timestamp, x, y);
+ packet = packet_create_noack((const char *)&cmd, "sssddd", package_name(inst->info), inst->id, event, timestamp, x, y);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(package_slave(inst->info), package_name(inst->info), packet, 0);
@@ -2484,26 +2692,27 @@ HAPI int instance_signal_emit(struct inst_info *inst, const char *signal, const
struct slave_node *slave;
struct packet *packet;
struct pkg_info *pkg;
+ unsigned int cmd = CMD_SCRIPT;
pkg = instance_package(inst);
pkgname = package_name(pkg);
id = instance_id(inst);
if (!pkgname || !id) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(pkg);
if (!slave) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("script", "ssssddddddi",
+ packet = packet_create_noack((const char *)&cmd, "ssssddddddi",
pkgname, id,
signal, part,
sx, sy, ex, ey,
x, y, down);
if (!packet) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(slave, pkgname, packet, 0);
@@ -2512,21 +2721,22 @@ HAPI int instance_signal_emit(struct inst_info *inst, const char *signal, const
HAPI int instance_text_signal_emit(struct inst_info *inst, const char *emission, const char *source, double sx, double sy, double ex, double ey)
{
struct packet *packet;
+ unsigned int cmd = CMD_TEXT_SIGNAL;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- packet = packet_create_noack("text_signal", "ssssdddd", package_name(inst->info), inst->id, emission, source, sx, sy, ex, ey);
+ packet = packet_create_noack((const char *)&cmd, "ssssdddd", package_name(inst->info), inst->id, emission, source, sx, sy, ex, ey);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(package_slave(inst->info), package_name(inst->info), packet, 0);
@@ -2536,12 +2746,13 @@ static void change_group_cb(struct slave_node *slave, const struct packet *packe
{
struct change_group_cbdata *cbdata = data;
struct packet *result;
+ unsigned int cmd = CMD_GROUP_CHANGED;
int ret;
if (!packet) {
DbgFree(cbdata->cluster);
DbgFree(cbdata->category);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
@@ -2549,7 +2760,7 @@ static void change_group_cb(struct slave_node *slave, const struct packet *packe
ErrPrint("Invalid packet\n");
DbgFree(cbdata->cluster);
DbgFree(cbdata->category);
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -2565,9 +2776,9 @@ static void change_group_cb(struct slave_node *slave, const struct packet *packe
}
out:
- result = packet_create_noack("group_changed", "ssiss",
- package_name(cbdata->inst->info), cbdata->inst->id, ret,
- cbdata->inst->cluster, cbdata->inst->category);
+ result = packet_create_noack((const char *)&cmd, "ssiss",
+ package_name(cbdata->inst->info), cbdata->inst->id, ret,
+ cbdata->inst->cluster, cbdata->inst->category);
if (!result) {
ErrPrint("Failed to build a packet %s\n", package_name(cbdata->inst->info));
} else {
@@ -2582,28 +2793,29 @@ HAPI int instance_change_group(struct inst_info *inst, const char *cluster, cons
{
struct packet *packet;
struct change_group_cbdata *cbdata;
+ unsigned int cmd = CMD_CHANGE_GROUP;
if (!inst) {
ErrPrint("Invalid instance handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(inst->info)) {
ErrPrint("Fault package [%s]\n", package_name(inst->info));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
cbdata = malloc(sizeof(*cbdata));
if (!cbdata) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->cluster = strdup(cluster);
if (!cbdata->cluster) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(cbdata);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->category = strdup(category);
@@ -2611,19 +2823,19 @@ HAPI int instance_change_group(struct inst_info *inst, const char *cluster, cons
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(cbdata->cluster);
DbgFree(cbdata);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->inst = instance_ref(inst);
- packet = packet_create("change_group","ssss", package_name(inst->info), inst->id, cluster, category);
+ packet = packet_create((const char *)&cmd, "ssss", package_name(inst->info), inst->id, cluster, category);
if (!packet) {
ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
instance_unref(cbdata->inst);
DbgFree(cbdata->category);
DbgFree(cbdata->cluster);
DbgFree(cbdata);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, change_group_cb, cbdata, 0);
@@ -2636,7 +2848,7 @@ HAPI const char * const instance_auto_launch(const struct inst_info *inst)
HAPI const int const instance_priority(const struct inst_info *inst)
{
- return inst->lb.priority;
+ return inst->dbox.priority;
}
HAPI const struct client_node *const instance_client(const struct inst_info *inst)
@@ -2651,27 +2863,27 @@ HAPI const int const instance_timeout(const struct inst_info *inst)
HAPI const double const instance_period(const struct inst_info *inst)
{
- return inst->lb.period;
+ return inst->dbox.period;
}
-HAPI const int const instance_lb_width(const struct inst_info *inst)
+HAPI const int const instance_dbox_width(const struct inst_info *inst)
{
- return inst->lb.width;
+ return inst->dbox.width;
}
-HAPI const int const instance_lb_height(const struct inst_info *inst)
+HAPI const int const instance_dbox_height(const struct inst_info *inst)
{
- return inst->lb.height;
+ return inst->dbox.height;
}
-HAPI const int const instance_pd_width(const struct inst_info *inst)
+HAPI const int const instance_gbar_width(const struct inst_info *inst)
{
- return inst->pd.width;
+ return inst->gbar.width;
}
-HAPI const int const instance_pd_height(const struct inst_info *inst)
+HAPI const int const instance_gbar_height(const struct inst_info *inst)
{
- return inst->pd.height;
+ return inst->gbar.height;
}
HAPI struct pkg_info *const instance_package(const struct inst_info *inst)
@@ -2679,24 +2891,34 @@ HAPI struct pkg_info *const instance_package(const struct inst_info *inst)
return inst->info;
}
-HAPI struct script_info *const instance_lb_script(const struct inst_info *inst)
+HAPI struct script_info *const instance_dbox_script(const struct inst_info *inst)
+{
+ return (package_dbox_type(inst->info) == DBOX_TYPE_SCRIPT) ? inst->dbox.canvas.script : NULL;
+}
+
+HAPI struct script_info *const instance_gbar_script(const struct inst_info *inst)
+{
+ return (package_gbar_type(inst->info) == GBAR_TYPE_SCRIPT) ? inst->gbar.canvas.script : NULL;
+}
+
+HAPI struct buffer_info *const instance_dbox_buffer(const struct inst_info *inst)
{
- return (package_lb_type(inst->info) == LB_TYPE_SCRIPT) ? inst->lb.canvas.script : NULL;
+ return (package_dbox_type(inst->info) == DBOX_TYPE_BUFFER) ? inst->dbox.canvas.buffer : NULL;
}
-HAPI struct script_info *const instance_pd_script(const struct inst_info *inst)
+HAPI struct buffer_info *const instance_gbar_buffer(const struct inst_info *inst)
{
- return (package_pd_type(inst->info) == PD_TYPE_SCRIPT) ? inst->pd.canvas.script : NULL;
+ return (package_gbar_type(inst->info) == GBAR_TYPE_BUFFER) ? inst->gbar.canvas.buffer : NULL;
}
-HAPI struct buffer_info *const instance_lb_buffer(const struct inst_info *inst)
+HAPI struct buffer_info *const instance_dbox_extra_buffer(const struct inst_info *inst, int idx)
{
- return (package_lb_type(inst->info) == LB_TYPE_BUFFER) ? inst->lb.canvas.buffer : NULL;
+ return (package_dbox_type(inst->info) == DBOX_TYPE_BUFFER) ? (inst->dbox.extra_buffer ? inst->dbox.extra_buffer[idx] : NULL) : NULL;
}
-HAPI struct buffer_info *const instance_pd_buffer(const struct inst_info *inst)
+HAPI struct buffer_info *const instance_gbar_extra_buffer(const struct inst_info *inst, int idx)
{
- return (package_pd_type(inst->info) == PD_TYPE_BUFFER) ? inst->pd.canvas.buffer : NULL;
+ return (package_gbar_type(inst->info) == GBAR_TYPE_BUFFER) ? (inst->gbar.extra_buffer ? inst->gbar.extra_buffer[idx] : NULL) : NULL;
}
HAPI const char *const instance_id(const struct inst_info *inst)
@@ -2739,16 +2961,20 @@ HAPI int instance_destroyed(struct inst_info *inst, int reason)
switch (inst->state) {
case INST_INIT:
case INST_REQUEST_TO_ACTIVATE:
- /*!
- * \note
- * No other clients know the existence of this instance,
- * only who added this knows it.
- * So send deleted event to only it.
- */
- DbgPrint("Send deleted event - unicast - %p\n", inst->client);
- instance_unicast_deleted_event(inst, NULL, reason);
+ if (inst->unicast_delete_event) {
+ /*!
+ * \note
+ * No other clients know the existence of this instance,
+ * only who added this knows it.
+ * So send deleted event to only it.
+ */
+ DbgPrint("Send deleted event - unicast - %p\n", inst->client);
+ instance_unicast_deleted_event(inst, NULL, reason);
+ } else {
+ instance_broadcast_deleted_event(inst, reason);
+ }
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
case INST_REQUEST_TO_REACTIVATE:
case INST_REQUEST_TO_DESTROY:
@@ -2756,14 +2982,14 @@ HAPI int instance_destroyed(struct inst_info *inst, int reason)
DbgPrint("Send deleted event - multicast\n");
instance_broadcast_deleted_event(inst, reason);
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
case INST_DESTROYED:
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!
@@ -2773,9 +2999,9 @@ HAPI int instance_recover_state(struct inst_info *inst)
{
int ret = 0;
- if (inst->changing_state) {
+ if (inst->changing_state > 0) {
DbgPrint("Doesn't need to recover the state\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (package_is_fault(inst->info)) {
@@ -2797,7 +3023,7 @@ HAPI int instance_recover_state(struct inst_info *inst)
case INST_DESTROYED:
DbgPrint("Req. to DESTROYED (%s)\n", package_name(inst->info));
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
default:
break;
@@ -2812,9 +3038,9 @@ HAPI int instance_recover_state(struct inst_info *inst)
instance_state_reset(inst);
if (instance_activate(inst) < 0) {
DbgPrint("Failed to reactivate the instance\n");
- instance_broadcast_deleted_event(inst, LB_STATUS_ERROR_FAULT);
+ instance_broadcast_deleted_event(inst, DBOX_STATUS_ERROR_FAULT);
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
} else {
ret = 1;
}
@@ -2822,7 +3048,7 @@ HAPI int instance_recover_state(struct inst_info *inst)
case INST_DESTROYED:
DbgPrint("Req. to DESTROYED (%s)\n", package_name(inst->info));
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
default:
break;
@@ -2847,7 +3073,7 @@ HAPI int instance_need_slave(struct inst_info *inst)
/*!
* \note
* In this case, the client is faulted(disconnected)
- * when the client is deactivated, its liveboxes should be removed too.
+ * when the client is deactivated, its dynamicboxes should be removed too.
* So if the current inst is created by the faulted client,
* remove it and don't try to recover its states
*/
@@ -2860,13 +3086,13 @@ HAPI int instance_need_slave(struct inst_info *inst)
case INST_REQUEST_TO_DESTROY:
case INST_REQUEST_TO_ACTIVATE:
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
case INST_DESTROYED:
break;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
switch (inst->state) {
@@ -2882,7 +3108,7 @@ HAPI int instance_need_slave(struct inst_info *inst)
case INST_DESTROYED:
DbgPrint("Req. to DESTROYED (%s)\n", package_name(inst->info));
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
default:
break;
@@ -2899,7 +3125,7 @@ HAPI int instance_need_slave(struct inst_info *inst)
case INST_DESTROYED:
DbgPrint("Req. to DESTROYED (%s)\n", package_name(inst->info));
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
default:
break;
@@ -2921,11 +3147,12 @@ HAPI int instance_forward_packet(struct inst_info *inst, struct packet *packet)
HAPI int instance_send_key_status(struct inst_info *inst, int status)
{
struct packet *packet;
+ unsigned int cmd = CMD_KEY_STATUS;
- packet = packet_create_noack("key_status", "ssi", package_name(inst->info), inst->id, status);
+ packet = packet_create_noack((const char *)&cmd, "ssi", package_name(inst->info), inst->id, status);
if (!packet) {
ErrPrint("Failed to build a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return CLIENT_SEND_EVENT(inst, packet);
@@ -2934,65 +3161,67 @@ HAPI int instance_send_key_status(struct inst_info *inst, int status)
HAPI int instance_send_access_status(struct inst_info *inst, int status)
{
struct packet *packet;
+ unsigned int cmd = CMD_ACCESS_STATUS;
- packet = packet_create_noack("access_status", "ssi", package_name(inst->info), inst->id, status);
+ packet = packet_create_noack((const char *)&cmd, "ssi", package_name(inst->info), inst->id, status);
if (!packet) {
ErrPrint("Failed to build a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return CLIENT_SEND_EVENT(inst, packet);
}
-HAPI void instance_slave_set_pd_pos(struct inst_info *inst, double x, double y)
+HAPI void instance_slave_set_gbar_pos(struct inst_info *inst, double x, double y)
{
- inst->pd.x = x;
- inst->pd.y = y;
+ inst->gbar.x = x;
+ inst->gbar.y = y;
}
-HAPI void instance_slave_get_pd_pos(struct inst_info *inst, double *x, double *y)
+HAPI void instance_slave_get_gbar_pos(struct inst_info *inst, double *x, double *y)
{
if (x) {
- *x = inst->pd.x;
+ *x = inst->gbar.x;
}
if (y) {
- *y = inst->pd.y;
+ *y = inst->gbar.y;
}
}
-HAPI int instance_slave_open_pd(struct inst_info *inst, struct client_node *client)
+HAPI int instance_slave_open_gbar(struct inst_info *inst, struct client_node *client)
{
const char *pkgname;
const char *id;
struct packet *packet;
struct slave_node *slave;
const struct pkg_info *info;
+ unsigned int cmd = CMD_GBAR_SHOW;
int ret;
if (!client) {
- client = inst->pd.owner;
+ client = inst->gbar.owner;
if (!client) {
ErrPrint("Client is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- } else if (inst->pd.owner) {
- if (inst->pd.owner != client) {
+ } else if (inst->gbar.owner) {
+ if (inst->gbar.owner != client) {
ErrPrint("Client is already owned\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
}
info = instance_package(inst);
if (!info) {
ErrPrint("No package info\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(info);
if (!slave) {
ErrPrint("No slave\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
pkgname = package_name(info);
@@ -3000,13 +3229,13 @@ HAPI int instance_slave_open_pd(struct inst_info *inst, struct client_node *clie
if (!pkgname || !id) {
ErrPrint("pkgname[%s] id[%s]\n", pkgname, id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("pd_show", "ssiidd", pkgname, id, instance_pd_width(inst), instance_pd_height(inst), inst->pd.x, inst->pd.y);
+ packet = packet_create_noack((const char *)&cmd, "ssiidd", pkgname, id, instance_gbar_width(inst), instance_gbar_height(inst), inst->gbar.x, inst->gbar.y);
if (!packet) {
ErrPrint("Failed to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/*!
@@ -3031,50 +3260,51 @@ HAPI int instance_slave_open_pd(struct inst_info *inst, struct client_node *clie
/*!
* \note
- * If a client is disconnected, the slave has to close the PD
- * So the pd_buffer_close_cb/pd_script_close_cb will catch the disconnection event
+ * If a client is disconnected, the slave has to close the GBAR
+ * So the gbar_buffer_close_cb/gbar_script_close_cb will catch the disconnection event
* then it will send the close request to the slave
*/
- if (package_pd_type(info) == PD_TYPE_BUFFER) {
+ if (package_gbar_type(info) == GBAR_TYPE_BUFFER) {
instance_ref(inst);
- if (client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, pd_buffer_close_cb, inst) < 0) {
+ if (client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, gbar_buffer_close_cb, inst) < 0) {
instance_unref(inst);
}
- } else if (package_pd_type(info) == PD_TYPE_SCRIPT) {
+ } else if (package_gbar_type(info) == GBAR_TYPE_SCRIPT) {
instance_ref(inst);
- if (client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, pd_script_close_cb, inst) < 0) {
+ if (client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, gbar_script_close_cb, inst) < 0) {
instance_unref(inst);
}
}
- inst->pd.owner = client;
+ inst->gbar.owner = client;
return ret;
}
-HAPI int instance_slave_close_pd(struct inst_info *inst, struct client_node *client, int reason)
+HAPI int instance_slave_close_gbar(struct inst_info *inst, struct client_node *client, int reason)
{
const char *pkgname;
const char *id;
struct packet *packet;
struct slave_node *slave;
struct pkg_info *pkg;
+ unsigned int cmd = CMD_GBAR_HIDE;
int ret;
- if (inst->pd.owner != client) {
+ if (inst->gbar.owner != client) {
ErrPrint("Has no permission\n");
- return LB_STATUS_ERROR_PERMISSION;
+ return DBOX_STATUS_ERROR_PERMISSION_DENIED;
}
pkg = instance_package(inst);
if (!pkg) {
ErrPrint("No package info\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("No assigned slave\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
pkgname = package_name(pkg);
@@ -3082,104 +3312,189 @@ HAPI int instance_slave_close_pd(struct inst_info *inst, struct client_node *cli
if (!pkgname || !id) {
ErrPrint("pkgname[%s] & id[%s] is not valid\n", pkgname, id);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack("pd_hide", "ssi", pkgname, id, reason);
+ packet = packet_create_noack((const char *)&cmd, "ssi", pkgname, id, reason);
if (!packet) {
ErrPrint("Failed to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
slave_thaw_ttl(slave);
ret = slave_rpc_request_only(slave, pkgname, packet, 0);
- release_resource_for_closing_pd(pkg, inst, client);
- inst->pd.owner = NULL;
+ release_resource_for_closing_gbar(pkg, inst, client);
+ inst->gbar.owner = NULL;
DbgPrint("PERF_DBOX\n");
return ret;
}
-HAPI int instance_client_pd_created(struct inst_info *inst, int status)
+HAPI int instance_client_gbar_created(struct inst_info *inst, int status)
{
struct packet *packet;
const char *buf_id;
+ unsigned int cmd = CMD_GBAR_CREATED;
int ret;
- if (inst->pd.need_to_send_close_event) {
- DbgPrint("PD is already created\n");
- return LB_STATUS_ERROR_INVALID;
+ if (inst->gbar.need_to_send_close_event) {
+ DbgPrint("GBAR is already created\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- switch (package_pd_type(inst->info)) {
- case PD_TYPE_SCRIPT:
- buf_id = script_handler_buffer_id(inst->pd.canvas.script);
+ switch (package_gbar_type(inst->info)) {
+ case GBAR_TYPE_SCRIPT:
+ buf_id = script_handler_buffer_id(inst->gbar.canvas.script);
break;
- case PD_TYPE_BUFFER:
- buf_id = buffer_handler_id(inst->pd.canvas.buffer);
+ case GBAR_TYPE_BUFFER:
+ buf_id = buffer_handler_id(inst->gbar.canvas.buffer);
break;
- case PD_TYPE_TEXT:
+ case GBAR_TYPE_TEXT:
default:
buf_id = "";
break;
}
- inst->pd.need_to_send_close_event = (status == 0);
+ inst->gbar.need_to_send_close_event = (status == 0);
- packet = packet_create_noack("pd_created", "sssiii",
+ packet = packet_create_noack((const char *)&cmd, "sssiii",
package_name(inst->info), inst->id, buf_id,
- inst->pd.width, inst->pd.height, status);
+ inst->gbar.width, inst->gbar.height, status);
if (!packet) {
ErrPrint("Failed to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
ret = CLIENT_SEND_EVENT(inst, packet);
- if (inst->pd.need_to_send_close_event && inst->pd.pended_update_cnt) {
- DbgPrint("Apply pended desc(%d) - %s\n", inst->pd.pended_update_cnt, inst->pd.pended_update_desc);
- instance_pd_updated_by_instance(inst, inst->pd.pended_update_desc);
- inst->pd.pended_update_cnt = 0;
- DbgFree(inst->pd.pended_update_desc);
- inst->pd.pended_update_desc = NULL;
+ 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);
+ instance_gbar_updated_by_instance(inst, inst->gbar.pended_update_desc, 0, 0, inst->gbar.width, inst->gbar.height);
+ inst->gbar.pended_update_cnt = 0;
+ DbgFree(inst->gbar.pended_update_desc);
+ inst->gbar.pended_update_desc = NULL;
}
return ret;
}
-HAPI int instance_client_pd_destroyed(struct inst_info *inst, int status)
+HAPI int instance_client_gbar_destroyed(struct inst_info *inst, int status)
{
- return send_pd_destroyed_to_client(inst, status);
+ return send_gbar_destroyed_to_client(inst, status);
+}
+
+HAPI int instance_client_gbar_extra_buffer_created(struct inst_info *inst, int idx)
+{
+ struct packet *packet;
+ unsigned int cmd = CMD_GBAR_CREATE_XBUF;
+ int pixmap;
+
+ pixmap = buffer_handler_pixmap(inst->gbar.extra_buffer[idx]);
+ if (pixmap == 0) {
+ ErrPrint("Invalid buffer\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ packet = packet_create_noack((const char *)&cmd, "ssii", package_name(inst->info), inst->id, pixmap, idx);
+ if (!packet) {
+ ErrPrint("Failed to create a packet\n");
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ return CLIENT_SEND_EVENT(inst, packet);
+}
+
+HAPI int instance_client_gbar_extra_buffer_destroyed(struct inst_info *inst, int idx)
+{
+ struct packet *packet;
+ unsigned int cmd = CMD_GBAR_DESTROY_XBUF;
+ int pixmap;
+
+ pixmap = buffer_handler_pixmap(inst->gbar.extra_buffer[idx]);
+ if (pixmap == 0) {
+ ErrPrint("Invalid buffer\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ packet = packet_create_noack((const char *)&cmd, "ssii", package_name(inst->info), inst->id, pixmap, idx);
+ if (!packet) {
+ ErrPrint("Failed to create a packet\n");
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ return CLIENT_SEND_EVENT(inst, packet);
+}
+
+HAPI int instance_client_dbox_extra_buffer_created(struct inst_info *inst, int idx)
+{
+ struct packet *packet;
+ unsigned int cmd = CMD_DBOX_CREATE_XBUF;
+ int pixmap;
+
+ pixmap = buffer_handler_pixmap(inst->dbox.extra_buffer[idx]);
+ if (pixmap == 0) {
+ ErrPrint("Invalid buffer\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ packet = packet_create_noack((const char *)&cmd, "ssii", package_name(inst->info), inst->id, pixmap, idx);
+ if (!packet) {
+ ErrPrint("Failed to create a packet\n");
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ return CLIENT_SEND_EVENT(inst, packet);
+}
+
+HAPI int instance_client_dbox_extra_buffer_destroyed(struct inst_info *inst, int idx)
+{
+ struct packet *packet;
+ unsigned int cmd = CMD_DBOX_DESTROY_XBUF;
+ int pixmap;
+
+ pixmap = buffer_handler_pixmap(inst->dbox.extra_buffer[idx]);
+ if (pixmap == 0) {
+ ErrPrint("Invalid buffer\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ packet = packet_create_noack((const char *)&cmd, "ssii", package_name(inst->info), inst->id, pixmap, idx);
+ if (!packet) {
+ ErrPrint("Failed to create a packet\n");
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ return CLIENT_SEND_EVENT(inst, packet);
}
HAPI int instance_add_client(struct inst_info *inst, struct client_node *client)
{
if (inst->client == client) {
ErrPrint("Owner cannot be the viewer\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgPrint("%d is added to the list of viewer of %s(%s)\n", client_pid(client), package_name(instance_package(inst)), instance_id(inst));
if (client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, viewer_deactivated_cb, inst) < 0) {
ErrPrint("Failed to add a deactivate callback\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
instance_ref(inst);
inst->client_list = eina_list_append(inst->client_list, client);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int instance_del_client(struct inst_info *inst, struct client_node *client)
{
if (inst->client == client) {
ErrPrint("Owner is not in the viewer list\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
client_event_callback_del(client, CLIENT_EVENT_DEACTIVATE, viewer_deactivated_cb, inst);
viewer_deactivated_cb(client, inst);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int instance_has_client(struct inst_info *inst, struct client_node *client)
@@ -3194,19 +3509,19 @@ HAPI void *instance_client_list(struct inst_info *inst)
HAPI int instance_init(void)
{
- if (!strcasecmp(PROVIDER_METHOD, "shm")) {
- s_info.env_buf_type = BUFFER_TYPE_SHM;
- } else if (!strcasecmp(PROVIDER_METHOD, "pixmap")) {
- s_info.env_buf_type = BUFFER_TYPE_PIXMAP;
+ if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "shm")) {
+ s_info.env_buf_type = DBOX_FB_TYPE_SHM;
+ } else if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "pixmap")) {
+ s_info.env_buf_type = DBOX_FB_TYPE_PIXMAP;
}
- /* Default method is BUFFER_TYPE_FILE */
+ /* Default method is DBOX_FB_TYPE_FILE */
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int instance_fini(void)
{
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline struct tag_item *find_tag_item(struct inst_info *inst, const char *tag)
@@ -3232,14 +3547,14 @@ HAPI int instance_set_data(struct inst_info *inst, const char *tag, void *data)
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->tag = strdup(tag);
if (!item->tag) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
inst->data_list = eina_list_append(inst->data_list, item);
@@ -3253,7 +3568,7 @@ HAPI int instance_set_data(struct inst_info *inst, const char *tag, void *data)
item->data = data;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void *instance_del_data(struct inst_info *inst, const char *tag)
@@ -3286,9 +3601,9 @@ HAPI void *instance_get_data(struct inst_info *inst, const char *tag)
return item->data;
}
-HAPI struct client_node *instance_pd_owner(struct inst_info *inst)
+HAPI struct client_node *instance_gbar_owner(struct inst_info *inst)
{
- return inst->pd.owner;
+ return inst->gbar.owner;
}
/* End of a file */
diff --git a/src/io.c b/src/io.c
index 8593ab7..fbd9ccb 100644
--- a/src/io.c
+++ b/src/io.c
@@ -27,7 +27,9 @@
#include <Eina.h>
#include <sqlite3.h>
#include <db-util.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_conf.h>
#include "debug.h"
#include "conf.h"
@@ -42,6 +44,9 @@
int errno;
+#define MAX_ABI 256
+#define MAX_PKGNAME 512
+
static struct {
sqlite3 *handle;
} s_info = {
@@ -75,7 +80,7 @@ static int load_abi_table(void)
fp = fopen("/usr/share/"PACKAGE"/abi.ini", "rt");
if (!fp) {
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
state = INIT;
@@ -211,12 +216,12 @@ static int load_abi_table(void)
if (fclose(fp) != 0) {
ErrPrint("fclose: %s\n", strerror(errno));
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int build_client_info(struct pkg_info *info)
{
- static const char *dml = "SELECT auto_launch, pd_size FROM client WHERE pkgid = ?";
+ static const char *dml = "SELECT auto_launch, gbar_size FROM client WHERE pkgid = ?";
sqlite3_stmt *stmt;
int width;
int height;
@@ -226,14 +231,14 @@ static inline int build_client_info(struct pkg_info *info)
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = sqlite3_bind_text(stmt, 1, package_name(info), -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
ErrPrint("Failed to bind a pkgname %s\n", package_name(info));
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (sqlite3_step(stmt) != SQLITE_ROW) {
@@ -241,7 +246,7 @@ static inline int build_client_info(struct pkg_info *info)
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
package_set_auto_launch(info, (const char *)sqlite3_column_text(stmt, 0));
@@ -249,22 +254,22 @@ static inline int build_client_info(struct pkg_info *info)
tmp = (const char *)sqlite3_column_text(stmt, 1);
if (tmp && strlen(tmp)) {
if (sscanf(tmp, "%dx%d", &width, &height) != 2) {
- ErrPrint("Failed to get PD width and Height (%s)\n", tmp);
+ ErrPrint("Failed to get GBAR width and Height (%s)\n", tmp);
} else {
- package_set_pd_width(info, width);
- package_set_pd_height(info, height);
+ package_set_gbar_width(info, width);
+ package_set_gbar_height(info, height);
}
}
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int build_provider_info(struct pkg_info *info)
{
- static const char *dml = "SELECT provider.network, provider.abi, provider.secured, provider.box_type, provider.box_src, provider.box_group, provider.pd_type, provider.pd_src, provider.pd_group, provider.libexec, provider.timeout, provider.period, provider.script, provider.pinup, pkgmap.appid FROM provider, pkgmap WHERE pkgmap.pkgid = ? AND provider.pkgid = ?";
+ static const char *dml = "SELECT provider.network, provider.abi, provider.secured, provider.box_type, provider.box_src, provider.box_group, provider.gbar_type, provider.gbar_src, provider.gbar_group, provider.libexec, provider.timeout, provider.period, provider.script, provider.pinup, pkgmap.appid, provider.direct_input, provider.hw_acceleration FROM provider, pkgmap WHERE pkgmap.pkgid = ? AND provider.pkgid = ?";
sqlite3_stmt *stmt;
int ret;
const char *tmp;
@@ -273,19 +278,19 @@ static inline int build_provider_info(struct pkg_info *info)
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (sqlite3_bind_text(stmt, 1, package_name(info), -1, SQLITE_TRANSIENT) != SQLITE_OK) {
ErrPrint("Failed to bind a pkgname(%s) - %s\n", package_name(info), sqlite3_errmsg(s_info.handle));
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (sqlite3_bind_text(stmt, 2, package_name(info), -1, SQLITE_TRANSIENT) != SQLITE_OK) {
ErrPrint("Failed to bind a pkgname(%s) - %s\n", package_name(info), sqlite3_errmsg(s_info.handle));
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (sqlite3_step(stmt) != SQLITE_ROW) {
@@ -293,7 +298,7 @@ static inline int build_provider_info(struct pkg_info *info)
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
appid = (const char *)sqlite3_column_text(stmt, 14);
@@ -302,7 +307,7 @@ static inline int build_provider_info(struct pkg_info *info)
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
package_set_network(info, sqlite3_column_int(stmt, 0));
@@ -313,25 +318,25 @@ static inline int build_provider_info(struct pkg_info *info)
package_set_abi(info, tmp);
}
- package_set_lb_type(info, sqlite3_column_int(stmt, 3));
+ package_set_dbox_type(info, sqlite3_column_int(stmt, 3));
tmp = (const char *)sqlite3_column_text(stmt, 4);
if (tmp && strlen(tmp)) {
- package_set_lb_path(info, tmp);
+ package_set_dbox_path(info, tmp);
tmp = (const char *)sqlite3_column_text(stmt, 5);
if (tmp && strlen(tmp)) {
- package_set_lb_group(info, tmp);
+ package_set_dbox_group(info, tmp);
}
}
- package_set_pd_type(info, sqlite3_column_int(stmt, 6));
+ package_set_gbar_type(info, sqlite3_column_int(stmt, 6));
tmp = (const char *)sqlite3_column_text(stmt, 7);
if (tmp && strlen(tmp)) {
- package_set_pd_path(info, tmp);
+ package_set_gbar_path(info, tmp);
tmp = (const char *)sqlite3_column_text(stmt, 8);
if (tmp && strlen(tmp)) {
- package_set_pd_group(info, tmp);
+ package_set_gbar_group(info, tmp);
}
}
@@ -353,11 +358,13 @@ static inline int build_provider_info(struct pkg_info *info)
}
package_set_pinup(info, sqlite3_column_int(stmt, 13));
+ package_set_direct_input(info, sqlite3_column_int(stmt, 15));
+ package_set_hw_acceleration(info, (const char *)sqlite3_column_text(stmt, 16));
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int build_box_size_info(struct pkg_info *info)
@@ -371,13 +378,13 @@ static inline int build_box_size_info(struct pkg_info *info)
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (sqlite3_bind_text(stmt, 1, package_name(info), -1, SQLITE_TRANSIENT) != SQLITE_OK) {
ErrPrint("Failed to bind a pkgname(%s) - %s\n", package_name(info), sqlite3_errmsg(s_info.handle));
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
size_list = 0;
@@ -391,7 +398,7 @@ static inline int build_box_size_info(struct pkg_info *info)
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int load_context_option(struct context_item *item, int id)
@@ -405,17 +412,17 @@ static inline int load_context_option(struct context_item *item, int id)
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = sqlite3_bind_int(stmt, 1, id);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- ret = LB_STATUS_ERROR_IO;
+ ret = DBOX_STATUS_ERROR_IO_ERROR;
goto out;
}
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
while (sqlite3_step(stmt) == SQLITE_ROW) {
key = (const char *)sqlite3_column_text(stmt, 0);
if (!key || !strlen(key)) {
@@ -454,17 +461,17 @@ static inline int load_context_item(struct context_info *info, int id)
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = sqlite3_bind_int(stmt, 1, id);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- ret = LB_STATUS_ERROR_IO;
+ ret = DBOX_STATUS_ERROR_IO_ERROR;
goto out;
}
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
while (sqlite3_step(stmt) == SQLITE_ROW) {
ctx_item = (const char *)sqlite3_column_text(stmt, 0);
option_id = sqlite3_column_int(stmt, 1);
@@ -472,7 +479,7 @@ static inline int load_context_item(struct context_info *info, int id)
item = group_add_context_item(info, ctx_item);
if (!item) {
ErrPrint("Failed to add a new context item\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
break;
}
@@ -504,14 +511,14 @@ static inline int build_group_info(struct pkg_info *info)
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = sqlite3_bind_text(stmt, 1, package_name(info), -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
ErrPrint("Failed to bind a package name(%s)\n", package_name(info));
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
@@ -557,7 +564,7 @@ static inline int build_group_info(struct pkg_info *info)
if (ctx_info) {
ret = load_context_item(ctx_info, id);
if (ret < 0) {
- if (ret == (int)LB_STATUS_ERROR_NOT_EXIST) {
+ if (ret == (int)DBOX_STATUS_ERROR_NOT_EXIST) {
DbgPrint("Has no specific context info\n");
} else {
DbgPrint("Context info is not valid\n");
@@ -575,7 +582,7 @@ static inline int build_group_info(struct pkg_info *info)
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int io_is_exists(const char *lbid)
@@ -585,25 +592,25 @@ HAPI int io_is_exists(const char *lbid)
if (!s_info.handle) {
ErrPrint("DB is not ready\n");
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = sqlite3_prepare_v2(s_info.handle, "SELECT COUNT(pkgid) FROM pkgmap WHERE pkgid = ?", -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = sqlite3_bind_text(stmt, 1, lbid, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- ret = LB_STATUS_ERROR_IO;
+ ret = DBOX_STATUS_ERROR_IO_ERROR;
goto out;
}
if (sqlite3_step(stmt) != SQLITE_ROW) {
ErrPrint("%s has no record (%s)\n", lbid, sqlite3_errmsg(s_info.handle));
- ret = LB_STATUS_ERROR_IO;
+ ret = DBOX_STATUS_ERROR_IO_ERROR;
goto out;
}
@@ -614,7 +621,7 @@ out:
return ret;
}
-HAPI char *io_livebox_pkgname(const char *pkgname)
+HAPI char *io_dynamicbox_pkgname(const char *pkgname)
{
sqlite3_stmt *stmt;
char *pkgid;
@@ -665,7 +672,7 @@ out:
return pkgid;
}
-HAPI int io_crawling_liveboxes(int (*cb)(const char *pkgid, const char *lbid, int prime, void *data), void *data)
+HAPI int io_crawling_dynamicboxes(int (*cb)(const char *pkgid, const char *lbid, int prime, void *data), void *data)
{
DIR *dir;
@@ -699,7 +706,7 @@ HAPI int io_crawling_liveboxes(int (*cb)(const char *pkgid, const char *lbid, in
if (cb(pkgid, lbid, prime, data) < 0) {
sqlite3_reset(stmt);
sqlite3_finalize(stmt);
- return LB_STATUS_ERROR_CANCEL;
+ return DBOX_STATUS_ERROR_CANCEL;
}
}
@@ -708,7 +715,7 @@ HAPI int io_crawling_liveboxes(int (*cb)(const char *pkgid, const char *lbid, in
}
}
- dir = opendir(ROOT_PATH);
+ dir = opendir(DYNAMICBOX_CONF_ROOT_PATH);
if (!dir) {
ErrPrint("Error: %s\n", strerror(errno));
} else {
@@ -723,7 +730,7 @@ HAPI int io_crawling_liveboxes(int (*cb)(const char *pkgid, const char *lbid, in
if (closedir(dir) < 0) {
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_CANCEL;
+ return DBOX_STATUS_ERROR_CANCEL;
}
}
@@ -732,10 +739,10 @@ HAPI int io_crawling_liveboxes(int (*cb)(const char *pkgid, const char *lbid, in
}
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI int io_update_livebox_package(const char *pkgid, int (*cb)(const char *pkgid, const char *lbid, int prime, void *data), void *data)
+HAPI int io_update_dynamicbox_package(const char *pkgid, int (*cb)(const char *pkgid, const char *lbid, int prime, void *data), void *data)
{
sqlite3_stmt *stmt;
char *lbid;
@@ -743,24 +750,24 @@ HAPI int io_update_livebox_package(const char *pkgid, int (*cb)(const char *pkgi
int ret;
if (!cb || !pkgid) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!s_info.handle) {
ErrPrint("DB is not ready\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = sqlite3_prepare_v2(s_info.handle, "SELECT pkgid, prime FROM pkgmap WHERE appid = ?", -1, &stmt, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
ret = sqlite3_bind_text(stmt, 1, pkgid, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
ErrPrint("Error: %s\n", sqlite3_errmsg(s_info.handle));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
@@ -792,7 +799,7 @@ HAPI int io_load_package_db(struct pkg_info *info)
if (!s_info.handle) {
ErrPrint("DB is not ready\n");
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
ret = build_provider_info(info);
@@ -815,7 +822,7 @@ HAPI int io_load_package_db(struct pkg_info *info)
return ret;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int db_init(void)
@@ -823,43 +830,43 @@ static inline int db_init(void)
int ret;
struct stat stat;
- ret = db_util_open_with_options(DBFILE, &s_info.handle, SQLITE_OPEN_READONLY, NULL);
+ ret = db_util_open_with_options(DYNAMICBOX_CONF_DBFILE, &s_info.handle, SQLITE_OPEN_READONLY, NULL);
if (ret != SQLITE_OK) {
ErrPrint("Failed to open a DB\n");
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
- if (lstat(DBFILE, &stat) < 0) {
+ if (lstat(DYNAMICBOX_CONF_DBFILE, &stat) < 0) {
db_util_close(s_info.handle);
s_info.handle = NULL;
ErrPrint("%s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (!S_ISREG(stat.st_mode)) {
ErrPrint("Invalid file\n");
db_util_close(s_info.handle);
s_info.handle = NULL;
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (stat.st_size <= 0) {
DbgPrint("Size is %d (But use this ;)\n", stat.st_size);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int db_fini(void)
{
if (!s_info.handle) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
db_util_close(s_info.handle);
s_info.handle = NULL;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int io_init(void)
@@ -876,7 +883,7 @@ HAPI int io_init(void)
DbgPrint("ABI table is loaded: %d\n", ret);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int io_fini(void)
@@ -889,7 +896,7 @@ HAPI int io_fini(void)
if (ret < 0) {
DbgPrint("DB finalized: %d\n", ret);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/liveinfo.c b/src/liveinfo.c
index 9c8f217..cba5b95 100644
--- a/src/liveinfo.c
+++ b/src/liveinfo.c
@@ -27,7 +27,7 @@
#include <Eina.h>
#include <dlog.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include "util.h"
#include "debug.h"
@@ -151,10 +151,10 @@ HAPI int liveinfo_open_fifo(struct liveinfo *info)
info->fp = fopen(info->fifo_name, "w");
if (!info->fp) {
ErrPrint("open: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void liveinfo_close_fifo(struct liveinfo *info)
diff --git a/src/main.c b/src/main.c
index ff14f9c..97d1723 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,6 +23,8 @@
#include <sys/signalfd.h>
#include <ctype.h>
+#include <systemd/sd-daemon.h>
+
#include <Ecore.h>
#include <glib.h>
#include <glib-object.h>
@@ -31,10 +33,12 @@
#include <packet.h>
#include <dlog.h>
-#include <systemd/sd-daemon.h>
-
#if defined(HAVE_LIVEBOX)
+
+#include <dynamicbox_service.h>
+#include <dynamicbox_conf.h>
+
#include "slave_life.h"
#include "slave_rpc.h"
#include "client_life.h"
@@ -62,6 +66,7 @@
#include "badge_service.h"
#if defined(FLOG)
+#define TMP_LOG_FILE "/tmp/live.log"
FILE *__file_log_fp;
#endif
@@ -69,9 +74,9 @@ static inline int app_create(void)
{
int ret;
- if (access(SLAVE_LOG_PATH, R_OK | W_OK) != 0) {
- if (mkdir(SLAVE_LOG_PATH, 0755) < 0) {
- ErrPrint("Failed to create %s (%s)\n", SLAVE_LOG_PATH, strerror(errno));
+ if (access(DYNAMICBOX_CONF_LOG_PATH, R_OK | W_OK) != 0) {
+ if (mkdir(DYNAMICBOX_CONF_LOG_PATH, 0755) < 0) {
+ ErrPrint("Failed to create %s (%s)\n", DYNAMICBOX_CONF_LOG_PATH, strerror(errno));
}
}
@@ -145,24 +150,24 @@ static inline int app_create(void)
script_init();
- if (util_service_is_enabled(SERVICE_FILE)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_FILE)) {
file_service_init();
}
- if (util_service_is_enabled(SERVICE_UTILITY)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_UTILITY)) {
utility_service_init();
}
#endif
- if (util_service_is_enabled(SERVICE_SHORTCUT)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_SHORTCUT)) {
shortcut_service_init();
}
- if (util_service_is_enabled(SERVICE_NOTIFICATION)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_NOTIFICATION)) {
notification_service_init();
}
- if (util_service_is_enabled(SERVICE_BADGE)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_BADGE)) {
badge_service_init();
}
@@ -173,21 +178,21 @@ static inline int app_terminate(void)
{
int ret;
- if (util_service_is_enabled(SERVICE_BADGE)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_BADGE)) {
ret = badge_service_fini();
if (ret < 0) {
DbgPrint("badge: %d\n", ret);
}
}
- if (util_service_is_enabled(SERVICE_NOTIFICATION)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_NOTIFICATION)) {
ret = notification_service_fini();
if (ret < 0) {
DbgPrint("noti: %d\n", ret);
}
}
- if (util_service_is_enabled(SERVICE_SHORTCUT)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_SHORTCUT)) {
ret = shortcut_service_fini();
if (ret < 0) {
DbgPrint("shortcut: %d\n", ret);
@@ -195,7 +200,7 @@ static inline int app_terminate(void)
}
#if defined(HAVE_LIVEBOX)
- if (util_service_is_enabled(SERVICE_FILE)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_FILE)) {
ret = file_service_fini();
if (ret < 0) {
DbgPrint("Finalize the file service: %d\n", ret);
@@ -212,7 +217,7 @@ static inline int app_terminate(void)
DbgPrint("dead signal handler finalized: %d\n", ret);
}
- if (util_service_is_enabled(SERVICE_UTILITY)) {
+ if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_UTILITY)) {
ret = utility_service_fini();
if (ret < 0) {
DbgPrint("utility: %d\n", ret);
@@ -277,12 +282,14 @@ static Eina_Bool signal_cb(void *data, Ecore_Fd_Handler *handler)
fd = ecore_main_fd_handler_fd_get(handler);
if (fd < 0) {
ErrPrint("Unable to get FD\n");
+ ecore_main_fd_handler_del(handler);
return ECORE_CALLBACK_CANCEL;
}
size = read(fd, &fdsi, sizeof(fdsi));
if (size != sizeof(fdsi)) {
ErrPrint("Unable to get siginfo: %s\n", strerror(errno));
+ ecore_main_fd_handler_del(handler);
return ECORE_CALLBACK_CANCEL;
}
@@ -331,26 +338,25 @@ int main(int argc, char *argv[])
sigset_t mask;
Ecore_Fd_Handler *signal_handler = NULL;
-#if defined(HAVE_LIVEBOX)
- conf_init();
- conf_loader();
+#if defined(FLOG)
+ __file_log_fp = fopen(TMP_LOG_FILE, "w+t");
+ if (!__file_log_fp) {
+ __file_log_fp = fdopen(1, "w+t");
+ }
#endif
- /*!
- * \note
- * Clear old contents files before start the master provider.
- */
- (void)util_unlink_files(ALWAYS_PATH);
- (void)util_unlink_files(READER_PATH);
- (void)util_unlink_files(IMAGE_PATH);
- (void)util_unlink_files(SLAVE_LOG_PATH);
+ /* appcore_agent_terminate */
+ if (ecore_init() <= 0) {
+ return -EFAULT;
+ }
- if (util_free_space(IMAGE_PATH) < MINIMUM_SPACE) {
- util_remove_emergency_disk();
- util_prepare_emergency_disk();
+ if (util_screen_init() <= 0) {
+ ecore_shutdown();
+ return -EFAULT;
}
- util_setup_log_disk();
+ dynamicbox_conf_init();
+ dynamicbox_conf_load();
/*!
* How could we care this return values?
@@ -361,19 +367,22 @@ int main(int argc, char *argv[])
ErrPrint("Failed to init the critical log\n");
}
-#if defined(FLOG)
- __file_log_fp = fopen("/tmp/live.log", "w+t");
- if (!__file_log_fp) {
- __file_log_fp = fdopen(1, "w+t");
- }
-#endif
- /* appcore_agent_terminate */
- if (ecore_init() <= 0) {
- CRITICAL_LOG("Failed to initiate ecore\n");
- critical_log_fini();
- return -EFAULT;
+ /*!
+ * \note
+ * Clear old contents files before start the master provider.
+ */
+ (void)util_unlink_files(DYNAMICBOX_CONF_ALWAYS_PATH);
+ (void)util_unlink_files(DYNAMICBOX_CONF_READER_PATH);
+ (void)util_unlink_files(DYNAMICBOX_CONF_IMAGE_PATH);
+ (void)util_unlink_files(DYNAMICBOX_CONF_LOG_PATH);
+
+ if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) < DYNAMICBOX_CONF_MINIMUM_SPACE) {
+ util_remove_emergency_disk();
+ util_prepare_emergency_disk();
}
+ util_setup_log_disk();
+
sigemptyset(&mask);
ret = sigaddset(&mask, SIGTERM);
@@ -404,29 +413,13 @@ int main(int argc, char *argv[])
CRITICAL_LOG("Signal handler initiated: %d\n", ret);
}
- if (util_screen_init() <= 0) {
- CRITICAL_LOG("Failed to ecore x init\n");
- ecore_shutdown();
- critical_log_fini();
- return -EFAULT;
- }
-
ecore_app_args_set(argc, (const char **)argv);
#if (GLIB_MAJOR_VERSION <= 2 && GLIB_MINOR_VERSION < 36)
g_type_init();
#endif
-#if defined(HAVE_LIVEBOX)
- /*!
- * \note
- * conf_update_size requires util_screen_init.
- */
- conf_update_size();
-#endif
-
app_create();
-
sd_notify(0, "READY=1");
vconf_get_int(VCONFKEY_MASTER_RESTART_COUNT, &restart_count);
@@ -454,7 +447,7 @@ int main(int argc, char *argv[])
}
#endif
- conf_reset();
+ dynamicbox_conf_reset();
return 0;
}
diff --git a/src/notification_service.c b/src/notification_service.c
index 76a1149..6448ae6 100644
--- a/src/notification_service.c
+++ b/src/notification_service.c
@@ -19,7 +19,7 @@
#include <dlog.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#else
#include "lite-errno.h"
#endif
@@ -29,9 +29,10 @@
#include <security-server.h>
#include <vconf.h>
+#include <notification.h>
+#include <notification_internal.h>
#include <notification_ipc.h>
#include <notification_noti.h>
-#include <notification_error.h>
#include <notification_setting_service.h>
#include "service_common.h"
@@ -89,90 +90,161 @@ static inline int _priv_id_get_from_list(int num_data, int *list, int index) {
static inline struct packet *_packet_create_with_list(int op_num, int *list, int start_index) {
return packet_create(
- "del_noti_multiple",
- "iiiiiiiiiii",
- ((op_num - start_index) > NOTIFICATION_DEL_PACKET_UNIT) ? NOTIFICATION_DEL_PACKET_UNIT : op_num - start_index,
- _priv_id_get_from_list(op_num, list, start_index),
- _priv_id_get_from_list(op_num, list, start_index + 1),
- _priv_id_get_from_list(op_num, list, start_index + 2),
- _priv_id_get_from_list(op_num, list, start_index + 3),
- _priv_id_get_from_list(op_num, list, start_index + 4),
- _priv_id_get_from_list(op_num, list, start_index + 5),
- _priv_id_get_from_list(op_num, list, start_index + 6),
- _priv_id_get_from_list(op_num, list, start_index + 7),
- _priv_id_get_from_list(op_num, list, start_index + 8),
- _priv_id_get_from_list(op_num, list, start_index + 9)
- );
+ "del_noti_multiple",
+ "iiiiiiiiiii",
+ ((op_num - start_index) > NOTIFICATION_DEL_PACKET_UNIT) ? NOTIFICATION_DEL_PACKET_UNIT : op_num - start_index,
+ _priv_id_get_from_list(op_num, list, start_index),
+ _priv_id_get_from_list(op_num, list, start_index + 1),
+ _priv_id_get_from_list(op_num, list, start_index + 2),
+ _priv_id_get_from_list(op_num, list, start_index + 3),
+ _priv_id_get_from_list(op_num, list, start_index + 4),
+ _priv_id_get_from_list(op_num, list, start_index + 5),
+ _priv_id_get_from_list(op_num, list, start_index + 6),
+ _priv_id_get_from_list(op_num, list, start_index + 7),
+ _priv_id_get_from_list(op_num, list, start_index + 8),
+ _priv_id_get_from_list(op_num, list, start_index + 9)
+ );
}
/*!
* SERVICE HANDLER
*/
-static void _handler_insert(struct tcb *tcb, struct packet *packet, void *data)
+static void _handler_insert_noti(struct tcb *tcb, struct packet *packet, notification_h noti, void *data)
{
int ret = 0, ret_p = 0;
int priv_id = 0;
struct packet *packet_reply = NULL;
struct packet *packet_service = NULL;
+
+ ret = notification_noti_insert(noti);
+ notification_get_id(noti, NULL, &priv_id);
+ DbgPrint("priv_id: [%d]\n", priv_id);
+ packet_reply = packet_create_reply(packet, "ii", ret, priv_id);
+ if (packet_reply) {
+ if ((ret_p = service_common_unicast_packet(tcb, packet_reply)) < 0) {
+ ErrPrint("failed to send reply packet: %d\n", ret_p);
+ }
+ packet_destroy(packet_reply);
+ } else {
+ ErrPrint("failed to create a reply packet\n");
+ }
+
+ if (ret != NOTIFICATION_ERROR_NONE) {
+ ErrPrint("failed to insert a notification: %d\n", ret);
+ return ;
+ }
+
+ packet_service = notification_ipc_make_packet_from_noti(noti, "add_noti", 2);
+ if (packet_service != NULL) {
+ if ((ret_p = service_common_multicast_packet(tcb, packet_service, TCB_CLIENT_TYPE_SERVICE)) < 0) {
+ ErrPrint("failed to send a multicast packet: %d\n", ret_p);
+ }
+ packet_destroy(packet_service);
+ } else {
+ ErrPrint("failed to create a multicats packet\n");
+ }
+}
+
+/*static void _handler_insert(struct tcb *tcb, struct packet *packet, void *data) // not used
+ {
+ notification_h noti = NULL;
+
+ noti = notification_create(NOTIFICATION_TYPE_NOTI);
+ if (noti != NULL) {
+ if (notification_ipc_make_noti_from_packet(noti, packet) == NOTIFICATION_ERROR_NONE) {
+ _handler_insert_noti(tcb, packet, noti, data);
+ } else {
+ ErrPrint("Failed to create the packet");
+ }
+ notification_free(noti);
+ }
+ }*/
+
+static void _handler_update_noti(struct tcb *tcb, struct packet *packet, notification_h noti, void *data)
+{
+ int ret = 0, ret_p = 0;
+ int priv_id = 0;
+ struct packet *packet_reply = NULL;
+ struct packet *packet_service = NULL;
+
+ ret = notification_noti_update(noti);
+
+ notification_get_id(noti, NULL, &priv_id);
+ DbgPrint("priv_id: [%d]\n", priv_id);
+ packet_reply = packet_create_reply(packet, "ii", ret, priv_id);
+ if (packet_reply) {
+ if ((ret_p = service_common_unicast_packet(tcb, packet_reply)) < 0) {
+ ErrPrint("failed to send reply packet:%d\n", ret_p);
+ }
+ packet_destroy(packet_reply);
+ } else {
+ ErrPrint("failed to create a reply packet\n");
+ }
+
+ if (ret != NOTIFICATION_ERROR_NONE) {
+ ErrPrint("failed to update a notification:%d\n", ret);
+ return ;
+ }
+
+ packet_service = notification_ipc_make_packet_from_noti(noti, "update_noti", 2);
+ if (packet_service != NULL) {
+ if ((ret_p = service_common_multicast_packet(tcb, packet_service, TCB_CLIENT_TYPE_SERVICE)) < 0) {
+ ErrPrint("failed to send a multicast packet: %d\n", ret_p);
+ }
+ packet_destroy(packet_service);
+ }
+}
+
+static void _handler_update(struct tcb *tcb, struct packet *packet, void *data)
+{
notification_h noti = NULL;
noti = notification_create(NOTIFICATION_TYPE_NOTI);
if (noti != NULL) {
if (notification_ipc_make_noti_from_packet(noti, packet) == NOTIFICATION_ERROR_NONE) {
- ret = notification_noti_insert(noti);
- notification_get_id(noti, NULL, &priv_id);
- DbgPrint("priv_id: [%d]\n", priv_id);
- packet_reply = packet_create_reply(packet, "ii", ret, priv_id);
- if (packet_reply) {
- if ((ret_p = service_common_unicast_packet(tcb, packet_reply)) < 0) {
- ErrPrint("failed to send reply packet: %d\n", ret_p);
- }
- packet_destroy(packet_reply);
- } else {
- ErrPrint("failed to create a reply packet\n");
- }
+ _handler_update_noti(tcb, packet, noti, data);
+ } else {
+ ErrPrint("Failed to create the packet");
+ }
+ notification_free(noti);
+ }
+}
- if (ret != NOTIFICATION_ERROR_NONE) {
- ErrPrint("failed to insert a notification: %d\n", ret);
- notification_free(noti);
- return ;
- }
+static void _handler_check_noti_by_tag(struct tcb *tcb, struct packet *packet, void *data)
+{
+ int ret = 0;
+ notification_h noti = NULL;
- packet_service = notification_ipc_make_packet_from_noti(noti, "add_noti", 2);
- if (packet_service != NULL) {
- if ((ret_p = service_common_multicast_packet(tcb, packet_service, TCB_CLIENT_TYPE_SERVICE)) < 0) {
- ErrPrint("failed to send a multicast packet: %d\n", ret_p);
- }
- packet_destroy(packet_service);
- } else {
- ErrPrint("failed to create a multicats packet\n");
+ noti = notification_create(NOTIFICATION_TYPE_NOTI);
+ if (noti != NULL) {
+ if (notification_ipc_make_noti_from_packet(noti, packet) == NOTIFICATION_ERROR_NONE) {
+ ret = notification_noti_check_tag(noti);
+ if (ret == NOTIFICATION_ERROR_NOT_EXIST_ID) {
+ _handler_insert_noti(tcb, packet, noti, data);
+ } else if (ret == NOTIFICATION_ERROR_ALREADY_EXIST_ID) {
+ _handler_update_noti(tcb, packet, noti, data);
}
- } else {
- ErrPrint("Failed to create the packet");
}
notification_free(noti);
}
}
-static void _handler_update(struct tcb *tcb, struct packet *packet, void *data)
+static void _handler_load_noti_by_tag(struct tcb *tcb, struct packet *packet, void *data)
{
int ret = 0, ret_p = 0;
- int priv_id = 0;
+ char* tag;
+ char* pkgname;
struct packet *packet_reply = NULL;
- struct packet *packet_service = NULL;
notification_h noti = NULL;
noti = notification_create(NOTIFICATION_TYPE_NOTI);
if (noti != NULL) {
- if (notification_ipc_make_noti_from_packet(noti, packet) == NOTIFICATION_ERROR_NONE) {
- ret = notification_noti_update(noti);
-
- notification_get_id(noti, NULL, &priv_id);
- DbgPrint("priv_id: [%d]\n", priv_id);
- packet_reply = packet_create_reply(packet, "ii", ret, priv_id);
+ if (packet_get(packet, "ss", &pkgname, &tag) == 2) {
+ ret = notification_noti_get_by_tag(noti, pkgname, tag);
+ packet_reply = notification_ipc_make_reply_packet_from_noti(noti, packet);
if (packet_reply) {
if ((ret_p = service_common_unicast_packet(tcb, packet_reply)) < 0) {
- ErrPrint("failed to send reply packet:%d\n", ret_p);
+ ErrPrint("failed to send reply packet: %d\n", ret_p);
}
packet_destroy(packet_reply);
} else {
@@ -180,18 +252,10 @@ static void _handler_update(struct tcb *tcb, struct packet *packet, void *data)
}
if (ret != NOTIFICATION_ERROR_NONE) {
- ErrPrint("failed to update a notification:%d\n", ret);
+ ErrPrint("failed to load_noti_by_tag : %d\n", ret);
notification_free(noti);
return ;
}
-
- packet_service = notification_ipc_make_packet_from_noti(noti, "update_noti", 2);
- if (packet_service != NULL) {
- if ((ret_p = service_common_multicast_packet(tcb, packet_service, TCB_CLIENT_TYPE_SERVICE)) < 0) {
- ErrPrint("failed to send a multicast packet: %d\n", ret_p);
- }
- packet_destroy(packet_service);
- }
} else {
ErrPrint("Failed to create the packet");
}
@@ -199,6 +263,7 @@ static void _handler_update(struct tcb *tcb, struct packet *packet, void *data)
}
}
+
static void _handler_refresh(struct tcb *tcb, struct packet *packet, void *data)
{
int ret = 0;
@@ -418,6 +483,27 @@ static void _handler_service_register(struct tcb *tcb, struct packet *packet, vo
}
}
+static void _handler_post_toast_message(struct tcb *tcb, struct packet *packet, void *data)
+{
+ int ret = 0;
+ struct packet *packet_reply = NULL;
+
+ packet_reply = packet_create_reply(packet, "i", ret);
+ if (packet_reply) {
+ if ((ret = service_common_unicast_packet(tcb, packet_reply)) < 0) {
+ ErrPrint("failed to send reply packet:%d\n", ret);
+ }
+ packet_destroy(packet_reply);
+ } else {
+ ErrPrint("failed to create a reply packet\n");
+ }
+
+ if ((ret = service_common_multicast_packet(tcb, packet, TCB_CLIENT_TYPE_SERVICE)) < 0) {
+ ErrPrint("failed to send a multicast packet:%d\n", ret);
+ }
+
+}
+
/*!
* SERVICE PERMISSION CHECK
*/
@@ -538,10 +624,11 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
{
int i = 0;
const char *command;
+
static struct noti_service service_req_table[] = {
{
.cmd = "add_noti",
- .handler = _handler_insert,
+ .handler = _handler_check_noti_by_tag,
.rule = "data-provider-master::notification.client",
.access = "w",
.handler_access_error = _permission_check_common,
@@ -554,6 +641,13 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
.handler_access_error = _permission_check_common,
},
{
+ .cmd = "load_noti_by_tag",
+ .handler = _handler_load_noti_by_tag,
+ .rule = "data-provider-master::notification.client",
+ .access = "r",
+ .handler_access_error = _permission_check_common,
+ },
+ {
.cmd = "refresh_noti",
.handler = _handler_refresh,
.rule = "data-provider-master::notification.client",
@@ -596,6 +690,13 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
.handler_access_error = NULL,
},
{
+ .cmd = "post_toast",
+ .handler = _handler_post_toast_message,
+ .rule = NULL,
+ .access = NULL,
+ .handler_access_error = NULL,
+ },
+ {
.cmd = NULL,
.handler = NULL,
.rule = NULL,
@@ -661,7 +762,7 @@ HAPI int notification_service_init(void)
{
if (s_info.svc_ctx) {
ErrPrint("Already initialized\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
_notification_init();
@@ -669,7 +770,7 @@ HAPI int notification_service_init(void)
s_info.svc_ctx = service_common_create(NOTIFICATION_SOCKET, service_thread_main, NULL);
if (!s_info.svc_ctx) {
ErrPrint("Unable to activate service thread\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (smack_fsetlabel(service_common_fd(s_info.svc_ctx), NOTIFICATION_SMACK_LABEL, SMACK_LABEL_IPOUT) != 0) {
@@ -677,7 +778,7 @@ HAPI int notification_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
@@ -686,24 +787,24 @@ HAPI int notification_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
DbgPrint("Successfully initiated\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int notification_service_fini(void)
{
if (!s_info.svc_ctx) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
DbgPrint("Successfully Finalized\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/package.c b/src/package.c
index 30790e2..af343e4 100644
--- a/src/package.c
+++ b/src/package.c
@@ -23,8 +23,10 @@
#include <Eina.h>
#include <packet.h>
-#include <livebox-errno.h>
-#include <livebox-service.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_conf.h>
+#include <pkgmgr-info.h>
#include <ail.h>
#include "critical_log.h"
@@ -59,10 +61,10 @@ struct fault_info {
struct pkg_info {
char *pkgid;
- char *lbid;
+ char *dbox_id;
struct {
- enum lb_type type;
+ enum dynamicbox_dbox_type type;
union {
struct {
@@ -89,10 +91,10 @@ struct pkg_info {
int timeout;
double period;
char *libexec;
- } lb;
+ } dbox;
struct {
- enum pd_type type;
+ enum dynamicbox_gbar_type type;
union {
struct {
@@ -111,12 +113,14 @@ struct pkg_info {
unsigned int width;
unsigned int height;
- } pd;
+ } gbar;
int network;
int secured;
+ int direct_input;
char *script; /* script type: edje, ... */
char *abi;
+ char *hw_acceleration;
int fault_count;
struct fault_info *fault_info;
@@ -183,7 +187,7 @@ static int slave_fault_cb(struct slave_node *slave, void *data)
DbgPrint("Slave critical fault - package: %s (by slave fault %s\n", package_name(info), slave_name(slave));
EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
DbgPrint("Destroy instance %p\n", inst);
- instance_destroyed(inst, LB_STATUS_ERROR_FAULT);
+ instance_destroyed(inst, DBOX_STATUS_ERROR_FAULT);
}
return 0;
@@ -199,7 +203,7 @@ static int slave_deactivated_cb(struct slave_node *slave, void *data)
if (info->fault_info) {
EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
- instance_destroyed(inst, LB_STATUS_ERROR_FAULT);
+ instance_destroyed(inst, DBOX_STATUS_ERROR_FAULT);
}
} else {
EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
@@ -282,30 +286,31 @@ static int slave_resumed_cb(struct slave_node *slave, void *data)
static inline void destroy_package(struct pkg_info *info)
{
eina_list_free(info->ctx_list);
- /* This items will be deleted from group_del_livebox */
+ /* This items will be deleted from group_del_dynamicbox */
info->ctx_list = NULL;
- group_del_livebox(info->lbid);
+ group_del_dynamicbox(info->dbox_id);
package_clear_fault(info);
s_info.pkg_list = eina_list_remove(s_info.pkg_list, info);
- if (info->lb.type == LB_TYPE_SCRIPT) {
- DbgFree(info->lb.info.script.path);
- DbgFree(info->lb.info.script.group);
+ if (info->dbox.type == DBOX_TYPE_SCRIPT) {
+ DbgFree(info->dbox.info.script.path);
+ DbgFree(info->dbox.info.script.group);
}
- if (info->pd.type == PD_TYPE_SCRIPT) {
- DbgFree(info->pd.info.script.path);
- DbgFree(info->pd.info.script.group);
+ if (info->gbar.type == GBAR_TYPE_SCRIPT) {
+ DbgFree(info->gbar.info.script.path);
+ DbgFree(info->gbar.info.script.group);
}
DbgFree(info->script);
DbgFree(info->abi);
- DbgFree(info->lbid);
- DbgFree(info->lb.libexec);
- DbgFree(info->lb.auto_launch);
+ DbgFree(info->dbox_id);
+ DbgFree(info->dbox.libexec);
+ DbgFree(info->dbox.auto_launch);
DbgFree(info->pkgid);
+ DbgFree(info->hw_acceleration);
DbgFree(info);
}
@@ -316,181 +321,181 @@ static inline int load_conf(struct pkg_info *info)
const char *str;
const char *group;
- parser = parser_load(info->lbid);
+ parser = parser_load(info->dbox_id);
if (!parser) {
- info->lb.size_list = 0x01; /* Default */
+ info->dbox.size_list = 0x01; /* Default */
- info->script = strdup(DEFAULT_SCRIPT);
+ info->script = strdup(DYNAMICBOX_CONF_DEFAULT_SCRIPT);
if (!info->script) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- info->abi = strdup(DEFAULT_ABI);
+ info->abi = strdup(DYNAMICBOX_CONF_DEFAULT_ABI);
if (!info->abi) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(info->script);
info->script = NULL;
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- info->pd.width = g_conf.width;
- info->pd.height = g_conf.height >> 2;
- info->lb.pinup = 1;
- return LB_STATUS_SUCCESS;
+ info->gbar.width = DYNAMICBOX_CONF_BASE_W;
+ info->gbar.height = DYNAMICBOX_CONF_BASE_H >> 2;
+ info->dbox.pinup = 1;
+ return DBOX_STATUS_ERROR_NONE;
}
- info->lb.type = LB_TYPE_FILE;
- if (parser_text_lb(parser)) {
- info->lb.type = LB_TYPE_TEXT;
- } else if (parser_buffer_lb(parser)) {
- info->lb.type = LB_TYPE_BUFFER;
+ info->dbox.type = DBOX_TYPE_FILE;
+ if (parser_text_dbox(parser)) {
+ info->dbox.type = DBOX_TYPE_TEXT;
+ } else if (parser_buffer_dbox(parser)) {
+ info->dbox.type = DBOX_TYPE_BUFFER;
} else {
- str = parser_lb_path(parser);
+ str = parser_dbox_path(parser);
if (str) {
- info->lb.type = LB_TYPE_SCRIPT;
+ info->dbox.type = DBOX_TYPE_SCRIPT;
- info->lb.info.script.path = strdup(str);
- if (!info->lb.info.script.path) {
+ info->dbox.info.script.path = strdup(str);
+ if (!info->dbox.info.script.path) {
ErrPrint("Heap: %s\n", strerror(errno));
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- str = parser_lb_group(parser);
+ str = parser_dbox_group(parser);
if (str) {
- info->lb.info.script.group = strdup(str);
- if (!info->lb.info.script.group) {
+ info->dbox.info.script.group = strdup(str);
+ if (!info->dbox.info.script.group) {
ErrPrint("Heap: %s\n", strerror(errno));
- DbgFree(info->lb.info.script.path);
+ DbgFree(info->dbox.info.script.path);
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
}
}
}
- if (parser_text_pd(parser)) {
- info->pd.type = PD_TYPE_TEXT;
- } else if (parser_buffer_pd(parser)) {
- info->pd.type = PD_TYPE_BUFFER;
+ if (parser_text_gbar(parser)) {
+ info->gbar.type = GBAR_TYPE_TEXT;
+ } else if (parser_buffer_gbar(parser)) {
+ info->gbar.type = GBAR_TYPE_BUFFER;
} else {
- str = parser_pd_path(parser);
+ str = parser_gbar_path(parser);
if (str) {
- info->pd.type = PD_TYPE_SCRIPT;
- info->pd.info.script.path = strdup(str);
- if (!info->pd.info.script.path) {
+ info->gbar.type = GBAR_TYPE_SCRIPT;
+ info->gbar.info.script.path = strdup(str);
+ if (!info->gbar.info.script.path) {
ErrPrint("Heap: %s\n", strerror(errno));
- if (info->lb.type == LB_TYPE_SCRIPT) {
- DbgFree(info->lb.info.script.path);
- DbgFree(info->lb.info.script.group);
+ if (info->dbox.type == DBOX_TYPE_SCRIPT) {
+ DbgFree(info->dbox.info.script.path);
+ DbgFree(info->dbox.info.script.group);
}
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- str = parser_pd_group(parser);
+ str = parser_gbar_group(parser);
if (str) {
- info->pd.info.script.group = strdup(str);
- if (!info->pd.info.script.group) {
+ info->gbar.info.script.group = strdup(str);
+ if (!info->gbar.info.script.group) {
ErrPrint("Heap: %s\n", strerror(errno));
- DbgFree(info->pd.info.script.path);
- if (info->lb.type == LB_TYPE_SCRIPT) {
- DbgFree(info->lb.info.script.path);
- DbgFree(info->lb.info.script.group);
+ DbgFree(info->gbar.info.script.path);
+ if (info->dbox.type == DBOX_TYPE_SCRIPT) {
+ DbgFree(info->dbox.info.script.path);
+ DbgFree(info->dbox.info.script.group);
}
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
}
}
}
str = parser_script(parser);
- str = str ? str : DEFAULT_SCRIPT;
+ str = str ? str : DYNAMICBOX_CONF_DEFAULT_SCRIPT;
info->script = strdup(str);
if (!info->script) {
ErrPrint("Heap: %s\n", strerror(errno));
- if (info->pd.type == PD_TYPE_SCRIPT) {
- DbgFree(info->pd.info.script.path);
- DbgFree(info->pd.info.script.group);
+ if (info->gbar.type == GBAR_TYPE_SCRIPT) {
+ DbgFree(info->gbar.info.script.path);
+ DbgFree(info->gbar.info.script.group);
}
- if (info->lb.type == LB_TYPE_SCRIPT) {
- DbgFree(info->lb.info.script.path);
- DbgFree(info->lb.info.script.group);
+ if (info->dbox.type == DBOX_TYPE_SCRIPT) {
+ DbgFree(info->dbox.info.script.path);
+ DbgFree(info->dbox.info.script.group);
}
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
str = parser_abi(parser);
- str = str ? str : DEFAULT_ABI;
+ str = str ? str : DYNAMICBOX_CONF_DEFAULT_ABI;
info->abi = strdup(str);
if (!info->abi) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(info->script);
- if (info->pd.type == PD_TYPE_SCRIPT) {
- DbgFree(info->pd.info.script.path);
- DbgFree(info->pd.info.script.group);
+ if (info->gbar.type == GBAR_TYPE_SCRIPT) {
+ DbgFree(info->gbar.info.script.path);
+ DbgFree(info->gbar.info.script.group);
}
- if (info->lb.type == LB_TYPE_SCRIPT) {
- DbgFree(info->lb.info.script.path);
- DbgFree(info->lb.info.script.group);
+ if (info->dbox.type == DBOX_TYPE_SCRIPT) {
+ DbgFree(info->dbox.info.script.path);
+ DbgFree(info->dbox.info.script.group);
}
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- info->lb.timeout = parser_timeout(parser);
+ info->dbox.timeout = parser_timeout(parser);
info->network = parser_network(parser);
- info->lb.period = parser_period(parser);
- if (info->lb.period < 0.0f) {
- info->lb.period = 0.0f;
- } else if (info->lb.period > 0.0f && info->lb.period < MINIMUM_PERIOD) {
- info->lb.period = MINIMUM_PERIOD;
+ info->dbox.period = parser_period(parser);
+ if (info->dbox.period < 0.0f) {
+ info->dbox.period = 0.0f;
+ } else if (info->dbox.period > 0.0f && info->dbox.period < DYNAMICBOX_CONF_MINIMUM_PERIOD) {
+ info->dbox.period = DYNAMICBOX_CONF_MINIMUM_PERIOD;
}
- info->lb.size_list = parser_size(parser);
+ info->dbox.size_list = parser_size(parser);
str = parser_auto_launch(parser);
str = str ? str : "";
- info->lb.auto_launch = strdup(str);
- if (!info->lb.auto_launch) {
+ info->dbox.auto_launch = strdup(str);
+ if (!info->dbox.auto_launch) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(info->abi);
DbgFree(info->script);
- if (info->pd.type == PD_TYPE_SCRIPT) {
- DbgFree(info->pd.info.script.path);
- DbgFree(info->pd.info.script.group);
+ if (info->gbar.type == GBAR_TYPE_SCRIPT) {
+ DbgFree(info->gbar.info.script.path);
+ DbgFree(info->gbar.info.script.group);
}
- if (info->lb.type == LB_TYPE_SCRIPT) {
- DbgFree(info->lb.info.script.path);
- DbgFree(info->lb.info.script.group);
+ if (info->dbox.type == DBOX_TYPE_SCRIPT) {
+ DbgFree(info->dbox.info.script.path);
+ DbgFree(info->dbox.info.script.group);
}
parser_unload(parser);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
info->secured = parser_secured(parser);
- info->lb.pinup = parser_pinup(parser);
+ info->dbox.pinup = parser_pinup(parser);
- parser_get_pdsize(parser, &info->pd.width, &info->pd.height);
+ parser_get_gbar_size(parser, &info->gbar.width, &info->gbar.height);
group = parser_group_str(parser);
- if (group && group_add_livebox(group, info->lbid) < 0) {
- ErrPrint("Failed to build cluster tree for %s{%s}\n", info->lbid, group);
+ if (group && group_add_dynamicbox(group, info->dbox_id) < 0) {
+ ErrPrint("Failed to build cluster tree for %s{%s}\n", info->dbox_id, group);
}
parser_unload(parser);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI struct pkg_info *package_create(const char *pkgid, const char *lbid)
+HAPI struct pkg_info *package_create(const char *pkgid, const char *dbox_id)
{
struct pkg_info *pkginfo;
@@ -507,18 +512,11 @@ HAPI struct pkg_info *package_create(const char *pkgid, const char *lbid)
return NULL;
}
- pkginfo->lbid = io_livebox_pkgname(lbid);
- if (!pkginfo->lbid) {
+ pkginfo->dbox_id = io_dynamicbox_pkgname(dbox_id);
+ if (!pkginfo->dbox_id) {
ErrPrint("Failed to get pkgname, fallback to fs checker\n");
- if (util_validate_livebox_package(lbid) < 0) {
- ErrPrint("Invalid package name: %s\n", lbid);
- DbgFree(pkginfo->pkgid);
- DbgFree(pkginfo);
- return NULL;
- }
-
- pkginfo->lbid = strdup(lbid);
- if (!pkginfo->lbid) {
+ pkginfo->dbox_id = strdup(dbox_id);
+ if (!pkginfo->dbox_id) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(pkginfo->pkgid);
DbgFree(pkginfo);
@@ -530,7 +528,7 @@ HAPI struct pkg_info *package_create(const char *pkgid, const char *lbid)
ErrPrint("Failed to load DB, fall back to conf file loader\n");
if (load_conf(pkginfo) < 0) {
ErrPrint("Failed to initiate the conf file loader\n");
- DbgFree(pkginfo->lbid);
+ DbgFree(pkginfo->dbox_id);
DbgFree(pkginfo->pkgid);
DbgFree(pkginfo);
return NULL;
@@ -547,7 +545,7 @@ HAPI struct pkg_info *package_create(const char *pkgid, const char *lbid)
HAPI int package_destroy(struct pkg_info *info)
{
package_unref(info);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI Eina_List *package_ctx_info(struct pkg_info *pkginfo)
@@ -565,49 +563,45 @@ HAPI void package_del_ctx_info(struct pkg_info *pkginfo, struct context_info *in
pkginfo->ctx_list = eina_list_remove(pkginfo->ctx_list, info);
}
-HAPI char *package_lb_pkgname(const char *pkgname)
+HAPI char *package_dbox_pkgname(const char *pkgname)
{
- char *lbid;
+ char *dbox_id;
- lbid = io_livebox_pkgname(pkgname);
- if (!lbid) {
- if (util_validate_livebox_package(pkgname) < 0) {
- return NULL;
- }
-
- lbid = strdup(pkgname);
- if (!lbid) {
+ dbox_id = io_dynamicbox_pkgname(pkgname);
+ if (!dbox_id) {
+ dbox_id = strdup(pkgname);
+ if (!dbox_id) {
ErrPrint("Heap: %s\n", strerror(errno));
return NULL;
}
}
- return lbid;
+ return dbox_id;
}
-HAPI int package_is_lb_pkgname(const char *pkgname)
+HAPI int package_is_dbox_pkgname(const char *pkgname)
{
- char *lbid;
+ char *dbox_id;
int ret;
- lbid = package_lb_pkgname(pkgname);
- ret = !!lbid;
- DbgFree(lbid);
+ dbox_id = package_dbox_pkgname(pkgname);
+ ret = !!dbox_id;
+ DbgFree(dbox_id);
return ret;
}
-HAPI struct pkg_info *package_find(const char *lbid)
+HAPI struct pkg_info *package_find(const char *dbox_id)
{
Eina_List *l;
struct pkg_info *info;
- if (!lbid) {
+ if (!dbox_id) {
return NULL;
}
EINA_LIST_FOREACH(s_info.pkg_list, l, info) {
- if (!strcmp(info->lbid, lbid)) {
+ if (!strcmp(info->dbox_id, dbox_id)) {
return info;
}
}
@@ -615,15 +609,15 @@ HAPI struct pkg_info *package_find(const char *lbid)
return NULL;
}
-HAPI struct inst_info *package_find_instance_by_id(const char *lbid, const char *id)
+HAPI struct inst_info *package_find_instance_by_id(const char *dbox_id, const char *id)
{
Eina_List *l;
struct inst_info *inst;
struct pkg_info *info;
- info = package_find(lbid);
+ info = package_find(dbox_id);
if (!info) {
- ErrPrint("Package %s is not exists\n", lbid);
+ ErrPrint("Package %s is not exists\n", dbox_id);
return NULL;
}
@@ -636,15 +630,15 @@ HAPI struct inst_info *package_find_instance_by_id(const char *lbid, const char
return NULL;
}
-HAPI struct inst_info *package_find_instance_by_timestamp(const char *lbid, double timestamp)
+HAPI struct inst_info *package_find_instance_by_timestamp(const char *dbox_id, double timestamp)
{
Eina_List *l;
struct inst_info *inst;
struct pkg_info *info;
- info = package_find(lbid);
+ info = package_find(dbox_id);
if (!info) {
- ErrPrint("Package %s is not exists\n", lbid);
+ ErrPrint("Package %s is not exists\n", dbox_id);
return NULL;
}
@@ -660,27 +654,27 @@ HAPI struct inst_info *package_find_instance_by_timestamp(const char *lbid, doub
HAPI int package_dump_fault_info(struct pkg_info *info)
{
if (!info->fault_info) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
CRITICAL_LOG("=============\n");
CRITICAL_LOG("faulted at %lf\n", info->fault_info->timestamp);
- CRITICAL_LOG("Package: %s\n", info->lbid);
+ CRITICAL_LOG("Package: %s\n", info->dbox_id);
CRITICAL_LOG("Function: %s\n", info->fault_info->function);
CRITICAL_LOG("InstanceID: %s\n", info->fault_info->filename);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int package_get_fault_info(struct pkg_info *info, double *timestamp, const char **filename, const char **function)
{
if (!info->fault_info) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
*timestamp = info->fault_info->timestamp;
*filename = info->fault_info->filename;
*function = info->fault_info->function;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int package_set_fault_info(struct pkg_info *info, double timestamp, const char *filename, const char *function)
@@ -692,7 +686,7 @@ HAPI int package_set_fault_info(struct pkg_info *info, double timestamp, const c
fault = calloc(1, sizeof(*fault));
if (!fault) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
fault->timestamp = timestamp;
@@ -707,7 +701,7 @@ HAPI int package_set_fault_info(struct pkg_info *info, double timestamp, const c
if (!fault->filename) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(fault);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
fault->function = strdup(function);
@@ -715,27 +709,27 @@ HAPI int package_set_fault_info(struct pkg_info *info, double timestamp, const c
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(fault->filename);
DbgFree(fault);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
info->fault_info = fault;
info->fault_count++;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int package_clear_fault(struct pkg_info *info)
{
if (!info->fault_info) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
-
+
package_dump_fault_info(info);
DbgFree(info->fault_info->function);
DbgFree(info->fault_info->filename);
DbgFree(info->fault_info);
info->fault_info = NULL;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI const int const package_is_fault(const struct pkg_info *info)
@@ -750,22 +744,22 @@ HAPI struct slave_node * const package_slave(const struct pkg_info *info)
HAPI const int const package_timeout(const struct pkg_info *info)
{
- return info->lb.timeout;
+ return info->dbox.timeout;
}
HAPI void package_set_timeout(struct pkg_info *info, int timeout)
{
- info->lb.timeout = timeout;
+ info->dbox.timeout = timeout;
}
HAPI const double const package_period(const struct pkg_info *info)
{
- return info->lb.period;
+ return info->dbox.period;
}
HAPI void package_set_period(struct pkg_info *info, double period)
{
- info->lb.period = period;
+ info->dbox.period = period;
}
HAPI const int const package_secured(const struct pkg_info *info)
@@ -790,12 +784,12 @@ HAPI int package_set_script(struct pkg_info *info, const char *script)
tmp = strdup(script);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgFree(info->script);
info->script = tmp;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI const char * const package_abi(const struct pkg_info *info)
@@ -809,139 +803,139 @@ HAPI int package_set_abi(struct pkg_info *info, const char *abi)
tmp = strdup(abi);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgFree(info->abi);
info->abi = tmp;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI const char * const package_lb_path(const struct pkg_info *info)
+HAPI const char * const package_dbox_path(const struct pkg_info *info)
{
- if (info->lb.type != LB_TYPE_SCRIPT) {
+ if (info->dbox.type != DBOX_TYPE_SCRIPT) {
return NULL;
}
- return info->lb.info.script.path;
+ return info->dbox.info.script.path;
}
-HAPI int package_set_lb_path(struct pkg_info *info, const char *path)
+HAPI int package_set_dbox_path(struct pkg_info *info, const char *path)
{
char *tmp;
- if (info->lb.type != LB_TYPE_SCRIPT) {
- return LB_STATUS_ERROR_INVALID;
+ if (info->dbox.type != DBOX_TYPE_SCRIPT) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
tmp = strdup(path);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- DbgFree(info->lb.info.script.path);
- info->lb.info.script.path = tmp;
- return LB_STATUS_SUCCESS;
+ DbgFree(info->dbox.info.script.path);
+ info->dbox.info.script.path = tmp;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI const char * const package_lb_group(const struct pkg_info *info)
+HAPI const char * const package_dbox_group(const struct pkg_info *info)
{
- if (info->lb.type != LB_TYPE_SCRIPT) {
+ if (info->dbox.type != DBOX_TYPE_SCRIPT) {
return NULL;
}
- return info->lb.info.script.group;
+ return info->dbox.info.script.group;
}
-HAPI int package_set_lb_group(struct pkg_info *info, const char *group)
+HAPI int package_set_dbox_group(struct pkg_info *info, const char *group)
{
char *tmp;
- if (info->lb.type != LB_TYPE_SCRIPT) {
- return LB_STATUS_ERROR_INVALID;
+ if (info->dbox.type != DBOX_TYPE_SCRIPT) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
tmp = strdup(group);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- DbgFree(info->lb.info.script.group);
- info->lb.info.script.group = tmp;
- return LB_STATUS_SUCCESS;
+ DbgFree(info->dbox.info.script.group);
+ info->dbox.info.script.group = tmp;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI const char * const package_pd_path(const struct pkg_info *info)
+HAPI const char * const package_gbar_path(const struct pkg_info *info)
{
- if (info->pd.type != PD_TYPE_SCRIPT) {
+ if (info->gbar.type != GBAR_TYPE_SCRIPT) {
return NULL;
}
- return info->pd.info.script.path;
+ return info->gbar.info.script.path;
}
-HAPI int package_set_pd_path(struct pkg_info *info, const char *path)
+HAPI int package_set_gbar_path(struct pkg_info *info, const char *path)
{
char *tmp;
- if (info->pd.type != PD_TYPE_SCRIPT) {
- return LB_STATUS_ERROR_INVALID;
+ if (info->gbar.type != GBAR_TYPE_SCRIPT) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
tmp = strdup(path);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- DbgFree(info->pd.info.script.path);
- info->pd.info.script.path = tmp;
- return LB_STATUS_SUCCESS;
+ DbgFree(info->gbar.info.script.path);
+ info->gbar.info.script.path = tmp;
+ return DBOX_STATUS_ERROR_NONE;
}
-HAPI const char * const package_pd_group(const struct pkg_info *info)
+HAPI const char * const package_gbar_group(const struct pkg_info *info)
{
- if (info->pd.type != PD_TYPE_SCRIPT) {
+ if (info->gbar.type != GBAR_TYPE_SCRIPT) {
return NULL;
}
- return info->pd.info.script.group;
+ return info->gbar.info.script.group;
}
-HAPI int package_set_pd_group(struct pkg_info *info, const char *group)
+HAPI int package_set_gbar_group(struct pkg_info *info, const char *group)
{
char *tmp;
- if (info->pd.type != PD_TYPE_SCRIPT) {
- return LB_STATUS_ERROR_INVALID;
+ if (info->gbar.type != GBAR_TYPE_SCRIPT) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
tmp = strdup(group);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- DbgFree(info->pd.info.script.group);
- info->pd.info.script.group = tmp;
- return LB_STATUS_SUCCESS;
+ DbgFree(info->gbar.info.script.group);
+ info->gbar.info.script.group = tmp;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI const int const package_pinup(const struct pkg_info *info)
{
- return info->lb.pinup;
+ return info->dbox.pinup;
}
HAPI void package_set_pinup(struct pkg_info *info, int pinup)
{
- info->lb.pinup = pinup;
+ info->dbox.pinup = pinup;
}
HAPI const char * const package_auto_launch(const struct pkg_info *info)
{
- return info->lb.auto_launch;
+ return info->dbox.auto_launch;
}
HAPI void package_set_auto_launch(struct pkg_info *info, const char *auto_launch)
@@ -950,8 +944,8 @@ HAPI void package_set_auto_launch(struct pkg_info *info, const char *auto_launch
auto_launch = "";
}
- info->lb.auto_launch = strdup(auto_launch);
- if (!info->lb.auto_launch) {
+ info->dbox.auto_launch = strdup(auto_launch);
+ if (!info->dbox.auto_launch) {
ErrPrint("Heap: %s\n", strerror(errno));
return;
}
@@ -959,32 +953,32 @@ HAPI void package_set_auto_launch(struct pkg_info *info, const char *auto_launch
HAPI const unsigned int const package_size_list(const struct pkg_info *info)
{
- return info->lb.size_list;
+ return info->dbox.size_list;
}
HAPI void package_set_size_list(struct pkg_info *info, unsigned int size_list)
{
- info->lb.size_list = size_list;
+ info->dbox.size_list = size_list;
}
-HAPI const int const package_pd_width(const struct pkg_info *info)
+HAPI const int const package_gbar_width(const struct pkg_info *info)
{
- return info->pd.width;
+ return info->gbar.width;
}
-HAPI void package_set_pd_width(struct pkg_info *info, int width)
+HAPI void package_set_gbar_width(struct pkg_info *info, int width)
{
- info->pd.width = width;
+ info->gbar.width = width;
}
-HAPI const int const package_pd_height(const struct pkg_info *info)
+HAPI const int const package_gbar_height(const struct pkg_info *info)
{
- return info->pd.height;
+ return info->gbar.height;
}
-HAPI void package_set_pd_height(struct pkg_info *info, int height)
+HAPI void package_set_gbar_height(struct pkg_info *info, int height)
{
- info->pd.height = height;
+ info->gbar.height = height;
}
HAPI struct pkg_info * const package_ref(struct pkg_info *info)
@@ -1014,19 +1008,19 @@ HAPI const int const package_refcnt(const struct pkg_info *info)
return info->refcnt;
}
-HAPI const enum lb_type package_lb_type(const struct pkg_info *info)
+HAPI const enum dynamicbox_dbox_type package_dbox_type(const struct pkg_info *info)
{
- return info ? info->lb.type : LB_TYPE_NONE;
+ return info ? info->dbox.type : DBOX_TYPE_NONE;
}
-HAPI void package_set_lb_type(struct pkg_info *info, enum lb_type type)
+HAPI void package_set_dbox_type(struct pkg_info *info, enum dynamicbox_dbox_type type)
{
- info->lb.type = type;
+ info->dbox.type = type;
}
HAPI const char * const package_libexec(struct pkg_info *info)
{
- return info->lb.libexec;
+ return info->dbox.libexec;
}
HAPI int package_set_libexec(struct pkg_info *info, const char *libexec)
@@ -1036,12 +1030,12 @@ HAPI int package_set_libexec(struct pkg_info *info, const char *libexec)
tmp = strdup(libexec);
if (!tmp) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- DbgFree(info->lb.libexec);
- info->lb.libexec = tmp;
- return LB_STATUS_SUCCESS;
+ DbgFree(info->dbox.libexec);
+ info->dbox.libexec = tmp;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int package_network(struct pkg_info *info)
@@ -1054,14 +1048,48 @@ HAPI void package_set_network(struct pkg_info *info, int network)
info->network = network;
}
-HAPI const enum pd_type const package_pd_type(const struct pkg_info *info)
+HAPI void package_set_direct_input(struct pkg_info *info, int direct_input)
+{
+ info->direct_input = direct_input;
+}
+
+HAPI int package_direct_input(const struct pkg_info *info)
+{
+ return info->direct_input;
+}
+
+HAPI const enum dynamicbox_gbar_type const package_gbar_type(const struct pkg_info *info)
+{
+ return info ? info->gbar.type : GBAR_TYPE_NONE;
+}
+
+HAPI void package_set_gbar_type(struct pkg_info *info, enum dynamicbox_gbar_type type)
+{
+ info->gbar.type = type;
+}
+
+HAPI const char *package_hw_acceleration(struct pkg_info *info)
{
- return info ? info->pd.type : PD_TYPE_NONE;
+ return info->hw_acceleration;
}
-HAPI void package_set_pd_type(struct pkg_info *info, enum pd_type type)
+HAPI int package_set_hw_acceleration(struct pkg_info *info, const char *hw_acceleration)
{
- info->pd.type = type;
+ char *tmp;
+
+ if (!hw_acceleration || !info) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ tmp = strdup(hw_acceleration);
+ if (!tmp) {
+ ErrPrint("strdup: %s\n", strerror(errno));
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
+ }
+
+ DbgFree(info->hw_acceleration);
+ info->hw_acceleration = tmp;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!
@@ -1069,41 +1097,20 @@ HAPI void package_set_pd_type(struct pkg_info *info, enum pd_type type)
* Add the instance to the package info.
* If a package has no slave, assign a new slave.
*/
-static inline int assign_new_slave(struct pkg_info *info)
+static inline int assign_new_slave(const char *slave_pkgname, struct pkg_info *info)
{
char *s_name;
- char *s_pkgname;
- const char *tmp;
s_name = util_slavename();
if (!s_name) {
ErrPrint("Failed to get a new slave name\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- tmp = abi_find_slave(info->abi);
- if (!tmp) {
- DbgFree(s_name);
- ErrPrint("Failed to find a proper pkgname of a slave\n");
- return LB_STATUS_ERROR_INVALID;
- }
-
- s_pkgname = util_replace_string(tmp, REPLACE_TAG_APPID, info->lbid);
- if (!s_pkgname) {
- DbgPrint("Failed to get replaced string\n");
- s_pkgname = strdup(tmp);
- if (!s_pkgname) {
- ErrPrint("Heap: %s\n", strerror(errno));
- DbgFree(s_name);
- return LB_STATUS_ERROR_MEMORY;
- }
- }
-
- DbgPrint("New slave[%s] is assigned for %s (using %s / abi[%s])\n", s_name, info->lbid, s_pkgname, info->abi);
- info->slave = slave_create(s_name, info->secured, info->abi, s_pkgname, info->network);
+ DbgPrint("New slave[%s] is assigned for %s (using %s / abi[%s] / accel[%s])\n", s_name, info->dbox_id, slave_pkgname, info->abi, info->hw_acceleration);
+ info->slave = slave_create(s_name, info->secured, info->abi, slave_pkgname, info->network, info->hw_acceleration);
DbgFree(s_name);
- DbgFree(s_pkgname);
if (!info->slave) {
/*!
@@ -1113,29 +1120,37 @@ static inline int assign_new_slave(struct pkg_info *info)
* If the list method couldn't find an "info" from the list,
* it just do nothing so I'll leave this.
*/
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/*!
* \note
* Slave is not activated yet.
*/
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int package_add_instance(struct pkg_info *info, struct inst_info *inst)
{
if (!info->inst_list) {
- info->slave = slave_find_available(info->abi, info->secured, info->network);
+ char *slave_pkgname;
+
+ slave_pkgname = slave_package_name(info->abi, info->dbox_id);
+ if (!slave_pkgname) {
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
+ }
+ info->slave = slave_find_available(slave_pkgname, info->abi, info->secured, info->network, info->hw_acceleration);
if (!info->slave) {
int ret;
- ret = assign_new_slave(info);
+ ret = assign_new_slave(slave_pkgname, info);
+ DbgFree(slave_pkgname);
if (ret < 0) {
return ret;
}
} else {
- DbgPrint("Slave %s is used for %s\n", slave_name(info->slave), info->lbid);
+ DbgFree(slave_pkgname);
+ DbgPrint("Slave %s is used for %s\n", slave_name(info->slave), info->dbox_id);
}
(void)slave_ref(info->slave);
@@ -1144,7 +1159,7 @@ HAPI int package_add_instance(struct pkg_info *info, struct inst_info *inst)
(void)slave_event_callback_add(info->slave, SLAVE_EVENT_ACTIVATE, slave_activated_cb, info);
(void)slave_event_callback_add(info->slave, SLAVE_EVENT_FAULT, slave_fault_cb, info);
- if (info->secured) {
+ if (info->secured || (DBOX_IS_INHOUSE(package_abi(info)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL)) {
(void)slave_event_callback_add(info->slave, SLAVE_EVENT_PAUSE, slave_paused_cb, info);
(void)slave_event_callback_add(info->slave, SLAVE_EVENT_RESUME, slave_resumed_cb, info);
@@ -1162,7 +1177,7 @@ HAPI int package_add_instance(struct pkg_info *info, struct inst_info *inst)
}
info->inst_list = eina_list_append(info->inst_list, inst);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int package_del_instance(struct pkg_info *info, struct inst_info *inst)
@@ -1170,7 +1185,7 @@ HAPI int package_del_instance(struct pkg_info *info, struct inst_info *inst)
info->inst_list = eina_list_remove(info->inst_list, inst);
if (info->inst_list) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (info->slave) {
@@ -1180,7 +1195,7 @@ HAPI int package_del_instance(struct pkg_info *info, struct inst_info *inst)
slave_event_callback_del(info->slave, SLAVE_EVENT_DEACTIVATE, slave_deactivated_cb, info);
slave_event_callback_del(info->slave, SLAVE_EVENT_ACTIVATE, slave_activated_cb, info);
- if (info->secured) {
+ if (info->secured || (DBOX_IS_INHOUSE(package_abi(info)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL)) {
slave_event_callback_del(info->slave, SLAVE_EVENT_PAUSE, slave_paused_cb, info);
slave_event_callback_del(info->slave, SLAVE_EVENT_RESUME, slave_resumed_cb, info);
@@ -1196,7 +1211,7 @@ HAPI int package_del_instance(struct pkg_info *info, struct inst_info *inst)
package_destroy(info);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI Eina_List *package_instance_list(struct pkg_info *info)
@@ -1214,7 +1229,7 @@ static int client_created_cb(struct client_node *client, void *data)
EINA_LIST_FOREACH(s_info.pkg_list, l, info) {
if (info->fault_info) {
- fault_unicast_info(client, info->lbid, info->fault_info->filename, info->fault_info->function);
+ fault_unicast_info(client, info->dbox_id, info->fault_info->filename, info->fault_info->function);
continue;
}
@@ -1235,7 +1250,7 @@ static int client_created_cb(struct client_node *client, void *data)
*/
if (client_is_subscribed(client, instance_cluster(inst), instance_category(inst))) {
instance_unicast_created_event(inst, client);
- DbgPrint("(Subscribed) Created package: %s\n", info->lbid);
+ DbgPrint("(Subscribed) Created package: %s\n", info->dbox_id);
}
}
@@ -1251,17 +1266,17 @@ static int client_created_cb(struct client_node *client, void *data)
return 0;
}
-static int io_uninstall_cb(const char *pkgid, const char *lbid, int prime, void *data)
+static int io_uninstall_cb(const char *pkgid, const char *dbox_id, int prime, void *data)
{
struct pkg_info *info;
Eina_List *l;
Eina_List *n;
struct inst_info *inst;
- DbgPrint("Package %s is uninstalled\n", lbid);
- info = package_find(lbid);
+ DbgPrint("Package %s is uninstalled\n", dbox_id);
+ info = package_find(dbox_id);
if (!info) {
- DbgPrint("%s is not yet loaded\n", lbid);
+ DbgPrint("%s is not yet loaded\n", dbox_id);
return 0;
}
@@ -1275,7 +1290,7 @@ static int io_uninstall_cb(const char *pkgid, const char *lbid, int prime, void
*/
if (info->inst_list) {
EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
- instance_destroy(inst, INSTANCE_DESTROY_UNINSTALL);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_UNINSTALL);
}
} else {
package_destroy(info);
@@ -1296,9 +1311,9 @@ static inline void reload_package_info(struct pkg_info *info)
DbgPrint("Already exists, try to update it\n");
- old_period = info->lb.period;
+ old_period = info->dbox.period;
- group_del_livebox(info->lbid);
+ group_del_dynamicbox(info->dbox_id);
package_clear_fault(info);
/*!
@@ -1312,25 +1327,25 @@ static inline void reload_package_info(struct pkg_info *info)
* Without "is_uninstalled", the package will be kept
*/
EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
- width = instance_lb_width(inst);
- height = instance_lb_height(inst);
- size_type = livebox_service_size_type(width, height);
- if (info->lb.size_list & size_type) {
+ width = instance_dbox_width(inst);
+ height = instance_dbox_height(inst);
+ size_type = dynamicbox_service_size_type(width, height);
+ if (info->dbox.size_list & size_type) {
if (instance_period(inst) == old_period) {
instance_reload_period(inst, package_period(info));
}
- instance_reload(inst, INSTANCE_DESTROY_UPGRADE);
+ instance_reload(inst, DBOX_DESTROY_TYPE_UPGRADE);
} else {
- instance_destroy(inst, INSTANCE_DESTROY_UNINSTALL);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_UNINSTALL);
}
}
}
-static int io_install_cb(const char *pkgid, const char *lbid, int prime, void *data)
+static int io_install_cb(const char *pkgid, const char *dbox_id, int prime, void *data)
{
struct pkg_info *info;
- info = package_find(lbid);
+ info = package_find(dbox_id);
if (info) {
/*!
* Already exists. skip to create this.
@@ -1338,11 +1353,11 @@ static int io_install_cb(const char *pkgid, const char *lbid, int prime, void *d
return 0;
}
- info = package_create(pkgid, lbid);
+ info = package_create(pkgid, dbox_id);
if (!info) {
- ErrPrint("Failed to build an info %s\n", lbid);
+ ErrPrint("Failed to build an info %s\n", dbox_id);
} else {
- DbgPrint("Livebox %s is built\n", lbid);
+ DbgPrint("Dynamicbox %s is built\n", dbox_id);
}
return 0;
@@ -1360,7 +1375,7 @@ static int uninstall_cb(const char *pkgname, enum pkgmgr_status status, double v
EINA_LIST_FOREACH_SAFE(s_info.pkg_list, l, n, info) {
if (!strcmp(info->pkgid, pkgname)) {
- io_uninstall_cb(pkgname, info->lbid, -1, NULL);
+ io_uninstall_cb(pkgname, info->dbox_id, -1, NULL);
}
}
@@ -1379,28 +1394,28 @@ static int update_cb(const char *pkgname, enum pkgmgr_status status, double valu
EINA_LIST_FOREACH_SAFE(s_info.pkg_list, l, n, info) {
if (!strcmp(info->pkgid, pkgname)) {
- DbgPrint("Update lbid: %s\n", info->lbid);
- if (io_is_exists(info->lbid) == 1) {
+ DbgPrint("Update dbox_id: %s\n", info->dbox_id);
+ if (io_is_exists(info->dbox_id) == 1) {
reload_package_info(info);
} else {
- io_uninstall_cb(pkgname, info->lbid, -1, NULL);
+ io_uninstall_cb(pkgname, info->dbox_id, -1, NULL);
}
}
}
- (void)io_update_livebox_package(pkgname, io_install_cb, NULL);
+ (void)io_update_dynamicbox_package(pkgname, io_install_cb, NULL);
return 0;
}
-static int crawling_liveboxes(const char *pkgid, const char *lbid, int prime, void *data)
+static int crawling_dynamicboxes(const char *pkgid, const char *dbox_id, int prime, void *data)
{
- if (package_find(lbid)) {
- ErrPrint("Information of %s is already built\n", lbid);
+ if (package_find(dbox_id)) {
+ ErrPrint("Information of %s is already built\n", dbox_id);
} else {
struct pkg_info *info;
- info = package_create(pkgid, lbid);
+ info = package_create(pkgid, dbox_id);
if (info) {
- DbgPrint("[%s] information is built prime(%d)\n", lbid, prime);
+ DbgPrint("[%s] information is built prime(%d)\n", dbox_id, prime);
}
}
@@ -1416,7 +1431,7 @@ HAPI int package_init(void)
pkgmgr_add_event_callback(PKGMGR_EVENT_UNINSTALL, uninstall_cb, NULL);
pkgmgr_add_event_callback(PKGMGR_EVENT_UPDATE, update_cb, NULL);
- io_crawling_liveboxes(crawling_liveboxes, NULL);
+ io_crawling_dynamicboxes(crawling_dynamicboxes, NULL);
return 0;
}
@@ -1438,7 +1453,7 @@ HAPI int package_fini(void)
EINA_LIST_FOREACH_SAFE(s_info.pkg_list, p_l, p_n, info) {
EINA_LIST_FOREACH_SAFE(info->inst_list, i_l, i_n, inst) {
instance_state_reset(inst);
- instance_destroy(inst, INSTANCE_DESTROY_TERMINATE);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_TERMINATE);
}
package_destroy(info);
@@ -1458,7 +1473,7 @@ HAPI const char *package_find_by_secured_slave(struct slave_node *slave)
EINA_LIST_FOREACH(s_info.pkg_list, l, info) {
if (info->slave == slave) {
- return info->lbid;
+ return info->dbox_id;
}
}
@@ -1467,7 +1482,7 @@ HAPI const char *package_find_by_secured_slave(struct slave_node *slave)
HAPI const char * const package_name(const struct pkg_info *info)
{
- return info->lbid;
+ return info->dbox_id;
}
/*!
@@ -1522,12 +1537,12 @@ HAPI int package_alter_instances_to_client(struct client_node *client, enum alte
if (!instance_has_client(inst, client)) {
instance_unicast_created_event(inst, client);
instance_add_client(inst, client);
- DbgPrint("(Subscribed) Created package: %s\n", info->lbid);
+ DbgPrint("(Subscribed) Created package: %s\n", info->dbox_id);
}
break;
case ALTER_DESTROY:
if (instance_has_client(inst, client)) {
- instance_unicast_deleted_event(inst, client, LB_STATUS_SUCCESS);
+ instance_unicast_deleted_event(inst, client, DBOX_STATUS_ERROR_NONE);
instance_del_client(inst, client);
}
break;
@@ -1559,22 +1574,23 @@ HAPI int const package_fault_count(struct pkg_info *info)
HAPI int package_is_enabled(const char *appid)
{
- ail_appinfo_h ai;
+ pkgmgrinfo_appinfo_h handle;
bool enabled;
int ret;
- ret = ail_get_appinfo(appid, &ai);
- if (ret != AIL_ERROR_OK) {
- ErrPrint("Unable to get appinfo: %d\n", ret);
+ ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+ if (ret != PMINFO_R_OK) {
+ ErrPrint("Failed to get info\n");
return 0;
}
- if (ail_appinfo_get_bool(ai, AIL_PROP_X_SLP_ENABLED_BOOL, &enabled) != AIL_ERROR_OK) {
+ ret = pkgmgrinfo_appinfo_is_enabled(handle, &enabled);
+ if (ret != PMINFO_R_OK) {
+ ErrPrint("Failed to get info\n");
enabled = false;
}
- ail_destroy_appinfo(ai);
-
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
return enabled == true;
}
@@ -1588,7 +1604,7 @@ HAPI int package_faulted(struct pkg_info *pkg, int broadcast)
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package has no slave?\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/* Emulated fault routine */
@@ -1600,10 +1616,10 @@ HAPI int package_faulted(struct pkg_info *pkg, int broadcast)
DbgPrint("package: %s (forucely faulted %s)\n", package_name(pkg), slave_name(slave));
EINA_LIST_FOREACH_SAFE(pkg->inst_list, l, n, inst) {
DbgPrint("Destroy instance %p\n", inst);
- instance_destroy(inst, INSTANCE_DESTROY_FAULT);
+ instance_destroy(inst, DBOX_DESTROY_TYPE_FAULT);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/parser.c b/src/parser.c
index a7633bd..148ce2f 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -22,8 +22,9 @@
#include <Eina.h>
#include <dlog.h>
-#include <livebox-service.h>
-#include <livebox-errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
#include "util.h"
#include "debug.h"
@@ -46,20 +47,20 @@ struct parser {
int network;
char *auto_launch;
unsigned int size;
- unsigned int pd_width;
- unsigned int pd_height;
+ unsigned int gbar_width;
+ unsigned int gbar_height;
char *group;
int secured;
- char *pd_path;
- char *pd_group;
+ char *gbar_path;
+ char *gbar_group;
- char *lb_path;
- char *lb_group;
+ char *dbox_path;
+ char *dbox_group;
int pinup;
- int text_pd;
+ int text_gbar;
int text_lb;
- int buffer_pd;
+ int buffer_gbar;
int buffer_lb;
char *abi;
@@ -102,24 +103,24 @@ HAPI unsigned int parser_size(struct parser *handle)
return handle->size;
}
-HAPI const char *parser_lb_path(struct parser *handle)
+HAPI const char *parser_dbox_path(struct parser *handle)
{
- return handle->lb_path;
+ return handle->dbox_path;
}
-HAPI const char *parser_lb_group(struct parser *handle)
+HAPI const char *parser_dbox_group(struct parser *handle)
{
- return handle->lb_group;
+ return handle->dbox_group;
}
-HAPI const char *parser_pd_path(struct parser *handle)
+HAPI const char *parser_gbar_path(struct parser *handle)
{
- return handle->pd_path;
+ return handle->gbar_path;
}
-HAPI const char *parser_pd_group(struct parser *handle)
+HAPI const char *parser_gbar_group(struct parser *handle)
{
- return handle->pd_group;
+ return handle->gbar_group;
}
HAPI const char *parser_group_str(struct parser *handle)
@@ -132,10 +133,10 @@ HAPI int parser_secured(struct parser *handle)
return handle->secured;
}
-HAPI void parser_get_pdsize(struct parser *handle, unsigned int *width, unsigned int *height)
+HAPI void parser_get_gbar_size(struct parser *handle, unsigned int *width, unsigned int *height)
{
- *width = handle->pd_width;
- *height = handle->pd_height;
+ *width = handle->gbar_width;
+ *height = handle->gbar_height;
}
HAPI int parser_pinup(struct parser *handle)
@@ -143,24 +144,24 @@ HAPI int parser_pinup(struct parser *handle)
return handle->pinup;
}
-HAPI int parser_text_lb(struct parser *handle)
+HAPI int parser_text_dbox(struct parser *handle)
{
return handle->text_lb;
}
-HAPI int parser_text_pd(struct parser *handle)
+HAPI int parser_text_gbar(struct parser *handle)
{
- return handle->text_pd;
+ return handle->text_gbar;
}
-HAPI int parser_buffer_lb(struct parser *handle)
+HAPI int parser_buffer_dbox(struct parser *handle)
{
return handle->buffer_lb;
}
-HAPI int parser_buffer_pd(struct parser *handle)
+HAPI int parser_buffer_gbar(struct parser *handle)
{
- return handle->buffer_pd;
+ return handle->buffer_gbar;
}
HAPI RETURN_TYPE parser_find(const char *pkgname)
@@ -171,14 +172,14 @@ HAPI RETURN_TYPE parser_find(const char *pkgname)
int len;
int ret;
- len = strlen(pkgname) * 2 + strlen(CONF_PATH);
+ len = strlen(pkgname) * 2 + strlen(DYNAMICBOX_CONF_CONF_PATH);
filename = malloc(len);
if (!filename) {
return (RETURN_TYPE)0;
}
- ret = snprintf(filename, len, CONF_PATH, pkgname, pkgname);
+ ret = snprintf(filename, len, DYNAMICBOX_CONF_CONF_PATH, pkgname, pkgname);
if (ret < 0) {
DbgFree(filename);
return (RETURN_TYPE)0;
@@ -286,25 +287,25 @@ static inline int parse_size(const char *buffer, unsigned int *size)
break;
case STOP:
if (w == 1 && h == 1) {
- *size |= LB_SIZE_TYPE_1x1;
+ *size |= DBOX_SIZE_TYPE_1x1;
} else if (w == 2 && h == 1) {
- *size |= LB_SIZE_TYPE_2x1;
+ *size |= DBOX_SIZE_TYPE_2x1;
} else if (w == 2 && h == 2) {
- *size |= LB_SIZE_TYPE_2x2;
+ *size |= DBOX_SIZE_TYPE_2x2;
} else if (w == 4 && h == 1) {
- *size |= LB_SIZE_TYPE_4x1;
+ *size |= DBOX_SIZE_TYPE_4x1;
} else if (w == 4 && h == 2) {
- *size |= LB_SIZE_TYPE_4x2;
+ *size |= DBOX_SIZE_TYPE_4x2;
} else if (w == 4 && h == 3) {
- *size |= LB_SIZE_TYPE_4x3;
+ *size |= DBOX_SIZE_TYPE_4x3;
} else if (w == 4 && h == 4) {
- *size |= LB_SIZE_TYPE_4x4;
+ *size |= DBOX_SIZE_TYPE_4x4;
} else if (w == 21 && h == 21) {
- *size |= LB_SIZE_TYPE_EASY_1x1;
+ *size |= DBOX_SIZE_TYPE_EASY_1x1;
} else if (w == 23 && h == 21) {
- *size |= LB_SIZE_TYPE_EASY_3x1;
+ *size |= DBOX_SIZE_TYPE_EASY_3x1;
} else if (w == 23 && h == 23) {
- *size |= LB_SIZE_TYPE_EASY_3x3;
+ *size |= DBOX_SIZE_TYPE_EASY_3x3;
} else {
ErrPrint("Invalid size type: %dx%d\n", w, h);
}
@@ -419,14 +420,14 @@ static void size_handler(struct parser *item, char *buffer)
}
}
-static void pd_size_handler(struct parser *item, char *buffer)
+static void gbar_size_handler(struct parser *item, char *buffer)
{
- if (sscanf(buffer, "%ux%u", &item->pd_width, &item->pd_height) != 2) {
+ if (sscanf(buffer, "%ux%u", &item->gbar_width, &item->gbar_height) != 2) {
ErrPrint("parse pd size\n");
}
}
-static void text_lb_handler(struct parser *item, char *buffer)
+static void text_dbox_handler(struct parser *item, char *buffer)
{
if (!rtrim(buffer)) {
return;
@@ -445,16 +446,16 @@ static void script_handler(struct parser *item, char *buffer)
item->script = dup_rtrim(buffer);
}
-static void buffer_pd_handler(struct parser *item, char *buffer)
+static void buffer_gbar_handler(struct parser *item, char *buffer)
{
if (!rtrim(buffer)) {
return;
}
- item->buffer_pd = !!atoi(buffer);
+ item->buffer_gbar = !!atoi(buffer);
}
-static void buffer_lb_handler(struct parser *item, char *buffer)
+static void buffer_dbox_handler(struct parser *item, char *buffer)
{
if (!rtrim(buffer)) {
return;
@@ -463,13 +464,13 @@ static void buffer_lb_handler(struct parser *item, char *buffer)
item->buffer_lb = !!atoi(buffer);
}
-static void text_pd_handler(struct parser *item, char *buffer)
+static void text_gbar_handler(struct parser *item, char *buffer)
{
if (!rtrim(buffer)) {
return;
}
- item->text_pd = !!atoi(buffer);
+ item->text_gbar = !!atoi(buffer);
}
static void pinup_handler(struct parser *item, char *buffer)
@@ -481,14 +482,14 @@ static void pinup_handler(struct parser *item, char *buffer)
item->pinup = !!atoi(buffer);
}
-static void lb_path_handler(struct parser *item, char *buffer)
+static void dbox_path_handler(struct parser *item, char *buffer)
{
- if (item->lb_path) {
- DbgFree(item->lb_path);
+ if (item->dbox_path) {
+ DbgFree(item->dbox_path);
}
- item->lb_path = dup_rtrim(buffer);
- if (!item->lb_path) {
+ item->dbox_path = dup_rtrim(buffer);
+ if (!item->dbox_path) {
ErrPrint("Error: %s\n", strerror(errno));
}
}
@@ -514,38 +515,38 @@ static void secured_handler(struct parser *item, char *buffer)
item->secured = !!atoi(buffer);
}
-static void lb_group_handler(struct parser *item, char *buffer)
+static void dbox_group_handler(struct parser *item, char *buffer)
{
- if (item->lb_group) {
- DbgFree(item->lb_group);
+ if (item->dbox_group) {
+ DbgFree(item->dbox_group);
}
- item->lb_group = dup_rtrim(buffer);
- if (!item->lb_group) {
+ item->dbox_group = dup_rtrim(buffer);
+ if (!item->dbox_group) {
ErrPrint("Error: %s\n", strerror(errno));
}
}
-static void pd_path_handler(struct parser *item, char *buffer)
+static void gbar_path_handler(struct parser *item, char *buffer)
{
- if (item->pd_path) {
- DbgFree(item->pd_path);
+ if (item->gbar_path) {
+ DbgFree(item->gbar_path);
}
- item->pd_path = dup_rtrim(buffer);
- if (!item->pd_path) {
+ item->gbar_path = dup_rtrim(buffer);
+ if (!item->gbar_path) {
ErrPrint("Error: %s\n", strerror(errno));
}
}
-static void pd_group_handler(struct parser *item, char *buffer)
+static void gbar_group_handler(struct parser *item, char *buffer)
{
- if (item->pd_group) {
- DbgFree(item->pd_group);
+ if (item->gbar_group) {
+ DbgFree(item->gbar_group);
}
- item->pd_group = dup_rtrim(buffer);
- if (!item->pd_group) {
+ item->gbar_group = dup_rtrim(buffer);
+ if (!item->gbar_group) {
ErrPrint("Error: %s\n", strerror(errno));
}
}
@@ -604,44 +605,44 @@ HAPI struct parser *parser_load(const char *pkgname)
.handler = secured_handler,
},
{
- .name = "livebox_path",
- .handler = lb_path_handler,
+ .name = "dynamicbox_path",
+ .handler = dbox_path_handler,
},
{
- .name = "livebox_group",
- .handler = lb_group_handler,
+ .name = "dynamicbox_group",
+ .handler = dbox_group_handler,
},
{
- .name = "pd_path",
- .handler = pd_path_handler,
+ .name = "gbar_path",
+ .handler = gbar_path_handler,
},
{
- .name = "pd_group",
- .handler = pd_group_handler,
+ .name = "gbar_group",
+ .handler = gbar_group_handler,
},
{
- .name = "pd_size",
- .handler = pd_size_handler,
+ .name = "gbar_size",
+ .handler = gbar_size_handler,
},
{
.name = "pinup",
.handler = pinup_handler,
},
{
- .name = "text_livebox",
- .handler = text_lb_handler,
+ .name = "text_dynamicbox",
+ .handler = text_dbox_handler,
},
{
- .name = "text_pd",
- .handler = text_pd_handler,
+ .name = "text_gbar",
+ .handler = text_gbar_handler,
},
{
- .name = "buffer_livebox",
- .handler = buffer_lb_handler,
+ .name = "buffer_dynamicbox",
+ .handler = buffer_dbox_handler,
},
{
- .name = "buffer_pd",
- .handler = buffer_pd_handler,
+ .name = "buffer_gbar",
+ .handler = buffer_gbar_handler,
},
{
.name = "script",
@@ -664,7 +665,7 @@ HAPI struct parser *parser_load(const char *pkgname)
}
/* live-, .conf */
- len = strlen(CONF_PATH) + strlen(pkgname) * 2;
+ len = strlen(DYNAMICBOX_CONF_CONF_PATH) + strlen(pkgname) * 2;
item->filename = malloc(len);
if (!item->filename) {
ErrPrint("Error: %s\n", strerror(errno));
@@ -672,7 +673,7 @@ HAPI struct parser *parser_load(const char *pkgname)
return 0;
}
- ret = snprintf(item->filename, len, CONF_PATH, pkgname, pkgname);
+ ret = snprintf(item->filename, len, DYNAMICBOX_CONF_CONF_PATH, pkgname, pkgname);
if (ret < 0) {
ErrPrint("Error: %s\n", strerror(errno));
DbgFree(item->filename);
@@ -680,10 +681,10 @@ HAPI struct parser *parser_load(const char *pkgname)
return 0;
}
- item->lb_path = NULL;
- item->lb_group = NULL;
- item->pd_width = 0;
- item->pd_height = 0;
+ item->dbox_path = NULL;
+ item->dbox_group = NULL;
+ item->gbar_width = 0;
+ item->gbar_height = 0;
item->auto_launch = NULL;
item->size = 0x00000001;
item->group = NULL;
@@ -861,7 +862,7 @@ HAPI struct parser *parser_load(const char *pkgname)
}
linelen++;
- } while (c != EOF);
+ } while (c != EOF);
if (fclose(fp) != 0) {
ErrPrint("fclose: %s\n", strerror(errno));
@@ -879,13 +880,13 @@ HAPI int parser_unload(struct parser *item)
DbgFree(item->abi);
DbgFree(item->script);
DbgFree(item->group);
- DbgFree(item->pd_group);
- DbgFree(item->pd_path);
- DbgFree(item->lb_group);
- DbgFree(item->lb_path);
+ DbgFree(item->gbar_group);
+ DbgFree(item->gbar_path);
+ DbgFree(item->dbox_group);
+ DbgFree(item->dbox_path);
DbgFree(item->filename);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/pkgmgr.c b/src/pkgmgr.c
index 92f30d8..4a75f2f 100644
--- a/src/pkgmgr.c
+++ b/src/pkgmgr.c
@@ -20,7 +20,7 @@
#include <dlog.h>
#include <package-manager.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include <Ecore.h>
#include "util.h"
@@ -203,14 +203,14 @@ static int start_cb(const char *pkgname, const char *val, void *data)
item = calloc(1, sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->pkgname = strdup(pkgname);
if (!item->pkgname) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(item);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->status = PKGMGR_STATUS_START;
@@ -229,13 +229,13 @@ static int start_cb(const char *pkgname, const char *val, void *data)
DbgFree(item->pkgname);
DbgFree(item);
ErrPrint("Invalid val: %s\n", val);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
s_info.item_list = eina_list_append(s_info.item_list, item);
invoke_callback(pkgname, item, 0.0f);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int icon_path_cb(const char *pkgname, const char *val, void *data)
@@ -246,7 +246,7 @@ static int icon_path_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
if (item->icon) {
@@ -256,10 +256,10 @@ static int icon_path_cb(const char *pkgname, const char *val, void *data)
item->icon = strdup(val);
if (!item->icon) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int command_cb(const char *pkgname, const char *val, void *data)
@@ -270,17 +270,17 @@ static int command_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
if (!is_valid_status(item, val)) {
DbgPrint("Invalid status: %d, %s\n", item->type, val);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
item->status = PKGMGR_STATUS_COMMAND;
invoke_callback(pkgname, item, 0.0f);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int error_cb(const char *pkgname, const char *val, void *data)
@@ -292,12 +292,12 @@ static int error_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
item->status = PKGMGR_STATUS_ERROR;
invoke_callback(pkgname, item, 0.0f);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int change_pkgname_cb(const char *pkgname, const char *val, void *data)
@@ -309,18 +309,18 @@ static int change_pkgname_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
new_pkgname = strdup(val);
if (!new_pkgname) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgFree(item->pkgname);
item->pkgname = new_pkgname;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int download_cb(const char *pkgname, const char *val, void *data)
@@ -334,7 +334,7 @@ static int download_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
DbgPrint("ITEM is not started from the start_cb\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (item->type != PKGMGR_EVENT_DOWNLOAD) {
@@ -350,19 +350,19 @@ static int download_cb(const char *pkgname, const char *val, void *data)
break;
default:
ErrPrint("Invalid state [%s, %s]\n", pkgname, val);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (val) {
if (sscanf(val, "%lf", &value) != 1) {
- value = (double)LB_STATUS_ERROR_INVALID;
+ value = (double)DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
} else {
- value = (double)LB_STATUS_ERROR_INVALID;
+ value = (double)DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
invoke_download_event_handler(pkgname, item->status, value);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int progress_cb(const char *pkgname, const char *val, void *data)
@@ -376,7 +376,7 @@ static int progress_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
ErrPrint("ITEM is not started from the start_cb\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (item->status) {
@@ -387,19 +387,19 @@ static int progress_cb(const char *pkgname, const char *val, void *data)
break;
default:
ErrPrint("Invalid state [%s, %s]\n", pkgname, val);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (val) {
if (sscanf(val, "%lf", &value) != 1) {
- value = (double)LB_STATUS_ERROR_INVALID;
+ value = (double)DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
} else {
- value = (double)LB_STATUS_ERROR_INVALID;
+ value = (double)DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
invoke_callback(pkgname, item, value);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static int end_cb(const char *pkgname, const char *val, void *data)
@@ -410,7 +410,7 @@ static int end_cb(const char *pkgname, const char *val, void *data)
item = find_item(pkgname);
if (!item) {
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
item->status = !strcasecmp(val, "ok") ? PKGMGR_STATUS_END : PKGMGR_STATUS_ERROR;
@@ -421,7 +421,7 @@ static int end_cb(const char *pkgname, const char *val, void *data)
DbgFree(item->icon);
DbgFree(item->pkgname);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static struct pkgmgr_handler {
@@ -452,29 +452,29 @@ static int pkgmgr_cb(int req_id, const char *type, const char *pkgname, const ch
ret = handler[i].func(pkgname, val, data);
if (ret < 0) {
DbgPrint("REQ[%d] pkgname[%s], type[%s], key[%s], val[%s], ret = %d\n",
- req_id, pkgname, type, key, val, ret);
+ req_id, pkgname, type, key, val, ret);
}
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int pkgmgr_init(void)
{
if (s_info.listen_pc) {
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
s_info.listen_pc = pkgmgr_client_new(PC_LISTENING);
if (!s_info.listen_pc) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (pkgmgr_client_listen_status(s_info.listen_pc, pkgmgr_cb, NULL) != PKGMGR_R_OK) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int pkgmgr_fini(void)
@@ -483,11 +483,11 @@ HAPI int pkgmgr_fini(void)
struct item *ctx;
if (!s_info.listen_pc) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (pkgmgr_client_free(s_info.listen_pc) != PKGMGR_R_OK) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
s_info.listen_pc = NULL;
@@ -518,7 +518,7 @@ HAPI int pkgmgr_fini(void)
DbgFree(ctx);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int pkgmgr_add_event_callback(enum pkgmgr_event_type type, int (*cb)(const char *pkgname, enum pkgmgr_status status, double value, void *data), void *data)
@@ -528,7 +528,7 @@ HAPI int pkgmgr_add_event_callback(enum pkgmgr_event_type type, int (*cb)(const
item = calloc(1, sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->cb = cb;
@@ -552,10 +552,10 @@ HAPI int pkgmgr_add_event_callback(enum pkgmgr_event_type type, int (*cb)(const
break;
default:
DbgFree(item);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void *pkgmgr_del_event_callback(enum pkgmgr_event_type type, int (*cb)(const char *pkgname, enum pkgmgr_status status, double value, void *data), void *data)
diff --git a/src/script_handler.c b/src/script_handler.c
index 0d973f8..da53581 100644
--- a/src/script_handler.c
+++ b/src/script_handler.c
@@ -32,7 +32,9 @@
#include <dlog.h>
#include <packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_conf.h>
#include "slave_life.h"
#include "slave_rpc.h"
@@ -76,10 +78,10 @@ int errno;
static struct info {
Eina_List *script_port_list;
- enum buffer_type env_buf_type;
+ enum dynamicbox_fb_type env_buf_type;
} s_info = {
.script_port_list = NULL,
- .env_buf_type = BUFFER_TYPE_FILE,
+ .env_buf_type = DBOX_FB_TYPE_FILE,
};
struct script_port {
@@ -174,10 +176,10 @@ static int load_all_ports(void)
char *path;
int pathlen;
- dir = opendir(SCRIPT_PORT_PATH);
+ dir = opendir(DYNAMICBOX_CONF_SCRIPT_PORT_PATH);
if (!dir) {
ErrPrint("Error: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
while ((ent = readdir(dir))) {
@@ -185,17 +187,17 @@ static int load_all_ports(void)
continue;
}
- pathlen = strlen(ent->d_name) + strlen(SCRIPT_PORT_PATH) + 1;
+ pathlen = strlen(ent->d_name) + strlen(DYNAMICBOX_CONF_SCRIPT_PORT_PATH) + 1;
path = malloc(pathlen);
if (!path) {
ErrPrint("Heap: %s %d\n", strerror(errno), pathlen);
if (closedir(dir) < 0) {
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
- snprintf(path, pathlen, "%s%s", SCRIPT_PORT_PATH, ent->d_name);
+ snprintf(path, pathlen, "%s%s", DYNAMICBOX_CONF_SCRIPT_PORT_PATH, ent->d_name);
item = malloc(sizeof(*item));
if (!item) {
@@ -204,7 +206,7 @@ static int load_all_ports(void)
if (closedir(dir) < 0) {
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
DbgPrint("Open SCRIPT PORT: %s\n", path);
@@ -216,7 +218,7 @@ static int load_all_ports(void)
if (closedir(dir) < 0) {
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
item->magic_id = dlsym(item->handle, "script_magic_id");
@@ -311,7 +313,7 @@ static int load_all_ports(void)
goto errout;
}
- if (item->init(SCALE_WIDTH_FACTOR, PREMULTIPLIED_COLOR) < 0) {
+ if (item->init(DYNAMICBOX_CONF_SCALE_WIDTH_FACTOR, DYNAMICBOX_CONF_PREMULTIPLIED_COLOR) < 0) {
ErrPrint("Failed to initialize script engine\n");
goto errout;
}
@@ -323,7 +325,7 @@ static int load_all_ports(void)
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
errout:
ErrPrint("Error: %s\n", dlerror());
@@ -334,7 +336,7 @@ errout:
if (closedir(dir) < 0) {
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
static inline struct script_port *find_port(const char *magic_id)
@@ -382,29 +384,29 @@ static int render_post_cb(void *_buffer_handle, void *data)
if (instance_state(inst) != INST_ACTIVATED) {
ErrPrint("Render post invoked but instance is not activated\n");
PERF_MARK(__func__);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = instance_lb_script(inst);
+ info = instance_dbox_script(inst);
if (info && info == data) {
buffer_handler_flush(buffer_handle);
- instance_lb_updated_by_instance(inst, NULL);
+ instance_dbox_updated_by_instance(inst, NULL, info->x, info->y, info->w, info->h);
PERF_MARK("lb,update");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
- info = instance_pd_script(inst);
+ info = instance_gbar_script(inst);
if (info && info == data) {
buffer_handler_flush(buffer_handle);
- instance_pd_updated_by_instance(inst, NULL);
+ instance_gbar_updated_by_instance(inst, NULL, info->x, info->y, info->w, info->h);
PERF_MARK("pd,update");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
out:
ErrPrint("Failed to sync\n");
PERF_MARK(__func__);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/*!
@@ -422,18 +424,18 @@ EAPI int script_signal_emit(void *buffer_handle, const char *part, const char *s
if (!buffer_handle) {
ErrPrint("Invalid handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
info = buffer_handler_data(buffer_handle);
if (!info) {
ErrPrint("Invalid handle\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
inst = buffer_handler_instance(buffer_handle);
if (!inst) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!signal || strlen(signal) == 0) {
@@ -467,7 +469,7 @@ static inline void flushing_cached_block(struct script_info *info)
return;
}
- is_pd = instance_pd_script(inst) == info;
+ is_pd = instance_gbar_script(inst) == info;
EINA_LIST_FREE(info->cached_blocks, block) {
consuming_parsed_block(inst, is_pd, block);
@@ -480,17 +482,17 @@ HAPI int script_handler_load(struct script_info *info, int is_pd)
if (!info || !info->port) {
ErrPrint("Script handler is not created\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (info->loaded > 0) {
info->loaded++;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (info->port->load(info->port_data, NULL, render_post_cb, info) < 0) {
ErrPrint("Unable to load the script\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
info->loaded = 1;
@@ -499,10 +501,10 @@ HAPI int script_handler_load(struct script_info *info, int is_pd)
inst = buffer_handler_instance(info->buffer_handle);
if (inst) {
script_signal_emit(info->buffer_handle, instance_id(inst),
- is_pd ? "pd,show" : "lb,show", 0.0f, 0.0f, 0.0f, 0.0f);
+ is_pd ? "gbar,show" : "dbox,show", 0.0f, 0.0f, 0.0f, 0.0f);
}
buffer_handler_flush(info->buffer_handle);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int script_handler_unload(struct script_info *info, int is_pd)
@@ -510,30 +512,30 @@ HAPI int script_handler_unload(struct script_info *info, int is_pd)
struct inst_info *inst;
if (!info || !info->port) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
info->loaded--;
if (info->loaded > 0) {
- return LB_STATUS_ERROR_BUSY;
+ return DBOX_STATUS_ERROR_BUSY;
}
if (info->loaded < 0) {
info->loaded = 0;
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
inst = buffer_handler_instance(info->buffer_handle);
if (inst) {
script_signal_emit(info->buffer_handle, instance_id(inst),
- is_pd ? "pd,hide" : "lb,hide", 0.0f, 0.0f, 0.0f, 0.0f);
+ is_pd ? "gbar,hide" : "dbox,hide", 0.0f, 0.0f, 0.0f, 0.0f);
}
if (info->port->unload(info->port_data) < 0) {
ErrPrint("Failed to unload script object. but go ahead\n");
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI struct script_info *script_handler_create(struct inst_info *inst, const char *file, const char *option, int w, int h)
@@ -552,7 +554,7 @@ HAPI struct script_info *script_handler_create(struct inst_info *inst, const cha
return NULL;
}
- info->buffer_handle = buffer_handler_create(inst, s_info.env_buf_type, w, h, DEFAULT_PIXELS);
+ info->buffer_handle = buffer_handler_create(inst, s_info.env_buf_type, w, h, DYNAMICBOX_CONF_DEFAULT_PIXELS);
if (!info->buffer_handle) {
/* buffer_handler_create will prints some log */
DbgFree(info);
@@ -564,7 +566,7 @@ HAPI struct script_info *script_handler_create(struct inst_info *inst, const cha
info->port = find_port(package_script(instance_package(inst)));
if (!info->port) {
ErrPrint("Failed to find a proper port for [%s]%s\n",
- instance_package(inst), package_script(instance_package(inst)));
+ instance_package(inst), package_script(instance_package(inst)));
buffer_handler_destroy(info->buffer_handle);
DbgFree(info);
return NULL;
@@ -588,12 +590,12 @@ HAPI int script_handler_destroy(struct script_info *info)
if (!info || !info->port) {
ErrPrint("port is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (info->loaded != 0) {
ErrPrint("Script handler is not unloaded\n");
- return LB_STATUS_ERROR_BUSY;
+ return DBOX_STATUS_ERROR_BUSY;
}
ret = info->port->destroy(info->port_data);
@@ -608,7 +610,7 @@ HAPI int script_handler_destroy(struct script_info *info)
}
DbgFree(info);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int script_handler_is_loaded(struct script_info *info)
@@ -635,20 +637,20 @@ static int update_script_color(struct inst_info *inst, struct block *block, int
if (!block || !block->part || !block->data) {
ErrPrint("Block or part or data is not valid\n");
PERF_MARK("color");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("color");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("color");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->update_color(info->port_data, block->id, block->part, block->data);
@@ -666,25 +668,25 @@ static int update_script_text(struct inst_info *inst, struct block *block, int i
if (!block || !block->part || !block->data) {
ErrPrint("Block or part or data is not valid\n");
PERF_MARK("text");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("text");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("text");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgPrint("[%s] %s (%s)\n", block->id, block->part, block->data);
ret = info->port->update_text(info->port_data, block->id, block->part, block->data);
-
+
PERF_MARK("text");
return ret;
}
@@ -699,20 +701,20 @@ static int update_script_image(struct inst_info *inst, struct block *block, int
if (!block || !block->part) {
ErrPrint("Block or part is not valid\n");
PERF_MARK("image");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("image");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("image");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgPrint("[%s] %s (%s)\n", block->id, block->part, block->data);
@@ -731,20 +733,20 @@ static int update_access(struct inst_info *inst, struct block *block, int is_pd)
if (!block || !block->part) {
ErrPrint("Block or block->part is NIL\n");
PERF_MARK("access");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("access");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("access");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->update_access(info->port_data, block->id, block->part, block->data, block->option);
@@ -762,20 +764,20 @@ static int operate_access(struct inst_info *inst, struct block *block, int is_pd
if (!block || !block->part) {
ErrPrint("Block or block->part is NIL\n");
PERF_MARK("operate_access");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("operate_access");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("operate_access");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->operate_access(info->port_data, block->id, block->part, block->data, block->option);
@@ -793,20 +795,20 @@ static int update_script_script(struct inst_info *inst, struct block *block, int
if (!block || !block->part) {
ErrPrint("Block or part is NIL\n");
PERF_MARK("script");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("script");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("script");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->update_script(info->port_data, block->id, block->target, block->part, block->data, block->option);
@@ -824,20 +826,20 @@ static int update_script_signal(struct inst_info *inst, struct block *block, int
if (!block) {
ErrPrint("block is NIL\n");
PERF_MARK("signal");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("signal");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("signal");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->update_signal(info->port_data, block->id, block->part, block->data);
@@ -856,26 +858,26 @@ static int update_script_drag(struct inst_info *inst, struct block *block, int i
if (!block || !block->data || !block->part) {
ErrPrint("block or block->data or block->part is NIL\n");
PERF_MARK("drag");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("drag");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (sscanf(block->data, "%lfx%lf", &dx, &dy) != 2) {
ErrPrint("Invalid format of data (DRAG data [%s])\n", block->data);
PERF_MARK("drag");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("drag");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->update_drag(info->port_data, block->id, block->part, dx, dy);
@@ -897,10 +899,10 @@ static void update_size_for_script(struct script_info *info, struct inst_info *i
(void)info->port->update_size(info->port_data, NULL, w, h);
}
- if (instance_lb_script(inst) == info) {
- instance_set_lb_size(inst, w, h);
- } else if (instance_pd_script(inst) == info) {
- instance_set_pd_size(inst, w, h);
+ if (instance_dbox_script(inst) == info) {
+ instance_set_dbox_size(inst, w, h);
+ } else if (instance_gbar_script(inst) == info) {
+ instance_set_gbar_size(inst, w, h);
} else {
ErrPrint("Unknown script\n");
}
@@ -915,20 +917,20 @@ HAPI int script_handler_resize(struct script_info *info, int w, int h)
if (!info) {
ErrPrint("info[%p] resize is ignored\n", info);
PERF_MARK("resize");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
inst = buffer_handler_instance(info->buffer_handle);
if (!inst) {
ErrPrint("Instance is not valid\n");
PERF_MARK("resize");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
update_size_for_script(info, inst, w, h);
PERF_MARK("resize");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI const char *script_handler_buffer_id(struct script_info *info)
@@ -950,20 +952,20 @@ static int update_info(struct inst_info *inst, struct block *block, int is_pd)
if (!block || !block->part || !block->data) {
ErrPrint("block or block->part or block->data is NIL\n");
PERF_MARK("info");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
PERF_MARK("info");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (!info->port) {
ErrPrint("info->port is NIL\n");
PERF_MARK("info");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!strcasecmp(block->part, INFO_SIZE)) {
@@ -972,7 +974,7 @@ static int update_info(struct inst_info *inst, struct block *block, int is_pd)
if (sscanf(block->data, "%dx%d", &w, &h) != 2) {
ErrPrint("Invalid format for SIZE(%s)\n", block->data);
PERF_MARK("info");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!block->id) {
@@ -985,7 +987,7 @@ static int update_info(struct inst_info *inst, struct block *block, int is_pd)
}
PERF_MARK("info");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline void consuming_parsed_block(struct inst_info *inst, int is_pd, struct block *block)
@@ -1005,7 +1007,7 @@ static inline void consuming_parsed_block(struct inst_info *inst, int is_pd, str
NULL
};
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
if (!info) {
ErrPrint("info is NIL (%d, %s)\n", is_pd, instance_id(inst));
goto free_out;
@@ -1029,13 +1031,13 @@ free_out:
HAPI int script_init(void)
{
- if (!strcasecmp(PROVIDER_METHOD, "shm")) {
- s_info.env_buf_type = BUFFER_TYPE_SHM;
- } else if (!strcasecmp(PROVIDER_METHOD, "pixmap")) {
- s_info.env_buf_type = BUFFER_TYPE_PIXMAP;
+ if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "shm")) {
+ s_info.env_buf_type = DBOX_FB_TYPE_SHM;
+ } else if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "pixmap")) {
+ s_info.env_buf_type = DBOX_FB_TYPE_PIXMAP;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int script_fini(void)
@@ -1058,7 +1060,7 @@ HAPI int script_fini(void)
HAPI int script_handler_update_pointer(struct script_info *info, int x, int y, int down)
{
if (!info) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
info->x = x;
@@ -1070,18 +1072,18 @@ HAPI int script_handler_update_pointer(struct script_info *info, int x, int y, i
info->down = 1;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int script_handler_update_keycode(struct script_info *info, unsigned int keycode)
{
if (!info) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
info->keycode = keycode;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int script_handler_feed_event(struct script_info *info, int event, double timestamp)
@@ -1090,7 +1092,7 @@ HAPI int script_handler_feed_event(struct script_info *info, int event, double t
if (!info->port) {
ErrPrint("info->port is NIL\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = info->port->feed_event(info->port_data, event, info->x, info->y, info->down, info->keycode, timestamp);
@@ -1187,7 +1189,6 @@ static Eina_Bool apply_changes_cb(void *_data)
}
#endif
-
HAPI int script_handler_parse_desc(struct inst_info *inst, const char *filename, int is_pd)
{
PERF_INIT();
@@ -1212,7 +1213,7 @@ HAPI int script_handler_parse_desc(struct inst_info *inst, const char *filename,
filebuf = load_file(filename);
if (!filebuf) {
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
fileptr = filebuf;
@@ -1426,10 +1427,10 @@ HAPI int script_handler_parse_desc(struct inst_info *inst, const char *filename,
case DONE:
if (isspace(*fileptr)) {
} else if (*fileptr == '}') {
- state = BEGIN;
- block->filename = filename;
- block_list = eina_list_append(block_list, block);
- block = NULL;
+ state = BEGIN;
+ block->filename = filename;
+ block_list = eina_list_append(block_list, block);
+ block = NULL;
} else {
state = FIELD;
continue;
@@ -1454,7 +1455,7 @@ HAPI int script_handler_parse_desc(struct inst_info *inst, const char *filename,
}
PERF_MARK("parser");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
block = eina_list_data_get(eina_list_last(block_list));
@@ -1497,15 +1498,15 @@ HAPI int script_handler_parse_desc(struct inst_info *inst, const char *filename,
/*!
* Doesn't need to force to render the contents.
- struct script_info *info;
- info = is_pd ? instance_pd_script(inst) : instance_lb_script(inst);
- if (info && info->ee) {
- ecore_evas_manual_render(info->ee);
- }
- */
+ struct script_info *info;
+ info = is_pd ? instance_gbar_script(inst) : instance_dbox_script(inst);
+ if (info && info->ee) {
+ ecore_evas_manual_render(info->ee);
+ }
+ */
#endif
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/server.c b/src/server.c
index c70ef3b..8567ff6 100644
--- a/src/server.c
+++ b/src/server.c
@@ -18,6 +18,8 @@
#include <unistd.h>
#include <errno.h>
+#include <sys/smack.h>
+
#include <dlog.h>
#include <aul.h>
#include <Ecore.h>
@@ -25,8 +27,11 @@
#include <packet.h>
#include <com-core_packet.h>
-#include <livebox-errno.h>
-#include <livebox-service.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_cmd_list.h>
+#include <dynamicbox_conf.h>
+#include <dynamicbox_script.h>
#include "critical_log.h"
#include "conf.h"
@@ -49,12 +54,20 @@
#include "io.h"
#include "event.h"
-#define PD_OPEN_MONITOR_TAG "pd,open,monitor"
-#define PD_RESIZE_MONITOR_TAG "pd,resize,monitor"
-#define PD_CLOSE_MONITOR_TAG "pd,close,monitor"
+#define GBAR_OPEN_MONITOR_TAG "gbar,open,monitor"
+#define GBAR_RESIZE_MONITOR_TAG "gbar,resize,monitor"
+#define GBAR_CLOSE_MONITOR_TAG "gbar,close,monitor"
+
+#define LAZY_GBAR_OPEN_TAG "lazy,gbar,open"
+#define LAZY_GBAR_CLOSE_TAG "lazy,gbar,close"
-#define LAZY_PD_OPEN_TAG "lazy,pd,open"
-#define LAZY_PD_CLOSE_TAG "lazy,pd,close"
+#define ACCESS_TYPE_DOWN 0
+#define ACCESS_TYPE_MOVE 1
+#define ACCESS_TYPE_UP 2
+#define ACCESS_TYPE_CUR 0
+#define ACCESS_TYPE_NEXT 1
+#define ACCESS_TYPE_PREV 2
+#define ACCESS_TYPE_OFF 3
static struct info {
int info_fd;
@@ -70,10 +83,16 @@ static struct info {
.remote_client_fd = -1,
};
+struct access_info {
+ int x;
+ int y;
+ int type;
+};
+
/* Share this with provider */
enum target_type {
- TYPE_LB,
- TYPE_PD,
+ TYPE_DBOX,
+ TYPE_GBAR,
TYPE_ERROR
};
@@ -87,23 +106,103 @@ struct deleted_item {
struct inst_info *inst;
};
-static int forward_lb_event_packet(const struct pkg_info *pkg, struct inst_info *inst, const struct packet *packet)
+static Eina_Bool lazy_key_status_cb(void *data)
+{
+ struct event_cbdata *cbdata = data;
+
+ if (instance_unref(cbdata->inst)) {
+ instance_send_key_status(cbdata->inst, cbdata->status);
+ } else {
+ DbgPrint("Skip sending key status (%d)\n", cbdata->status);
+ }
+ /*!
+ * If instance_unref returns NULL,
+ * The instance is destroyed. it means, we don't need to send event to the viewer
+ */
+ DbgFree(cbdata);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool lazy_access_status_cb(void *data)
+{
+ struct event_cbdata *cbdata = data;
+
+ if (instance_unref(cbdata->inst)) {
+ instance_send_access_status(cbdata->inst, cbdata->status);
+ } else {
+ DbgPrint("Skip sending access status (%d)\n", cbdata->status);
+ }
+ /*!
+ * If instance_unref returns NULL,
+ * The instance is destroyed. it means, we don't need to send event to the viewer
+ */
+ DbgFree(cbdata);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+int send_delayed_key_status(struct inst_info *inst, int ret)
+{
+ struct event_cbdata *cbdata;
+
+ cbdata = malloc(sizeof(*cbdata));
+ if (!cbdata) {
+ ret = DBOX_STATUS_ERROR_OUT_OF_MEMORY;
+ } else {
+ cbdata->inst = instance_ref(inst);
+ cbdata->status = ret;
+
+ if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
+ (void)instance_unref(cbdata->inst);
+ DbgFree(cbdata);
+ ret = DBOX_STATUS_ERROR_FAULT;
+ } else {
+ ret = DBOX_STATUS_ERROR_NONE;
+ }
+ }
+
+ return ret;
+}
+
+int send_delayed_access_status(struct inst_info *inst, int ret)
+{
+ struct event_cbdata *cbdata;
+
+ cbdata = malloc(sizeof(*cbdata));
+ if (!cbdata) {
+ ret = DBOX_STATUS_ERROR_OUT_OF_MEMORY;
+ } else {
+ cbdata->inst = instance_ref(inst);
+ cbdata->status = ret;
+
+ if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
+ (void)instance_unref(cbdata->inst);
+ DbgFree(cbdata);
+ ret = DBOX_STATUS_ERROR_FAULT;
+ } else {
+ ret = DBOX_STATUS_ERROR_NONE;
+ }
+ }
+
+ return ret;
+}
+
+static int forward_dbox_event_packet(const struct pkg_info *pkg, struct inst_info *inst, const struct packet *packet)
{
struct buffer_info *buffer;
struct slave_node *slave;
int ret;
- buffer = instance_lb_buffer(inst);
+ buffer = instance_dbox_buffer(inst);
if (!buffer) {
ErrPrint("Instance[%s] has no buffer\n", instance_id(inst));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package[%s] has no slave\n", package_name(pkg));
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -114,23 +213,23 @@ out:
return ret;
}
-static int forward_pd_event_packet(const struct pkg_info *pkg, struct inst_info *inst, const struct packet *packet)
+static int forward_gbar_event_packet(const struct pkg_info *pkg, struct inst_info *inst, const struct packet *packet)
{
struct buffer_info *buffer;
struct slave_node *slave;
int ret;
- buffer = instance_pd_buffer(inst);
+ buffer = instance_gbar_buffer(inst);
if (!buffer) {
ErrPrint("Instance[%s] has no buffer\n", instance_id(inst));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package[%s] has no slave\n", package_name(pkg));
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -141,80 +240,80 @@ out:
return ret;
}
-static int forward_pd_access_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, int x, int y)
+static int forward_gbar_access_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, struct access_info *event)
{
int ret;
struct buffer_info *buffer;
struct slave_node *slave;
struct packet *p;
- buffer = instance_pd_buffer(inst);
+ buffer = instance_gbar_buffer(inst);
if (!buffer) {
ErrPrint("Instance[%s] has no buffer\n", instance_id(inst));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package[%s] has no slave\n", package_name(pkg));
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
- p = packet_create_noack(command, "ssdii", package_name(pkg), instance_id(inst), timestamp, x, y);
+ p = packet_create_noack(command, "ssdiii", package_name(pkg), instance_id(inst), timestamp, event->x, event->y, event->type);
ret = slave_rpc_request_only(slave, package_name(pkg), p, 0);
out:
return ret;
}
-static int forward_lb_access_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, int x, int y)
+static int forward_dbox_access_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, struct access_info *event)
{
int ret;
struct buffer_info *buffer;
struct slave_node *slave;
struct packet *p;
- buffer = instance_lb_buffer(inst);
+ buffer = instance_dbox_buffer(inst);
if (!buffer) {
ErrPrint("Instance[%s] has no buffer\n", instance_id(inst));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package[%s] has no slave\n", package_name(pkg));
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
- p = packet_create_noack(command, "ssdii", package_name(pkg), instance_id(inst), timestamp, x, y);
+ p = packet_create_noack(command, "ssdiii", package_name(pkg), instance_id(inst), timestamp, event->x, event->y, event->type);
ret = slave_rpc_request_only(slave, package_name(pkg), p, 0);
out:
return ret;
}
-static int forward_pd_key_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, unsigned int keycode)
+static int forward_gbar_key_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, unsigned int keycode)
{
int ret;
struct buffer_info *buffer;
struct slave_node *slave;
struct packet *p;
- buffer = instance_lb_buffer(inst);
+ buffer = instance_dbox_buffer(inst);
if (!buffer) {
ErrPrint("Instance[%s] has no buffer\n", instance_id(inst));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package[%s] has no slave\n", package_name(pkg));
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -225,24 +324,24 @@ out:
return ret;
}
-static int forward_lb_key_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, unsigned int keycode)
+static int forward_dbox_key_packet(const struct pkg_info *pkg, struct inst_info *inst, const char *command, double timestamp, unsigned int keycode)
{
int ret;
struct buffer_info *buffer;
struct slave_node *slave;
struct packet *p;
- buffer = instance_lb_buffer(inst);
+ buffer = instance_dbox_buffer(inst);
if (!buffer) {
ErrPrint("Instance[%s] has no buffer\n", instance_id(inst));
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
slave = package_slave(pkg);
if (!slave) {
ErrPrint("Package[%s] has no slave\n", package_name(pkg));
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -253,49 +352,15 @@ out:
return ret;
}
-static Eina_Bool lazy_key_status_cb(void *data)
-{
- struct event_cbdata *cbdata = data;
-
- if (instance_unref(cbdata->inst)) {
- instance_send_key_status(cbdata->inst, cbdata->status);
- } else {
- DbgPrint("Skip sending key status (%d)\n", cbdata->status);
- }
- /*!
- * If instance_unref returns NULL,
- * The instance is destroyed. it means, we don't need to send event to the viewer
- */
- DbgFree(cbdata);
- return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool lazy_access_status_cb(void *data)
-{
- struct event_cbdata *cbdata = data;
-
- if (instance_unref(cbdata->inst)) {
- instance_send_access_status(cbdata->inst, cbdata->status);
- } else {
- DbgPrint("Skip sending access status (%d)\n", cbdata->status);
- }
- /*!
- * If instance_unref returns NULL,
- * The instance is destroyed. it means, we don't need to send event to the viewer
- */
- DbgFree(cbdata);
- return ECORE_CALLBACK_CANCEL;
-}
-
static int slave_fault_open_script_cb(struct slave_node *slave, void *data)
{
Ecore_Timer *timer;
- (void)script_handler_unload(instance_pd_script(data), 1);
- (void)instance_slave_close_pd(data, instance_pd_owner(data), LB_CLOSE_PD_FAULT);
- (void)instance_client_pd_created(data, LB_STATUS_ERROR_FAULT);
+ (void)script_handler_unload(instance_gbar_script(data), 1);
+ (void)instance_slave_close_gbar(data, instance_gbar_owner(data), DBOX_CLOSE_GBAR_FAULT);
+ (void)instance_client_gbar_created(data, DBOX_STATUS_ERROR_FAULT);
- timer = instance_del_data(data, LAZY_PD_OPEN_TAG);
+ timer = instance_del_data(data, LAZY_GBAR_OPEN_TAG);
if (timer) {
ecore_timer_del(timer);
}
@@ -309,10 +374,10 @@ static int slave_fault_open_buffer_cb(struct slave_node *slave, void *data)
{
Ecore_Timer *timer;
- (void)instance_slave_close_pd(data, instance_pd_owner(data), LB_CLOSE_PD_FAULT);
- (void)instance_client_pd_created(data, LB_STATUS_ERROR_FAULT);
+ (void)instance_slave_close_gbar(data, instance_gbar_owner(data), DBOX_CLOSE_GBAR_FAULT);
+ (void)instance_client_gbar_created(data, DBOX_STATUS_ERROR_FAULT);
- timer = instance_del_data(data, PD_OPEN_MONITOR_TAG);
+ timer = instance_del_data(data, GBAR_OPEN_MONITOR_TAG);
if (timer) {
ecore_timer_del(timer);
}
@@ -326,9 +391,9 @@ static int slave_fault_close_script_cb(struct slave_node *slave, void *data)
{
Ecore_Timer *timer;
- (void)instance_client_pd_destroyed(data, LB_STATUS_ERROR_FAULT);
+ (void)instance_client_gbar_destroyed(data, DBOX_STATUS_ERROR_FAULT);
- timer = instance_del_data(data, LAZY_PD_CLOSE_TAG);
+ timer = instance_del_data(data, LAZY_GBAR_CLOSE_TAG);
if (timer) {
ecore_timer_del(timer);
}
@@ -342,11 +407,11 @@ static int slave_fault_close_buffer_cb(struct slave_node *slave, void *data)
{
Ecore_Timer *timer;
- (void)instance_client_pd_destroyed(data, LB_STATUS_ERROR_FAULT);
+ (void)instance_client_gbar_destroyed(data, DBOX_STATUS_ERROR_FAULT);
- timer = instance_del_data(data, LAZY_PD_CLOSE_TAG);
+ timer = instance_del_data(data, LAZY_GBAR_CLOSE_TAG);
if (!timer) {
- timer = instance_del_data(data, PD_CLOSE_MONITOR_TAG);
+ timer = instance_del_data(data, GBAR_CLOSE_MONITOR_TAG);
}
if (timer) {
@@ -362,10 +427,10 @@ static int slave_fault_resize_buffer_cb(struct slave_node *slave, void *data)
{
Ecore_Timer *timer;
- (void)instance_slave_close_pd(data, instance_pd_owner(data), LB_CLOSE_PD_FAULT);
- (void)instance_client_pd_destroyed(data, LB_STATUS_ERROR_FAULT);
+ (void)instance_slave_close_gbar(data, instance_gbar_owner(data), DBOX_CLOSE_GBAR_FAULT);
+ (void)instance_client_gbar_destroyed(data, DBOX_STATUS_ERROR_FAULT);
- timer = instance_del_data(data, PD_RESIZE_MONITOR_TAG);
+ timer = instance_del_data(data, GBAR_RESIZE_MONITOR_TAG);
if (timer) {
ecore_timer_del(timer);
}
@@ -375,87 +440,97 @@ static int slave_fault_resize_buffer_cb(struct slave_node *slave, void *data)
return -1; /* remove this handler */
}
-static int key_event_lb_route_cb(enum event_state state, struct event_data *event_info, void *data)
+static int key_event_dbox_route_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct inst_info *inst = data;
const struct pkg_info *pkg;
struct slave_node *slave;
struct packet *packet;
- const char *cmdstr;
+ unsigned int cmd;
+
+ if (!inst) {
+ DbgPrint("Instance is deleted.\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
pkg = instance_package(inst);
if (!pkg) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(pkg);
if (!slave) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (state) {
case EVENT_STATE_ACTIVATE:
- cmdstr = "lb_key_down";
+ cmd = CMD_DBOX_KEY_DOWN;
break;
case EVENT_STATE_ACTIVATED:
- cmdstr = "lb_key_down";
+ cmd = CMD_DBOX_KEY_DOWN;
break;
case EVENT_STATE_DEACTIVATE:
- cmdstr = "lb_key_up";
+ cmd = CMD_DBOX_KEY_UP;
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack(cmdstr, "ssdi", package_name(pkg), instance_id(inst), util_timestamp(), event_info->keycode);
+ packet = packet_create_noack((const char *)&cmd, "ssdi", package_name(pkg), instance_id(inst), event_info->tv, event_info->keycode);
if (!packet) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(slave, package_name(pkg), packet, 0);
}
-static int mouse_event_lb_route_cb(enum event_state state, struct event_data *event_info, void *data)
+static int mouse_event_dbox_route_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct inst_info *inst = data;
const struct pkg_info *pkg;
struct slave_node *slave;
struct packet *packet;
- const char *cmdstr;
+ unsigned int cmd;
+
+ if (!inst) {
+ DbgPrint("Instance is deleted.\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
pkg = instance_package(inst);
if (!pkg) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(pkg);
if (!slave) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (state) {
case EVENT_STATE_ACTIVATE:
- cmdstr = "lb_mouse_down";
+ cmd = CMD_DBOX_MOUSE_DOWN;
break;
case EVENT_STATE_ACTIVATED:
- cmdstr = "lb_mouse_move";
+ cmd = CMD_DBOX_MOUSE_MOVE;
break;
case EVENT_STATE_DEACTIVATE:
- cmdstr = "lb_mouse_up";
+ cmd = CMD_DBOX_MOUSE_UP;
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack(cmdstr, "ssdii", package_name(pkg), instance_id(inst), util_timestamp(), event_info->x, event_info->y);
+ packet = packet_create_noack((const char *)&cmd, "ssdii", package_name(pkg), instance_id(inst), event_info->tv, event_info->x, event_info->y);
if (!packet) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(slave, package_name(pkg), packet, 0);
}
-static int key_event_lb_consume_cb(enum event_state state, struct event_data *event_info, void *data)
+static int key_event_dbox_consume_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct script_info *script;
struct inst_info *inst = data;
@@ -467,25 +542,25 @@ static int key_event_lb_consume_cb(enum event_state state, struct event_data *ev
return 0;
}
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- timestamp = util_timestamp();
+ timestamp = event_info->tv;
switch (state) {
case EVENT_STATE_ACTIVATE:
script_handler_update_keycode(script, event_info->keycode);
- (void)script_handler_feed_event(script, LB_SCRIPT_KEY_DOWN, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_KEY_DOWN, timestamp);
break;
case EVENT_STATE_ACTIVATED:
script_handler_update_keycode(script, event_info->keycode);
- (void)script_handler_feed_event(script, LB_SCRIPT_KEY_DOWN, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_KEY_DOWN, timestamp);
break;
case EVENT_STATE_DEACTIVATE:
script_handler_update_keycode(script, event_info->keycode);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_UP, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_UP, timestamp);
break;
default:
ErrPrint("Unknown event\n");
@@ -495,7 +570,7 @@ static int key_event_lb_consume_cb(enum event_state state, struct event_data *ev
return 0;
}
-static int mouse_event_lb_consume_cb(enum event_state state, struct event_data *event_info, void *data)
+static int mouse_event_dbox_consume_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct script_info *script;
struct inst_info *inst = data;
@@ -507,25 +582,25 @@ static int mouse_event_lb_consume_cb(enum event_state state, struct event_data *
return 0;
}
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- timestamp = util_timestamp();
+ timestamp = event_info->tv;
switch (state) {
case EVENT_STATE_ACTIVATE:
script_handler_update_pointer(script, event_info->x, event_info->y, 1);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_DOWN, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_DOWN, timestamp);
break;
case EVENT_STATE_ACTIVATED:
script_handler_update_pointer(script, event_info->x, event_info->y, -1);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_MOVE, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_MOVE, timestamp);
break;
case EVENT_STATE_DEACTIVATE:
script_handler_update_pointer(script, event_info->x, event_info->y, 0);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_UP, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_UP, timestamp);
break;
default:
break;
@@ -534,87 +609,97 @@ static int mouse_event_lb_consume_cb(enum event_state state, struct event_data *
return 0;
}
-static int key_event_pd_route_cb(enum event_state state, struct event_data *event_info, void *data)
+static int key_event_gbar_route_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct inst_info *inst = data;
const struct pkg_info *pkg;
struct slave_node *slave;
struct packet *packet;
- const char *cmdstr;
+ unsigned int cmd;
+
+ if (!inst) {
+ DbgPrint("Instance is deleted.\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
pkg = instance_package(inst);
if (!pkg) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(pkg);
if (!slave) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (state) {
case EVENT_STATE_ACTIVATE:
- cmdstr = "pd_key_down";
+ cmd = CMD_GBAR_KEY_DOWN;
break;
case EVENT_STATE_ACTIVATED:
- cmdstr = "pd_key_down";
+ cmd = CMD_GBAR_KEY_DOWN;
break;
case EVENT_STATE_DEACTIVATE:
- cmdstr = "pd_key_up";
+ cmd = CMD_GBAR_KEY_UP;
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack(cmdstr, "ssdi", package_name(pkg), instance_id(inst), util_timestamp(), event_info->keycode);
+ packet = packet_create_noack((const char *)&cmd, "ssdi", package_name(pkg), instance_id(inst), event_info->tv, event_info->keycode);
if (!packet) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(slave, package_name(pkg), packet, 0);
}
-static int mouse_event_pd_route_cb(enum event_state state, struct event_data *event_info, void *data)
+static int mouse_event_gbar_route_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct inst_info *inst = data;
const struct pkg_info *pkg;
struct slave_node *slave;
struct packet *packet;
- const char *cmdstr;
+ unsigned int cmd;
+
+ if (!inst) {
+ DbgPrint("Instance is deleted.\n");
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
pkg = instance_package(inst);
if (!pkg) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave = package_slave(pkg);
if (!slave) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (state) {
case EVENT_STATE_ACTIVATE:
- cmdstr = "pd_mouse_down";
+ cmd = CMD_GBAR_MOUSE_DOWN;
break;
case EVENT_STATE_ACTIVATED:
- cmdstr = "pd_mouse_move";
+ cmd = CMD_GBAR_MOUSE_MOVE;
break;
case EVENT_STATE_DEACTIVATE:
- cmdstr = "pd_mouse_up";
+ cmd = CMD_GBAR_MOUSE_UP;
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- packet = packet_create_noack(cmdstr, "ssdii", package_name(pkg), instance_id(inst), util_timestamp(), event_info->x, event_info->y);
+ packet = packet_create_noack((const char *)&cmd, "ssdii", package_name(pkg), instance_id(inst), event_info->tv, event_info->x, event_info->y);
if (!packet) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
return slave_rpc_request_only(slave, package_name(pkg), packet, 0);
}
-static int key_event_pd_consume_cb(enum event_state state, struct event_data *event_info, void *data)
+static int key_event_gbar_consume_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct script_info *script;
struct inst_info *inst = data;
@@ -626,25 +711,25 @@ static int key_event_pd_consume_cb(enum event_state state, struct event_data *ev
return 0;
}
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- timestamp = util_timestamp();
+ timestamp = event_info->tv;
switch (state) {
case EVENT_STATE_ACTIVATE:
script_handler_update_keycode(script, event_info->keycode);
- (void)script_handler_feed_event(script, LB_SCRIPT_KEY_DOWN, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_KEY_DOWN, timestamp);
break;
case EVENT_STATE_ACTIVATED:
script_handler_update_keycode(script, event_info->keycode);
- (void)script_handler_feed_event(script, LB_SCRIPT_KEY_DOWN, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_KEY_DOWN, timestamp);
break;
case EVENT_STATE_DEACTIVATE:
script_handler_update_keycode(script, event_info->keycode);
- (void)script_handler_feed_event(script, LB_SCRIPT_KEY_UP, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_KEY_UP, timestamp);
break;
default:
ErrPrint("Unknown event\n");
@@ -654,7 +739,7 @@ static int key_event_pd_consume_cb(enum event_state state, struct event_data *ev
return 0;
}
-static int mouse_event_pd_consume_cb(enum event_state state, struct event_data *event_info, void *data)
+static int mouse_event_gbar_consume_cb(enum event_state state, struct event_data *event_info, void *data)
{
struct script_info *script;
struct inst_info *inst = data;
@@ -666,25 +751,25 @@ static int mouse_event_pd_consume_cb(enum event_state state, struct event_data *
return 0;
}
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- timestamp = util_timestamp();
+ timestamp = event_info->tv;
switch (state) {
case EVENT_STATE_ACTIVATE:
script_handler_update_pointer(script, event_info->x, event_info->y, 1);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_DOWN, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_DOWN, timestamp);
break;
case EVENT_STATE_ACTIVATED:
script_handler_update_pointer(script, event_info->x, event_info->y, -1);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_MOVE, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_MOVE, timestamp);
break;
case EVENT_STATE_DEACTIVATE:
script_handler_update_pointer(script, event_info->x, event_info->y, 0);
- (void)script_handler_feed_event(script, LB_SCRIPT_MOUSE_UP, timestamp);
+ (void)script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_UP, timestamp);
break;
default:
break;
@@ -696,19 +781,20 @@ static struct packet *client_acquire(pid_t pid, int handle, const struct packet
{
struct client_node *client;
struct packet *result;
+ const char *direct_addr;
double timestamp;
int ret;
client = client_find_by_rpc_handle(handle);
if (client) {
ErrPrint("Client is already exists %d\n", pid);
- ret = LB_STATUS_ERROR_EXIST;
+ ret = DBOX_STATUS_ERROR_EXIST;
goto out;
}
- if (packet_get(packet, "d", &timestamp) != 1) {
+ if (packet_get(packet, "ds", &timestamp, &direct_addr) != 2) {
ErrPrint("Invalid arguemnt\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -717,14 +803,14 @@ static struct packet *client_acquire(pid_t pid, int handle, const struct packet
* \note
* client_create will invoke the client created callback
*/
- client = client_create(pid, handle);
+ client = client_create(pid, handle, direct_addr);
if (!client) {
ErrPrint("Failed to create a new client for %d\n", pid);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
}
out:
- result = packet_create_reply(packet, "i", ret);
+ result = packet_create_reply(packet, "ii", ret, DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT);
if (!result) {
ErrPrint("Failed to create a packet\n");
}
@@ -741,7 +827,7 @@ static struct packet *cilent_release(pid_t pid, int handle, const struct packet
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
@@ -765,18 +851,18 @@ static int validate_request(const char *pkgname, const char *id, struct inst_inf
inst = package_find_instance_by_id(pkgname, id);
if (!inst) {
ErrPrint("Instance is not exists (%s)\n", id);
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
pkg = instance_package(inst);
if (!pkg) {
ErrPrint("System error - instance has no package?\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (package_is_fault(pkg)) {
ErrPrint("Faulted package: %s\n", pkgname);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (out_inst) {
@@ -787,7 +873,7 @@ static int validate_request(const char *pkgname, const char *id, struct inst_inf
*out_pkg = pkg;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!< pid, pkgname, filename, event, timestamp, x, y, ret */
@@ -818,10 +904,10 @@ static struct packet *client_clicked(pid_t pid, int handle, const struct packet
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
(void)instance_clicked(inst, event, timestamp, x, y);
}
@@ -843,19 +929,19 @@ static struct packet *client_update_mode(pid_t pid, int handle, const struct pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = packet_get(packet, "ssi", &pkgname, &id, &active_update);
if (ret != 3) {
ErrPrint("Invalid argument\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
/*!
* \note
* Send change update mode request to a slave
@@ -891,24 +977,24 @@ static struct packet *client_text_signal(pid_t pid, int handle, const struct pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssssdddd", &pkgname, &id, &emission, &source, &sx, &sy, &ex, &ey);
if (ret != 8) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
ret = instance_text_signal_emit(inst, emission, source, sx, sy, ex, ey);
}
@@ -931,7 +1017,7 @@ static Eina_Bool lazy_delete_cb(void *data)
* So check it again
*/
if (instance_has_client(item->inst, item->client)) {
- (void)instance_unicast_deleted_event(item->inst, item->client, LB_STATUS_SUCCESS);
+ (void)instance_unicast_deleted_event(item->inst, item->client, DBOX_STATUS_ERROR_NONE);
(void)instance_del_client(item->inst, item->client);
}
@@ -956,32 +1042,32 @@ static struct packet *client_delete(pid_t pid, int handle, const struct packet *
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssid", &pkgname, &id, &type, &timestamp);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
/*!
* \note
- * Below two types must has to be sync'd with livebox-viewer
+ * Below two types must has to be sync'd with dynamicbox-viewer
*
- * LB_DELETE_PERMANENTLY = 0x01,
- * LB_DELETE_TEMPORARY = 0x02,
+ * DBOX_DELETE_PERMANENTLY = 0x01,
+ * DBOX_DELETE_TEMPORARY = 0x02,
*
*/
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
DbgPrint("Failed to find by id(%s), try to find it using timestamp(%lf)\n", id, timestamp);
inst = package_find_instance_by_timestamp(pkgname, timestamp);
if (!inst) {
@@ -997,7 +1083,7 @@ static struct packet *client_delete(pid_t pid, int handle, const struct packet *
if (package_is_fault(pkg)) {
DbgPrint("Faulted package. will be deleted soon: %s\n", id);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
@@ -1008,7 +1094,7 @@ static struct packet *client_delete(pid_t pid, int handle, const struct packet *
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- ret = LB_STATUS_ERROR_MEMORY;
+ ret = DBOX_STATUS_ERROR_OUT_OF_MEMORY;
} else {
/*!
* \NOTE:
@@ -1027,22 +1113,22 @@ static struct packet *client_delete(pid_t pid, int handle, const struct packet *
(void)client_unref(client);
(void)instance_unref(inst);
DbgFree(item);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
} else {
- ret = LB_STATUS_SUCCESS;
+ ret = DBOX_STATUS_ERROR_NONE;
}
}
} else {
ErrPrint("Client has no permission\n");
- ret = LB_STATUS_ERROR_PERMISSION;
+ ret = DBOX_STATUS_ERROR_PERMISSION_DENIED;
}
} else {
switch (type) {
- case LB_DELETE_PERMANENTLY:
- ret = instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
+ case DBOX_DELETE_PERMANENTLY:
+ ret = instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
break;
- case LB_DELETE_TEMPORARY:
- ret = instance_destroy(inst, INSTANCE_DESTROY_TEMPORARY);
+ case DBOX_DELETE_TEMPORARY:
+ ret = instance_destroy(inst, DBOX_DESTROY_TYPE_TEMPORARY);
break;
default:
break;
@@ -1072,14 +1158,14 @@ static struct packet *client_resize(pid_t pid, int handle, const struct packet *
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssii", &pkgname, &id, &w, &h);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -1088,15 +1174,15 @@ static struct packet *client_resize(pid_t pid, int handle, const struct packet *
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
if (instance_client(inst) != client) {
- ret = LB_STATUS_ERROR_PERMISSION;
+ ret = DBOX_STATUS_ERROR_PERMISSION_DENIED;
} else {
ret = instance_resize(inst, w, h);
}
@@ -1130,32 +1216,32 @@ static struct packet *client_new(pid_t pid, int handle, const struct packet *pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "dssssdii", &timestamp, &pkgname, &content, &cluster, &category, &period, &width, &height);
if (ret != 8) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
DbgPrint("pid[%d] period[%lf] pkgname[%s] content[%s] cluster[%s] category[%s] period[%lf]\n",
- pid, timestamp, pkgname, content, cluster, category, period);
+ pid, timestamp, pkgname, content, cluster, category, period);
- lbid = package_lb_pkgname(pkgname);
+ lbid = package_dbox_pkgname(pkgname);
if (!lbid) {
- ErrPrint("This %s has no livebox package\n", pkgname);
- ret = LB_STATUS_ERROR_INVALID;
+ ErrPrint("This %s has no dynamicbox package\n", pkgname);
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
- mainappid = livebox_service_mainappid(lbid);
+ mainappid = dynamicbox_service_mainappid(lbid);
if (!package_is_enabled(mainappid)) {
DbgFree(mainappid);
DbgFree(lbid);
- ret = LB_STATUS_ERROR_DISABLED;
+ ret = DBOX_STATUS_ERROR_DISABLED;
goto out;
}
DbgFree(mainappid);
@@ -1163,11 +1249,11 @@ static struct packet *client_new(pid_t pid, int handle, const struct packet *pac
info = package_find(lbid);
if (!info) {
char *pkgid;
- pkgid = livebox_service_appid(lbid);
+ pkgid = dynamicbox_service_package_id(lbid);
if (!pkgid) {
DbgFree(mainappid);
DbgFree(lbid);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
@@ -1176,17 +1262,17 @@ static struct packet *client_new(pid_t pid, int handle, const struct packet *pac
}
if (!info) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
} else if (package_is_fault(info)) {
- ret = LB_STATUS_ERROR_FAULT;
- } else if (util_free_space(IMAGE_PATH) <= MINIMUM_SPACE) {
+ ret = DBOX_STATUS_ERROR_FAULT;
+ } else if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) <= DYNAMICBOX_CONF_MINIMUM_SPACE) {
ErrPrint("Not enough space\n");
- ret = LB_STATUS_ERROR_NO_SPACE;
+ ret = DBOX_STATUS_ERROR_NO_SPACE;
} else {
struct inst_info *inst;
- if (period > 0.0f && period < MINIMUM_PERIOD) {
- period = MINIMUM_PERIOD;
+ if (period > 0.0f && period < DYNAMICBOX_CONF_MINIMUM_PERIOD) {
+ period = DYNAMICBOX_CONF_MINIMUM_PERIOD;
}
inst = instance_create(client, timestamp, lbid, content, cluster, category, period, width, height);
@@ -1194,7 +1280,7 @@ static struct packet *client_new(pid_t pid, int handle, const struct packet *pac
* \note
* Using the "inst" without validate its value is at my disposal. ;)
*/
- ret = inst ? 0 : LB_STATUS_ERROR_FAULT;
+ ret = inst ? 0 : DBOX_STATUS_ERROR_FAULT;
}
DbgFree(lbid);
@@ -1213,36 +1299,36 @@ static struct packet *client_change_visibility(pid_t pid, int handle, const stru
struct client_node *client;
const char *pkgname;
const char *id;
- enum livebox_visible_state state;
+ enum dynamicbox_visible_state state;
int ret;
struct inst_info *inst;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssi", &pkgname, &id, (int *)&state);
if (ret != 3) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
if (instance_client(inst) != client) {
- ret = LB_STATUS_ERROR_PERMISSION;
+ ret = DBOX_STATUS_ERROR_PERMISSION_DENIED;
} else {
ret = instance_set_visible_state(inst, state);
}
@@ -1265,14 +1351,14 @@ static struct packet *client_set_period(pid_t pid, int handle, const struct pack
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssd", &pkgname, &id, &period);
if (ret != 3) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -1281,15 +1367,15 @@ static struct packet *client_set_period(pid_t pid, int handle, const struct pack
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
if (instance_client(inst) != client) {
- ret = LB_STATUS_ERROR_PERMISSION;
+ ret = DBOX_STATUS_ERROR_PERMISSION_DENIED;
} else {
ret = instance_set_period(inst, period);
}
@@ -1317,14 +1403,14 @@ static struct packet *client_change_group(pid_t pid, int handle, const struct pa
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssss", &pkgname, &id, &cluster, &category);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
@@ -1333,15 +1419,15 @@ static struct packet *client_change_group(pid_t pid, int handle, const struct pa
/*!
* \NOTE:
* Trust the package name which are sent by the client.
- * The package has to be a livebox package name.
+ * The package has to be a dynamicbox package name.
*/
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
if (instance_client(inst) != client) {
- ret = LB_STATUS_ERROR_PERMISSION;
+ ret = DBOX_STATUS_ERROR_PERMISSION_DENIED;
} else {
ret = instance_change_group(inst, cluster, category);
}
@@ -1355,7 +1441,7 @@ out:
return result;
}
-static struct packet *client_pd_mouse_enter(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_enter(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1370,39 +1456,39 @@ static struct packet *client_pd_mouse_enter(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_IN, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_IN, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1410,7 +1496,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_leave(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_leave(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1425,39 +1511,39 @@ static struct packet *client_pd_mouse_leave(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_OUT, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_OUT, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1465,7 +1551,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_down(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, id, width, height, timestamp, x, y, ret */
+static struct packet *client_gbar_mouse_down(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, id, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -1480,39 +1566,39 @@ static struct packet *client_pd_mouse_down(pid_t pid, int handle, const struct p
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, 1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_DOWN, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_DOWN, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1520,7 +1606,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_up(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_gbar_mouse_up(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -1535,39 +1621,39 @@ static struct packet *client_pd_mouse_up(pid_t pid, int handle, const struct pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, 0);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_UP, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_UP, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1575,7 +1661,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_move(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_gbar_mouse_move(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -1590,39 +1676,39 @@ static struct packet *client_pd_mouse_move(pid_t pid, int handle, const struct p
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_MOVE, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_MOVE, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1630,7 +1716,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_move(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_dbox_mouse_move(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -1645,39 +1731,39 @@ static struct packet *client_lb_mouse_move(pid_t pid, int handle, const struct p
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_MOVE, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_MOVE, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1687,12 +1773,28 @@ out:
static int inst_del_cb(struct inst_info *inst, void *data)
{
+ int ret;
+
+ /*
+ * If you deactivate the event thread,
+ * It will calls event callbacks.
+ * And the event callbacks will try to access the "inst"
+ */
(void)event_deactivate(data, inst);
+
+ /* Reset callback data to prevent accessing inst from event callback */
+ ret = event_reset_cbdata(data, inst, NULL);
+ DbgPrint("Instance delete callback called: %s (%d)\n", instance_id(inst), ret);
+
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(instance_package(inst)), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
+ }
+
return -1; /* Delete this callback */
}
-static struct packet *client_pd_key_set(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_key_set(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1707,35 +1809,45 @@ static struct packet *client_pd_key_set(pid_t pid, int handle, const struct pack
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = event_activate(0, 0, key_event_pd_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_pd_route_cb);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = event_activate(0, 0, key_event_gbar_route_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_gbar_route_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_gbar_route_cb);
+ }
}
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
- ret = event_activate(0, 0, key_event_pd_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_pd_consume_cb);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
+ ret = event_activate(0, 0, key_event_gbar_consume_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_gbar_consume_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_gbar_consume_cb);
+ }
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1747,7 +1859,7 @@ out:
return result;
}
-static struct packet *client_pd_key_unset(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_key_unset(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1762,35 +1874,47 @@ static struct packet *client_pd_key_unset(pid_t pid, int handle, const struct pa
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = event_deactivate(key_event_pd_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_pd_route_cb);
- }
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
- ret = event_deactivate(key_event_pd_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_pd_consume_cb);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = event_deactivate(key_event_gbar_route_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
}
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_gbar_route_cb);
+ }
+ */
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
+ ret = event_deactivate(key_event_gbar_consume_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
+ }
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_gbar_consume_cb);
+ }
+ */
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1802,7 +1926,7 @@ out:
return result;
}
-static struct packet *client_lb_key_set(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_key_set(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1817,35 +1941,45 @@ static struct packet *client_lb_key_set(pid_t pid, int handle, const struct pack
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = event_activate(0, 0, key_event_lb_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_lb_route_cb);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = event_activate(0, 0, key_event_dbox_route_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_dbox_route_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_dbox_route_cb);
+ }
}
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
- ret = event_activate(0, 0, key_event_lb_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_lb_consume_cb);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
+ ret = event_activate(0, 0, key_event_dbox_consume_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_dbox_consume_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_dbox_consume_cb);
+ }
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1857,7 +1991,7 @@ out:
return result;
}
-static struct packet *client_lb_key_unset(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_key_unset(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1872,35 +2006,47 @@ static struct packet *client_lb_key_unset(pid_t pid, int handle, const struct pa
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = event_deactivate(key_event_lb_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_lb_route_cb);
- }
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
- ret = event_deactivate(key_event_lb_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_lb_consume_cb);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = event_deactivate(key_event_dbox_route_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
}
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_dbox_route_cb);
+ }
+ */
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
+ ret = event_deactivate(key_event_dbox_consume_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
+ }
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, key_event_dbox_consume_cb);
+ }
+ */
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -1912,7 +2058,7 @@ out:
return result;
}
-static struct packet *client_lb_mouse_set(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_mouse_set(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1927,41 +2073,65 @@ static struct packet *client_lb_mouse_set(pid_t pid, int handle, const struct pa
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = event_activate(x, y, mouse_event_lb_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_lb_route_cb);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ if (package_direct_input(pkg) == 0 || packet_set_fd((struct packet *)packet, event_input_fd()) < 0) {
+ ret = event_activate(x, y, mouse_event_dbox_route_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_dbox_route_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_dbox_route_cb);
+ }
+ }
+ } else {
+ struct slave_node *slave;
+
+ DbgPrint("Direct input is enabled(set for %s:%d)\n", id, packet_fd(packet));
+ slave = package_slave(pkg);
+ if (slave) {
+ packet_ref((struct packet *)packet);
+ ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
+ } else {
+ ErrPrint("Unable to find a slave for %s\n", pkgname);
+ ret = DBOX_STATUS_ERROR_FAULT;
+ }
}
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
- ret = event_activate(x, y, mouse_event_lb_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_lb_consume_cb);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
+ ret = event_activate(x, y, mouse_event_dbox_consume_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_dbox_consume_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_dbox_consume_cb);
+ }
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
return NULL;
}
-static struct packet *client_lb_mouse_unset(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_mouse_unset(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -1976,41 +2146,67 @@ static struct packet *client_lb_mouse_unset(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = event_deactivate(mouse_event_lb_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_lb_route_cb);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ if (package_direct_input(pkg) == 0) {
+ ret = event_deactivate(mouse_event_dbox_route_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
+ }
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_dbox_route_cb);
+ }
+ */
+ } else {
+ struct slave_node *slave;
+
+ DbgPrint("Direct input is enabled(unset) for %s\n", id);
+ slave = package_slave(pkg);
+ if (slave) {
+ packet_ref((struct packet *)packet);
+ ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
+ } else {
+ ErrPrint("Unable to find a slave for %s\n", pkgname);
+ ret = DBOX_STATUS_ERROR_FAULT;
+ }
}
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
- ret = event_deactivate(mouse_event_lb_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_lb_consume_cb);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
+ ret = event_deactivate(mouse_event_dbox_consume_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
}
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_dbox_consume_cb);
+ }
+ */
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
return NULL;
}
-static struct packet *client_pd_mouse_set(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_set(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2025,42 +2221,66 @@ static struct packet *client_pd_mouse_set(pid_t pid, int handle, const struct pa
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = event_activate(x, y, mouse_event_pd_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_pd_route_cb);
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ if (package_direct_input(pkg) == 0 || packet_set_fd((struct packet *)packet, event_input_fd()) < 0) {
+ ret = event_activate(x, y, mouse_event_gbar_route_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_gbar_route_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_gbar_route_cb);
+ }
+ }
+ } else {
+ struct slave_node *slave;
+
+ DbgPrint("Direct input is enabled(set for %s:%d)\n", id, packet_fd(packet));
+ slave = package_slave(pkg);
+ if (slave) {
+ packet_ref((struct packet *)packet);
+ ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
+ } else {
+ ErrPrint("Unable to find a slave for %s\n", pkgname);
+ ret = DBOX_STATUS_ERROR_FAULT;
+ }
}
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
- ret = event_activate(x, y, mouse_event_pd_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_pd_consume_cb);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
+ ret = event_activate(x, y, mouse_event_gbar_consume_cb, inst);
+ if (ret == DBOX_STATUS_ERROR_NONE) {
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON);
+ }
+ if (instance_event_callback_is_added(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_gbar_consume_cb) <= 0) {
+ instance_event_callback_add(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_gbar_consume_cb);
+ }
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
return NULL;
}
-static struct packet *client_lb_mouse_on_scroll(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_mouse_on_scroll(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2075,39 +2295,39 @@ static struct packet *client_lb_mouse_on_scroll(pid_t pid, int handle, const str
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_ON_SCROLL, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_ON_SCROLL, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2115,7 +2335,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_off_scroll(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_mouse_off_scroll(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2130,39 +2350,39 @@ static struct packet *client_lb_mouse_off_scroll(pid_t pid, int handle, const st
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_OFF_SCROLL, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_OFF_SCROLL, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2170,7 +2390,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_on_hold(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_mouse_on_hold(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2185,39 +2405,39 @@ static struct packet *client_lb_mouse_on_hold(pid_t pid, int handle, const struc
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_ON_HOLD, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_ON_HOLD, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2225,7 +2445,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_off_hold(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_mouse_off_hold(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2240,39 +2460,39 @@ static struct packet *client_lb_mouse_off_hold(pid_t pid, int handle, const stru
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_OFF_HOLD, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_OFF_HOLD, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2280,7 +2500,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_on_scroll(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_on_scroll(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2295,39 +2515,39 @@ static struct packet *client_pd_mouse_on_scroll(pid_t pid, int handle, const str
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_ON_SCROLL, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_ON_SCROLL, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2335,7 +2555,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_off_scroll(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_off_scroll(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2350,39 +2570,39 @@ static struct packet *client_pd_mouse_off_scroll(pid_t pid, int handle, const st
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_OFF_SCROLL, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_OFF_SCROLL, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2390,7 +2610,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_on_hold(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_on_hold(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2405,39 +2625,39 @@ static struct packet *client_pd_mouse_on_hold(pid_t pid, int handle, const struc
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_ON_HOLD, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_ON_HOLD, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2445,7 +2665,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_off_hold(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_off_hold(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2460,39 +2680,39 @@ static struct packet *client_pd_mouse_off_hold(pid_t pid, int handle, const stru
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_event_packet(pkg, inst, packet);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_event_packet(pkg, inst, packet);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_OFF_HOLD, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_OFF_HOLD, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2500,7 +2720,7 @@ out:
return NULL;
}
-static struct packet *client_pd_mouse_unset(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_mouse_unset(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -2515,41 +2735,67 @@ static struct packet *client_pd_mouse_unset(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = event_deactivate(mouse_event_pd_route_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_pd_route_cb);
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ if (package_direct_input(pkg) == 0) {
+ ret = event_deactivate(mouse_event_gbar_route_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
+ }
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_gbar_route_cb);
+ }
+ */
+ } else {
+ struct slave_node *slave;
+
+ DbgPrint("Direct input is enabled(unset) for %s\n", id);
+ slave = package_slave(pkg);
+ if (slave) {
+ packet_ref((struct packet *)packet);
+ ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
+ } else {
+ ErrPrint("Unable to find a slave for %s\n", pkgname);
+ ret = DBOX_STATUS_ERROR_FAULT;
+ }
}
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
- ret = event_deactivate(mouse_event_pd_consume_cb, inst);
- if (ret == 0) {
- instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_pd_consume_cb);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
+ ret = event_deactivate(mouse_event_gbar_consume_cb, inst);
+ if (DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF != DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_ON) {
+ (void)slave_set_priority(package_slave(pkg), DYNAMICBOX_CONF_SLAVE_EVENT_BOOST_OFF);
}
+ /*
+ * This delete callback will be removed when the instance will be destroyed.
+ if (ret == 0) {
+ instance_event_callback_del(inst, INSTANCE_EVENT_DESTROY, inst_del_cb, mouse_event_gbar_consume_cb);
+ }
+ */
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
return NULL;
}
-static struct packet *client_lb_mouse_enter(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_dbox_mouse_enter(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -2564,39 +2810,39 @@ static struct packet *client_lb_mouse_enter(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_IN, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_IN, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2604,7 +2850,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_leave(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_dbox_mouse_leave(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -2619,39 +2865,39 @@ static struct packet *client_lb_mouse_leave(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, -1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_OUT, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_OUT, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2659,7 +2905,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_down(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_dbox_mouse_down(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -2674,39 +2920,39 @@ static struct packet *client_lb_mouse_down(pid_t pid, int handle, const struct p
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, 1);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_DOWN, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_DOWN, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2714,7 +2960,7 @@ out:
return NULL;
}
-static struct packet *client_lb_mouse_up(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_dbox_mouse_up(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct client_node *client;
const char *pkgname;
@@ -2729,39 +2975,39 @@ static struct packet *client_lb_mouse_up(pid_t pid, int handle, const struct pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
if (ret != 5) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_event_packet(pkg, inst, packet);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_event_packet(pkg, inst, packet);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_pointer(script, x, y, 0);
- script_handler_feed_event(script, LB_SCRIPT_MOUSE_UP, timestamp);
+ script_handler_feed_event(script, DBOX_SCRIPT_MOUSE_UP, timestamp);
ret = 0;
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2769,7 +3015,7 @@ out:
return NULL;
}
-static struct packet *client_pd_access_action_up(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_action(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -2777,65 +3023,48 @@ static struct packet *client_pd_access_action_up(pid_t pid, int handle, const st
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 0);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_ACTION, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_ACTION, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2847,7 +3076,7 @@ out:
return result;
}
-static struct packet *client_pd_access_action_down(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_scroll(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -2855,65 +3084,48 @@ static struct packet *client_pd_access_action_down(pid_t pid, int handle, const
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_ACTION, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_SCROLL, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -2925,7 +3137,7 @@ out:
return result;
}
-static struct packet *client_pd_access_scroll_down(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_value_change(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -2933,65 +3145,48 @@ static struct packet *client_pd_access_scroll_down(pid_t pid, int handle, const
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_SCROLL, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_VALUE_CHANGE, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3003,7 +3198,7 @@ out:
return result;
}
-static struct packet *client_pd_access_scroll_move(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_mouse(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3011,65 +3206,48 @@ static struct packet *client_pd_access_scroll_move(pid_t pid, int handle, const
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_SCROLL, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_MOUSE, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3081,7 +3259,7 @@ out:
return result;
}
-static struct packet *client_pd_access_scroll_up(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_back(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3089,65 +3267,48 @@ static struct packet *client_pd_access_scroll_up(pid_t pid, int handle, const st
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 0);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_SCROLL, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_BACK, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3159,74 +3320,58 @@ out:
return result;
}
-static struct packet *client_pd_access_unhighlight(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_over(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
const char *pkgname;
const char *id;
- int x;
- int y;
- struct inst_info *inst = NULL;
- const struct pkg_info *pkg = NULL;
int ret;
double timestamp;
+ struct access_info event;
+ struct inst_info *inst = NULL;
+ const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_UNHIGHLIGHT, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_OVER, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
+
out:
result = packet_create_reply(packet, "i", ret);
if (!result) {
@@ -3236,7 +3381,7 @@ out:
return result;
}
-static struct packet *client_pd_access_hl(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_read(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3244,65 +3389,48 @@ static struct packet *client_pd_access_hl(pid_t pid, int handle, const struct pa
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_HIGHLIGHT, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_READ, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3314,7 +3442,7 @@ out:
return result;
}
-static struct packet *client_pd_access_hl_prev(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_enable(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3322,65 +3450,51 @@ static struct packet *client_pd_access_hl_prev(pid_t pid, int handle, const stru
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
+ int type;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_HIGHLIGHT_PREV, timestamp);
- if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
+ type = (event.type == 0) ? DBOX_SCRIPT_ACCESS_DISABLE : DBOX_SCRIPT_ACCESS_ENABLE;
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, type, timestamp);
+ if (ret >= 0) {
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3392,7 +3506,7 @@ out:
return result;
}
-static struct packet *client_pd_access_hl_next(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_hl(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3400,70 +3514,67 @@ static struct packet *client_pd_access_hl_next(pid_t pid, int handle, const stru
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
+ int type;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ErrPrint("Script is not created yet\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_HIGHLIGHT_NEXT, timestamp);
- if (ret >= 0) {
- struct event_cbdata *cbdata;
+ switch (event.type) {
+ case ACCESS_TYPE_CUR:
+ type = DBOX_SCRIPT_ACCESS_HIGHLIGHT;
+ break;
+ case ACCESS_TYPE_NEXT:
+ type = DBOX_SCRIPT_ACCESS_HIGHLIGHT_NEXT;
+ break;
+ case ACCESS_TYPE_PREV:
+ type = DBOX_SCRIPT_ACCESS_HIGHLIGHT_PREV;
+ break;
+ case ACCESS_TYPE_OFF:
+ type = DBOX_SCRIPT_ACCESS_UNHIGHLIGHT;
+ break;
+ default:
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ErrPrint("Heap: %s\n", strerror(errno));
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- ErrPrint("Failed to add timer\n");
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
- } else {
- DbgPrint("Returns: %d\n", ret);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, type, timestamp);
+ if (ret >= 0) {
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3475,7 +3586,7 @@ out:
return result;
}
-static struct packet *client_pd_access_activate(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_access_activate(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3483,65 +3594,48 @@ static struct packet *client_pd_access_activate(pid_t pid, int handle, const str
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_ACTIVATE, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_ACTIVATE, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3553,7 +3647,7 @@ out:
return result;
}
-static struct packet *client_pd_key_focus_in(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_key_focus_in(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -3568,57 +3662,41 @@ static struct packet *client_pd_key_focus_in(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_FOCUS_IN, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_FOCUS_IN, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3630,7 +3708,7 @@ out:
return result;
}
-static struct packet *client_pd_key_focus_out(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_key_focus_out(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -3645,57 +3723,41 @@ static struct packet *client_pd_key_focus_out(pid_t pid, int handle, const struc
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_FOCUS_OUT, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_FOCUS_OUT, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3707,7 +3769,7 @@ out:
return result;
}
-static struct packet *client_pd_key_down(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_key_down(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -3722,57 +3784,41 @@ static struct packet *client_pd_key_down(pid_t pid, int handle, const struct pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_DOWN, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_DOWN, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3793,18 +3839,18 @@ static struct packet *client_pause_request(pid_t pid, int handle, const struct p
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is paused - manually reported\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "d", &timestamp);
if (ret != 1) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
- if (USE_XMONITOR) {
+ if (DYNAMICBOX_CONF_USE_XMONITOR) {
DbgPrint("XMONITOR enabled. ignore client paused request\n");
} else {
xmonitor_pause(client);
@@ -3832,7 +3878,7 @@ static struct packet *client_resume_request(pid_t pid, int handle, const struct
goto out;
}
- if (USE_XMONITOR) {
+ if (DYNAMICBOX_CONF_USE_XMONITOR) {
DbgPrint("XMONITOR enabled. ignore client resumed request\n");
} else {
xmonitor_resume(client);
@@ -3842,7 +3888,7 @@ out:
return NULL;
}
-static struct packet *client_pd_key_up(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_key_up(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -3857,57 +3903,41 @@ static struct packet *client_pd_key_up(pid_t pid, int handle, const struct packe
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Invalid parameter\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- ret = forward_pd_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ ret = forward_gbar_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_pd_script(inst);
+ script = instance_gbar_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_UP, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_UP, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3919,7 +3949,7 @@ out:
return result;
}
-static struct packet *client_lb_access_hl(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_hl(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -3927,65 +3957,67 @@ static struct packet *client_lb_access_hl(pid_t pid, int handle, const struct pa
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
+ int type;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_HIGHLIGHT, timestamp);
- if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
+ switch (event.type) {
+ case ACCESS_TYPE_CUR:
+ type = DBOX_SCRIPT_ACCESS_HIGHLIGHT;
+ break;
+ case ACCESS_TYPE_NEXT:
+ type = DBOX_SCRIPT_ACCESS_HIGHLIGHT_NEXT;
+ break;
+ case ACCESS_TYPE_PREV:
+ type = DBOX_SCRIPT_ACCESS_HIGHLIGHT_PREV;
+ break;
+ case ACCESS_TYPE_OFF:
+ type = DBOX_SCRIPT_ACCESS_UNHIGHLIGHT;
+ break;
+ default:
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, type, timestamp);
+ if (ret >= 0) {
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -3997,7 +4029,7 @@ out:
return result;
}
-static struct packet *client_lb_access_hl_prev(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_action(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4005,65 +4037,54 @@ static struct packet *client_lb_access_hl_prev(pid_t pid, int handle, const stru
const char *id;
int ret;
double timestamp;
- int x;
- int y;
- struct inst_info *inst;
- const struct pkg_info *pkg;
+ struct inst_info *inst = NULL;
+ const struct pkg_info *pkg = NULL;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
- ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ErrPrint("Client %d is not exist\n", pid);
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ /*!
+ * Enen if it fails to send packet,
+ * The packet will be unref'd
+ * So we don't need to check the ret value.
+ */
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ErrPrint("Instance has no script\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_HIGHLIGHT_PREV, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_ACTION, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4075,7 +4096,7 @@ out:
return result;
}
-static struct packet *client_lb_access_hl_next(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_scroll(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4083,65 +4104,54 @@ static struct packet *client_lb_access_hl_next(pid_t pid, int handle, const stru
const char *id;
int ret;
double timestamp;
- int x;
- int y;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
- ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ErrPrint("Client %d is not exist\n", pid);
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ /*!
+ * Enen if it fails to send packet,
+ * The packet will be unref'd
+ * So we don't need to check the ret value.
+ */
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ErrPrint("Instance has no script\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_HIGHLIGHT_NEXT, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_SCROLL, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4153,7 +4163,7 @@ out:
return result;
}
-static struct packet *client_lb_access_action_up(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_value_change(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4163,69 +4173,52 @@ static struct packet *client_lb_access_action_up(pid_t pid, int handle, const st
double timestamp;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
- int x;
- int y;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exist\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
/*!
* Enen if it fails to send packet,
* The packet will be unref'd
* So we don't need to check the ret value.
*/
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
ErrPrint("Instance has no script\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 0);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_ACTION, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_VALUE_CHANGE, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4237,7 +4230,7 @@ out:
return result;
}
-static struct packet *client_lb_access_action_down(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_mouse(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4245,71 +4238,54 @@ static struct packet *client_lb_access_action_down(pid_t pid, int handle, const
const char *id;
int ret;
double timestamp;
- struct inst_info *inst;
- const struct pkg_info *pkg;
- int x;
- int y;
+ struct inst_info *inst = NULL;
+ const struct pkg_info *pkg = NULL;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exist\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
/*!
* Enen if it fails to send packet,
* The packet will be unref'd
* So we don't need to check the ret value.
*/
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
ErrPrint("Instance has no script\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_ACTION, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_MOUSE, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4321,7 +4297,7 @@ out:
return result;
}
-static struct packet *client_lb_access_unhighlight(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_back(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4329,65 +4305,54 @@ static struct packet *client_lb_access_unhighlight(pid_t pid, int handle, const
const char *id;
int ret;
double timestamp;
- int x;
- int y;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
- ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ErrPrint("Client %d is not exist\n", pid);
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ /*!
+ * Enen if it fails to send packet,
+ * The packet will be unref'd
+ * So we don't need to check the ret value.
+ */
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ErrPrint("Instance has no script\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_UNHIGHLIGHT, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_BACK, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4399,7 +4364,7 @@ out:
return result;
}
-static struct packet *client_lb_access_scroll_down(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_over(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4409,69 +4374,52 @@ static struct packet *client_lb_access_scroll_down(pid_t pid, int handle, const
double timestamp;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
- int x;
- int y;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exist\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
/*!
* Enen if it fails to send packet,
* The packet will be unref'd
* So we don't need to check the ret value.
*/
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
ErrPrint("Instance has no script\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_SCROLL, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_OVER, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4483,7 +4431,7 @@ out:
return result;
}
-static struct packet *client_lb_access_scroll_move(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_read(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4493,69 +4441,52 @@ static struct packet *client_lb_access_scroll_move(pid_t pid, int handle, const
double timestamp;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
- int x;
- int y;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exist\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
/*!
* Enen if it fails to send packet,
* The packet will be unref'd
* So we don't need to check the ret value.
*/
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
ErrPrint("Instance has no script\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_SCROLL, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_READ, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4567,7 +4498,7 @@ out:
return result;
}
-static struct packet *client_lb_access_scroll_up(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_enable(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4575,71 +4506,57 @@ static struct packet *client_lb_access_scroll_up(pid_t pid, int handle, const st
const char *id;
int ret;
double timestamp;
- struct inst_info *inst;
- const struct pkg_info *pkg;
- int x;
- int y;
+ struct inst_info *inst = NULL;
+ const struct pkg_info *pkg = NULL;
+ struct access_info event;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exist\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
/*!
* Enen if it fails to send packet,
* The packet will be unref'd
* So we don't need to check the ret value.
*/
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
+ int type;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
ErrPrint("Instance has no script\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, 0);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_SCROLL, timestamp);
- if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
+ type = (event.type == 0) ? DBOX_SCRIPT_ACCESS_DISABLE : DBOX_SCRIPT_ACCESS_ENABLE;
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, type, timestamp);
+ if (ret >= 0) {
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4651,7 +4568,7 @@ out:
return result;
}
-static struct packet *client_lb_access_activate(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_access_activate(pid_t pid, int handle, const struct packet *packet)
{
struct packet *result;
struct client_node *client;
@@ -4659,66 +4576,49 @@ static struct packet *client_lb_access_activate(pid_t pid, int handle, const str
const char *id;
int ret;
double timestamp;
- int x;
- int y;
+ struct access_info event;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
- ret = packet_get(packet, "ssdii", &pkgname, &id, &timestamp, &x, &y);
- if (ret != 5) {
+ ret = packet_get(packet, "ssdiii", &pkgname, &id, &timestamp, &event.x, &event.y, &event.type);
+ if (ret != 6) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_access_packet(pkg, inst, packet_command(packet), timestamp, x, y);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_access_packet(pkg, inst, packet_command(packet), timestamp, &event);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
ErrPrint("Instance has no script\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- script_handler_update_pointer(script, x, y, -1);
- ret = script_handler_feed_event(script, LB_SCRIPT_ACCESS_ACTIVATE, timestamp);
+ script_handler_update_pointer(script, event.x, event.y, event.type);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_ACCESS_ACTIVATE, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_access_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_access_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4730,7 +4630,7 @@ out:
return result;
}
-static struct packet *client_lb_key_down(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_key_down(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -4745,57 +4645,41 @@ static struct packet *client_lb_key_down(pid_t pid, int handle, const struct pac
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_DOWN, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_DOWN, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4807,7 +4691,7 @@ out:
return result;
}
-static struct packet *client_lb_key_focus_in(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_key_focus_in(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -4822,57 +4706,41 @@ static struct packet *client_lb_key_focus_in(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_FOCUS_IN, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_FOCUS_IN, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4884,7 +4752,7 @@ out:
return result;
}
-static struct packet *client_lb_key_focus_out(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_key_focus_out(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -4899,57 +4767,41 @@ static struct packet *client_lb_key_focus_out(pid_t pid, int handle, const struc
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_FOCUS_OUT, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_FOCUS_OUT, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -4961,7 +4813,7 @@ out:
return result;
}
-static struct packet *client_lb_key_up(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_key_up(pid_t pid, int handle, const struct packet *packet)
{
struct client_node *client;
const char *pkgname;
@@ -4976,57 +4828,41 @@ static struct packet *client_lb_key_up(pid_t pid, int handle, const struct packe
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdi", &pkgname, &id, &timestamp, &keycode);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = forward_lb_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
- } else if (package_lb_type(pkg) == LB_TYPE_SCRIPT) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = forward_dbox_key_packet(pkg, inst, packet_command(packet), timestamp, keycode);
+ } else if (package_dbox_type(pkg) == DBOX_TYPE_SCRIPT) {
struct script_info *script;
- script = instance_lb_script(inst);
+ script = instance_dbox_script(inst);
if (!script) {
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
script_handler_update_keycode(script, keycode);
- ret = script_handler_feed_event(script, LB_SCRIPT_KEY_UP, timestamp);
+ ret = script_handler_feed_event(script, DBOX_SCRIPT_KEY_UP, timestamp);
if (ret >= 0) {
- struct event_cbdata *cbdata;
-
- cbdata = malloc(sizeof(*cbdata));
- if (!cbdata) {
- ret = LB_STATUS_ERROR_MEMORY;
- } else {
- cbdata->inst = instance_ref(inst);
- cbdata->status = ret;
-
- if (!ecore_timer_add(DELAY_TIME, lazy_key_status_cb, cbdata)) {
- (void)instance_unref(cbdata->inst);
- DbgFree(cbdata);
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- ret = LB_STATUS_SUCCESS;
- }
- }
+ ret = send_delayed_key_status(inst, ret);
}
} else {
ErrPrint("Unsupported package\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -5045,7 +4881,77 @@ static int release_pixmap_cb(struct client_node *client, void *canvas)
return -1; /* Delete this callback */
}
-static struct packet *client_lb_acquire_pixmap(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+
+static struct packet *client_dbox_acquire_xpixmap(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+{
+ struct packet *result;
+ const char *pkgname;
+ const char *id;
+ struct client_node *client;
+ struct inst_info *inst;
+ int ret;
+ int pixmap = 0;
+ void *buf_ptr;
+ struct buffer_info *buffer;
+ int idx;
+
+ client = client_find_by_rpc_handle(handle);
+ if (!client) {
+ ErrPrint("Client %d is not exists\n", pid);
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ ret = packet_get(packet, "ssi", &pkgname, &id, &idx);
+ if (ret != 3) {
+ ErrPrint("Parameter is not matched\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ if (idx >= DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT || idx < 0) {
+ DbgPrint("Index is not valid: %d\n", idx);
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ ret = validate_request(pkgname, id, &inst, NULL);
+ if (ret != DBOX_STATUS_ERROR_NONE) {
+ goto out;
+ }
+
+ buffer = instance_dbox_extra_buffer(inst, idx);
+ if (!buffer) {
+ ErrPrint("Extra buffer for %d is not available\n", idx);
+ goto out;
+ }
+
+ buf_ptr = buffer_handler_pixmap_ref(buffer);
+ if (!buf_ptr) {
+ ErrPrint("Failed to ref pixmap\n");
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ goto out;
+ }
+
+ ret = client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, release_pixmap_cb, buf_ptr);
+ if (ret < 0) {
+ ErrPrint("Failed to add a new client deactivate callback\n");
+ buffer_handler_pixmap_unref(buf_ptr);
+ } else {
+ pixmap = buffer_handler_pixmap(buffer);
+ ret = DBOX_STATUS_ERROR_NONE;
+ }
+
+out:
+ result = packet_create_reply(packet, "ii", pixmap, ret);
+ if (!result) {
+ ErrPrint("Failed to create a reply packet\n");
+ }
+
+ return result;
+}
+
+static struct packet *client_dbox_acquire_pixmap(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct packet *result;
const char *pkgname;
@@ -5060,37 +4966,37 @@ static struct packet *client_lb_acquire_pixmap(pid_t pid, int handle, const stru
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = packet_get(packet, "ss", &pkgname, &id);
if (ret != 2) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- buffer = instance_lb_buffer(inst);
+ buffer = instance_dbox_buffer(inst);
if (!buffer) {
struct script_info *script_info;
- script_info = instance_lb_script(inst);
+ script_info = instance_dbox_script(inst);
if (!script_info) {
- ErrPrint("Unable to get LB buffer: %s\n", id);
- ret = LB_STATUS_ERROR_FAULT;
+ ErrPrint("Unable to get DBOX buffer: %s\n", id);
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
buffer = script_handler_buffer_info(script_info);
if (!buffer) {
ErrPrint("Unable to get buffer_info: %s\n", id);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
}
@@ -5098,7 +5004,7 @@ static struct packet *client_lb_acquire_pixmap(pid_t pid, int handle, const stru
buf_ptr = buffer_handler_pixmap_ref(buffer);
if (!buf_ptr) {
ErrPrint("Failed to ref pixmap\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
@@ -5108,7 +5014,7 @@ static struct packet *client_lb_acquire_pixmap(pid_t pid, int handle, const stru
buffer_handler_pixmap_unref(buf_ptr);
} else {
pixmap = buffer_handler_pixmap(buffer);
- ret = LB_STATUS_SUCCESS;
+ ret = DBOX_STATUS_ERROR_NONE;
}
out:
@@ -5120,7 +5026,7 @@ out:
return result;
}
-static struct packet *client_lb_release_pixmap(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_dbox_release_pixmap(pid_t pid, int handle, const struct packet *packet)
{
const char *pkgname;
const char *id;
@@ -5142,7 +5048,7 @@ static struct packet *client_lb_release_pixmap(pid_t pid, int handle, const stru
}
ret = validate_request(pkgname, id, NULL, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
DbgPrint("It seems that the instance is already deleted: %s\n", id);
}
@@ -5157,11 +5063,13 @@ static struct packet *client_lb_release_pixmap(pid_t pid, int handle, const stru
}
out:
- /*! \note No reply packet */
+ /**
+ * @note No reply packet
+ */
return NULL;
}
-static struct packet *client_pd_acquire_pixmap(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+static struct packet *client_gbar_acquire_xpixmap(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
{
struct packet *result;
const char *pkgname;
@@ -5172,46 +5080,114 @@ static struct packet *client_pd_acquire_pixmap(pid_t pid, int handle, const stru
int pixmap = 0;
void *buf_ptr;
struct buffer_info *buffer;
+ int idx;
client = client_find_by_rpc_handle(handle);
if (!client) {
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ ErrPrint("Client %d is not exists\n", pid);
+ goto out;
+ }
+
+ ret = packet_get(packet, "ssi", &pkgname, &id, &idx);
+ if (ret != 3) {
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ ErrPrint("Parameter is not matched\n");
+ goto out;
+ }
+
+ if (idx >= DYNAMICBOX_CONF_EXTRA_BUFFER_COUNT || idx < 0) {
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ ret = validate_request(pkgname, id, &inst, NULL);
+ if (ret != DBOX_STATUS_ERROR_NONE) {
+ goto out;
+ }
+
+ buffer = instance_gbar_extra_buffer(inst, idx);
+ if (!buffer) {
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ goto out;
+ }
+
+ buf_ptr = buffer_handler_pixmap_ref(buffer);
+ if (!buf_ptr) {
+ ErrPrint("Failed to ref pixmap\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
+ goto out;
+ }
+
+ ret = client_event_callback_add(client, CLIENT_EVENT_DEACTIVATE, release_pixmap_cb, buf_ptr);
+ if (ret < 0) {
+ ErrPrint("Failed to add a new client deactivate callback\n");
+ buffer_handler_pixmap_unref(buf_ptr);
+ } else {
+ pixmap = buffer_handler_pixmap(buffer);
+ ret = DBOX_STATUS_ERROR_NONE;
+ }
+
+out:
+ result = packet_create_reply(packet, "ii", pixmap, ret);
+ if (!result) {
+ ErrPrint("Failed to create a reply packet\n");
+ }
+
+ return result;
+}
+
+static struct packet *client_gbar_acquire_pixmap(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+{
+ struct packet *result;
+ const char *pkgname;
+ const char *id;
+ struct client_node *client;
+ struct inst_info *inst;
+ int ret;
+ int pixmap = 0;
+ void *buf_ptr;
+ struct buffer_info *buffer;
+
+ client = client_find_by_rpc_handle(handle);
+ if (!client) {
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
ErrPrint("Client %d is not exists\n", pid);
goto out;
}
ret = packet_get(packet, "ss", &pkgname, &id);
if (ret != 2) {
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
ErrPrint("Parameter is not matched\n");
goto out;
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (instance_get_data(inst, PD_RESIZE_MONITOR_TAG)) {
- ret = LB_STATUS_ERROR_BUSY;
+ if (instance_get_data(inst, GBAR_RESIZE_MONITOR_TAG)) {
+ ret = DBOX_STATUS_ERROR_BUSY;
goto out;
}
- buffer = instance_pd_buffer(inst);
+ buffer = instance_gbar_buffer(inst);
if (!buffer) {
struct script_info *script_info;
- script_info = instance_pd_script(inst);
+ script_info = instance_gbar_script(inst);
if (!script_info) {
- ErrPrint("Unable to get LB buffer: %s\n", id);
- ret = LB_STATUS_ERROR_FAULT;
+ ErrPrint("Unable to get DBOX buffer: %s\n", id);
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
buffer = script_handler_buffer_info(script_info);
if (!buffer) {
ErrPrint("Unable to get buffer_info: %s\n", id);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
}
@@ -5219,7 +5195,7 @@ static struct packet *client_pd_acquire_pixmap(pid_t pid, int handle, const stru
buf_ptr = buffer_handler_pixmap_ref(buffer);
if (!buf_ptr) {
ErrPrint("Failed to ref pixmap\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
@@ -5229,7 +5205,7 @@ static struct packet *client_pd_acquire_pixmap(pid_t pid, int handle, const stru
buffer_handler_pixmap_unref(buf_ptr);
} else {
pixmap = buffer_handler_pixmap(buffer);
- ret = LB_STATUS_SUCCESS;
+ ret = DBOX_STATUS_ERROR_NONE;
}
out:
@@ -5241,7 +5217,7 @@ out:
return result;
}
-static struct packet *client_pd_release_pixmap(pid_t pid, int handle, const struct packet *packet)
+static struct packet *client_gbar_release_pixmap(pid_t pid, int handle, const struct packet *packet)
{
const char *pkgname;
const char *id;
@@ -5263,7 +5239,7 @@ static struct packet *client_pd_release_pixmap(pid_t pid, int handle, const stru
}
ret = validate_request(pkgname, id, NULL, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
DbgPrint("It seems that the instance is already deleted: %s\n", id);
}
@@ -5295,7 +5271,7 @@ static struct packet *client_pinup_changed(pid_t pid, int handle, const struct p
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
pinup = 0;
goto out;
}
@@ -5303,13 +5279,13 @@ static struct packet *client_pinup_changed(pid_t pid, int handle, const struct p
ret = packet_get(packet, "ssi", &pkgname, &id, &pinup);
if (ret != 3) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
pinup = 0;
goto out;
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
ret = instance_set_pinup(inst, pinup);
}
@@ -5322,11 +5298,11 @@ out:
return result;
}
-static Eina_Bool lazy_pd_created_cb(void *inst)
+static Eina_Bool lazy_gbar_created_cb(void *inst)
{
struct pkg_info *pkg;
- if (!instance_del_data(inst, LAZY_PD_OPEN_TAG)) {
+ if (!instance_del_data(inst, LAZY_GBAR_OPEN_TAG)) {
ErrPrint("lazy,pd,open is already deleted.\n");
return ECORE_CALLBACK_CANCEL;
}
@@ -5343,25 +5319,25 @@ static Eina_Bool lazy_pd_created_cb(void *inst)
/*!
* After unref instance first,
- * if the instance is not destroyed, try to notify the created PD event to the client.
+ * if the instance is not destroyed, try to notify the created GBAR event to the client.
*/
if (instance_unref(inst)) {
int ret;
- ret = instance_client_pd_created(inst, LB_STATUS_SUCCESS);
+ ret = instance_client_gbar_created(inst, DBOX_STATUS_ERROR_NONE);
if (ret < 0) {
- DbgPrint("Send PD Create event (%d) to client\n", ret);
+ DbgPrint("Send GBAR Create event (%d) to client\n", ret);
}
}
return ECORE_CALLBACK_CANCEL;
}
-static Eina_Bool lazy_pd_destroyed_cb(void *inst)
+static Eina_Bool lazy_gbar_destroyed_cb(void *inst)
{
struct pkg_info *pkg;
struct slave_node *slave;
- if (!instance_del_data(inst, LAZY_PD_CLOSE_TAG)) {
+ if (!instance_del_data(inst, LAZY_GBAR_CLOSE_TAG)) {
ErrPrint("lazy,pd,close is already deleted.\n");
return ECORE_CALLBACK_CANCEL;
}
@@ -5370,10 +5346,10 @@ static Eina_Bool lazy_pd_destroyed_cb(void *inst)
if (pkg) {
slave = package_slave(pkg);
if (slave) {
- if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
DbgPrint("Delete script type close callback\n");
(void)slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_close_script_cb, inst);
- } else if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
DbgPrint("Delete buffer type close callback\n");
(void)slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_close_buffer_cb, inst);
}
@@ -5382,20 +5358,20 @@ static Eina_Bool lazy_pd_destroyed_cb(void *inst)
if (instance_unref(inst)) {
int ret;
-
+
/*!
* If the instance is not deleted, we should send pd-destroy event from here.
*/
- ret = instance_client_pd_destroyed(inst, LB_STATUS_SUCCESS);
+ ret = instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_NONE);
if (ret < 0) {
- ErrPrint("Failed sending PD Destroy event (%d)\n", ret);
+ ErrPrint("Failed sending GBAR Destroy event (%d)\n", ret);
}
}
return ECORE_CALLBACK_CANCEL;
}
-static struct packet *client_pd_move(pid_t pid, int handle, const struct packet *packet) /* pkgname, id, x, y */
+static struct packet *client_gbar_move(pid_t pid, int handle, const struct packet *packet) /* pkgname, id, x, y */
{
struct client_node *client;
struct inst_info *inst;
@@ -5409,44 +5385,44 @@ static struct packet *client_pd_move(pid_t pid, int handle, const struct packet
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdd", &pkgname, &id, &x, &y);
if (ret != 4) {
ErrPrint("Parameter is not correct\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- instance_slave_set_pd_pos(inst, x, y);
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ instance_slave_set_gbar_pos(inst, x, y);
ret = instance_signal_emit(inst, "pd,move", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
int ix;
int iy;
- instance_slave_set_pd_pos(inst, x, y);
- ix = x * instance_pd_width(inst);
- iy = y * instance_pd_height(inst);
- script_handler_update_pointer(instance_pd_script(inst), ix, iy, 0);
+ instance_slave_set_gbar_pos(inst, x, y);
+ ix = x * instance_gbar_width(inst);
+ iy = y * instance_gbar_height(inst);
+ script_handler_update_pointer(instance_gbar_script(inst), ix, iy, 0);
ret = instance_signal_emit(inst, "pd,move", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
} else {
- ErrPrint("Invalid PD type\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ErrPrint("Invalid GBAR type\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
- DbgPrint("Update PD position: %d\n", ret);
+ DbgPrint("Update GBAR position: %d\n", ret);
return NULL;
}
-static Eina_Bool pd_open_monitor_cb(void *inst)
+static Eina_Bool gbar_open_monitor_cb(void *inst)
{
struct pkg_info *pkg;
@@ -5460,15 +5436,15 @@ static Eina_Bool pd_open_monitor_cb(void *inst)
}
}
- (void)instance_slave_close_pd(inst, instance_pd_owner(inst), LB_CLOSE_PD_TIMEOUT);
- (void)instance_client_pd_created(inst, LB_STATUS_ERROR_TIMEOUT);
- (void)instance_del_data(inst, PD_OPEN_MONITOR_TAG);
+ (void)instance_slave_close_gbar(inst, instance_gbar_owner(inst), DBOX_CLOSE_GBAR_TIMEOUT);
+ (void)instance_client_gbar_created(inst, DBOX_STATUS_ERROR_TIMEOUT);
+ (void)instance_del_data(inst, GBAR_OPEN_MONITOR_TAG);
(void)instance_unref(inst);
- ErrPrint("PD Open request is timed-out (%lf)\n", PD_REQUEST_TIMEOUT);
+ ErrPrint("GBAR Open request is timed-out (%lf)\n", DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT);
return ECORE_CALLBACK_CANCEL;
}
-static Eina_Bool pd_close_monitor_cb(void *inst)
+static Eina_Bool gbar_close_monitor_cb(void *inst)
{
struct pkg_info *pkg;
@@ -5482,14 +5458,14 @@ static Eina_Bool pd_close_monitor_cb(void *inst)
}
}
- (void)instance_client_pd_destroyed(inst, LB_STATUS_ERROR_TIMEOUT);
- (void)instance_del_data(inst, PD_CLOSE_MONITOR_TAG);
+ (void)instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_TIMEOUT);
+ (void)instance_del_data(inst, GBAR_CLOSE_MONITOR_TAG);
(void)instance_unref(inst);
- ErrPrint("PD Close request is not processed in %lf seconds\n", PD_REQUEST_TIMEOUT);
+ ErrPrint("GBAR Close request is not processed in %lf seconds\n", DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT);
return ECORE_CALLBACK_CANCEL;
}
-static Eina_Bool pd_resize_monitor_cb(void *inst)
+static Eina_Bool gbar_resize_monitor_cb(void *inst)
{
struct pkg_info *pkg;
@@ -5502,15 +5478,15 @@ static Eina_Bool pd_resize_monitor_cb(void *inst)
}
}
- (void)instance_slave_close_pd(inst, instance_pd_owner(inst), LB_CLOSE_PD_TIMEOUT);
- (void)instance_client_pd_destroyed(inst, LB_STATUS_ERROR_TIMEOUT);
- (void)instance_del_data(inst, PD_RESIZE_MONITOR_TAG);
+ (void)instance_slave_close_gbar(inst, instance_gbar_owner(inst), DBOX_CLOSE_GBAR_TIMEOUT);
+ (void)instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_TIMEOUT);
+ (void)instance_del_data(inst, GBAR_RESIZE_MONITOR_TAG);
(void)instance_unref(inst);
- ErrPrint("PD Resize request is not processed in %lf seconds\n", PD_REQUEST_TIMEOUT);
+ ErrPrint("GBAR Resize request is not processed in %lf seconds\n", DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT);
return ECORE_CALLBACK_CANCEL;
}
-static struct packet *client_create_pd(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, ret */
+static struct packet *client_create_gbar(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, ret */
{
struct client_node *client;
struct packet *result;
@@ -5519,7 +5495,7 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
int ret;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
- Ecore_Timer *pd_monitor;
+ Ecore_Timer *gbar_monitor;
double x;
double y;
@@ -5528,76 +5504,76 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ssdd", &pkgname, &id, &x, &y);
if (ret != 4) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- if (instance_pd_owner(inst)) {
- ErrPrint("PD is already owned\n");
- ret = LB_STATUS_ERROR_ALREADY;
- } else if (package_pd_type(instance_package(inst)) == PD_TYPE_BUFFER) {
- pd_monitor = instance_get_data(inst, LAZY_PD_CLOSE_TAG);
- if (pd_monitor) {
- ecore_timer_del(pd_monitor);
+ if (instance_gbar_owner(inst)) {
+ ErrPrint("GBAR is already owned\n");
+ ret = DBOX_STATUS_ERROR_ALREADY;
+ } else if (package_gbar_type(instance_package(inst)) == GBAR_TYPE_BUFFER) {
+ gbar_monitor = instance_get_data(inst, LAZY_GBAR_CLOSE_TAG);
+ if (gbar_monitor) {
+ ecore_timer_del(gbar_monitor);
/* This timer attribute will be deleted */
- lazy_pd_destroyed_cb(inst);
+ lazy_gbar_destroyed_cb(inst);
}
-
- if (instance_get_data(inst, PD_OPEN_MONITOR_TAG)) {
- DbgPrint("PD Open request is already processed\n");
- ret = LB_STATUS_ERROR_ALREADY;
+
+ if (instance_get_data(inst, GBAR_OPEN_MONITOR_TAG)) {
+ DbgPrint("GBAR Open request is already processed\n");
+ ret = DBOX_STATUS_ERROR_ALREADY;
goto out;
}
- if (instance_get_data(inst, PD_CLOSE_MONITOR_TAG)) {
- DbgPrint("PD Close request is already in process\n");
- ret = LB_STATUS_ERROR_BUSY;
+ if (instance_get_data(inst, GBAR_CLOSE_MONITOR_TAG)) {
+ DbgPrint("GBAR Close request is already in process\n");
+ ret = DBOX_STATUS_ERROR_BUSY;
goto out;
}
- if (instance_get_data(inst, PD_RESIZE_MONITOR_TAG)) {
- DbgPrint("PD resize request is already in process\n");
- ret = LB_STATUS_ERROR_BUSY;
+ if (instance_get_data(inst, GBAR_RESIZE_MONITOR_TAG)) {
+ DbgPrint("GBAR resize request is already in process\n");
+ ret = DBOX_STATUS_ERROR_BUSY;
goto out;
}
- instance_slave_set_pd_pos(inst, x, y);
+ instance_slave_set_gbar_pos(inst, x, y);
/*!
* \note
* Send request to the slave.
* The SLAVE must has to repsonse this via "release_buffer" method.
*/
- ret = instance_slave_open_pd(inst, client);
- if (ret == (int)LB_STATUS_SUCCESS) {
- ret = instance_signal_emit(inst, "pd,show", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
- if (ret != LB_STATUS_SUCCESS) {
+ ret = instance_slave_open_gbar(inst, client);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
+ ret = instance_signal_emit(inst, "gbar,show", instance_id(inst), 0.0, 0.0, 0.0, 0.0, x, y, 0);
+ if (ret != DBOX_STATUS_ERROR_NONE) {
int tmp_ret;
- tmp_ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_FAULT);
+ tmp_ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_FAULT);
if (tmp_ret < 0) {
- ErrPrint("Unable to send script event for openning PD [%s], %d\n", pkgname, tmp_ret);
+ ErrPrint("Unable to send script event for openning GBAR [%s], %d\n", pkgname, tmp_ret);
}
} else {
- pd_monitor = ecore_timer_add(PD_REQUEST_TIMEOUT, pd_open_monitor_cb, instance_ref(inst));
- if (!pd_monitor) {
+ gbar_monitor = ecore_timer_add(DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT, gbar_open_monitor_cb, instance_ref(inst));
+ if (!gbar_monitor) {
(void)instance_unref(inst);
- ErrPrint("Failed to create a timer for PD Open monitor\n");
+ ErrPrint("Failed to create a timer for GBAR Open monitor\n");
} else {
struct slave_node *slave;
- (void)instance_set_data(inst, PD_OPEN_MONITOR_TAG, pd_monitor);
+ (void)instance_set_data(inst, GBAR_OPEN_MONITOR_TAG, gbar_monitor);
slave = package_slave(pkg);
if (!slave) {
@@ -5605,32 +5581,32 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
goto out;
}
- if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_open_buffer_cb, inst) != LB_STATUS_SUCCESS) {
+ if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_open_buffer_cb, inst) != DBOX_STATUS_ERROR_NONE) {
ErrPrint("Failed to add fault handler: %s\n");
}
}
}
} else {
- ErrPrint("Unable to send request for openning PD [%s]\n", pkgname);
+ ErrPrint("Unable to send request for openning GBAR [%s]\n", pkgname);
}
/*!
* \note
- * PD craeted event will be send by the acquire_buffer function.
+ * GBAR craeted event will be send by the acquire_buffer function.
* Because the slave will make request the acquire_buffer to
- * render the PD
+ * render the GBAR
*
- * instance_client_pd_created(inst);
+ * instance_client_gbar_created(inst);
*/
- } else if (package_pd_type(instance_package(inst)) == PD_TYPE_SCRIPT) {
+ } else if (package_gbar_type(instance_package(inst)) == GBAR_TYPE_SCRIPT) {
int ix;
int iy;
- pd_monitor = instance_get_data(inst, LAZY_PD_CLOSE_TAG);
- if (pd_monitor) {
- ecore_timer_del(pd_monitor);
+ gbar_monitor = instance_get_data(inst, LAZY_GBAR_CLOSE_TAG);
+ if (gbar_monitor) {
+ ecore_timer_del(gbar_monitor);
/* lazy,pd,close will be deleted */
- lazy_pd_destroyed_cb(inst);
+ lazy_gbar_destroyed_cb(inst);
}
/*!
@@ -5639,24 +5615,24 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
* we ignore this for this moment, so we have to handle this error later.
*
* if ret is less than 0, the slave has some problem.
- * but the script mode doesn't need slave for rendering default view of PD
+ * but the script mode doesn't need slave for rendering default view of GBAR
* so we can hanle it later.
*/
- instance_slave_set_pd_pos(inst, x, y);
- ix = x * instance_pd_width(inst);
- iy = y * instance_pd_height(inst);
+ instance_slave_set_gbar_pos(inst, x, y);
+ ix = x * instance_gbar_width(inst);
+ iy = y * instance_gbar_height(inst);
- script_handler_update_pointer(instance_pd_script(inst), ix, iy, 0);
+ script_handler_update_pointer(instance_gbar_script(inst), ix, iy, 0);
- ret = instance_slave_open_pd(inst, client);
- if (ret == (int)LB_STATUS_SUCCESS) {
- ret = script_handler_load(instance_pd_script(inst), 1);
+ ret = instance_slave_open_gbar(inst, client);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
+ ret = script_handler_load(instance_gbar_script(inst), 1);
/*!
* \note
- * Send the PD created event to the clients,
+ * Send the GBAR created event to the clients,
*/
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
/*!
* \note
@@ -5670,7 +5646,7 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
* \note
* At here, we don't need to rememeber the timer object.
* Even if the timer callback is called, after the instance is destroyed.
- * lazy_pd_created_cb will decrease the instance refcnt first.
+ * lazy_gbar_created_cb will decrease the instance refcnt first.
* At that time, if the instance is released, the timer callback will do nothing.
*
* 13-05-28
@@ -5678,13 +5654,13 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
* But I just add it to the tagged-data of the instance.
* Just reserve for future-use.
*/
- pd_monitor = ecore_timer_add(DELAY_TIME, lazy_pd_created_cb, inst);
- if (!pd_monitor) {
- ret = script_handler_unload(instance_pd_script(inst), 1);
+ gbar_monitor = ecore_timer_add(DELAY_TIME, lazy_gbar_created_cb, inst);
+ if (!gbar_monitor) {
+ ret = script_handler_unload(instance_gbar_script(inst), 1);
ErrPrint("Unload script: %d\n", ret);
- ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_NORMAL);
- ErrPrint("Close PD %d\n", ret);
+ ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_NORMAL);
+ ErrPrint("Close GBAR %d\n", ret);
inst = instance_unref(inst);
if (!inst) {
@@ -5693,11 +5669,11 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
ErrPrint("Instance: %s\n", pkgname);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
} else {
struct slave_node *slave;
- (void)instance_set_data(inst, LAZY_PD_OPEN_TAG, pd_monitor);
+ (void)instance_set_data(inst, LAZY_GBAR_OPEN_TAG, gbar_monitor);
slave = package_slave(pkg);
if (!slave) {
@@ -5705,23 +5681,23 @@ static struct packet *client_create_pd(pid_t pid, int handle, const struct packe
goto out;
}
- if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_open_script_cb, inst) != LB_STATUS_SUCCESS) {
+ if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_open_script_cb, inst) != DBOX_STATUS_ERROR_NONE) {
ErrPrint("Failed to add fault callback: %s\n", pkgname);
}
}
} else {
int tmp_ret;
- tmp_ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_FAULT);
+ tmp_ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_FAULT);
if (tmp_ret < 0) {
ErrPrint("Unable to load script: %d, (close: %d)\n", ret, tmp_ret);
}
}
} else {
- ErrPrint("Unable open PD(%s): %d\n", pkgname, ret);
+ ErrPrint("Unable open GBAR(%s): %d\n", pkgname, ret);
}
} else {
- ErrPrint("Invalid PD TYPE\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ErrPrint("Invalid GBAR TYPE\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -5733,7 +5709,7 @@ out:
return result;
}
-static struct packet *client_destroy_pd(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, ret */
+static struct packet *client_destroy_gbar(pid_t pid, int handle, const struct packet *packet) /* pid, pkgname, filename, ret */
{
struct client_node *client;
struct packet *result;
@@ -5742,7 +5718,7 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
int ret;
struct inst_info *inst = NULL;
const struct pkg_info *pkg = NULL;
- Ecore_Timer *pd_monitor;
+ Ecore_Timer *gbar_monitor;
struct slave_node *slave;
DbgPrint("PERF_DBOX\n");
@@ -5750,41 +5726,41 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ss", &pkgname, &id);
if (ret != 2) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
slave = package_slave(pkg);
if (!slave) {
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
- if (instance_pd_owner(inst) != client) {
- if (instance_pd_owner(inst) == NULL) {
- ErrPrint("PD looks already closed\n");
- ret = LB_STATUS_ERROR_ALREADY;
+ if (instance_gbar_owner(inst) != client) {
+ if (instance_gbar_owner(inst) == NULL) {
+ ErrPrint("GBAR looks already closed\n");
+ ret = DBOX_STATUS_ERROR_ALREADY;
} else {
- ErrPrint("PD owner mimatched\n");
- ret = LB_STATUS_ERROR_PERMISSION;
+ ErrPrint("GBAR owner mimatched\n");
+ ret = DBOX_STATUS_ERROR_PERMISSION_DENIED;
}
- } else if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- DbgPrint("Buffer type PD\n");
- pd_monitor = instance_del_data(inst, PD_OPEN_MONITOR_TAG);
- if (pd_monitor) {
- ErrPrint("PD Open request is found. cancel it [%s]\n", pkgname);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ DbgPrint("Buffer type GBAR\n");
+ gbar_monitor = instance_del_data(inst, GBAR_OPEN_MONITOR_TAG);
+ if (gbar_monitor) {
+ ErrPrint("GBAR Open request is found. cancel it [%s]\n", pkgname);
if (slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_open_buffer_cb, inst) < 0) {
DbgPrint("Failed to delete a deactivate callback\n");
@@ -5798,45 +5774,45 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
* The client will permanently waiting destroyed event.
* Because they understand that the destroy request is successfully processed.
*/
- ret = instance_client_pd_created(inst, LB_STATUS_ERROR_CANCEL);
+ ret = instance_client_gbar_created(inst, DBOX_STATUS_ERROR_CANCEL);
if (ret < 0) {
- ErrPrint("PD client create event: %d\n", ret);
+ ErrPrint("GBAR client create event: %d\n", ret);
}
- ret = instance_client_pd_destroyed(inst, LB_STATUS_SUCCESS);
+ ret = instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_NONE);
if (ret < 0) {
- ErrPrint("PD client destroy event: %d\n", ret);
+ ErrPrint("GBAR client destroy event: %d\n", ret);
}
- ret = instance_signal_emit(inst, "pd,hide", instance_id(inst), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
+ ret = instance_signal_emit(inst, "gbar,hide", instance_id(inst), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
if (ret < 0) {
- ErrPrint("PD close signal emit failed: %d\n", ret);
+ ErrPrint("GBAR close signal emit failed: %d\n", ret);
}
- ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_NORMAL);
+ ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_NORMAL);
if (ret < 0) {
- ErrPrint("PD close request failed: %d\n", ret);
+ ErrPrint("GBAR close request failed: %d\n", ret);
}
- ecore_timer_del(pd_monitor);
+ ecore_timer_del(gbar_monitor);
inst = instance_unref(inst);
if (!inst) {
DbgPrint("Instance is deleted\n");
}
- } else if (instance_get_data(inst, LAZY_PD_CLOSE_TAG) || instance_get_data(inst, PD_CLOSE_MONITOR_TAG)) {
+ } else if (instance_get_data(inst, LAZY_GBAR_CLOSE_TAG) || instance_get_data(inst, GBAR_CLOSE_MONITOR_TAG)) {
DbgPrint("Close monitor is already fired\n");
- ret = LB_STATUS_ERROR_ALREADY;
+ ret = DBOX_STATUS_ERROR_ALREADY;
} else {
int resize_aborted = 0;
- pd_monitor = instance_del_data(inst, PD_RESIZE_MONITOR_TAG);
- if (pd_monitor) {
- ErrPrint("PD Resize request is found. clear it [%s]\n", pkgname);
+ gbar_monitor = instance_del_data(inst, GBAR_RESIZE_MONITOR_TAG);
+ if (gbar_monitor) {
+ ErrPrint("GBAR Resize request is found. clear it [%s]\n", pkgname);
if (slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_resize_buffer_cb, inst) < 0) {
DbgPrint("Failed to delete a deactivate callback\n");
}
- ecore_timer_del(pd_monitor);
+ ecore_timer_del(gbar_monitor);
inst = instance_unref(inst);
if (!inst) {
@@ -5847,17 +5823,17 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
resize_aborted = 1;
}
- ret = instance_signal_emit(inst, "pd,hide", instance_id(inst), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
+ ret = instance_signal_emit(inst, "gbar,hide", instance_id(inst), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0);
if (ret < 0) {
- ErrPrint("PD close signal emit failed: %d\n", ret);
+ ErrPrint("GBAR close signal emit failed: %d\n", ret);
}
- ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_NORMAL);
+ ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_NORMAL);
if (ret < 0) {
- ErrPrint("PD close request failed: %d\n", ret);
+ ErrPrint("GBAR close request failed: %d\n", ret);
} else if (resize_aborted) {
- pd_monitor = ecore_timer_add(DELAY_TIME, lazy_pd_destroyed_cb, instance_ref(inst));
- if (!pd_monitor) {
+ gbar_monitor = ecore_timer_add(DELAY_TIME, lazy_gbar_destroyed_cb, instance_ref(inst));
+ if (!gbar_monitor) {
ErrPrint("Failed to create a timer: %s\n", pkgname);
inst = instance_unref(inst);
if (!inst) {
@@ -5865,22 +5841,22 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
}
} else {
DbgPrint("Resize is aborted\n");
- (void)instance_set_data(inst, LAZY_PD_CLOSE_TAG, pd_monitor);
+ (void)instance_set_data(inst, LAZY_GBAR_CLOSE_TAG, gbar_monitor);
if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_close_buffer_cb, inst) < 0) {
ErrPrint("Failed to add a slave event callback\n");
}
}
} else {
- pd_monitor = ecore_timer_add(PD_REQUEST_TIMEOUT, pd_close_monitor_cb, instance_ref(inst));
- if (!pd_monitor) {
+ gbar_monitor = ecore_timer_add(DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT, gbar_close_monitor_cb, instance_ref(inst));
+ if (!gbar_monitor) {
ErrPrint("Failed to add pd close monitor\n");
inst = instance_unref(inst);
if (!inst) {
- ErrPrint("Instance is deleted while closing PD\n");
+ ErrPrint("Instance is deleted while closing GBAR\n");
}
} else {
DbgPrint("Add close monitor\n");
- (void)instance_set_data(inst, PD_CLOSE_MONITOR_TAG, pd_monitor);
+ (void)instance_set_data(inst, GBAR_CLOSE_MONITOR_TAG, gbar_monitor);
if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_close_buffer_cb, inst) < 0) {
ErrPrint("Failed to add SLAVE EVENT callback\n");
}
@@ -5890,22 +5866,22 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
/*!
* \note
* release_buffer will be called by the slave after this routine.
- * It will send the "pd_destroyed" event to the client
+ * It will send the "gbar_destroyed" event to the client
*
- * instance_client_pd_destroyed(inst, LB_STATUS_SUCCESS);
+ * instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_NONE);
*
- * Or the "pd_close_monitor_cb" or "lazy_pd_destroyed_cb" will be called.
+ * Or the "gbar_close_monitor_cb" or "lazy_gbar_destroyed_cb" will be called.
*/
}
- } else if (package_pd_type(pkg) == PD_TYPE_SCRIPT) {
- DbgPrint("Script TYPE PD\n");
- pd_monitor = instance_get_data(inst, LAZY_PD_OPEN_TAG);
- if (pd_monitor) {
- ecore_timer_del(pd_monitor);
- (void)lazy_pd_created_cb(inst);
+ } else if (package_gbar_type(pkg) == GBAR_TYPE_SCRIPT) {
+ DbgPrint("Script TYPE GBAR\n");
+ gbar_monitor = instance_get_data(inst, LAZY_GBAR_OPEN_TAG);
+ if (gbar_monitor) {
+ ecore_timer_del(gbar_monitor);
+ (void)lazy_gbar_created_cb(inst);
}
- ret = script_handler_unload(instance_pd_script(inst), 1);
+ ret = script_handler_unload(instance_gbar_script(inst), 1);
if (ret < 0) {
ErrPrint("Unable to unload the script: %s, %d\n", pkgname, ret);
}
@@ -5915,16 +5891,16 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
* Send request to the slave.
* The SLAVE must has to repsonse this via "release_buffer" method.
*/
- ret = instance_slave_close_pd(inst, client, LB_CLOSE_PD_NORMAL);
+ ret = instance_slave_close_gbar(inst, client, DBOX_CLOSE_GBAR_NORMAL);
if (ret < 0) {
- ErrPrint("Unable to close the PD: %s, %d\n", pkgname, ret);
+ ErrPrint("Unable to close the GBAR: %s, %d\n", pkgname, ret);
}
/*!
* \note
- * Send the destroyed PD event to the client
+ * Send the destroyed GBAR event to the client
*/
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
/*!
* \note
* 13-05-28
@@ -5932,24 +5908,24 @@ static struct packet *client_destroy_pd(pid_t pid, int handle, const struct pack
* But I just add it to the tagged-data of the instance.
* Just reserve for future-use.
*/
- DbgPrint("Add lazy PD destroy timer\n");
- pd_monitor = ecore_timer_add(DELAY_TIME, lazy_pd_destroyed_cb, instance_ref(inst));
- if (!pd_monitor) {
+ DbgPrint("Add lazy GBAR destroy timer\n");
+ gbar_monitor = ecore_timer_add(DELAY_TIME, lazy_gbar_destroyed_cb, instance_ref(inst));
+ if (!gbar_monitor) {
ErrPrint("Failed to create a timer: %s\n", pkgname);
inst = instance_unref(inst);
if (!inst) {
DbgPrint("instance is deleted\n");
}
} else {
- (void)instance_set_data(inst, LAZY_PD_CLOSE_TAG, pd_monitor);
+ (void)instance_set_data(inst, LAZY_GBAR_CLOSE_TAG, gbar_monitor);
if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_close_script_cb, inst) < 0) {
ErrPrint("Failed to add a event callback for slave\n");
}
}
}
} else {
- ErrPrint("Invalid PD TYPE\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ErrPrint("Invalid GBAR TYPE\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
out:
@@ -5972,7 +5948,7 @@ static struct packet *client_activate_package(pid_t pid, int handle, const struc
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
pkgname = "";
goto out;
}
@@ -5980,7 +5956,7 @@ static struct packet *client_activate_package(pid_t pid, int handle, const struc
ret = packet_get(packet, "s", &pkgname);
if (ret != 1) {
ErrPrint("Parameter is not matched\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
pkgname = "";
goto out;
}
@@ -5989,18 +5965,18 @@ static struct packet *client_activate_package(pid_t pid, int handle, const struc
/*!
* \NOTE:
- * Validate the livebox package name.
+ * Validate the dynamicbox package name.
*/
- if (!package_is_lb_pkgname(pkgname)) {
- ErrPrint("%s is not a valid livebox package\n", pkgname);
+ if (!package_is_dbox_pkgname(pkgname)) {
+ ErrPrint("%s is not a valid dynamicbox package\n", pkgname);
pkgname = "";
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
info = package_find(pkgname);
if (!info) {
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
} else {
ret = package_clear_fault(info);
}
@@ -6024,19 +6000,19 @@ static struct packet *client_subscribed(pid_t pid, int handle, const struct pack
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ss", &cluster, &category);
if (ret != 2) {
ErrPrint("Invalid argument\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
DbgPrint("[%d] cluster[%s] category[%s]\n", pid, cluster, category);
- if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) {
+ if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) {
ErrPrint("Invalid cluster name\n");
goto out;
}
@@ -6065,29 +6041,29 @@ static struct packet *client_delete_cluster(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "s", &cluster);
if (ret != 1) {
ErrPrint("Invalid parameters\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
DbgPrint("pid[%d] cluster[%s]\n", pid, cluster);
- if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) {
+ if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) {
ErrPrint("Invalid cluster: %s\n", cluster);
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
/*!
* \todo
*/
- ret = LB_STATUS_ERROR_NOT_IMPLEMENTED;
+ ret = DBOX_STATUS_ERROR_NOT_IMPLEMENTED;
out:
result = packet_create_reply(packet, "i", ret);
@@ -6115,7 +6091,7 @@ static inline int update_pkg_cb(struct category *category, const char *pkgname,
slave_rpc_request_update(pkgname, "", c_name, s_name, NULL, force);
/* Just try to create a new package */
- if (util_free_space(IMAGE_PATH) > MINIMUM_SPACE) {
+ if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) > DYNAMICBOX_CONF_MINIMUM_SPACE) {
double timestamp;
struct inst_info *inst;
@@ -6126,7 +6102,7 @@ static inline int update_pkg_cb(struct category *category, const char *pkgname,
* Because this callback is called by the requests of clients.
* It means. some clients wants to handle this instances ;)
*/
- inst = instance_create(NULL, timestamp, pkgname, "", c_name, s_name, DEFAULT_PERIOD, 0, 0);
+ inst = instance_create(NULL, timestamp, pkgname, "", c_name, s_name, DYNAMICBOX_CONF_DEFAULT_PERIOD, 0, 0);
if (!inst) {
ErrPrint("Failed to create a new instance\n");
}
@@ -6157,7 +6133,7 @@ static struct packet *client_update(pid_t pid, int handle, const struct packet *
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
@@ -6200,7 +6176,7 @@ static struct packet *client_refresh_group(pid_t pid, int handle, const struct p
DbgPrint("[%d] cluster[%s] category[%s]\n", pid, cluster_id, category_id);
- if (!strlen(cluster_id) || !strcasecmp(cluster_id, DEFAULT_CLUSTER)) {
+ if (!strlen(cluster_id) || !strcasecmp(cluster_id, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) {
ErrPrint("Invalid cluster name: %s\n", cluster_id);
goto out;
}
@@ -6238,28 +6214,28 @@ static struct packet *client_delete_category(pid_t pid, int handle, const struct
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ss", &cluster, &category);
if (ret != 2) {
ErrPrint("Invalid paramenters\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
DbgPrint("pid[%d] cluster[%s] category[%s]\n", pid, cluster, category);
- if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) {
+ if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) {
ErrPrint("Invalid cluster: %s\n", cluster);
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
/*!
* \todo
*/
- ret = LB_STATUS_ERROR_NOT_IMPLEMENTED;
+ ret = DBOX_STATUS_ERROR_NOT_IMPLEMENTED;
out:
result = packet_create_reply(packet, "i", ret);
@@ -6280,20 +6256,20 @@ static struct packet *client_unsubscribed(pid_t pid, int handle, const struct pa
client = client_find_by_rpc_handle(handle);
if (!client) {
ErrPrint("Client %d is not exists\n", pid);
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
ret = packet_get(packet, "ss", &cluster, &category);
if (ret != 2) {
ErrPrint("Invalid argument\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
DbgPrint("[%d] cluster[%s] category[%s]\n", pid, cluster, category);
- if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) {
+ if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) {
ErrPrint("Invalid cluster name: %s\n", cluster);
goto out;
}
@@ -6333,7 +6309,7 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa
}
if (!slave) {
- if (DEBUG_MODE) {
+ if (DYNAMICBOX_CONF_DEBUG_MODE || g_conf.debug_mode) {
char pkgname[pathconf("/", _PC_PATH_MAX)];
const char *abi;
@@ -6348,11 +6324,11 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa
if (!slave) {
abi = abi_find_by_pkgname(pkgname);
if (!abi) {
- abi = DEFAULT_ABI;
+ abi = DYNAMICBOX_CONF_DEFAULT_ABI;
DbgPrint("Slave pkgname is invalid, ABI is replaced with '%s'(default)\n", abi);
}
- slave = slave_create(slavename, 1, abi, pkgname, 0);
+ slave = slave_create(slavename, 1, abi, pkgname, 0, NULL);
if (!slave) {
ErrPrint("Failed to create a new slave for %s\n", slavename);
goto out;
@@ -6364,7 +6340,7 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa
abi = slave_abi(slave);
if (!abi) {
ErrPrint("ABI is not valid: %s\n", slavename);
- abi = DEFAULT_ABI;
+ abi = DYNAMICBOX_CONF_DEFAULT_ABI;
}
}
@@ -6379,7 +6355,7 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa
if (slave_pid(slave) > 0) {
CRITICAL_LOG("Slave(%s) is already assigned to %d\n", slave_name(slave), slave_pid(slave));
if (pid > 0) {
- ret = aul_terminate_pid(pid);
+ ret = aul_terminate_pid_async(pid);
CRITICAL_LOG("Terminate %d (ret: %d)\n", pid, ret);
}
goto out;
@@ -6481,7 +6457,7 @@ out:
return NULL;
}
-static struct packet *slave_lb_update_begin(pid_t pid, int handle, const struct packet *packet)
+static struct packet *slave_dbox_update_begin(pid_t pid, int handle, const struct packet *packet)
{
struct slave_node *slave;
struct inst_info *inst;
@@ -6506,7 +6482,7 @@ static struct packet *slave_lb_update_begin(pid_t pid, int handle, const struct
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
@@ -6515,9 +6491,9 @@ static struct packet *slave_lb_update_begin(pid_t pid, int handle, const struct
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = instance_lb_update_begin(inst, priority, content, title);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = instance_dbox_update_begin(inst, priority, content, title);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
slave_freeze_ttl(slave);
}
} else {
@@ -6528,7 +6504,7 @@ out:
return NULL;
}
-static struct packet *slave_lb_update_end(pid_t pid, int handle, const struct packet *packet)
+static struct packet *slave_dbox_update_end(pid_t pid, int handle, const struct packet *packet)
{
struct slave_node *slave;
struct inst_info *inst;
@@ -6550,7 +6526,7 @@ static struct packet *slave_lb_update_end(pid_t pid, int handle, const struct pa
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
@@ -6559,9 +6535,9 @@ static struct packet *slave_lb_update_end(pid_t pid, int handle, const struct pa
goto out;
}
- if (package_lb_type(pkg) == LB_TYPE_BUFFER) {
- ret = instance_lb_update_end(inst);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ ret = instance_dbox_update_end(inst);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
slave_thaw_ttl(slave);
}
} else {
@@ -6572,7 +6548,7 @@ out:
return NULL;
}
-static struct packet *slave_pd_update_begin(pid_t pid, int handle, const struct packet *packet)
+static struct packet *slave_gbar_update_begin(pid_t pid, int handle, const struct packet *packet)
{
struct slave_node *slave;
const struct pkg_info *pkg;
@@ -6594,7 +6570,7 @@ static struct packet *slave_pd_update_begin(pid_t pid, int handle, const struct
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
@@ -6603,8 +6579,8 @@ static struct packet *slave_pd_update_begin(pid_t pid, int handle, const struct
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- (void)instance_pd_update_begin(inst);
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ (void)instance_gbar_update_begin(inst);
} else {
ErrPrint("Invalid request[%s]\n", id);
}
@@ -6635,7 +6611,7 @@ static struct packet *slave_key_status(pid_t pid, int handle, const struct packe
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
if (instance_state(inst) == INST_DESTROYED) {
ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
} else {
@@ -6669,7 +6645,7 @@ static struct packet *slave_access_status(pid_t pid, int handle, const struct pa
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
if (instance_state(inst) == INST_DESTROYED) {
ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
} else {
@@ -6681,7 +6657,7 @@ out:
return NULL;
}
-static struct packet *slave_close_pd(pid_t pid, int handle, const struct packet *packet)
+static struct packet *slave_close_gbar(pid_t pid, int handle, const struct packet *packet)
{
struct slave_node *slave;
struct inst_info *inst;
@@ -6703,7 +6679,7 @@ static struct packet *slave_close_pd(pid_t pid, int handle, const struct packet
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
if (instance_state(inst) == INST_DESTROYED) {
ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
} else {
@@ -6715,7 +6691,7 @@ out:
return NULL;
}
-static struct packet *slave_pd_update_end(pid_t pid, int handle, const struct packet *packet)
+static struct packet *slave_gbar_update_end(pid_t pid, int handle, const struct packet *packet)
{
struct slave_node *slave;
const struct pkg_info *pkg;
@@ -6737,7 +6713,7 @@ static struct packet *slave_pd_update_end(pid_t pid, int handle, const struct pa
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
@@ -6746,8 +6722,8 @@ static struct packet *slave_pd_update_end(pid_t pid, int handle, const struct pa
goto out;
}
- if (package_pd_type(pkg) == PD_TYPE_BUFFER) {
- (void)instance_pd_update_end(inst);
+ if (package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ (void)instance_gbar_update_end(inst);
} else {
ErrPrint("Invalid request[%s]\n", id);
}
@@ -6810,18 +6786,15 @@ out:
return NULL;
}
-static struct packet *slave_updated(pid_t pid, int handle, const struct packet *packet) /* slave_name, pkgname, filename, width, height, priority, ret */
+static struct packet *slave_extra_info(pid_t pid, int handle, const struct packet *packet)
{
struct slave_node *slave;
const char *pkgname;
- const char *safe_filename;
const char *id;
const char *content_info;
const char *title;
const char *icon;
const char *name;
- int w;
- int h;
double priority;
int ret;
struct inst_info *inst;
@@ -6832,28 +6805,64 @@ static struct packet *slave_updated(pid_t pid, int handle, const struct packet *
goto out;
}
- ret = packet_get(packet, "ssiidsssss", &pkgname, &id,
- &w, &h, &priority,
- &content_info, &title,
- &safe_filename, &icon, &name);
- if (ret != 10) {
- ErrPrint("Parameter is not matched\n");
+ ret = packet_get(packet, "ssssssd", &pkgname, &id, &content_info, &title, &icon, &name, &priority);
+ if (ret != 7) {
+ ErrPrint("Parameter is not matchd\n");
goto out;
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
if (instance_state(inst) == INST_DESTROYED) {
ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
goto out;
}
- instance_set_lb_info(inst, priority, content_info, title);
+ instance_set_dbox_info(inst, priority, content_info, title);
instance_set_alt_info(inst, icon, name);
+ instance_extra_info_updated_by_instance(inst);
+ slave_give_more_ttl(slave);
+ }
+
+out:
+ return NULL;
+}
- switch (package_lb_type(instance_package(inst))) {
- case LB_TYPE_SCRIPT:
- script_handler_resize(instance_lb_script(inst), w, h);
+static struct packet *slave_updated(pid_t pid, int handle, const struct packet *packet) /* slave_name, pkgname, filename, width, height, ret */
+{
+ struct slave_node *slave;
+ const char *pkgname;
+ const char *safe_filename;
+ const char *id;
+ int w;
+ int h;
+ int x;
+ int y;
+ int ret;
+ struct inst_info *inst;
+
+ slave = slave_find_by_pid(pid);
+ if (!slave) {
+ ErrPrint("Slave %d is not exists\n", pid);
+ goto out;
+ }
+
+ ret = packet_get(packet, "sssiiii", &pkgname, &id, &safe_filename, &x, &y, &w, &h);
+ if (ret != 7) {
+ ErrPrint("Parameter is not matched\n");
+ goto out;
+ }
+
+ ret = validate_request(pkgname, id, &inst, NULL);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
+ if (instance_state(inst) == INST_DESTROYED) {
+ ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
+ goto out;
+ }
+
+ switch (package_dbox_type(instance_package(inst))) {
+ case DBOX_TYPE_SCRIPT:
+ script_handler_resize(instance_dbox_script(inst), w, h);
if (safe_filename) {
(void)script_handler_parse_desc(inst, safe_filename, 0);
} else {
@@ -6865,14 +6874,13 @@ static struct packet *slave_updated(pid_t pid, int handle, const struct packet *
ErrPrint("unlink: %s - %s\n", strerror(errno), safe_filename);
}
break;
- case LB_TYPE_BUFFER:
+ case DBOX_TYPE_BUFFER:
default:
/*!
* \check
* text format (inst)
*/
- instance_set_lb_size(inst, w, h);
- instance_lb_updated_by_instance(inst, safe_filename);
+ instance_dbox_updated_by_instance(inst, safe_filename, x, y, w, h);
break;
}
@@ -6905,7 +6913,7 @@ static struct packet *slave_hold_scroll(pid_t pid, int handle, const struct pack
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
if (instance_state(inst) == INST_DESTROYED) {
ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
} else {
@@ -6917,12 +6925,57 @@ out:
return NULL;
}
+static struct packet *slave_extra_updated(pid_t pid, int handle, const struct packet *packet)
+{
+ struct slave_node *slave;
+ const char *pkgname;
+ const char *id;
+ int idx;
+ int x;
+ int y;
+ int w;
+ int h;
+ int ret;
+ int is_gbar;
+ struct inst_info *inst;
+
+ slave = slave_find_by_pid(pid);
+ if (!slave) {
+ ErrPrint("Slave %d is not exists\n", pid);
+ goto out;
+ }
+
+ ret = packet_get(packet, "ssiiiiii", &pkgname, &id, &is_gbar, &idx, &x, &y, &w, &h);
+ if (ret != 8) {
+ ErrPrint("Parameter is not matched\n");
+ goto out;
+ }
+
+ ret = validate_request(pkgname, id, &inst, NULL);
+ if (ret != DBOX_STATUS_ERROR_NONE) {
+ goto out;
+ }
+
+ if (instance_state(inst) == INST_DESTROYED) {
+ ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
+ goto out;
+ }
+
+ (void)instance_extra_updated_by_instance(inst, is_gbar, idx, x, y, w, h);
+out:
+ return NULL;
+}
+
static struct packet *slave_desc_updated(pid_t pid, int handle, const struct packet *packet) /* slave_name, pkgname, filename, decsfile, ret */
{
struct slave_node *slave;
const char *pkgname;
const char *id;
const char *descfile;
+ int x;
+ int y;
+ int w;
+ int h;
int ret;
struct inst_info *inst;
@@ -6932,14 +6985,14 @@ static struct packet *slave_desc_updated(pid_t pid, int handle, const struct pac
goto out;
}
- ret = packet_get(packet, "sss", &pkgname, &id, &descfile);
- if (ret != 3) {
+ ret = packet_get(packet, "sssiiii", &pkgname, &id, &descfile, &x, &y, &w, &h);
+ if (ret != 7) {
ErrPrint("Parameter is not matched\n");
goto out;
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
@@ -6948,17 +7001,17 @@ static struct packet *slave_desc_updated(pid_t pid, int handle, const struct pac
goto out;
}
- switch (package_pd_type(instance_package(inst))) {
- case PD_TYPE_SCRIPT:
+ switch (package_gbar_type(instance_package(inst))) {
+ case GBAR_TYPE_SCRIPT:
DbgPrint("%s updated (%s)\n", instance_id(inst), descfile);
- if (script_handler_is_loaded(instance_pd_script(inst))) {
+ if (script_handler_is_loaded(instance_gbar_script(inst))) {
(void)script_handler_parse_desc(inst, descfile, 1);
}
break;
- case PD_TYPE_TEXT:
- instance_set_pd_size(inst, 0, 0);
- case PD_TYPE_BUFFER:
- instance_pd_updated(pkgname, id, descfile);
+ case GBAR_TYPE_TEXT:
+ instance_set_gbar_size(inst, 0, 0);
+ case GBAR_TYPE_BUFFER:
+ instance_gbar_updated(pkgname, id, descfile, x, y, w, h);
break;
default:
DbgPrint("Ignore updated DESC(%s)\n", pkgname);
@@ -6990,8 +7043,8 @@ static struct packet *slave_deleted(pid_t pid, int handle, const struct packet *
}
ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
- ret = instance_destroyed(inst, LB_STATUS_SUCCESS);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
+ ret = instance_destroyed(inst, DBOX_STATUS_ERROR_NONE);
}
out:
@@ -7019,7 +7072,7 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
if (!slave) {
ErrPrint("Failed to find a slave\n");
id = "";
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
@@ -7027,38 +7080,38 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
if (ret != 6) {
ErrPrint("Invalid argument\n");
id = "";
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
id = "";
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
if (instance_state(inst) == INST_DESTROYED) {
ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
goto out;
}
- if (target == TYPE_LB && package_lb_type(pkg) == LB_TYPE_BUFFER) {
+ if (target == TYPE_DBOX && package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
struct buffer_info *info;
- info = instance_lb_buffer(inst);
+ info = instance_dbox_buffer(inst);
if (!info) {
- if (!instance_create_lb_buffer(inst, pixel_size)) {
- ErrPrint("Failed to create a LB buffer\n");
- ret = LB_STATUS_ERROR_FAULT;
+ if (!instance_create_dbox_buffer(inst, pixel_size)) {
+ ErrPrint("Failed to create a DBOX buffer\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
- info = instance_lb_buffer(inst);
+ info = instance_dbox_buffer(inst);
if (!info) {
- ErrPrint("LB buffer is not valid\n");
+ ErrPrint("DBOX buffer is not valid\n");
/*!
* \NOTE
* ret value should not be changed.
@@ -7070,22 +7123,22 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
ret = buffer_handler_resize(info, w, h);
ret = buffer_handler_load(info);
if (ret == 0) {
- instance_set_lb_size(inst, w, h);
- instance_set_lb_info(inst, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
+ instance_set_dbox_size(inst, w, h);
+ instance_set_dbox_info(inst, DYNAMICBOX_CONF_PRIORITY_NO_CHANGE, DYNAMICBOX_CONF_CONTENT_NO_CHANGE, DYNAMICBOX_CONF_TITLE_NO_CHANGE);
id = buffer_handler_id(info);
} else {
ErrPrint("Failed to load a buffer(%d)\n", ret);
}
- } else if (target == TYPE_PD && package_pd_type(pkg) == PD_TYPE_BUFFER) {
+ } else if (target == TYPE_GBAR && package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
struct buffer_info *info;
- Ecore_Timer *pd_monitor;
+ Ecore_Timer *gbar_monitor;
int is_resize;
is_resize = 0;
- pd_monitor = instance_del_data(inst, PD_OPEN_MONITOR_TAG);
- if (!pd_monitor) {
- pd_monitor = instance_del_data(inst, PD_RESIZE_MONITOR_TAG);
- is_resize = !!pd_monitor;
+ gbar_monitor = instance_del_data(inst, GBAR_OPEN_MONITOR_TAG);
+ if (!gbar_monitor) {
+ gbar_monitor = instance_del_data(inst, GBAR_RESIZE_MONITOR_TAG);
+ is_resize = !!gbar_monitor;
if (!is_resize) {
/* Invalid request. Reject this */
ErrPrint("Invalid request\n");
@@ -7097,30 +7150,30 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_open_buffer_cb, inst);
}
- ecore_timer_del(pd_monitor);
+ ecore_timer_del(gbar_monitor);
inst = instance_unref(inst);
if (!inst) {
ErrPrint("Instance refcnt is ZERO: %s\n", pkgname);
goto out;
}
- info = instance_pd_buffer(inst);
+ info = instance_gbar_buffer(inst);
if (!info) {
- if (!instance_create_pd_buffer(inst, pixel_size)) {
- ErrPrint("Failed to create a PD buffer\n");
- ret = LB_STATUS_ERROR_FAULT;
- instance_client_pd_created(inst, ret);
+ if (!instance_create_gbar_buffer(inst, pixel_size)) {
+ ErrPrint("Failed to create a GBAR buffer\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
+ instance_client_gbar_created(inst, ret);
goto out;
}
- info = instance_pd_buffer(inst);
+ info = instance_gbar_buffer(inst);
if (!info) {
- ErrPrint("PD buffer is not valid\n");
+ ErrPrint("GBAR buffer is not valid\n");
/*!
* \NOTE
* ret value should not be changed.
*/
- instance_client_pd_created(inst, ret);
+ instance_client_gbar_created(inst, ret);
goto out;
}
}
@@ -7128,24 +7181,151 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p
ret = buffer_handler_resize(info, w, h);
ret = buffer_handler_load(info);
if (ret == 0) {
- instance_set_pd_size(inst, w, h);
+ instance_set_gbar_size(inst, w, h);
id = buffer_handler_id(info);
} else {
ErrPrint("Failed to load a buffer (%d)\n", ret);
}
/*!
- * Send the PD created event to the client
+ * Send the GBAR created event to the client
*/
if (!is_resize) {
- instance_client_pd_created(inst, ret);
+ instance_client_gbar_created(inst, ret);
}
}
out:
result = packet_create_reply(packet, "is", ret, id);
if (!result) {
- ErrPrint("Failed to create a packet\n");
+ ErrPrint("Failed to create a reply packet\n");
+ }
+
+ return result;
+}
+
+static struct packet *slave_acquire_extra_buffer(pid_t pid, int handle, const struct packet *packet)
+{
+ struct slave_node *slave;
+ struct inst_info *inst;
+ struct packet *result;
+ const struct pkg_info *pkg;
+ const char *pkgname;
+ const char *id;
+ int pixel_size;
+ int target;
+ int idx;
+ int ret;
+ int w;
+ int h;
+
+ slave = slave_find_by_pid(pid);
+ if (!slave) {
+ ErrPrint("Slave %d is not exists\n", pid);
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ id = "";
+ goto out;
+ }
+
+ ret = packet_get(packet, "issiiii", &target, &pkgname, &id, &w, &h, &pixel_size, &idx);
+ if (ret != 7) {
+ ErrPrint("Invalid parameters\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ id = "";
+ goto out;
+ }
+
+ ret = validate_request(pkgname, id, &inst, &pkg);
+ id = "";
+
+ if (ret != DBOX_STATUS_ERROR_NONE) {
+ goto out;
+ }
+
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+
+ if (instance_state(inst) == INST_DESTROYED) {
+ ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
+ goto out;
+ }
+
+ if (target == TYPE_DBOX && package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ struct buffer_info *info;
+
+ info = instance_dbox_extra_buffer(inst, idx);
+ if (!info) {
+ if (!instance_create_dbox_extra_buffer(inst, pixel_size, idx)) {
+ ErrPrint("Failed to create a DBOX buffer\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
+ goto out;
+ }
+
+ info = instance_dbox_extra_buffer(inst, idx);
+ if (!info) {
+ ErrPrint("DBOX extra buffer is not valid\n");
+ /*!
+ * \NOTE
+ * ret value should not be changed.
+ */
+ goto out;
+ }
+ }
+
+ ret = buffer_handler_resize(info, w, h);
+ ret = buffer_handler_load(info);
+ if (ret == 0) {
+ /**
+ * @todo
+ * Send the extra buffer info to the viewer.
+ * Then the viewer will try to acquire extra pixmap(aka, resource id) information
+ */
+ id = buffer_handler_id(info);
+ DbgPrint("Extra buffer is loaded: %s\n", id);
+ (void)instance_client_dbox_extra_buffer_created(inst, idx);
+ } else {
+ ErrPrint("Failed to load a buffer(%d)\n", ret);
+ }
+ } else if (target == TYPE_GBAR && package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ struct buffer_info *info;
+
+ info = instance_gbar_extra_buffer(inst, idx);
+ if (!info) {
+ if (!instance_create_gbar_extra_buffer(inst, pixel_size, idx)) {
+ ErrPrint("Failed to create a GBAR buffer\n");
+ ret = DBOX_STATUS_ERROR_FAULT;
+ goto out;
+ }
+
+ info = instance_gbar_extra_buffer(inst, idx);
+ if (!info) {
+ ErrPrint("GBAR buffer is not valid\n");
+ /*!
+ * \NOTE
+ * ret value should not be changed.
+ */
+ goto out;
+ }
+ }
+
+ ret = buffer_handler_resize(info, w, h);
+ ret = buffer_handler_load(info);
+ if (ret == 0) {
+ id = buffer_handler_id(info);
+ /**
+ * @todo
+ * Send the extra buffer acquired event to the viewer
+ */
+ DbgPrint("Extra buffer is loaded: %s\n", id);
+ (void)instance_client_gbar_extra_buffer_created(inst, idx);
+ } else {
+ ErrPrint("Failed to load a buffer (%d)\n", ret);
+ }
+ }
+
+out:
+ result = packet_create_reply(packet, "is", ret, id);
+ if (!result) {
+ ErrPrint("Failed to create a reply packet\n");
}
return result;
@@ -7167,7 +7347,7 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
slave = slave_find_by_pid(pid);
if (!slave) {
ErrPrint("Failed to find a slave\n");
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
id = "";
goto out;
}
@@ -7175,18 +7355,19 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
ret = packet_get(packet, "issii", &type, &pkgname, &id, &w, &h);
if (ret != 5) {
ErrPrint("Invalid argument\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
id = "";
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
id = "";
- if (ret != LB_STATUS_SUCCESS) {
+
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
/*!
* \note
* Reset "id", It will be re-used from here
@@ -7197,10 +7378,10 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
goto out;
}
- if (type == TYPE_LB && package_lb_type(pkg) == LB_TYPE_BUFFER) {
+ if (type == TYPE_DBOX && package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
struct buffer_info *info;
- info = instance_lb_buffer(inst);
+ info = instance_dbox_buffer(inst);
if (!info) {
goto out;
}
@@ -7210,15 +7391,15 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
* \note
* id is resued for newly assigned ID
*/
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
id = buffer_handler_id(info);
- instance_set_lb_size(inst, w, h);
- instance_set_lb_info(inst, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE);
+ instance_set_dbox_size(inst, w, h);
+ instance_set_dbox_info(inst, DYNAMICBOX_CONF_PRIORITY_NO_CHANGE, DYNAMICBOX_CONF_CONTENT_NO_CHANGE, DYNAMICBOX_CONF_TITLE_NO_CHANGE);
}
- } else if (type == TYPE_PD && package_pd_type(pkg) == PD_TYPE_BUFFER) {
+ } else if (type == TYPE_GBAR && package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
struct buffer_info *info;
- info = instance_pd_buffer(inst);
+ info = instance_gbar_buffer(inst);
if (!info) {
goto out;
}
@@ -7228,9 +7409,9 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa
* \note
* id is resued for newly assigned ID
*/
- if (ret == (int)LB_STATUS_SUCCESS) {
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
id = buffer_handler_id(info);
- instance_set_pd_size(inst, w, h);
+ instance_set_gbar_size(inst, w, h);
}
}
@@ -7257,1285 +7438,1440 @@ static struct packet *slave_release_buffer(pid_t pid, int handle, const struct p
slave = slave_find_by_pid(pid);
if (!slave) {
ErrPrint("Failed to find a slave\n");
- ret = LB_STATUS_ERROR_NOT_EXIST;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
goto out;
}
if (packet_get(packet, "iss", &type, &pkgname, &id) != 3) {
ErrPrint("Inavlid argument\n");
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
goto out;
}
ret = validate_request(pkgname, id, &inst, &pkg);
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto out;
}
- ret = LB_STATUS_ERROR_INVALID;
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
- if (type == TYPE_LB && package_lb_type(pkg) == LB_TYPE_BUFFER) {
+ if (type == TYPE_DBOX && package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
struct buffer_info *info;
- info = instance_lb_buffer(inst);
+ info = instance_dbox_buffer(inst);
ret = buffer_handler_unload(info);
- } else if (type == TYPE_PD && package_pd_type(pkg) == PD_TYPE_BUFFER) {
+ } else if (type == TYPE_GBAR && package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
struct buffer_info *info;
- Ecore_Timer *pd_monitor;
+ Ecore_Timer *gbar_monitor;
- pd_monitor = instance_del_data(inst, PD_CLOSE_MONITOR_TAG);
- if (!pd_monitor && !package_is_fault(pkg)) {
+ gbar_monitor = instance_del_data(inst, GBAR_CLOSE_MONITOR_TAG);
+ if (!gbar_monitor && !package_is_fault(pkg)) {
ErrPrint("Slave requests to release a buffer\n");
- /*!
- * \note
+ /**
+ * @note
* In this case just keep going to release buffer,
- * Even if a user(client) doesn't wants to destroy the PD.
+ * Even if a user(client) doesn't wants to destroy the GBAR.
*
- * If the slave tries to destroy PD buffer, it should be
+ * If the slave tries to destroy GBAR buffer, it should be
* released and reported to the client about its status.
*
* Even if the pd is destroyed by timeout handler,
- * instance_client_pd_destroyed function will be ignored
+ * instance_client_gbar_destroyed function will be ignored
* by pd.need_to_send_close_event flag.
- * which will be checked by instance_client_pd_destroyed function.
+ * which will be checked by instance_client_gbar_destroyed function.
*/
- /*!
- * \note
+ /**
+ * @note
* provider can try to resize the buffer size.
* in that case, it will release the buffer first.
- * Then even though the client doesn't request to close the PD,
+ * Then even though the client doesn't request to close the GBAR,
* the provider can release it.
* If we send the close event to the client,
- * The client will not able to allocate PD again.
+ * The client will not able to allocate GBAR again.
* In this case, add the pd,monitor again. from here.
* to wait the re-allocate buffer.
* If the client doesn't request buffer reallocation,
- * Treat it as a fault. and close the PD.
+ * Treat it as a fault. and close the GBAR.
*/
- info = instance_pd_buffer(inst);
+ info = instance_gbar_buffer(inst);
ret = buffer_handler_unload(info);
- if (ret == (int)LB_STATUS_SUCCESS) {
- pd_monitor = ecore_timer_add(PD_REQUEST_TIMEOUT, pd_resize_monitor_cb, instance_ref(inst));
- if (!pd_monitor) {
- ErrPrint("Failed to create a timer for PD Open monitor\n");
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
+ gbar_monitor = ecore_timer_add(DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT, gbar_resize_monitor_cb, instance_ref(inst));
+ if (!gbar_monitor) {
+ ErrPrint("Failed to create a timer for GBAR Open monitor\n");
inst = instance_unref(inst);
if (!inst) {
DbgPrint("Instance is deleted\n");
}
} else {
- (void)instance_set_data(inst, PD_RESIZE_MONITOR_TAG, pd_monitor);
- if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_resize_buffer_cb, inst) != LB_STATUS_SUCCESS) {
+ (void)instance_set_data(inst, GBAR_RESIZE_MONITOR_TAG, gbar_monitor);
+ if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_resize_buffer_cb, inst) != DBOX_STATUS_ERROR_NONE) {
ErrPrint("Failed to add event handler: %s\n", pkgname);
}
}
}
} else {
- if (pd_monitor) {
- /*!
- * \note
- * If the instance has pd_monitor, the pd close requested from client via client_destroy_pd.
+ if (gbar_monitor) {
+ /**
+ * @note
+ * If the instance has gbar_monitor, the pd close requested from client via client_destroy_gbar.
*/
slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_fault_close_buffer_cb, inst);
- ecore_timer_del(pd_monitor);
+ ecore_timer_del(gbar_monitor);
inst = instance_unref(inst);
if (!inst) {
ErrPrint("Instance is released: %s\n", pkgname);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
goto out;
}
} /* else {
- \note
- This case means that the package is faulted so the service provider tries to release the buffer
- */
+ @note
+ This case means that the package is faulted so the service provider tries to release the buffer
+ */
- info = instance_pd_buffer(inst);
+ info = instance_gbar_buffer(inst);
ret = buffer_handler_unload(info);
- /*!
- * \note
- * Send the PD destroyed event to the client
+ /**
+ * @note
+ * Send the GBAR destroyed event to the client
*/
- instance_client_pd_destroyed(inst, ret);
+ instance_client_gbar_destroyed(inst, ret);
+ }
}
- }
out:
- result = packet_create_reply(packet, "i", ret);
- if (!result) {
- ErrPrint("Failed to create a packet\n");
+ result = packet_create_reply(packet, "i", ret);
+ if (!result) {
+ ErrPrint("Failed to create a packet\n");
+ }
+
+ return result;
}
- return result;
-}
+ static struct packet *slave_release_extra_buffer(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct slave_node *slave;
+ struct packet *result;
+ const char *id;
+ struct buffer_info *info = NULL;
+ int ret;
+ int idx;
+ int type;
+ const char *pkgname;
+ struct inst_info *inst;
+ const struct pkg_info *pkg;
-static struct packet *service_change_period(pid_t pid, int handle, const struct packet *packet)
-{
- struct inst_info *inst;
- struct packet *result;
- const char *pkgname;
- const char *id;
- double period;
- int ret;
+ slave = slave_find_by_pid(pid);
+ if (!slave) {
+ ErrPrint("Slave %d is not exists\n", pid);
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ goto out;
+ }
- ret = packet_get(packet, "ssd", &pkgname, &id, &period);
- if (ret != 3) {
- ErrPrint("Invalid packet\n");
- ret = LB_STATUS_ERROR_INVALID;
- goto out;
+ if (packet_get(packet, "issi", &type, &pkgname, &id, &idx) != 4) {
+ ErrPrint("Inavlid argument\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ ret = validate_request(pkgname, id, &inst, &pkg);
+ if (ret != DBOX_STATUS_ERROR_NONE) {
+ goto out;
+ }
+
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+
+ if (type == TYPE_DBOX && package_dbox_type(pkg) == DBOX_TYPE_BUFFER) {
+ info = instance_dbox_extra_buffer(inst, idx);
+ (void)instance_client_dbox_extra_buffer_destroyed(inst, idx);
+ } else if (type == TYPE_GBAR && package_gbar_type(pkg) == GBAR_TYPE_BUFFER) {
+ info = instance_gbar_extra_buffer(inst, idx);
+ (void)instance_client_gbar_extra_buffer_destroyed(inst, idx);
+ }
+
+ if (info) {
+ ret = buffer_handler_unload(info);
+ }
+
+out:
+ result = packet_create_reply(packet, "i", ret);
+ if (!result) {
+ ErrPrint("Failed to create a reply packet\n");
+ }
+
+ return result;
}
- if (!strlen(id)) {
+ static struct packet *service_instance_count(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct packet *result;
struct pkg_info *pkg;
+ double timestamp;
+ const char *pkgname;
+ const char *cluster;
+ const char *category;
+ Eina_List *pkg_list;
+ Eina_List *l;
+ Eina_List *inst_list;
+ Eina_List *inst_l;
+ struct inst_info *inst;
+ int ret;
- pkg = package_find(pkgname);
- if (!pkg) {
- ret = LB_STATUS_ERROR_NOT_EXIST;
- } else if (package_is_fault(pkg)) {
- ret = LB_STATUS_ERROR_FAULT;
- } else {
- Eina_List *inst_list;
- Eina_List *l;
+ ret = packet_get(packet, "sssd", &pkgname, &cluster, &category, &timestamp);
+ if (ret != 4) {
+ ErrPrint("Invalid packet\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ pkg_list = (Eina_List *)package_list();
+
+ ret = 0;
+ EINA_LIST_FOREACH(pkg_list, l, pkg) {
+ if (pkgname && pkgname[0]) {
+ if (strcmp(package_name(pkg), pkgname)) {
+ continue;
+ }
+ }
inst_list = package_instance_list(pkg);
- EINA_LIST_FOREACH(inst_list, l, inst) {
- ret = instance_set_period(inst, period);
- if (ret < 0) {
- ErrPrint("Failed to change the period of %s to (%lf)\n", pkgname, period);
+ EINA_LIST_FOREACH(inst_list, inst_l, inst) {
+ if (cluster && cluster[0]) {
+ if (strcmp(instance_cluster(inst), cluster)) {
+ continue;
+ }
+ }
+
+ if (category && category[0]) {
+ if (strcmp(instance_category(inst), category)) {
+ continue;
+ }
}
+
+ ret++;
}
}
- } else {
- ret = validate_request(pkgname, id, &inst, NULL);
- if (ret == (int)LB_STATUS_SUCCESS) {
- if (instance_state(inst) == INST_DESTROYED) {
- ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
- ret = LB_STATUS_ERROR_INVALID;
- goto out;
- }
- ret = instance_set_period(inst, period);
+out:
+ result = packet_create_reply(packet, "i", ret);
+ if (!result) {
+ ErrPrint("Failed to create a packet\n");
}
- }
- DbgPrint("Change the update period: %s, %lf : %d\n", pkgname, period, ret);
-out:
- result = packet_create_reply(packet, "i", ret);
- if (!result) {
- ErrPrint("Failed to create a packet\n");
+ return result;
}
- return result;
-}
+ static struct packet *service_change_period(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct inst_info *inst;
+ struct packet *result;
+ const char *pkgname;
+ const char *id;
+ double period;
+ int ret;
-static struct packet *service_update(pid_t pid, int handle, const struct packet *packet)
-{
- Eina_List *inst_list;
- struct pkg_info *pkg;
- struct packet *result;
- const char *pkgname;
- const char *id;
- const char *cluster;
- const char *category;
- const char *content;
- int force;
- char *lbid;
- int ret;
+ ret = packet_get(packet, "ssd", &pkgname, &id, &period);
+ if (ret != 3) {
+ ErrPrint("Invalid packet\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
- ret = packet_get(packet, "sssssi", &pkgname, &id, &cluster, &category, &content, &force);
- if (ret != 6) {
- ErrPrint("Invalid Packet\n");
- ret = LB_STATUS_ERROR_INVALID;
- goto out;
- }
+ if (!strlen(id)) {
+ struct pkg_info *pkg;
- lbid = package_lb_pkgname(pkgname);
- if (!lbid) {
- ErrPrint("Invalid package %s\n", pkgname);
- ret = LB_STATUS_ERROR_INVALID;
- goto out;
- }
+ pkg = package_find(pkgname);
+ if (!pkg) {
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ } else if (package_is_fault(pkg)) {
+ ret = DBOX_STATUS_ERROR_FAULT;
+ } else {
+ Eina_List *inst_list;
+ Eina_List *l;
+
+ inst_list = package_instance_list(pkg);
+ EINA_LIST_FOREACH(inst_list, l, inst) {
+ ret = instance_set_period(inst, period);
+ if (ret < 0) {
+ ErrPrint("Failed to change the period of %s to (%lf)\n", pkgname, period);
+ }
+ }
+ }
+ } else {
+ ret = validate_request(pkgname, id, &inst, NULL);
+ if (ret == (int)DBOX_STATUS_ERROR_NONE) {
+ if (instance_state(inst) == INST_DESTROYED) {
+ ErrPrint("Package[%s] instance is already destroyed\n", pkgname);
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
- pkg = package_find(lbid);
- if (!pkg) {
- ret = LB_STATUS_ERROR_NOT_EXIST;
- DbgFree(lbid);
- goto out;
- }
+ ret = instance_set_period(inst, period);
+ }
+ }
- if (package_is_fault(pkg)) {
- ret = LB_STATUS_ERROR_FAULT;
- DbgFree(lbid);
- goto out;
- }
+ DbgPrint("Change the update period: %s, %lf : %d\n", pkgname, period, ret);
+out:
+ result = packet_create_reply(packet, "i", ret);
+ if (!result) {
+ ErrPrint("Failed to create a packet\n");
+ }
- inst_list = package_instance_list(pkg);
- if (!eina_list_count(inst_list)) {
- ret = LB_STATUS_ERROR_NOT_EXIST;
- DbgFree(lbid);
- goto out;
+ return result;
}
- if (id && strlen(id)) {
- Eina_List *l;
- struct inst_info *inst;
+ static struct packet *service_update(pid_t pid, int handle, const struct packet *packet)
+ {
+ Eina_List *inst_list;
+ struct pkg_info *pkg;
+ struct packet *result;
+ const char *pkgname;
+ const char *id;
+ const char *cluster;
+ const char *category;
+ const char *content;
+ int force;
+ char *lbid;
+ int ret;
- ret = LB_STATUS_ERROR_NOT_EXIST;
- EINA_LIST_FOREACH(inst_list, l, inst) {
- if (!strcmp(instance_id(inst), id)) {
- ret = LB_STATUS_SUCCESS;
- break;
- }
+ ret = packet_get(packet, "sssssi", &pkgname, &id, &cluster, &category, &content, &force);
+ if (ret != 6) {
+ ErrPrint("Invalid Packet\n");
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
}
- if (ret == (int)LB_STATUS_ERROR_NOT_EXIST) {
+ lbid = package_dbox_pkgname(pkgname);
+ if (!lbid) {
+ ErrPrint("Invalid package %s\n", pkgname);
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ pkg = package_find(lbid);
+ if (!pkg) {
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
DbgFree(lbid);
goto out;
}
- }
- /*!
- * \TODO
- * Validate the update requstor.
- */
- slave_rpc_request_update(lbid, id, cluster, category, content, force);
- DbgFree(lbid);
- ret = LB_STATUS_SUCCESS;
+ if (package_is_fault(pkg)) {
+ ret = DBOX_STATUS_ERROR_FAULT;
+ DbgFree(lbid);
+ goto out;
+ }
-out:
- result = packet_create_reply(packet, "i", ret);
- if (!result) {
- ErrPrint("Failed to create a packet\n");
- }
+ inst_list = package_instance_list(pkg);
+ if (!eina_list_count(inst_list)) {
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ DbgFree(lbid);
+ goto out;
+ }
- return result;
-}
+ if (id && strlen(id)) {
+ Eina_List *l;
+ struct inst_info *inst;
-static struct packet *liveinfo_hello(pid_t pid, int handle, const struct packet *packet)
-{
- struct liveinfo *info;
- struct packet *result;
- int ret;
- const char *fifo_name;
- double timestamp;
+ ret = DBOX_STATUS_ERROR_NOT_EXIST;
+ EINA_LIST_FOREACH(inst_list, l, inst) {
+ if (!strcmp(instance_id(inst), id)) {
+ ret = DBOX_STATUS_ERROR_NONE;
+ break;
+ }
+ }
- DbgPrint("Request arrived from %d\n", pid);
+ if (ret == (int)DBOX_STATUS_ERROR_NOT_EXIST) {
+ DbgFree(lbid);
+ goto out;
+ }
+ }
- if (packet_get(packet, "d", &timestamp) != 1) {
- ErrPrint("Invalid packet\n");
- fifo_name = "";
- ret = LB_STATUS_ERROR_INVALID;
- goto out;
- }
+ /*!
+ * \TODO
+ * Validate the update requstor.
+ */
+ slave_rpc_request_update(lbid, id, cluster, category, content, force);
+ DbgFree(lbid);
+ ret = DBOX_STATUS_ERROR_NONE;
- info = liveinfo_create(pid, handle);
- if (!info) {
- ErrPrint("Failed to create a liveinfo object\n");
- fifo_name = "";
- ret = LB_STATUS_ERROR_INVALID;
- goto out;
+out:
+ result = packet_create_reply(packet, "i", ret);
+ if (!result) {
+ ErrPrint("Failed to create a packet\n");
+ }
+
+ return result;
}
- ret = 0;
- fifo_name = liveinfo_filename(info);
- DbgPrint("FIFO Created: %s (Serve for %d)\n", fifo_name, pid);
+ static struct packet *liveinfo_hello(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct liveinfo *info;
+ struct packet *result;
+ int ret;
+ const char *fifo_name;
+ double timestamp;
+
+ DbgPrint("Request arrived from %d\n", pid);
+
+ if (packet_get(packet, "d", &timestamp) != 1) {
+ ErrPrint("Invalid packet\n");
+ fifo_name = "";
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ info = liveinfo_create(pid, handle);
+ if (!info) {
+ ErrPrint("Failed to create a liveinfo object\n");
+ fifo_name = "";
+ ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ goto out;
+ }
+
+ ret = 0;
+ fifo_name = liveinfo_filename(info);
+ DbgPrint("FIFO Created: %s (Serve for %d)\n", fifo_name, pid);
out:
- result = packet_create_reply(packet, "si", fifo_name, ret);
- if (!result) {
- ErrPrint("Failed to create a result packet\n");
- }
+ result = packet_create_reply(packet, "si", fifo_name, ret);
+ if (!result) {
+ ErrPrint("Failed to create a result packet\n");
+ }
- return result;
-}
+ return result;
+ }
-static Eina_Bool lazy_slave_list_cb(void *info)
-{
- FILE *fp;
- Eina_List *list;
- Eina_List *l;
- struct slave_node *slave;
+ static Eina_Bool lazy_slave_list_cb(void *info)
+ {
+ FILE *fp;
+ Eina_List *list;
+ Eina_List *l;
+ struct slave_node *slave;
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ liveinfo_close_fifo(info);
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ list = (Eina_List *)slave_list();
+ EINA_LIST_FOREACH(list, l, slave) {
+ fprintf(fp, "%d %s %s %s %d %d %d %s %d %d %lf\n",
+ slave_pid(slave),
+ slave_name(slave),
+ slave_pkgname(slave),
+ slave_abi(slave),
+ slave_is_secured(slave),
+ slave_refcnt(slave),
+ slave_fault_count(slave),
+ slave_state_string(slave),
+ slave_loaded_instance(slave),
+ slave_loaded_package(slave),
+ slave_ttl(slave)
+ );
+ }
+
+ fprintf(fp, "EOD\n");
liveinfo_close_fifo(info);
return ECORE_CALLBACK_CANCEL;
}
- list = (Eina_List *)slave_list();
- EINA_LIST_FOREACH(list, l, slave) {
- fprintf(fp, "%d %s %s %s %d %d %d %s %d %d %lf\n",
- slave_pid(slave),
- slave_name(slave),
- slave_pkgname(slave),
- slave_abi(slave),
- slave_is_secured(slave),
- slave_refcnt(slave),
- slave_fault_count(slave),
- slave_state_string(slave),
- slave_loaded_instance(slave),
- slave_loaded_package(slave),
- slave_ttl(slave)
- );
- }
-
- fprintf(fp, "EOD\n");
- liveinfo_close_fifo(info);
- return ECORE_CALLBACK_CANCEL;
-}
+ static struct packet *liveinfo_slave_list(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct liveinfo *info;
+ double timestamp;
-static struct packet *liveinfo_slave_list(pid_t pid, int handle, const struct packet *packet)
-{
- struct liveinfo *info;
- double timestamp;
+ if (packet_get(packet, "d", &timestamp) != 1) {
+ ErrPrint("Invalid argument\n");
+ goto out;
+ }
- if (packet_get(packet, "d", &timestamp) != 1) {
- ErrPrint("Invalid argument\n");
- goto out;
- }
+ info = liveinfo_find_by_pid(pid);
+ if (!info) {
+ ErrPrint("Invalid request\n");
+ goto out;
+ }
- info = liveinfo_find_by_pid(pid);
- if (!info) {
- ErrPrint("Invalid request\n");
- goto out;
+ lazy_slave_list_cb(info);
+out:
+ return NULL;
}
- lazy_slave_list_cb(info);
-out:
- return NULL;
-}
+ static inline const char *visible_state_string(enum dynamicbox_visible_state state)
+ {
+ switch (state) {
+ case DBOX_SHOW:
+ return "Show";
+ case DBOX_HIDE:
+ return "Hide";
+ case DBOX_HIDE_WITH_PAUSE:
+ return "Paused";
+ default:
+ break;
+ }
-static inline const char *visible_state_string(enum livebox_visible_state state)
-{
- switch (state) {
- case LB_SHOW:
- return "Show";
- case LB_HIDE:
- return "Hide";
- case LB_HIDE_WITH_PAUSE:
- return "Paused";
- default:
- break;
+ return "Unknown";
}
- return "Unknown";
-}
+ static Eina_Bool inst_list_cb(void *info)
+ {
+ FILE *fp;
+ char *pkgname;
+ struct pkg_info *pkg;
+ Eina_List *l;
+ Eina_List *inst_list;
+ struct inst_info *inst;
-static Eina_Bool inst_list_cb(void *info)
-{
- FILE *fp;
- char *pkgname;
- struct pkg_info *pkg;
- Eina_List *l;
- Eina_List *inst_list;
- struct inst_info *inst;
+ pkgname = liveinfo_data(info);
+ if (!pkgname) {
+ return ECORE_CALLBACK_CANCEL;
+ }
- pkgname = liveinfo_data(info);
- if (!pkgname) {
- return ECORE_CALLBACK_CANCEL;
- }
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ ErrPrint("Invalid fp\n");
+ liveinfo_close_fifo(info);
+ free(pkgname);
+ return ECORE_CALLBACK_CANCEL;
+ }
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
- ErrPrint("Invalid fp\n");
- liveinfo_close_fifo(info);
- free(pkgname);
- return ECORE_CALLBACK_CANCEL;
- }
+ if (!package_is_dbox_pkgname(pkgname)) {
+ ErrPrint("Invalid package name\n");
+ free(pkgname);
+ goto close_out;
+ }
- if (!package_is_lb_pkgname(pkgname)) {
- ErrPrint("Invalid package name\n");
+ pkg = package_find(pkgname);
free(pkgname);
- goto close_out;
- }
+ if (!pkg) {
+ ErrPrint("Package is not exists\n");
+ goto close_out;
+ }
- pkg = package_find(pkgname);
- free(pkgname);
- if (!pkg) {
- ErrPrint("Package is not exists\n");
- goto close_out;
- }
+ inst_list = package_instance_list(pkg);
+ EINA_LIST_FOREACH(inst_list, l, inst) {
+ fprintf(fp, "%s %s %s %s %lf %s %d %d\n",
+ instance_id(inst),
+ buffer_handler_id(instance_dbox_buffer(inst)),
+ instance_cluster(inst),
+ instance_category(inst),
+ instance_period(inst),
+ visible_state_string(instance_visible_state(inst)),
+ instance_dbox_width(inst),
+ instance_dbox_height(inst));
+ }
+
+close_out:
+ fprintf(fp, "EOD\n");
+ liveinfo_close_fifo(info);
- inst_list = package_instance_list(pkg);
- EINA_LIST_FOREACH(inst_list, l, inst) {
- fprintf(fp, "%s %s %s %lf %s %d %d\n",
- instance_id(inst),
- instance_cluster(inst),
- instance_category(inst),
- instance_period(inst),
- visible_state_string(instance_visible_state(inst)),
- instance_lb_width(inst),
- instance_lb_height(inst));
+ return ECORE_CALLBACK_CANCEL;
}
-close_out:
- fprintf(fp, "EOD\n");
- liveinfo_close_fifo(info);
+ static struct packet *liveinfo_inst_list(pid_t pid, int handle, const struct packet *packet)
+ {
+ const char *pkgname;
+ char *dup_pkgname;
+ struct liveinfo *info;
- return ECORE_CALLBACK_CANCEL;
-}
+ if (packet_get(packet, "s", &pkgname) != 1) {
+ ErrPrint("Invalid argument\n");
+ goto out;
+ }
-static struct packet *liveinfo_inst_list(pid_t pid, int handle, const struct packet *packet)
-{
- const char *pkgname;
- char *dup_pkgname;
- struct liveinfo *info;
+ info = liveinfo_find_by_pid(pid);
+ if (!info) {
+ ErrPrint("Invalid request\n");
+ goto out;
+ }
- if (packet_get(packet, "s", &pkgname) != 1) {
- ErrPrint("Invalid argument\n");
- goto out;
- }
+ dup_pkgname = strdup(pkgname);
+ if (!dup_pkgname) {
+ ErrPrint("Invalid request\n");
+ goto out;
+ }
- info = liveinfo_find_by_pid(pid);
- if (!info) {
- ErrPrint("Invalid request\n");
- goto out;
- }
+ liveinfo_set_data(info, dup_pkgname);
+ inst_list_cb(info);
- dup_pkgname = strdup(pkgname);
- if (!dup_pkgname) {
- ErrPrint("Invalid request\n");
- goto out;
+out:
+ return NULL;
}
- liveinfo_set_data(info, dup_pkgname);
- inst_list_cb(info);
+ static Eina_Bool pkg_list_cb(void *info)
+ {
+ FILE *fp;
+ Eina_List *l;
+ Eina_List *list;
+ Eina_List *inst_list;
+ struct pkg_info *pkg;
+ struct slave_node *slave;
+ const char *slavename;
+ pid_t pid;
-out:
- return NULL;
-}
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ DbgPrint("Failed to open a pipe\n");
+ liveinfo_close_fifo(info);
+ return ECORE_CALLBACK_CANCEL;
+ }
-static Eina_Bool pkg_list_cb(void *info)
-{
- FILE *fp;
- Eina_List *l;
- Eina_List *list;
- Eina_List *inst_list;
- struct pkg_info *pkg;
- struct slave_node *slave;
- const char *slavename;
- pid_t pid;
+ list = (Eina_List *)package_list();
+ EINA_LIST_FOREACH(list, l, pkg) {
+ slave = package_slave(pkg);
+
+ if (slave) {
+ slavename = slave_name(slave);
+ pid = slave_pid(slave);
+ } else {
+ pid = (pid_t)-1;
+ slavename = "";
+ }
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
- DbgPrint("Failed to open a pipe\n");
+ inst_list = (Eina_List *)package_instance_list(pkg);
+ fprintf(fp, "%d %s %s %s %d %d %d\n",
+ pid,
+ strlen(slavename) ? slavename : "(none)",
+ package_name(pkg),
+ package_abi(pkg),
+ package_refcnt(pkg),
+ package_fault_count(pkg),
+ eina_list_count(inst_list)
+ );
+ DbgPrint("%d %s %s %s %d %d %d\n",
+ pid,
+ strlen(slavename) ? slavename : "(none)",
+ package_name(pkg),
+ package_abi(pkg),
+ package_refcnt(pkg),
+ package_fault_count(pkg),
+ eina_list_count(inst_list)
+ );
+ }
+
+ fprintf(fp, "EOD\n");
+ DbgPrint("EOD\n");
liveinfo_close_fifo(info);
return ECORE_CALLBACK_CANCEL;
}
- list = (Eina_List *)package_list();
- EINA_LIST_FOREACH(list, l, pkg) {
- slave = package_slave(pkg);
-
- if (slave) {
- slavename = slave_name(slave);
- pid = slave_pid(slave);
- } else {
- pid = (pid_t)-1;
- slavename = "";
- }
-
- inst_list = (Eina_List *)package_instance_list(pkg);
- fprintf(fp, "%d %s %s %s %d %d %d\n",
- pid,
- strlen(slavename) ? slavename : "(none)",
- package_name(pkg),
- package_abi(pkg),
- package_refcnt(pkg),
- package_fault_count(pkg),
- eina_list_count(inst_list)
- );
- DbgPrint("%d %s %s %s %d %d %d\n",
- pid,
- strlen(slavename) ? slavename : "(none)",
- package_name(pkg),
- package_abi(pkg),
- package_refcnt(pkg),
- package_fault_count(pkg),
- eina_list_count(inst_list)
- );
- }
-
- fprintf(fp, "EOD\n");
- DbgPrint("EOD\n");
- liveinfo_close_fifo(info);
- return ECORE_CALLBACK_CANCEL;
-}
+ static struct packet *liveinfo_pkg_list(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct liveinfo *info;
+ double timestamp;
-static struct packet *liveinfo_pkg_list(pid_t pid, int handle, const struct packet *packet)
-{
- struct liveinfo *info;
- double timestamp;
+ if (packet_get(packet, "d", &timestamp) != 1) {
+ ErrPrint("Invalid argument\n");
+ goto out;
+ }
- if (packet_get(packet, "d", &timestamp) != 1) {
- ErrPrint("Invalid argument\n");
- goto out;
- }
+ DbgPrint("Package List: %lf\n", timestamp);
- DbgPrint("Package List: %lf\n", timestamp);
+ info = liveinfo_find_by_pid(pid);
+ if (!info) {
+ ErrPrint("Invalid request\n");
+ goto out;
+ }
- info = liveinfo_find_by_pid(pid);
- if (!info) {
- ErrPrint("Invalid request\n");
- goto out;
+ pkg_list_cb(info);
+out:
+ return NULL;
}
- pkg_list_cb(info);
-out:
- return NULL;
-}
+ static struct packet *liveinfo_slave_ctrl(pid_t pid, int handle, const struct packet *packet)
+ {
+ return NULL;
+ }
-static struct packet *liveinfo_slave_ctrl(pid_t pid, int handle, const struct packet *packet)
-{
- return NULL;
-}
+ static Eina_Bool pkg_ctrl_rmpack_cb(void *info)
+ {
+ FILE *fp;
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ liveinfo_close_fifo(info);
+ return ECORE_CALLBACK_CANCEL;
+ }
-static Eina_Bool pkg_ctrl_rmpack_cb(void *info)
-{
- FILE *fp;
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
+ fprintf(fp, "%d\n", ENOSYS);
+ fprintf(fp, "EOD\n");
liveinfo_close_fifo(info);
return ECORE_CALLBACK_CANCEL;
}
- fprintf(fp, "%d\n", ENOSYS);
- fprintf(fp, "EOD\n");
- liveinfo_close_fifo(info);
- return ECORE_CALLBACK_CANCEL;
-}
+ static Eina_Bool pkg_ctrl_rminst_cb(void *info)
+ {
+ FILE *fp;
-static Eina_Bool pkg_ctrl_rminst_cb(void *info)
-{
- FILE *fp;
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ liveinfo_close_fifo(info);
+ return ECORE_CALLBACK_CANCEL;
+ }
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
+ fprintf(fp, "%d\n", (int)liveinfo_data(info));
+ fprintf(fp, "EOD\n");
liveinfo_close_fifo(info);
return ECORE_CALLBACK_CANCEL;
}
- fprintf(fp, "%d\n", (int)liveinfo_data(info));
- fprintf(fp, "EOD\n");
- liveinfo_close_fifo(info);
- return ECORE_CALLBACK_CANCEL;
-}
+ static Eina_Bool pkg_ctrl_faultinst_cb(void *info)
+ {
+ FILE *fp;
-static Eina_Bool pkg_ctrl_faultinst_cb(void *info)
-{
- FILE *fp;
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ liveinfo_close_fifo(info);
+ return ECORE_CALLBACK_CANCEL;
+ }
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
+ fprintf(fp, "%d\n", (int)liveinfo_data(info));
+ fprintf(fp, "EOD\n");
liveinfo_close_fifo(info);
return ECORE_CALLBACK_CANCEL;
}
- fprintf(fp, "%d\n", (int)liveinfo_data(info));
- fprintf(fp, "EOD\n");
- liveinfo_close_fifo(info);
- return ECORE_CALLBACK_CANCEL;
-}
-
-static struct packet *liveinfo_pkg_ctrl(pid_t pid, int handle, const struct packet *packet)
-{
- struct liveinfo *info;
- char *cmd;
- char *pkgname;
- char *id;
-
- if (packet_get(packet, "sss", &cmd, &pkgname, &id) != 3) {
- ErrPrint("Invalid argument\n");
- goto out;
- }
-
- info = liveinfo_find_by_pid(pid);
- if (!info) {
- ErrPrint("Invalid request\n");
- goto out;
- }
+ static struct packet *liveinfo_pkg_ctrl(pid_t pid, int handle, const struct packet *packet)
+ {
+ struct liveinfo *info;
+ char *cmd;
+ char *pkgname;
+ char *id;
- if (!strcmp(cmd, "rmpack")) {
- pkg_ctrl_rmpack_cb(info);
- } else if (!strcmp(cmd, "rminst")) {
- struct inst_info *inst;
- inst = package_find_instance_by_id(pkgname, id);
- if (!inst) {
- liveinfo_set_data(info, (void *)ENOENT);
- } else {
- (void)instance_destroy(inst, INSTANCE_DESTROY_DEFAULT);
- liveinfo_set_data(info, (void *)0);
+ if (packet_get(packet, "sss", &cmd, &pkgname, &id) != 3) {
+ ErrPrint("Invalid argument\n");
+ goto out;
}
- pkg_ctrl_rminst_cb(info);
- } else if (!strcmp(cmd, "faultinst")) {
- struct inst_info *inst;
- inst = package_find_instance_by_id(pkgname, id);
- if (!inst) {
- liveinfo_set_data(info, (void *)ENOENT);
- } else {
- struct pkg_info *pkg;
+ info = liveinfo_find_by_pid(pid);
+ if (!info) {
+ ErrPrint("Invalid request\n");
+ goto out;
+ }
- pkg = instance_package(inst);
- if (!pkg) {
- liveinfo_set_data(info, (void *)EFAULT);
+ if (!strcmp(cmd, "rmpack")) {
+ pkg_ctrl_rmpack_cb(info);
+ } else if (!strcmp(cmd, "rminst")) {
+ struct inst_info *inst;
+ inst = package_find_instance_by_id(pkgname, id);
+ if (!inst) {
+ liveinfo_set_data(info, (void *)ENOENT);
} else {
- (void)package_faulted(pkg, 1);
+ (void)instance_destroy(inst, DBOX_DESTROY_TYPE_DEFAULT);
liveinfo_set_data(info, (void *)0);
}
- }
-
- pkg_ctrl_faultinst_cb(info);
- }
-
-out:
- return NULL;
-}
-
-static Eina_Bool master_ctrl_cb(void *info)
-{
- FILE *fp;
- liveinfo_open_fifo(info);
- fp = liveinfo_fifo(info);
- if (!fp) {
- liveinfo_close_fifo(info);
- return ECORE_CALLBACK_CANCEL;
- }
- fprintf(fp, "%d\nEOD\n", (int)liveinfo_data(info));
- liveinfo_close_fifo(info);
-
- return ECORE_CALLBACK_CANCEL;
-}
-
-static struct packet *liveinfo_master_ctrl(pid_t pid, int handle, const struct packet *packet)
-{
- struct liveinfo *info;
- char *cmd;
- char *var;
- char *val;
- int ret = LB_STATUS_ERROR_INVALID;
-
- if (packet_get(packet, "sss", &cmd, &var, &val) != 3) {
- ErrPrint("Invalid argument\n");
- goto out;
- }
+ pkg_ctrl_rminst_cb(info);
+ } else if (!strcmp(cmd, "faultinst")) {
+ struct inst_info *inst;
+ inst = package_find_instance_by_id(pkgname, id);
+ if (!inst) {
+ liveinfo_set_data(info, (void *)ENOENT);
+ } else {
+ struct pkg_info *pkg;
- info = liveinfo_find_by_pid(pid);
- if (!info) {
- ErrPrint("Invalid request\n");
- goto out;
- }
+ pkg = instance_package(inst);
+ if (!pkg) {
+ liveinfo_set_data(info, (void *)EFAULT);
+ } else {
+ (void)package_faulted(pkg, 1);
+ liveinfo_set_data(info, (void *)0);
+ }
+ }
- if (!strcasecmp(var, "debug")) {
- if (!strcasecmp(cmd, "set")) {
- g_conf.debug_mode = !strcasecmp(val, "on");
- } else if (!strcasecmp(cmd, "get")) {
+ pkg_ctrl_faultinst_cb(info);
}
- ret = g_conf.debug_mode;
- } else if (!strcasecmp(var, "slave_max_load")) {
- if (!strcasecmp(cmd, "set")) {
- g_conf.slave_max_load = atoi(val);
- } else if (!strcasecmp(cmd, "get")) {
- }
- ret = g_conf.slave_max_load;
- }
-
- liveinfo_set_data(info, (void *)ret);
- master_ctrl_cb(info);
out:
- return NULL;
-}
-
-static struct method s_info_table[] = {
- {
- .cmd = "liveinfo_hello",
- .handler = liveinfo_hello,
- },
- {
- .cmd = "slave_list",
- .handler = liveinfo_slave_list,
- },
- {
- .cmd = "pkg_list",
- .handler = liveinfo_pkg_list,
- },
- {
- .cmd = "inst_list",
- .handler = liveinfo_inst_list,
- },
- {
- .cmd = "slave_ctrl",
- .handler = liveinfo_slave_ctrl,
- },
- {
- .cmd = "pkg_ctrl",
- .handler = liveinfo_pkg_ctrl,
- },
- {
- .cmd = "master_ctrl",
- .handler = liveinfo_master_ctrl,
- },
- {
- .cmd = NULL,
- .handler = NULL,
- },
-};
-
-static struct method s_client_table[] = {
- {
- .cmd = "pd_mouse_move",
- .handler = client_pd_mouse_move, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "lb_mouse_move",
- .handler = client_lb_mouse_move, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "pd_mouse_down",
- .handler = client_pd_mouse_down, /* pid, pkgname, id, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "pd_mouse_up",
- .handler = client_pd_mouse_up, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "lb_mouse_down",
- .handler = client_lb_mouse_down, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "lb_mouse_up",
- .handler = client_lb_mouse_up, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "pd_mouse_enter",
- .handler = client_pd_mouse_enter, /* pid, pkgname, id, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "pd_mouse_leave",
- .handler = client_pd_mouse_leave, /* pid, pkgname, id, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "lb_mouse_enter",
- .handler = client_lb_mouse_enter, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "lb_mouse_leave",
- .handler = client_lb_mouse_leave, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
- },
- {
- .cmd = "lb_mouse_set",
- .handler = client_lb_mouse_set,
- },
- {
- .cmd = "lb_mouse_unset",
- .handler = client_lb_mouse_unset,
- },
- {
- .cmd = "pd_mouse_set",
- .handler = client_pd_mouse_set,
- },
- {
- .cmd = "pd_mouse_unset",
- .handler = client_pd_mouse_unset,
- },
- {
- .cmd = "lb_mouse_on_scroll",
- .handler = client_lb_mouse_on_scroll,
- },
- {
- .cmd = "lb_mouse_off_scroll",
- .handler = client_lb_mouse_off_scroll,
- },
- {
- .cmd = "pd_mouse_on_scroll",
- .handler = client_pd_mouse_on_scroll,
- },
- {
- .cmd = "pd_mouse_off_scroll",
- .handler = client_pd_mouse_off_scroll,
- },
- {
- .cmd = "lb_mouse_on_hold",
- .handler = client_lb_mouse_on_hold,
- },
- {
- .cmd = "lb_mouse_off_hold",
- .handler = client_lb_mouse_off_hold,
- },
- {
- .cmd = "pd_mouse_on_hold",
- .handler = client_pd_mouse_on_hold,
- },
- {
- .cmd = "pd_mouse_off_hold",
- .handler = client_pd_mouse_off_hold,
- },
- {
- .cmd = "change,visibility",
- .handler = client_change_visibility,
- },
- {
- .cmd = "lb_acquire_pixmap",
- .handler = client_lb_acquire_pixmap,
- },
- {
- .cmd = "lb_release_pixmap",
- .handler = client_lb_release_pixmap,
- },
- {
- .cmd = "pd_acquire_pixmap",
- .handler = client_pd_acquire_pixmap,
- },
- {
- .cmd = "pd_release_pixmap",
- .handler = client_pd_release_pixmap,
- },
- {
- .cmd = "acquire",
- .handler = client_acquire, /*!< pid, ret */
- },
- {
- .cmd = "release",
- .handler = cilent_release, /*!< pid, ret */
- },
- {
- .cmd = "clicked",
- .handler = client_clicked, /*!< pid, pkgname, filename, event, timestamp, x, y, ret */
- },
- {
- .cmd = "text_signal",
- .handler = client_text_signal, /* pid, pkgname, filename, emission, source, s, sy, ex, ey, ret */
- },
- {
- .cmd = "delete",
- .handler = client_delete, /* pid, pkgname, filename, ret */
- },
- {
- .cmd = "resize",
- .handler = client_resize, /* pid, pkgname, filename, w, h, ret */
- },
- {
- .cmd = "new",
- .handler = client_new, /* pid, timestamp, pkgname, content, cluster, category, period, ret */
- },
- {
- .cmd = "set_period",
- .handler = client_set_period, /* pid, pkgname, filename, period, ret, period */
- },
- {
- .cmd = "change_group",
- .handler = client_change_group, /* pid, pkgname, filename, cluster, category, ret */
- },
- {
- .cmd = "pinup_changed",
- .handler = client_pinup_changed, /* pid, pkgname, filename, pinup, ret */
- },
- {
- .cmd = "create_pd",
- .handler = client_create_pd, /* pid, pkgname, filename, ret */
- },
- {
- .cmd = "pd_move",
- .handler = client_pd_move, /* pkgname, id, x, y */
- },
- {
- .cmd = "destroy_pd",
- .handler = client_destroy_pd, /* pid, pkgname, filename, ret */
- },
- {
- .cmd = "activate_package",
- .handler = client_activate_package, /* pid, pkgname, ret */
- },
- {
- .cmd = "subscribe", /* pid, cluster, sub-cluster */
- .handler = client_subscribed,
- },
- {
- .cmd = "unsubscribe", /* pid, cluster, sub-cluster */
- .handler = client_unsubscribed,
- },
- {
- .cmd = "delete_cluster",
- .handler = client_delete_cluster,
- },
- {
- .cmd = "delete_category",
- .handler = client_delete_category,
- },
- {
- .cmd = "refresh_group",
- .handler = client_refresh_group,
- },
- {
- .cmd = "update",
- .handler = client_update,
- },
-
- {
- .cmd = "pd_access_hl",
- .handler = client_pd_access_hl,
- },
- {
- .cmd = "pd_access_hl_prev",
- .handler = client_pd_access_hl_prev,
- },
- {
- .cmd = "pd_access_hl_next",
- .handler = client_pd_access_hl_next,
- },
- {
- .cmd = "pd_access_activate",
- .handler = client_pd_access_activate,
- },
- {
- .cmd = "pd_access_action_up",
- .handler = client_pd_access_action_up,
- },
- {
- .cmd = "pd_access_action_down",
- .handler = client_pd_access_action_down,
- },
- {
- .cmd = "pd_access_unhighlight",
- .handler = client_pd_access_unhighlight,
- },
- {
- .cmd = "pd_access_scroll_down",
- .handler = client_pd_access_scroll_down,
- },
- {
- .cmd = "pd_access_scroll_move",
- .handler = client_pd_access_scroll_move,
- },
- {
- .cmd = "pd_access_scroll_up",
- .handler = client_pd_access_scroll_up,
- },
+ return NULL;
+ }
+ static Eina_Bool master_ctrl_cb(void *info)
{
- .cmd = "lb_access_hl",
- .handler = client_lb_access_hl,
- },
- {
- .cmd = "lb_access_hl_prev",
- .handler = client_lb_access_hl_prev,
- },
- {
- .cmd = "lb_access_hl_next",
- .handler = client_lb_access_hl_next,
- },
- {
- .cmd = "lb_access_activate",
- .handler = client_lb_access_activate,
- },
- {
- .cmd = "lb_access_action_up",
- .handler = client_lb_access_action_up,
- },
- {
- .cmd = "lb_access_action_down",
- .handler = client_lb_access_action_down,
- },
- {
- .cmd = "lb_access_unhighlight",
- .handler = client_lb_access_unhighlight,
- },
- {
- .cmd = "lb_access_scroll_down",
- .handler = client_lb_access_scroll_down,
- },
- {
- .cmd = "lb_access_scroll_move",
- .handler = client_lb_access_scroll_move,
- },
- {
- .cmd = "lb_access_scroll_up",
- .handler = client_lb_access_scroll_up,
- },
+ FILE *fp;
- {
- .cmd = "lb_key_down",
- .handler = client_lb_key_down,
- },
- {
- .cmd = "lb_key_up",
- .handler = client_lb_key_up,
- },
- {
- .cmd = "lb_key_focus_in",
- .handler = client_lb_key_focus_in,
- },
- {
- .cmd = "lb_key_focus_out",
- .handler = client_lb_key_focus_out,
- },
- {
- .cmd = "lb_key_set",
- .handler = client_lb_key_set,
- },
- {
- .cmd = "lb_key_unset",
- .handler = client_lb_key_unset,
- },
+ liveinfo_open_fifo(info);
+ fp = liveinfo_fifo(info);
+ if (!fp) {
+ liveinfo_close_fifo(info);
+ return ECORE_CALLBACK_CANCEL;
+ }
+ fprintf(fp, "%d\nEOD\n", (int)liveinfo_data(info));
+ liveinfo_close_fifo(info);
- {
- .cmd = "pd_key_down",
- .handler = client_pd_key_down,
- },
- {
- .cmd = "pd_key_up",
- .handler = client_pd_key_up,
- },
- {
- .cmd = "pd_key_focus_in",
- .handler = client_pd_key_focus_in,
- },
- {
- .cmd = "pd_key_focus_out",
- .handler = client_pd_key_focus_out,
- },
- {
- .cmd = "pd_key_set",
- .handler = client_pd_key_set,
- },
- {
- .cmd = "pd_key_unset",
- .handler = client_pd_key_unset,
- },
+ return ECORE_CALLBACK_CANCEL;
+ }
+ static struct packet *liveinfo_master_ctrl(pid_t pid, int handle, const struct packet *packet)
{
- .cmd = "client_paused",
- .handler = client_pause_request,
- },
- {
- .cmd = "client_resumed",
- .handler = client_resume_request,
- },
+ struct liveinfo *info;
+ char *cmd;
+ char *var;
+ char *val;
+ int ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
+
+ if (packet_get(packet, "sss", &cmd, &var, &val) != 3) {
+ ErrPrint("Invalid argument\n");
+ goto out;
+ }
- {
- .cmd = "update_mode",
- .handler = client_update_mode,
- },
+ info = liveinfo_find_by_pid(pid);
+ if (!info) {
+ ErrPrint("Invalid request\n");
+ goto out;
+ }
- {
- .cmd = NULL,
- .handler = NULL,
- },
-};
+ if (!strcasecmp(var, "debug")) {
+ if (!strcasecmp(cmd, "set")) {
+ g_conf.debug_mode = !strcasecmp(val, "on");
+ } else if (!strcasecmp(cmd, "get")) {
+ }
+ ret = g_conf.debug_mode;
+ } else if (!strcasecmp(var, "slave_max_load")) {
+ if (!strcasecmp(cmd, "set")) {
+ g_conf.slave_max_load = atoi(val);
+ } else if (!strcasecmp(cmd, "get")) {
+ }
+ ret = g_conf.slave_max_load;
+ }
-static struct method s_service_table[] = {
- {
- .cmd = "service_update",
- .handler = service_update,
- },
- {
- .cmd = "service_change_period",
- .handler = service_change_period,
- },
- {
- .cmd = NULL,
- .handler = NULL,
- },
-};
+ liveinfo_set_data(info, (void *)ret);
+ master_ctrl_cb(info);
-static struct method s_slave_table[] = {
- {
- .cmd = "call",
- .handler = slave_call, /* slave_name, pkgname, filename, function, ret */
- },
- {
- .cmd = "ret",
- .handler = slave_ret, /* slave_name, pkgname, filename, function, ret */
- },
- {
- .cmd = "updated",
- .handler = slave_updated, /* slave_name, pkgname, filename, width, height, priority, ret */
- },
- {
- .cmd = "desc_updated",
- .handler = slave_desc_updated, /* slave_name, pkgname, filename, decsfile, ret */
- },
- {
- .cmd = "deleted",
- .handler = slave_deleted, /* slave_name, pkgname, filename, ret */
- },
- {
- .cmd = "acquire_buffer",
- .handler = slave_acquire_buffer, /* slave_name, id, w, h, size, - out - type, shmid */
- },
- {
- .cmd = "resize_buffer",
- .handler = slave_resize_buffer,
- },
- {
- .cmd = "release_buffer",
- .handler = slave_release_buffer, /* slave_name, id - ret */
- },
- {
- .cmd = "faulted",
- .handler = slave_faulted, /* slave_name, pkgname, id, funcname */
- },
+out:
+ return NULL;
+ }
+
+ static struct method s_info_table[] = {
+ {
+ .cmd = CMD_STR_INFO_HELLO,
+ .handler = liveinfo_hello,
+ },
+ {
+ .cmd = CMD_STR_INFO_SLAVE_LIST,
+ .handler = liveinfo_slave_list,
+ },
+ {
+ .cmd = CMD_STR_INFO_PKG_LIST,
+ .handler = liveinfo_pkg_list,
+ },
+ {
+ .cmd = CMD_STR_INFO_INST_LIST,
+ .handler = liveinfo_inst_list,
+ },
+ {
+ .cmd = CMD_STR_INFO_SLAVE_CTRL,
+ .handler = liveinfo_slave_ctrl,
+ },
+ {
+ .cmd = CMD_STR_INFO_PKG_CTRL,
+ .handler = liveinfo_pkg_ctrl,
+ },
+ {
+ .cmd = CMD_STR_INFO_MASTER_CTRL,
+ .handler = liveinfo_master_ctrl,
+ },
+ {
+ .cmd = NULL,
+ .handler = NULL,
+ },
+ };
+
+ static struct method s_client_table[] = {
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_MOVE,
+ .handler = client_gbar_mouse_move, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_MOVE,
+ .handler = client_dbox_mouse_move, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_DOWN,
+ .handler = client_gbar_mouse_down, /* pid, pkgname, id, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_UP,
+ .handler = client_gbar_mouse_up, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_DOWN,
+ .handler = client_dbox_mouse_down, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_UP,
+ .handler = client_dbox_mouse_up, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_ENTER,
+ .handler = client_gbar_mouse_enter, /* pid, pkgname, id, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_LEAVE,
+ .handler = client_gbar_mouse_leave, /* pid, pkgname, id, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_ENTER,
+ .handler = client_dbox_mouse_enter, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_LEAVE,
+ .handler = client_dbox_mouse_leave, /* pid, pkgname, filename, width, height, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_ON_SCROLL,
+ .handler = client_dbox_mouse_on_scroll,
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_OFF_SCROLL,
+ .handler = client_dbox_mouse_off_scroll,
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_ON_SCROLL,
+ .handler = client_gbar_mouse_on_scroll,
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_OFF_SCROLL,
+ .handler = client_gbar_mouse_off_scroll,
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_ON_HOLD,
+ .handler = client_dbox_mouse_on_hold,
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_OFF_HOLD,
+ .handler = client_dbox_mouse_off_hold,
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_ON_HOLD,
+ .handler = client_gbar_mouse_on_hold,
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_OFF_HOLD,
+ .handler = client_gbar_mouse_off_hold,
+ },
+ {
+ .cmd = CMD_STR_CLICKED,
+ .handler = client_clicked, /*!< pid, pkgname, filename, event, timestamp, x, y, ret */
+ },
+ {
+ .cmd = CMD_STR_TEXT_SIGNAL,
+ .handler = client_text_signal, /* pid, pkgname, filename, emission, source, s, sy, ex, ey, ret */
+ },
+ {
+ .cmd = CMD_STR_DELETE,
+ .handler = client_delete, /* pid, pkgname, filename, ret */
+ },
+ {
+ .cmd = CMD_STR_RESIZE,
+ .handler = client_resize, /* pid, pkgname, filename, w, h, ret */
+ },
+ {
+ .cmd = CMD_STR_NEW,
+ .handler = client_new, /* pid, timestamp, pkgname, content, cluster, category, period, ret */
+ },
+ {
+ .cmd = CMD_STR_SET_PERIOD,
+ .handler = client_set_period, /* pid, pkgname, filename, period, ret, period */
+ },
+ {
+ .cmd = CMD_STR_CHANGE_GROUP,
+ .handler = client_change_group, /* pid, pkgname, filename, cluster, category, ret */
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOVE,
+ .handler = client_gbar_move, /* pkgname, id, x, y */
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_HL,
+ .handler = client_gbar_access_hl,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_ACTIVATE,
+ .handler = client_gbar_access_activate,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_ACTION,
+ .handler = client_gbar_access_action,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_SCROLL,
+ .handler = client_gbar_access_scroll,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_VALUE_CHANGE,
+ .handler = client_gbar_access_value_change,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_MOUSE,
+ .handler = client_gbar_access_mouse,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_BACK,
+ .handler = client_gbar_access_back,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_OVER,
+ .handler = client_gbar_access_over,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_READ,
+ .handler = client_gbar_access_read,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACCESS_ENABLE,
+ .handler = client_gbar_access_enable,
+ },
+
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_HL,
+ .handler = client_dbox_access_hl,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_ACTIVATE,
+ .handler = client_dbox_access_activate,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_ACTION,
+ .handler = client_dbox_access_action,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_SCROLL,
+ .handler = client_dbox_access_scroll,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_VALUE_CHANGE,
+ .handler = client_dbox_access_value_change,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_MOUSE,
+ .handler = client_dbox_access_mouse,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_BACK,
+ .handler = client_dbox_access_back,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_OVER,
+ .handler = client_dbox_access_over,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_READ,
+ .handler = client_dbox_access_read,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACCESS_ENABLE,
+ .handler = client_dbox_access_enable,
+ },
+ {
+ .cmd = CMD_STR_DBOX_KEY_DOWN,
+ .handler = client_dbox_key_down,
+ },
+ {
+ .cmd = CMD_STR_DBOX_KEY_UP,
+ .handler = client_dbox_key_up,
+ },
+ {
+ .cmd = CMD_STR_DBOX_KEY_FOCUS_IN,
+ .handler = client_dbox_key_focus_in,
+ },
+ {
+ .cmd = CMD_STR_DBOX_KEY_FOCUS_OUT,
+ .handler = client_dbox_key_focus_out,
+ },
+ {
+ .cmd = CMD_STR_GBAR_KEY_DOWN,
+ .handler = client_gbar_key_down,
+ },
+ {
+ .cmd = CMD_STR_GBAR_KEY_UP,
+ .handler = client_gbar_key_up,
+ },
+ {
+ .cmd = CMD_STR_GBAR_KEY_FOCUS_IN,
+ .handler = client_gbar_key_focus_in,
+ },
+ {
+ .cmd = CMD_STR_GBAR_KEY_FOCUS_OUT,
+ .handler = client_gbar_key_focus_out,
+ },
+ {
+ .cmd = CMD_STR_UPDATE_MODE,
+ .handler = client_update_mode,
+ },
+ // Cut HERE. Above list must be sync'd with provider list.
+
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_SET,
+ .handler = client_dbox_mouse_set,
+ },
+ {
+ .cmd = CMD_STR_DBOX_MOUSE_UNSET,
+ .handler = client_dbox_mouse_unset,
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_SET,
+ .handler = client_gbar_mouse_set,
+ },
+ {
+ .cmd = CMD_STR_GBAR_MOUSE_UNSET,
+ .handler = client_gbar_mouse_unset,
+ },
+ {
+ .cmd = CMD_STR_CHANGE_VISIBILITY,
+ .handler = client_change_visibility,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACQUIRE_PIXMAP,
+ .handler = client_dbox_acquire_pixmap,
+ },
+ {
+ .cmd = CMD_STR_DBOX_RELEASE_PIXMAP,
+ .handler = client_dbox_release_pixmap,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACQUIRE_PIXMAP,
+ .handler = client_gbar_acquire_pixmap,
+ },
+ {
+ .cmd = CMD_STR_GBAR_RELEASE_PIXMAP,
+ .handler = client_gbar_release_pixmap,
+ },
+ {
+ .cmd = CMD_STR_ACQUIRE,
+ .handler = client_acquire, /*!< pid, ret */
+ },
+ {
+ .cmd = CMD_STR_RELEASE,
+ .handler = cilent_release, /*!< pid, ret */
+ },
+ {
+ .cmd = CMD_STR_PINUP_CHANGED,
+ .handler = client_pinup_changed, /* pid, pkgname, filename, pinup, ret */
+ },
+ {
+ .cmd = CMD_STR_CREATE_GBAR,
+ .handler = client_create_gbar, /* pid, pkgname, filename, ret */
+ },
+ {
+ .cmd = CMD_STR_DESTROY_GBAR,
+ .handler = client_destroy_gbar, /* pid, pkgname, filename, ret */
+ },
+ {
+ .cmd = CMD_STR_ACTIVATE_PACKAGE,
+ .handler = client_activate_package, /* pid, pkgname, ret */
+ },
+ {
+ .cmd = CMD_STR_SUBSCRIBE, /* pid, cluster, sub-cluster */
+ .handler = client_subscribed,
+ },
+ {
+ .cmd = CMD_STR_UNSUBSCRIBE, /* pid, cluster, sub-cluster */
+ .handler = client_unsubscribed,
+ },
+ {
+ .cmd = CMD_STR_DELETE_CLUSTER,
+ .handler = client_delete_cluster,
+ },
+ {
+ .cmd = CMD_STR_DELETE_CATEGORY,
+ .handler = client_delete_category,
+ },
+ {
+ .cmd = CMD_STR_REFRESH_GROUP,
+ .handler = client_refresh_group,
+ },
+ {
+ .cmd = CMD_STR_UPDATE,
+ .handler = client_update,
+ },
+
+ {
+ .cmd = CMD_STR_DBOX_KEY_SET,
+ .handler = client_dbox_key_set,
+ },
+ {
+ .cmd = CMD_STR_DBOX_KEY_UNSET,
+ .handler = client_dbox_key_unset,
+ },
+
+ {
+ .cmd = CMD_STR_GBAR_KEY_SET,
+ .handler = client_gbar_key_set,
+ },
+ {
+ .cmd = CMD_STR_GBAR_KEY_UNSET,
+ .handler = client_gbar_key_unset,
+ },
+
+ {
+ .cmd = CMD_STR_CLIENT_PAUSED,
+ .handler = client_pause_request,
+ },
+ {
+ .cmd = CMD_STR_CLIENT_RESUMED,
+ .handler = client_resume_request,
+ },
+ {
+ .cmd = CMD_STR_DBOX_ACQUIRE_XPIXMAP,
+ .handler = client_dbox_acquire_xpixmap,
+ },
+ {
+ .cmd = CMD_STR_GBAR_ACQUIRE_XPIXMAP,
+ .handler = client_gbar_acquire_xpixmap,
+ },
+
+ {
+ .cmd = NULL,
+ .handler = NULL,
+ },
+ };
+
+ static struct method s_service_table[] = {
+ {
+ .cmd = CMD_STR_SERVICE_UPDATE,
+ .handler = service_update,
+ },
+ {
+ .cmd = CMD_STR_SERVICE_CHANGE_PERIOD,
+ .handler = service_change_period,
+ },
+ {
+ .cmd = CMD_STR_SERVICE_INST_CNT,
+ .handler = service_instance_count,
+ },
+ {
+ .cmd = NULL,
+ .handler = NULL,
+ },
+ };
+
+ static struct method s_slave_table[] = {
+ {
+ .cmd = CMD_STR_UPDATED,
+ .handler = slave_updated, /* slave_name, pkgname, filename, width, height, ret */
+ },
+ {
+ .cmd = CMD_STR_DESC_UPDATED,
+ .handler = slave_desc_updated, /* slave_name, pkgname, filename, decsfile, ret */
+ },
+ {
+ .cmd = CMD_STR_EXTRA_UPDATED,
+ .handler = slave_extra_updated,
+ },
+ {
+ .cmd = CMD_STR_EXTRA_INFO,
+ .handler = slave_extra_info, /* slave_name, pkgname, filename, priority, content_info, title, icon, name */
+ },
+ {
+ .cmd = CMD_STR_DELETED,
+ .handler = slave_deleted, /* slave_name, pkgname, filename, ret */
+ },
+ {
+ .cmd = CMD_STR_FAULTED,
+ .handler = slave_faulted, /* slave_name, pkgname, id, funcname */
+ },
+ {
+ .cmd = CMD_STR_SCROLL,
+ .handler = slave_hold_scroll, /* slave_name, pkgname, id, seize */
+ },
+
+ {
+ .cmd = CMD_STR_DBOX_UPDATE_BEGIN,
+ .handler = slave_dbox_update_begin,
+ },
+ {
+ .cmd = CMD_STR_DBOX_UPDATE_END,
+ .handler = slave_dbox_update_end,
+ },
+ {
+ .cmd = CMD_STR_GBAR_UPDATE_BEGIN,
+ .handler = slave_gbar_update_begin,
+ },
+ {
+ .cmd = CMD_STR_GBAR_UPDATE_END,
+ .handler = slave_gbar_update_end,
+ },
+
+ {
+ .cmd = CMD_STR_ACCESS_STATUS,
+ .handler = slave_access_status,
+ },
+ {
+ .cmd = CMD_STR_KEY_STATUS,
+ .handler = slave_key_status,
+ },
+ {
+ .cmd = CMD_STR_CLOSE_GBAR,
+ .handler = slave_close_gbar,
+ },
+
+ {
+ .cmd = CMD_STR_CALL,
+ .handler = slave_call, /* slave_name, pkgname, filename, function, ret */
+ },
+ {
+ .cmd = CMD_STR_RET,
+ .handler = slave_ret, /* slave_name, pkgname, filename, function, ret */
+ },
+ {
+ .cmd = CMD_STR_ACQUIRE_BUFFER,
+ .handler = slave_acquire_buffer, /* slave_name, id, w, h, size, - out - type, shmid */
+ },
+ {
+ .cmd = CMD_STR_RESIZE_BUFFER,
+ .handler = slave_resize_buffer,
+ },
+ {
+ .cmd = CMD_STR_RELEASE_BUFFER,
+ .handler = slave_release_buffer, /* slave_name, id - ret */
+ },
+ {
+ .cmd = CMD_STR_HELLO,
+ .handler = slave_hello, /* slave_name, ret */
+ },
+ {
+ .cmd = CMD_STR_PING,
+ .handler = slave_ping, /* slave_name, ret */
+ },
+ {
+ .cmd = CMD_STR_CTRL,
+ .handler = slave_ctrl, /* control bits */
+ },
+
+ {
+ .cmd = CMD_STR_ACQUIRE_XBUFFER,
+ .handler = slave_acquire_extra_buffer,
+ },
+ {
+ .cmd = CMD_STR_RELEASE_XBUFFER,
+ .handler = slave_release_extra_buffer,
+ },
+
+ {
+ .cmd = NULL,
+ .handler = NULL,
+ },
+ };
+
+ HAPI int server_init(void)
{
- .cmd = "scroll",
- .handler = slave_hold_scroll, /* slave_name, pkgname, id, seize */
- },
+ com_core_packet_use_thread(DYNAMICBOX_CONF_COM_CORE_THREAD);
- {
- .cmd = "lb_update_begin",
- .handler = slave_lb_update_begin,
- },
- {
- .cmd = "lb_update_end",
- .handler = slave_lb_update_end,
- },
- {
- .cmd = "pd_update_begin",
- .handler = slave_pd_update_begin,
- },
- {
- .cmd = "pd_update_end",
- .handler = slave_pd_update_end,
- },
+ if (unlink(INFO_SOCKET) < 0) {
+ ErrPrint("info socket: %s\n", strerror(errno));
+ }
- {
- .cmd = "access_status",
- .handler = slave_access_status,
- },
- {
- .cmd = "key_status",
- .handler = slave_key_status,
- },
- {
- .cmd = "close_pd",
- .handler = slave_close_pd,
- },
+ if (unlink(SLAVE_SOCKET) < 0) {
+ ErrPrint("slave socket: %s\n", strerror(errno));
+ }
- {
- .cmd = "hello",
- .handler = slave_hello, /* slave_name, ret */
- },
- {
- .cmd = "ping",
- .handler = slave_ping, /* slave_name, ret */
- },
- {
- .cmd = "ctrl",
- .handler = slave_ctrl, /* control bits */
- },
+ if (unlink(CLIENT_SOCKET) < 0) {
+ ErrPrint("client socket: %s\n", strerror(errno));
+ }
- {
- .cmd = NULL,
- .handler = NULL,
- },
-};
+ if (unlink(SERVICE_SOCKET) < 0) {
+ ErrPrint("service socket: %s\n", strerror(errno));
+ }
-HAPI int server_init(void)
-{
- com_core_packet_use_thread(COM_CORE_THREAD);
+ s_info.info_fd = com_core_packet_server_init(INFO_SOCKET, s_info_table);
+ if (s_info.info_fd < 0) {
+ ErrPrint("Failed to create a info socket\n");
+ }
- if (unlink(INFO_SOCKET) < 0) {
- ErrPrint("info socket: %s\n", strerror(errno));
- }
+ s_info.slave_fd = com_core_packet_server_init(SLAVE_SOCKET, s_slave_table);
+ if (s_info.slave_fd < 0) {
+ ErrPrint("Failed to create a slave socket\n");
+ }
- if (unlink(SLAVE_SOCKET) < 0) {
- ErrPrint("slave socket: %s\n", strerror(errno));
- }
+ smack_fsetlabel(s_info.slave_fd, "data-provider-master::provider", SMACK_LABEL_IPIN);
+ smack_fsetlabel(s_info.slave_fd, "data-provider-master::provider", SMACK_LABEL_IPOUT);
- if (unlink(CLIENT_SOCKET) < 0) {
- ErrPrint("client socket: %s\n", strerror(errno));
- }
+ s_info.client_fd = com_core_packet_server_init(CLIENT_SOCKET, s_client_table);
+ if (s_info.client_fd < 0) {
+ ErrPrint("Failed to create a client socket\n");
+ }
- if (unlink(SERVICE_SOCKET) < 0) {
- ErrPrint("service socket: %s\n", strerror(errno));
- }
+ smack_fsetlabel(s_info.client_fd, "data-provider-master::client", SMACK_LABEL_IPIN);
+ smack_fsetlabel(s_info.client_fd, "data-provider-master::client", SMACK_LABEL_IPOUT);
- s_info.info_fd = com_core_packet_server_init(INFO_SOCKET, s_info_table);
- if (s_info.info_fd < 0) {
- ErrPrint("Failed to create a info socket\n");
- }
+ /*!
+ * \note
+ * remote://:8208
+ * Skip address to use the NULL.
+ */
+ s_info.remote_client_fd = com_core_packet_server_init("remote://:"CLIENT_PORT, s_client_table);
+ if (s_info.client_fd < 0) {
+ ErrPrint("Failed to create a remote client socket\n");
+ }
- s_info.slave_fd = com_core_packet_server_init(SLAVE_SOCKET, s_slave_table);
- if (s_info.slave_fd < 0) {
- ErrPrint("Failed to create a slave socket\n");
- }
+ smack_fsetlabel(s_info.remote_client_fd, "data-provider-master::client", SMACK_LABEL_IPIN);
+ smack_fsetlabel(s_info.remote_client_fd, "data-provider-master::client", SMACK_LABEL_IPOUT);
- s_info.client_fd = com_core_packet_server_init(CLIENT_SOCKET, s_client_table);
- if (s_info.client_fd < 0) {
- ErrPrint("Failed to create a client socket\n");
- }
+ s_info.service_fd = com_core_packet_server_init(SERVICE_SOCKET, s_service_table);
+ if (s_info.service_fd < 0) {
+ ErrPrint("Faild to create a service socket\n");
+ }
- /*!
- * \note
- * remote://:8208
- * Skip address to use the NULL.
- */
- s_info.remote_client_fd = com_core_packet_server_init("remote://:"CLIENT_PORT, s_client_table);
- if (s_info.client_fd < 0) {
- ErrPrint("Failed to create a remote client socket\n");
- }
+ smack_fsetlabel(s_info.service_fd, "data-provider-master", SMACK_LABEL_IPIN);
+ smack_fsetlabel(s_info.service_fd, "data-provider-master", SMACK_LABEL_IPOUT);
- s_info.service_fd = com_core_packet_server_init(SERVICE_SOCKET, s_service_table);
- if (s_info.service_fd < 0) {
- ErrPrint("Faild to create a service socket\n");
- }
+ if (chmod(INFO_SOCKET, 0600) < 0) {
+ ErrPrint("info socket: %s\n", strerror(errno));
+ }
- if (chmod(INFO_SOCKET, 0600) < 0) {
- ErrPrint("info socket: %s\n", strerror(errno));
- }
+ if (chmod(SLAVE_SOCKET, 0666) < 0) {
+ ErrPrint("slave socket: %s\n", strerror(errno));
+ }
- if (chmod(SLAVE_SOCKET, 0666) < 0) {
- ErrPrint("slave socket: %s\n", strerror(errno));
- }
+ if (chmod(CLIENT_SOCKET, 0666) < 0) {
+ ErrPrint("client socket: %s\n", strerror(errno));
+ }
- if (chmod(CLIENT_SOCKET, 0666) < 0) {
- ErrPrint("client socket: %s\n", strerror(errno));
- }
+ if (chmod(SERVICE_SOCKET, 0666) < 0) {
+ ErrPrint("service socket: %s\n", strerror(errno));
+ }
- if (chmod(SERVICE_SOCKET, 0666) < 0) {
- ErrPrint("service socket: %s\n", strerror(errno));
+ return 0;
}
- return 0;
-}
+ HAPI int server_fini(void)
+ {
+ if (s_info.info_fd > 0) {
+ com_core_packet_server_fini(s_info.info_fd);
+ s_info.info_fd = -1;
+ }
-HAPI int server_fini(void)
-{
- if (s_info.info_fd > 0) {
- com_core_packet_server_fini(s_info.info_fd);
- s_info.info_fd = -1;
- }
+ if (s_info.slave_fd > 0) {
+ com_core_packet_server_fini(s_info.slave_fd);
+ s_info.slave_fd = -1;
+ }
- if (s_info.slave_fd > 0) {
- com_core_packet_server_fini(s_info.slave_fd);
- s_info.slave_fd = -1;
- }
+ if (s_info.client_fd > 0) {
+ com_core_packet_server_fini(s_info.client_fd);
+ s_info.client_fd = -1;
+ }
- if (s_info.client_fd > 0) {
- com_core_packet_server_fini(s_info.client_fd);
- s_info.client_fd = -1;
- }
+ if (s_info.remote_client_fd > 0) {
+ com_core_packet_server_fini(s_info.remote_client_fd);
+ s_info.remote_client_fd = -1;
+ }
- if (s_info.remote_client_fd > 0) {
- com_core_packet_server_fini(s_info.remote_client_fd);
- s_info.remote_client_fd = -1;
- }
+ if (s_info.service_fd > 0) {
+ com_core_packet_server_fini(s_info.service_fd);
+ s_info.service_fd = -1;
+ }
- if (s_info.service_fd > 0) {
- com_core_packet_server_fini(s_info.service_fd);
- s_info.service_fd = -1;
+ return 0;
}
- return 0;
-}
-
-/* End of a file */
+ /* End of a file */
diff --git a/src/service_common.c b/src/service_common.c
index e2b27c9..c553abc 100644
--- a/src/service_common.c
+++ b/src/service_common.c
@@ -30,7 +30,7 @@
#include <Eina.h>
#include <com-core.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#else
#include <lite-errno.h>
#endif
@@ -353,7 +353,7 @@ HAPI int service_register_tcb_callback(struct service_context *svc_ctx, struct t
cbdata = malloc(sizeof(*cbdata));
if (!cbdata) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
cbdata->tcb = tcb;
@@ -372,10 +372,10 @@ HAPI int service_register_tcb_callback(struct service_context *svc_ctx, struct t
break;
default:
DbgFree(cbdata);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!
@@ -393,7 +393,7 @@ HAPI int service_unregister_tcb_callback(struct service_context *svc_ctx, struct
if (cbdata->tcb == tcb && cbdata->cb == cb && cbdata->data == data) {
svc_ctx->tcb_create_cb_list = eina_list_remove(svc_ctx->tcb_create_cb_list, cbdata);
DbgFree(cbdata);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -402,15 +402,15 @@ HAPI int service_unregister_tcb_callback(struct service_context *svc_ctx, struct
if (cbdata->tcb == tcb && cbdata->cb == cb && cbdata->data == data) {
svc_ctx->tcb_destroy_cb_list = eina_list_remove(svc_ctx->tcb_destroy_cb_list, cbdata);
DbgFree(cbdata);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
/*!
diff --git a/src/setting.c b/src/setting.c
index 84cb0b1..6aff14a 100644
--- a/src/setting.c
+++ b/src/setting.c
@@ -38,7 +38,9 @@
#include "critical_log.h"
#if defined(HAVE_LIVEBOX)
-#include <livebox-service.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_conf.h>
+#include <dynamicbox_errno.h>
#include "client_life.h"
#include "slave_life.h"
#include "xmonitor.h"
@@ -50,10 +52,20 @@
int errno;
+struct event_cbdata {
+ int (*handler)(enum oom_event_type type, void *data);
+ void *data;
+ int deleted;
+};
+
static struct {
int deactivated;
+ Eina_List *oom_event_list;
+ int oom_event_in_process;
} s_info = {
.deactivated = 0,
+ .oom_event_list = NULL,
+ .oom_event_in_process = 0,
};
static void lcd_state_cb(keynode_t *node, void *user_data)
@@ -69,18 +81,23 @@ HAPI int setting_is_lcd_off(void)
{
int state;
+ if (!DYNAMICBOX_CONF_CHECK_LCD) {
+ /* Always turned on */
+ return 0;
+ }
+
if (vconf_get_int(VCONFKEY_PM_STATE, &state) != 0) {
ErrPrint("Idle lock state is not valid\n");
state = VCONFKEY_PM_STATE_NORMAL; /* UNLOCK */
}
- DbgPrint("State: %d, (%d:lcdoff, %d:sleep)\n", state, VCONFKEY_PM_STATE_LCDOFF, VCONFKEY_PM_STATE_SLEEP);
+ ErrPrint("State: %d, (%d:lcdoff, %d:sleep)\n", state, VCONFKEY_PM_STATE_LCDOFF, VCONFKEY_PM_STATE_SLEEP);
return state == VCONFKEY_PM_STATE_LCDOFF || state == VCONFKEY_PM_STATE_SLEEP;
}
static void power_off_cb(keynode_t *node, void *user_data)
{
- int val;
+ int val;
CRITICAL_LOG("Terminated(vconf)\n");
if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &val) != 0) {
@@ -97,11 +114,11 @@ static void power_off_cb(keynode_t *node, void *user_data)
static void region_changed_cb(keynode_t *node, void *user_data)
{
- char *region;
- char *r;
+ char *region;
+ char *r;
- region = vconf_get_str(VCONFKEY_REGIONFORMAT);
- if (!region) {
+ region = vconf_get_str(VCONFKEY_REGIONFORMAT);
+ if (!region) {
return;
}
@@ -127,11 +144,11 @@ static void region_changed_cb(keynode_t *node, void *user_data)
static void lang_changed_cb(keynode_t *node, void *user_data)
{
- char *lang;
- char *r;
+ char *lang;
+ char *r;
- lang = vconf_get_str(VCONFKEY_LANGSET);
- if (!lang) {
+ lang = vconf_get_str(VCONFKEY_LANGSET);
+ if (!lang) {
return;
}
@@ -150,6 +167,9 @@ static void lang_changed_cb(keynode_t *node, void *user_data)
static void low_mem_cb(keynode_t *node, void *user_data)
{
int val;
+ Eina_List *l;
+ Eina_List *n;
+ struct event_cbdata *item;
val = vconf_keynode_get_int(node);
@@ -157,6 +177,16 @@ static void low_mem_cb(keynode_t *node, void *user_data)
CRITICAL_LOG("Low memory: level %d\n", val);
if (s_info.deactivated == 0) {
s_info.deactivated = 1;
+
+ s_info.oom_event_in_process = 1;
+ EINA_LIST_FOREACH_SAFE(s_info.oom_event_list, l, n, item) {
+ if (item->deleted || item->handler(OOM_TYPE_LOW, item->data) < 0 || item->deleted) {
+ s_info.oom_event_list = eina_list_remove(s_info.oom_event_list, item);
+ free(item);
+ }
+ }
+ s_info.oom_event_in_process = 0;
+
//slave_deactivate_all(0, 1, 0);
malloc_trim(0);
ErrPrint("Fall into the low mem status\n");
@@ -165,12 +195,74 @@ static void low_mem_cb(keynode_t *node, void *user_data)
CRITICAL_LOG("Normal memory: level %d\n", val);
if (s_info.deactivated == 1) {
s_info.deactivated = 0;
+
+ s_info.oom_event_in_process = 1;
+ EINA_LIST_FOREACH_SAFE(s_info.oom_event_list, l, n, item) {
+ if (item->deleted || item->handler(OOM_TYPE_NORMAL, item->data) < 0 || item->deleted) {
+ s_info.oom_event_list = eina_list_remove(s_info.oom_event_list, item);
+ free(item);
+ }
+ }
+ s_info.oom_event_in_process = 0;
+
//slave_activate_all();
ErrPrint("Recover from the low mem status\n");
}
}
}
+HAPI int setting_add_oom_event_callback(int (*handler)(enum oom_event_type type, void *data), void *data)
+{
+ struct event_cbdata *item;
+
+ item = malloc(sizeof(*item));
+ if (!item) {
+ ErrPrint("malloc: %s\n", strerror(errno));
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
+ }
+
+ item->handler = handler;
+ item->data = data;
+ item->deleted = 0;
+
+ s_info.oom_event_list = eina_list_append(s_info.oom_event_list, item);
+ return DBOX_STATUS_ERROR_NONE;
+}
+
+HAPI int setting_del_oom_event_callback(int (*handler)(enum oom_event_type type, void *data), void *data)
+{
+ struct event_cbdata *item;
+ Eina_List *l;
+ Eina_List *n;
+
+ EINA_LIST_FOREACH_SAFE(s_info.oom_event_list, l, n, item) {
+ if (handler == item->handler && item->data == data) {
+ if (s_info.oom_event_in_process) {
+ item->deleted = 1;
+ } else {
+ s_info.oom_event_list = eina_list_remove(s_info.oom_event_list, item);
+ free(item);
+ }
+ return DBOX_STATUS_ERROR_NONE;
+ }
+ }
+
+ return DBOX_STATUS_ERROR_NOT_EXIST;
+}
+
+HAPI enum oom_event_type setting_oom_level(void)
+{
+ int ret;
+ int status;
+
+ ret = vconf_get_int(VCONFKEY_SYSMAN_LOW_MEMORY, &status);
+ if (ret == 0 && status >= VCONFKEY_SYSMAN_LOW_MEMORY_SOFT_WARNING) {
+ return OOM_TYPE_LOW;
+ }
+
+ return OOM_TYPE_NORMAL;
+}
+
HAPI int setting_init(void)
{
int ret;
diff --git a/src/shortcut_service.c b/src/shortcut_service.c
index bffd8ea..419cc69 100644
--- a/src/shortcut_service.c
+++ b/src/shortcut_service.c
@@ -19,7 +19,7 @@
#include <dlog.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#else
#include "lite-errno.h"
#endif
@@ -139,7 +139,7 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
ret = security_server_check_privilege_by_sockfd(tcb_fd(tcb), "data-provider-master::shortcut.livebox", "w");
if (ret == SECURITY_SERVER_API_ERROR_ACCESS_DENIED) {
ErrPrint("SMACK:Access denied\n");
- send_reply_packet(tcb, packet, SHORTCUT_ERROR_PERMISSION);
+ send_reply_packet(tcb, packet, SHORTCUT_ERROR_PERMISSION_DENIED);
break;
}
@@ -147,7 +147,7 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
ret = security_server_check_privilege_by_sockfd(tcb_fd(tcb), "data-provider-master::shortcut.shortcut", "w");
if (ret == SECURITY_SERVER_API_ERROR_ACCESS_DENIED) {
ErrPrint("SMACK:Access denied\n");
- send_reply_packet(tcb, packet, SHORTCUT_ERROR_PERMISSION);
+ send_reply_packet(tcb, packet, SHORTCUT_ERROR_PERMISSION_DENIED);
break;
}
}
@@ -210,13 +210,13 @@ HAPI int shortcut_service_init(void)
{
if (s_info.svc_ctx) {
ErrPrint("Already initialized\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
s_info.svc_ctx = service_common_create(SHORTCUT_SOCKET, service_thread_main, NULL);
if (!s_info.svc_ctx) {
ErrPrint("Unable to activate service thread\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (smack_fsetlabel(service_common_fd(s_info.svc_ctx), SHORTCUT_SMACK_LABEL, SMACK_LABEL_IPOUT) != 0) {
@@ -224,7 +224,7 @@ HAPI int shortcut_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
@@ -233,24 +233,24 @@ HAPI int shortcut_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
DbgPrint("Successfully initiated\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int shortcut_service_fini(void)
{
if (!s_info.svc_ctx) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
DbgPrint("Successfully Finalized\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/slave_life.c b/src/slave_life.c
index eeff1b3..a265b3a 100644
--- a/src/slave_life.c
+++ b/src/slave_life.c
@@ -22,6 +22,7 @@
#include <pthread.h>
#include <malloc.h>
#include <sys/time.h>
+#include <sys/resource.h>
#include <Eina.h>
#include <Ecore.h>
@@ -31,7 +32,10 @@
#include <bundle.h>
#include <packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
+#include <dynamicbox_cmd_list.h>
+#include <dynamicbox_service.h>
#include "critical_log.h"
#include "slave_life.h"
@@ -45,13 +49,20 @@
#include "abi.h"
#include "xmonitor.h"
+#include "package.h"
+#include "instance.h"
+
+#define BUNDLE_SLAVE_SVC_OP_TYPE "__APP_SVC_OP_TYPE__"
+#define APP_CONTROL_OPERATION_MAIN "http://tizen.org/appcontrol/operation/main"
+#define LOW_PRIORITY 10
+
int errno;
struct slave_node {
char *name;
char *abi;
char *pkgname;
- int secured; /* Only A package(livebox) is loaded for security requirements */
+ int secured; /* Only A package(dynamicbox) is loaded for security requirements */
int refcnt;
int fault_count;
int critical_fault_count;
@@ -97,6 +108,8 @@ struct slave_node {
#else
struct timeval activated_at;
#endif
+
+ char *hw_acceleration;
};
struct event {
@@ -120,23 +133,148 @@ static struct {
.deactivate_all_refcnt = 0,
};
+static Eina_Bool terminate_timer_cb(void *data)
+{
+ struct slave_node *slave = data;
+ int ret;
+
+ /*!
+ * \todo
+ * check the return value of the aul_terminate_pid
+ */
+ slave->state = SLAVE_REQUEST_TO_TERMINATE;
+ slave->terminate_timer = NULL;
+
+ DbgPrint("Terminate slave: %d (%s)\n", slave_pid(slave), slave_name(slave));
+ ret = aul_terminate_pid_async(slave->pid);
+ if (ret < 0) {
+ ErrPrint("Terminate slave(%s) failed. pid %d (%d)\n", slave_name(slave), slave_pid(slave), ret);
+ slave = slave_deactivated(slave);
+ if (slave == NULL) {
+ DbgPrint("Slave is deleted\n");
+ }
+ }
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static struct slave_node *slave_deactivate(struct slave_node *slave, int no_timer)
+{
+ int ret;
+
+ /**
+ * @note
+ * The caller must has to check the slave's state.
+ * If it is not activated, this function must has not to be called.
+ */
+
+ if (slave_pid(slave) <= 0) {
+ return slave;
+ }
+
+ if (slave->ttl_timer) {
+ /**
+ * @note
+ * If there is an activated TTL timer,
+ * It has to be cleared before deactivate the slave.
+ */
+ ecore_timer_del(slave->ttl_timer);
+ slave->ttl_timer = NULL;
+ }
+
+ if ((slave->ctrl_option & PROVIDER_CTRL_MANUAL_TERMINATION) == PROVIDER_CTRL_MANUAL_TERMINATION) {
+ /*!
+ * \note
+ * In this case,
+ * The provider requests MANUAL TERMINATION control option.
+ * Master will not send terminate request in this case, the provider should be terminated by itself.
+ */
+ DbgPrint("Manual termination is turned on\n");
+ slave->state = SLAVE_REQUEST_TO_DISCONNECT;
+ (void)slave_rpc_disconnect(slave);
+ } else if (slave->terminate_timer) {
+ ErrPrint("Terminate timer is already fired (%d)\n", slave->pid);
+ } else if (!no_timer && !slave->secured) {
+ DbgPrint("Fire the terminate timer: %d\n", slave->pid);
+ slave->terminate_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_ACTIVATE_TIME, terminate_timer_cb, slave);
+ if (!slave->terminate_timer) {
+ /*!
+ * \note
+ * Normally, Call the terminate_timer_cb directly from here
+ * But in this case. if the aul_terminate_pid failed, Call the slave_deactivated function directly.
+ * Then the "slave" pointer can be changed. To trace it, Copy the body of terminate_timer_cb to here.
+ */
+ ErrPrint("Failed to add a new timer for terminating\n");
+ DbgPrint("Terminate slave: %d (%s)\n", slave_pid(slave), slave_name(slave));
+ /*!
+ * \todo
+ * check the return value of the aul_terminate_pid
+ */
+ slave->state = SLAVE_REQUEST_TO_TERMINATE;
+
+ ret = aul_terminate_pid_async(slave->pid);
+ if (ret < 0) {
+ ErrPrint("Terminate slave(%s) failed. pid %d (%d)\n", slave_name(slave), slave_pid(slave), ret);
+ slave = slave_deactivated(slave);
+ }
+ }
+ } else {
+ /*!
+ * \todo
+ * check the return value of the aul_terminate_pid
+ */
+ slave->state = SLAVE_REQUEST_TO_TERMINATE;
+
+ DbgPrint("Terminate slave: %d (%s)\n", slave_pid(slave), slave_name(slave));
+ ret = aul_terminate_pid_async(slave->pid);
+ if (ret < 0) {
+ ErrPrint("Terminate slave(%s) failed. pid %d (%d)\n", slave_name(slave), slave_pid(slave), ret);
+ slave = slave_deactivated(slave);
+ }
+ }
+
+ return slave;
+}
+
static Eina_Bool slave_ttl_cb(void *data)
{
+ struct pkg_info *info;
struct slave_node *slave = (struct slave_node *)data;
+ Eina_List *l;
+ Eina_List *pkg_list;
+
+ pkg_list = (Eina_List *)package_list();
+ EINA_LIST_FOREACH(pkg_list, l, info) {
+ if (package_slave(info) == slave) {
+ struct inst_info *inst;
+ Eina_List *inst_list;
+ Eina_List *n;
+
+ inst_list = (Eina_List *)package_instance_list(info);
+ EINA_LIST_FOREACH(inst_list, n, inst) {
+ if (instance_visible_state(inst) == DBOX_SHOW) {
+ DbgPrint("Instance is in show, give more ttl to %d for %s\n", slave_pid(slave), instance_id(inst));
+ return ECORE_CALLBACK_RENEW;
+ }
+ }
+ }
+ }
/*!
* \note
* ttl_timer must has to be set to NULL before deactivate the slave
- * It will be used for making decision of the expired TTL timer or the fault of a livebox.
+ * It will be used for making decision of the expired TTL timer or the fault of a dynamicbox.
*/
slave->ttl_timer = NULL;
- slave_set_reactivation(slave, 0);
- slave_set_reactivate_instances(slave, 1);
+ if (slave_is_activated(slave)) {
+ slave_set_reactivation(slave, 0);
+ slave_set_reactivate_instances(slave, 1);
- slave = slave_deactivate(slave, 1);
- if (!slave) {
- DbgPrint("Slave is deleted\n");
+ slave = slave_deactivate(slave, 1);
+ if (!slave) {
+ DbgPrint("Slave is deleted\n");
+ }
}
/*! To recover all instances state it is activated again */
@@ -146,16 +284,16 @@ static Eina_Bool slave_ttl_cb(void *data)
static inline int xmonitor_pause_cb(void *data)
{
slave_pause(data);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int xmonitor_resume_cb(void *data)
{
slave_resume(data);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
-static inline struct slave_node *create_slave_node(const char *name, int is_secured, const char *abi, const char *pkgname, int network)
+static inline struct slave_node *create_slave_node(const char *name, int is_secured, const char *abi, const char *pkgname, int network, const char *hw_acceleration)
{
struct slave_node *slave;
@@ -189,11 +327,23 @@ static inline struct slave_node *create_slave_node(const char *name, int is_secu
return NULL;
}
+ if (hw_acceleration) {
+ slave->hw_acceleration = strdup(hw_acceleration);
+ if (!slave->hw_acceleration) {
+ ErrPrint("Heap: %s\n", strerror(errno));
+ DbgFree(slave->pkgname);
+ DbgFree(slave->abi);
+ DbgFree(slave->name);
+ DbgFree(slave);
+ return NULL;
+ }
+ }
+
slave->secured = is_secured;
slave->pid = (pid_t)-1;
slave->state = SLAVE_TERMINATED;
slave->network = network;
- slave->relaunch_count = SLAVE_RELAUNCH_COUNT;
+ slave->relaunch_count = DYNAMICBOX_CONF_SLAVE_RELAUNCH_COUNT;
xmonitor_add_event_callback(XMONITOR_PAUSED, xmonitor_pause_cb, slave);
xmonitor_add_event_callback(XMONITOR_RESUMED, xmonitor_resume_cb, slave);
@@ -272,6 +422,7 @@ static inline void destroy_slave_node(struct slave_node *slave)
DbgFree(slave->abi);
DbgFree(slave->name);
DbgFree(slave->pkgname);
+ DbgFree(slave->hw_acceleration);
DbgFree(slave);
return;
}
@@ -286,7 +437,7 @@ static inline struct slave_node *find_slave(const char *name)
return slave;
}
}
-
+
return NULL;
}
@@ -296,7 +447,7 @@ HAPI int slave_expired_ttl(struct slave_node *slave)
return 0;
}
- if (!slave->secured) {
+ if (!slave->secured && !(DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL)) {
return 0;
}
@@ -338,7 +489,7 @@ HAPI const int const slave_refcnt(struct slave_node *slave)
return slave->refcnt;
}
-HAPI struct slave_node *slave_create(const char *name, int is_secured, const char *abi, const char *pkgname, int network)
+HAPI struct slave_node *slave_create(const char *name, int is_secured, const char *abi, const char *pkgname, int network, const char *hw_acceleration)
{
struct slave_node *slave;
@@ -350,7 +501,7 @@ HAPI struct slave_node *slave_create(const char *name, int is_secured, const cha
return slave;
}
- slave = create_slave_node(name, is_secured, abi, pkgname, network);
+ slave = create_slave_node(name, is_secured, abi, pkgname, network, hw_acceleration);
if (!slave) {
return NULL;
}
@@ -371,12 +522,13 @@ HAPI void slave_destroy(struct slave_node *slave)
slave_unref(slave);
}
-static inline void invoke_fault_cb(struct slave_node *slave)
+static inline struct slave_node *invoke_fault_cb(struct slave_node *slave)
{
Eina_List *l;
Eina_List *n;
struct event *event;
+ slave_ref(slave);
slave->in_event_process |= SLAVE_EVENT_PROCESS_FAULT;
EINA_LIST_FOREACH_SAFE(slave->event_fault_list, l, n, event) {
if (event->deleted || event->evt_cb(event->slave, event->cbdata) < 0 || event->deleted) {
@@ -385,6 +537,9 @@ static inline void invoke_fault_cb(struct slave_node *slave)
}
}
slave->in_event_process &= ~SLAVE_EVENT_PROCESS_FAULT;
+ slave = slave_unref(slave);
+
+ return slave;
}
static inline void invoke_activate_cb(struct slave_node *slave)
@@ -413,7 +568,11 @@ static Eina_Bool activate_timer_cb(void *data)
}
slave->fault_count++;
- invoke_fault_cb(slave);
+
+ if (invoke_fault_cb(slave) == NULL) {
+ ErrPrint("Slave is deleted while processing fault handler\n");
+ return ECORE_CALLBACK_CANCEL;
+ }
slave_set_reactivation(slave, 0);
slave_set_reactivate_instances(slave, 0);
@@ -422,13 +581,13 @@ static Eina_Bool activate_timer_cb(void *data)
if (slave_pid(slave) > 0) {
int ret;
DbgPrint("Try to terminate PID: %d\n", slave_pid(slave));
- ret = aul_terminate_pid(slave_pid(slave));
+ ret = aul_terminate_pid_async(slave_pid(slave));
if (ret < 0) {
ErrPrint("Terminate failed, pid %d (reason: %d)\n", slave_pid(slave), ret);
}
}
- CRITICAL_LOG("Slave is not activated in %lf sec (slave: %s)\n", SLAVE_ACTIVATE_TIME, slave_name(slave));
+ CRITICAL_LOG("Slave is not activated in %lf sec (slave: %s)\n", DYNAMICBOX_CONF_SLAVE_ACTIVATE_TIME, slave_name(slave));
slave = slave_deactivated(slave);
return ECORE_CALLBACK_CANCEL;
}
@@ -436,7 +595,10 @@ static Eina_Bool activate_timer_cb(void *data)
static inline void invoke_slave_fault_handler(struct slave_node *slave)
{
slave->fault_count++;
- invoke_fault_cb(slave);
+ if (invoke_fault_cb(slave) == NULL) {
+ ErrPrint("Slave is deleted while processing fault handler\n");
+ return;
+ }
slave_set_reactivation(slave, 0);
slave_set_reactivate_instances(slave, 0);
@@ -448,7 +610,7 @@ static inline void invoke_slave_fault_handler(struct slave_node *slave)
} else {
int ret;
DbgPrint("Try to terminate PID: %d\n", slave_pid(slave));
- ret = aul_terminate_pid(slave_pid(slave));
+ ret = aul_terminate_pid_async(slave_pid(slave));
if (ret < 0) {
ErrPrint("Terminate failed, pid %d (reason: %d)\n", slave_pid(slave), ret);
}
@@ -489,18 +651,18 @@ static Eina_Bool relaunch_timer_cb(void *data)
invoke_slave_fault_handler(slave);
} else {
- bundle_add(param, BUNDLE_SLAVE_NAME, slave_name(slave));
- bundle_add(param, BUNDLE_SLAVE_SECURED, slave->secured ? "true" : "false");
- bundle_add(param, BUNDLE_SLAVE_ABI, slave->abi);
+ bundle_add(param, BUNDLE_SLAVE_SVC_OP_TYPE, APP_CONTROL_OPERATION_MAIN);
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_NAME, slave_name(slave));
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_SECURED, ((DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL) || slave->secured) ? "true" : "false");
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_ABI, slave->abi);
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_HW_ACCELERATION, slave->hw_acceleration);
slave->pid = (pid_t)aul_launch_app(slave_pkgname(slave), param);
bundle_free(param);
switch (slave->pid) {
-#if defined(WEARABLE)
case AUL_R_EHIDDENFORGUEST: /**< App hidden for guest mode */
-#endif
case AUL_R_ENOLAUNCHPAD: /**< no launchpad */
case AUL_R_EILLACC: /**< Illegal Access */
case AUL_R_EINVAL: /**< Invalid argument */
@@ -545,14 +707,21 @@ static Eina_Bool relaunch_timer_cb(void *data)
HAPI int slave_activate(struct slave_node *slave)
{
- /*!
- * \note
+ /**
+ * @todo
+ * If a slave is deactivated by OOM killer,
+ * We should not activate it again from here.
+ * Instead of this, it should be reactivated by user event or oom event(normal)
+ */
+
+ /**
+ * @note
* This check code can be replaced with the slave->state check code
* If the slave data has the PID, it means, it is activated
* Even if it is in the termiating sequence, it will have the PID
- * before terminated at last.
+ * until it is terminated at last.
* So we can use this simple code for checking the slave's last state.
- * about it is alive? or not.
+ * whether it is alive or not.
*/
if (slave_pid(slave) != (pid_t)-1) {
if (slave->terminate_timer) {
@@ -562,37 +731,37 @@ HAPI int slave_activate(struct slave_node *slave)
} else if (slave_state(slave) == SLAVE_REQUEST_TO_TERMINATE || slave_state(slave) == SLAVE_REQUEST_TO_DISCONNECT) {
slave_set_reactivation(slave, 1);
}
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
} else if (slave_state(slave) == SLAVE_REQUEST_TO_LAUNCH) {
DbgPrint("Slave is already launched: but the AUL is timed out\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
- if (DEBUG_MODE) {
+ if (DYNAMICBOX_CONF_DEBUG_MODE || g_conf.debug_mode) {
DbgPrint("Debug Mode enabled. name[%s] secured[%d] abi[%s]\n", slave_name(slave), slave->secured, slave->abi);
} else {
bundle *param;
- slave->relaunch_count = SLAVE_RELAUNCH_COUNT;
+ slave->relaunch_count = DYNAMICBOX_CONF_SLAVE_RELAUNCH_COUNT;
param = bundle_create();
if (!param) {
ErrPrint("Failed to create a bundle\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
- bundle_add(param, BUNDLE_SLAVE_NAME, slave_name(slave));
- bundle_add(param, BUNDLE_SLAVE_SECURED, slave->secured ? "true" : "false");
- bundle_add(param, BUNDLE_SLAVE_ABI, slave->abi);
+ bundle_add(param, BUNDLE_SLAVE_SVC_OP_TYPE, APP_CONTROL_OPERATION_MAIN);
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_NAME, slave_name(slave));
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_SECURED, ((DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL) || slave->secured) ? "true" : "false");
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_ABI, slave->abi);
+ bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_HW_ACCELERATION, slave->hw_acceleration);
slave->pid = (pid_t)aul_launch_app(slave_pkgname(slave), param);
bundle_free(param);
switch (slave->pid) {
-#if defined(WEARABLE)
case AUL_R_EHIDDENFORGUEST: /**< App hidden for guest mode */
-#endif
case AUL_R_ENOLAUNCHPAD: /**< no launchpad */
case AUL_R_EILLACC: /**< Illegal Access */
case AUL_R_EINVAL: /**< Invalid argument */
@@ -607,11 +776,11 @@ HAPI int slave_activate(struct slave_node *slave)
case AUL_R_ECANCELED: /**< Operation canceled */
case AUL_R_ETIMEOUT: /**< Timeout */
CRITICAL_LOG("Try relaunch this soon %s (%d)\n", slave_name(slave), slave->pid);
- slave->relaunch_timer = ecore_timer_add(SLAVE_RELAUNCH_TIME, relaunch_timer_cb, slave);
+ slave->relaunch_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_RELAUNCH_TIME, relaunch_timer_cb, slave);
if (!slave->relaunch_timer) {
CRITICAL_LOG("Failed to register a relaunch timer (%s)\n", slave_name(slave));
slave->pid = (pid_t)-1;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
/* Try again after a few secs later */
break;
@@ -622,7 +791,7 @@ HAPI int slave_activate(struct slave_node *slave)
break;
}
- slave->activate_timer = ecore_timer_add(SLAVE_ACTIVATE_TIME, activate_timer_cb, slave);
+ slave->activate_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_ACTIVATE_TIME, activate_timer_cb, slave);
if (!slave->activate_timer) {
ErrPrint("Failed to register an activate timer\n");
}
@@ -636,45 +805,45 @@ HAPI int slave_activate(struct slave_node *slave)
*/
(void)slave_ref(slave);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_give_more_ttl(struct slave_node *slave)
{
double delay;
- if (!slave->secured || !slave->ttl_timer) {
- return LB_STATUS_ERROR_INVALID;
+ if (!(DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL) && (!slave->secured || !slave->ttl_timer)) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- delay = SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer);
+ delay = DYNAMICBOX_CONF_SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer);
ecore_timer_delay(slave->ttl_timer, delay);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_freeze_ttl(struct slave_node *slave)
{
- if (!slave->secured || !slave->ttl_timer) {
- return LB_STATUS_ERROR_INVALID;
+ if (!(DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL) && (!slave->secured || !slave->ttl_timer)) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ecore_timer_freeze(slave->ttl_timer);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_thaw_ttl(struct slave_node *slave)
{
double delay;
- if (!slave->secured || !slave->ttl_timer) {
- return LB_STATUS_ERROR_INVALID;
+ if (!(DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL) && (!slave->secured || !slave->ttl_timer)) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ecore_timer_thaw(slave->ttl_timer);
- delay = SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer);
+ delay = DYNAMICBOX_CONF_SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer);
ecore_timer_delay(slave->ttl_timer, delay);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_activated(struct slave_node *slave)
@@ -685,9 +854,9 @@ HAPI int slave_activated(struct slave_node *slave)
slave_pause(slave);
}
- if (slave->secured == 1 && SLAVE_TTL > 0.0f) {
- DbgPrint("Slave deactivation timer is added (%s - %lf)\n", slave_name(slave), SLAVE_TTL);
- slave->ttl_timer = ecore_timer_add(SLAVE_TTL, slave_ttl_cb, slave);
+ if (((DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL) || slave->secured == 1) && DYNAMICBOX_CONF_SLAVE_TTL > 0.0f) {
+ DbgPrint("Slave deactivation timer is added (%s - %lf)\n", slave_name(slave), DYNAMICBOX_CONF_SLAVE_TTL);
+ slave->ttl_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_TTL, slave_ttl_cb, slave);
if (!slave->ttl_timer) {
ErrPrint("Failed to create a TTL timer\n");
}
@@ -718,7 +887,8 @@ HAPI int slave_activated(struct slave_node *slave)
slave->relaunch_timer = NULL;
}
- return LB_STATUS_SUCCESS;
+ slave_set_priority(slave, LOW_PRIORITY);
+ return DBOX_STATUS_ERROR_NONE;
}
static inline int invoke_deactivate_cb(struct slave_node *slave)
@@ -754,106 +924,6 @@ static inline int invoke_deactivate_cb(struct slave_node *slave)
return reactivate;
}
-static Eina_Bool terminate_timer_cb(void *data)
-{
- struct slave_node *slave = data;
- int ret;
-
- /*!
- * \todo
- * check the return value of the aul_terminate_pid
- */
- slave->state = SLAVE_REQUEST_TO_TERMINATE;
- slave->terminate_timer = NULL;
-
- DbgPrint("Terminate slave: %d (%s)\n", slave_pid(slave), slave_name(slave));
- ret = aul_terminate_pid(slave->pid);
- if (ret < 0) {
- ErrPrint("Terminate slave(%s) failed. pid %d (%d)\n", slave_name(slave), slave_pid(slave), ret);
- slave = slave_deactivated(slave);
- if (slave == NULL) {
- DbgPrint("Slave is deleted\n");
- }
- }
-
- return ECORE_CALLBACK_CANCEL;
-}
-
-HAPI struct slave_node *slave_deactivate(struct slave_node *slave, int no_timer)
-{
- int ret;
-
- if (!slave_is_activated(slave)) {
- ErrPrint("Slave is already deactivated\n");
- if (slave_loaded_instance(slave) == 0) {
- /*!
- * \note
- * If a slave has no more instances,
- * Destroy it
- */
- slave = slave_unref(slave);
- }
- return slave;
- }
-
- if (slave_pid(slave) <= 0) {
- return slave;
- }
-
- if ((slave->ctrl_option & PROVIDER_CTRL_MANUAL_TERMINATION) == PROVIDER_CTRL_MANUAL_TERMINATION) {
- /*!
- * \note
- * In this case,
- * The provider requests MANUAL TERMINATION control option.
- * Master will not send terminate request in this case, the provider should be terminated by itself.
- */
- DbgPrint("Manual termination is turned on\n");
- slave->state = SLAVE_REQUEST_TO_DISCONNECT;
- (void)slave_rpc_disconnect(slave);
- } else if (slave->terminate_timer) {
- ErrPrint("Terminate timer is already fired (%d)\n", slave->pid);
- } else if (!no_timer) {
- DbgPrint("Fire the terminate timer: %d\n", slave->pid);
- slave->terminate_timer = ecore_timer_add(SLAVE_ACTIVATE_TIME, terminate_timer_cb, slave);
- if (!slave->terminate_timer) {
- /*!
- * \note
- * Normally, Call the terminate_timer_cb directly from here
- * But in this case. if the aul_terminate_pid failed, Call the slave_deactivated function directly.
- * Then the "slave" pointer can be changed. To trace it, Copy the body of terminate_timer_cb to here.
- */
- ErrPrint("Failed to add a new timer for terminating\n");
- DbgPrint("Terminate slave: %d (%s)\n", slave_pid(slave), slave_name(slave));
- /*!
- * \todo
- * check the return value of the aul_terminate_pid
- */
- slave->state = SLAVE_REQUEST_TO_TERMINATE;
-
- ret = aul_terminate_pid(slave->pid);
- if (ret < 0) {
- ErrPrint("Terminate slave(%s) failed. pid %d (%d)\n", slave_name(slave), slave_pid(slave), ret);
- slave = slave_deactivated(slave);
- }
- }
- } else {
- /*!
- * \todo
- * check the return value of the aul_terminate_pid
- */
- slave->state = SLAVE_REQUEST_TO_TERMINATE;
-
- DbgPrint("Terminate slave: %d (%s)\n", slave_pid(slave), slave_name(slave));
- ret = aul_terminate_pid(slave->pid);
- if (ret < 0) {
- ErrPrint("Terminate slave(%s) failed. pid %d (%d)\n", slave_name(slave), slave_pid(slave), ret);
- slave = slave_deactivated(slave);
- }
- }
-
- return slave;
-}
-
HAPI struct slave_node *slave_deactivated(struct slave_node *slave)
{
int reactivate;
@@ -881,7 +951,24 @@ HAPI struct slave_node *slave_deactivated(struct slave_node *slave)
slave->terminate_timer = NULL;
}
+ /**
+ * @note
+ * FOR SAFETY
+ * If the deactivated event callback is called for package.c
+ * It can delete the instance if it has fault information
+ * then it also try to delete the slave object again.
+ * To prevent from unexpected slave object deletetion while handling callback,
+ * increase the refcnt of slave
+ * when it get back from callback, try to decrease the refcnt of slave
+ * At that time, we can delete slave safely.
+ */
+ slave_ref(slave);
reactivate = invoke_deactivate_cb(slave);
+ slave = slave_unref(slave);
+ if (!slave) {
+ ErrPrint("Slave object is deleted\n");
+ return slave;
+ }
slave = slave_unref(slave);
if (!slave) {
@@ -896,12 +983,12 @@ HAPI struct slave_node *slave_deactivated(struct slave_node *slave)
* The master will not reactivate it automatically.
*/
DbgPrint("Manual reactivate option is turned on\n");
- } else if (reactivate && slave_need_to_reactivate(slave)) {
+ } else if (reactivate && slave_need_to_reactivate(slave) && setting_oom_level() == OOM_TYPE_NORMAL) {
int ret;
DbgPrint("Need to reactivate a slave\n");
ret = slave_activate(slave);
- if (ret < 0 && ret != LB_STATUS_ERROR_ALREADY) {
+ if (ret < 0 && ret != DBOX_STATUS_ERROR_ALREADY) {
ErrPrint("Failed to reactivate a slave\n");
}
} else if (slave_loaded_instance(slave) == 0) {
@@ -921,6 +1008,13 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave)
int ret;
int reactivate = 1;
int reactivate_instances = 1;
+ int max_load;
+
+ if (g_conf.slave_max_load < 0) {
+ max_load = DYNAMICBOX_CONF_SLAVE_MAX_LOAD;
+ } else {
+ max_load = g_conf.slave_max_load;
+ }
if (!slave_is_activated(slave)) {
DbgPrint("Deactivating in progress\n");
@@ -937,7 +1031,7 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave)
if (slave_pid(slave) > 0) {
DbgPrint("Try to terminate PID: %d\n", slave_pid(slave));
- ret = aul_terminate_pid(slave_pid(slave));
+ ret = aul_terminate_pid_async(slave_pid(slave));
if (ret < 0) {
ErrPrint("Terminate failed, pid %d\n", slave_pid(slave));
}
@@ -947,9 +1041,10 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave)
double faulted_at;
faulted_at = ecore_time_get();
- if (faulted_at - slave->activated_at < MINIMUM_REACTIVATION_TIME) {
+ if (faulted_at - slave->activated_at < DYNAMICBOX_CONF_MINIMUM_REACTIVATION_TIME) {
slave->critical_fault_count++;
- if (!slave_loaded_instance(slave) || slave->critical_fault_count >= SLAVE_MAX_LOAD) {
+
+ if (!slave_loaded_instance(slave) || slave->critical_fault_count >= max_load) {
ErrPrint("Reactivation time is too fast and frequently occurred - Stop to auto reactivation\n");
reactivate = 0;
reactivate_instances = 0;
@@ -958,7 +1053,10 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave)
* \note
* Fault callback can access the slave information.
*/
- invoke_fault_cb(slave);
+ if (invoke_fault_cb(slave) == NULL) {
+ ErrPrint("Slave is deleted while processing fault handler\n");
+ return NULL;
+ }
} else {
slave->critical_fault_count = 0;
}
@@ -970,9 +1068,9 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave)
struct timeval rtv;
timersub(&faulted_at, &slave->activated_at, &rtv);
- if (rtv.tv_sec < MINIMUM_REACTIVATION_TIME) {
+ if (rtv.tv_sec < DYNAMICBOX_CONF_MINIMUM_REACTIVATION_TIME) {
slave->critical_fault_count++;
- if (!slave_loaded_instance(slave) || slave->critical_fault_count >= SLAVE_MAX_LOAD) {
+ if (!slave_loaded_instance(slave) || slave->critical_fault_count >= max_load) {
ErrPrint("Reactivation time is too fast and frequently occurred - Stop to auto reactivation\n");
reactivate = 0;
reactivate_instances = 0;
@@ -981,7 +1079,10 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave)
* \note
* Fault callback can access the slave information.
*/
- invoke_fault_cb(slave);
+ if (invoke_fault_cb(slave) == NULL) {
+ ErrPrint("Slave is deleted while processing fault handler\n");
+ return NULL;
+ }
}
} else {
slave->critical_fault_count = 0;
@@ -1009,7 +1110,7 @@ HAPI const int const slave_is_activated(struct slave_node *slave)
* To send the last request to the provider.
*/
case SLAVE_REQUEST_TO_LAUNCH:
- /* Not yet launched. but the slave incurred an unexpected error */
+ /* Not yet launched. but the slave incurred an unexpected error */
case SLAVE_REQUEST_TO_PAUSE:
case SLAVE_REQUEST_TO_RESUME:
case SLAVE_PAUSED:
@@ -1030,7 +1131,7 @@ HAPI int slave_event_callback_add(struct slave_node *slave, enum slave_event eve
ev = calloc(1, sizeof(*ev));
if (!ev) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
ev->slave = slave;
@@ -1076,10 +1177,10 @@ HAPI int slave_event_callback_add(struct slave_node *slave, enum slave_event eve
break;
default:
DbgFree(ev);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event event, int (*cb)(struct slave_node *, void *), void *data)
@@ -1098,7 +1199,7 @@ HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event eve
slave->event_deactivate_list = eina_list_remove(slave->event_deactivate_list, ev);
DbgFree(ev);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -1111,7 +1212,7 @@ HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event eve
slave->event_delete_list = eina_list_remove(slave->event_delete_list, ev);
DbgFree(ev);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -1124,7 +1225,7 @@ HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event eve
slave->event_activate_list = eina_list_remove(slave->event_activate_list, ev);
DbgFree(ev);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -1137,7 +1238,7 @@ HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event eve
slave->event_pause_list = eina_list_remove(slave->event_pause_list, ev);
DbgFree(ev);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -1150,7 +1251,7 @@ HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event eve
slave->event_resume_list = eina_list_remove(slave->event_resume_list, ev);
DbgFree(ev);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -1163,15 +1264,15 @@ HAPI int slave_event_callback_del(struct slave_node *slave, enum slave_event eve
slave->event_fault_list = eina_list_remove(slave->event_fault_list, ev);
DbgFree(ev);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
default:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int slave_set_data(struct slave_node *slave, const char *tag, void *data)
@@ -1181,19 +1282,19 @@ HAPI int slave_set_data(struct slave_node *slave, const char *tag, void *data)
priv = calloc(1, sizeof(*priv));
if (!priv) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
priv->tag = strdup(tag);
if (!priv->tag) {
ErrPrint("Heap: %s\n", strerror(errno));
DbgFree(priv);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
priv->data = data;
slave->data_list = eina_list_append(slave->data_list, priv);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void *slave_del_data(struct slave_node *slave, const char *tag)
@@ -1259,7 +1360,7 @@ HAPI struct slave_node *slave_find_by_name(const char *name)
return NULL;
}
-HAPI struct slave_node *slave_find_available(const char *abi, int secured, int network)
+HAPI struct slave_node *slave_find_available(const char *slave_pkgname, const char *abi, int secured, int network, const char *hw_acceleration)
{
Eina_List *l;
struct slave_node *slave;
@@ -1286,6 +1387,16 @@ HAPI struct slave_node *slave_find_available(const char *abi, int secured, int n
continue;
}
+ if (strcasecmp(slave->pkgname, slave_pkgname)) {
+ continue;
+ }
+
+ if (slave->hw_acceleration != hw_acceleration) {
+ if (!slave->hw_acceleration || !hw_acceleration || strcasecmp(slave->hw_acceleration, hw_acceleration)) {
+ continue;
+ }
+ }
+
if (slave->secured) {
if (slave->loaded_package == 0) {
DbgPrint("Found secured slave - has no instances (%s)\n", slave_name(slave));
@@ -1293,8 +1404,15 @@ HAPI struct slave_node *slave_find_available(const char *abi, int secured, int n
}
} else if (slave->network == network) {
DbgPrint("slave[%s] loaded_package[%d] net: [%d]\n", slave_name(slave), slave->loaded_package, slave->network);
- if (!strcasecmp(abi, DEFAULT_ABI)) {
- if (slave->loaded_package < SLAVE_MAX_LOAD) {
+ if (!strcasecmp(abi, DYNAMICBOX_CONF_DEFAULT_ABI)) {
+ int max_load;
+ if (g_conf.slave_max_load < 0) {
+ max_load = DYNAMICBOX_CONF_SLAVE_MAX_LOAD;
+ } else {
+ max_load = g_conf.slave_max_load;
+ }
+
+ if (slave->loaded_package < max_load) {
return slave;
}
} else {
@@ -1342,6 +1460,30 @@ HAPI struct slave_node *slave_find_by_rpc_handle(int handle)
return NULL;
}
+HAPI char *slave_package_name(const char *abi, const char *lbid)
+{
+ char *s_pkgname;
+ const char *tmp;
+
+ tmp = abi_find_slave(abi);
+ if (!tmp) {
+ ErrPrint("Failed to find a proper pkgname of a slave\n");
+ return NULL;
+ }
+
+ s_pkgname = util_replace_string(tmp, DYNAMICBOX_CONF_REPLACE_TAG_APPID, lbid);
+ if (!s_pkgname) {
+ DbgPrint("Failed to get replaced string\n");
+ s_pkgname = strdup(tmp);
+ if (!s_pkgname) {
+ ErrPrint("Heap: %s\n", strerror(errno));
+ return NULL;
+ }
+ }
+
+ return s_pkgname;
+}
+
HAPI void slave_load_package(struct slave_node *slave)
{
slave->loaded_package++;
@@ -1353,7 +1495,7 @@ HAPI void slave_unload_package(struct slave_node *slave)
ErrPrint("Slave loaded package is not correct\n");
return;
}
-
+
slave->loaded_package--;
}
@@ -1415,13 +1557,13 @@ HAPI const pid_t const slave_pid(const struct slave_node *slave)
HAPI int slave_set_pid(struct slave_node *slave, pid_t pid)
{
if (!slave) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgPrint("Slave PID is updated to %d from %d\n", pid, slave_pid(slave));
slave->pid = pid;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline void invoke_resumed_cb(struct slave_node *slave)
@@ -1514,26 +1656,27 @@ HAPI int slave_resume(struct slave_node *slave)
{
double timestamp;
struct packet *packet;
+ unsigned int cmd = CMD_RESUME;
switch (slave->state) {
case SLAVE_REQUEST_TO_DISCONNECT:
case SLAVE_REQUEST_TO_LAUNCH:
case SLAVE_REQUEST_TO_TERMINATE:
case SLAVE_TERMINATED:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
case SLAVE_RESUMED:
case SLAVE_REQUEST_TO_RESUME:
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
default:
break;
}
timestamp = util_timestamp();
- packet = packet_create("resume", "d", timestamp);
+ packet = packet_create((const char *)&cmd, "d", timestamp);
if (!packet) {
ErrPrint("Failed to prepare param\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
slave->state = SLAVE_REQUEST_TO_RESUME;
@@ -1544,26 +1687,27 @@ HAPI int slave_pause(struct slave_node *slave)
{
double timestamp;
struct packet *packet;
+ unsigned int cmd = CMD_PAUSE;
switch (slave->state) {
case SLAVE_REQUEST_TO_DISCONNECT:
case SLAVE_REQUEST_TO_LAUNCH:
case SLAVE_REQUEST_TO_TERMINATE:
case SLAVE_TERMINATED:
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
case SLAVE_PAUSED:
case SLAVE_REQUEST_TO_PAUSE:
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
default:
break;
}
timestamp = util_timestamp();
- packet = packet_create("pause", "d", timestamp);
+ packet = packet_create((const char *)&cmd, "d", timestamp);
if (!packet) {
ErrPrint("Failed to prepare param\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
slave->state = SLAVE_REQUEST_TO_PAUSE;
@@ -1671,11 +1815,13 @@ HAPI int slave_deactivate_all(int reactivate, int reactivate_instances, int no_t
DbgPrint("Deactivate all\n");
EINA_LIST_FOREACH_SAFE(s_info.slave_list, l, n, slave) {
- slave_set_reactivate_instances(slave, reactivate_instances);
- slave_set_reactivation(slave, reactivate);
+ if (slave_is_activated(slave)) {
+ slave_set_reactivate_instances(slave, reactivate_instances);
+ slave_set_reactivation(slave, reactivate);
- if (!slave_deactivate(slave, no_timer)) {
- s_info.slave_list = eina_list_remove(s_info.slave_list, slave);
+ if (!slave_deactivate(slave, no_timer)) {
+ s_info.slave_list = eina_list_remove(s_info.slave_list, slave);
+ }
}
cnt++;
@@ -1714,4 +1860,48 @@ HAPI int slave_control_option(struct slave_node *slave)
return slave->ctrl_option;
}
+HAPI int slave_set_priority(struct slave_node *slave, int priority)
+{
+ pid_t pid;
+
+ if (!slave) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ pid = slave_pid(slave);
+ if (pid < 0) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (setpriority(PRIO_PROCESS, slave_pid(slave), priority) < 0) {
+ ErrPrint("setpriority: %s\n", strerror(errno));
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ return DBOX_STATUS_ERROR_NONE;
+}
+
+HAPI int slave_priority(struct slave_node *slave)
+{
+ pid_t pid;
+ int priority;
+
+ if (!slave) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ pid = slave_pid(slave);
+ if (pid < 0) {
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ priority = getpriority(PRIO_PROCESS, pid);
+ if (priority < 0) {
+ ErrPrint("getpriority: %s\n", strerror(errno));
+ return DBOX_STATUS_ERROR_FAULT;
+ }
+
+ return priority;
+}
+
/* End of a file */
diff --git a/src/slave_rpc.c b/src/slave_rpc.c
index 7f64c9d..ec8f970 100644
--- a/src/slave_rpc.c
+++ b/src/slave_rpc.c
@@ -28,7 +28,10 @@
#include <packet.h>
#include <com-core_packet.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_service.h>
+#include <dynamicbox_cmd_list.h>
+#include <dynamicbox_conf.h>
#include "debug.h"
#include "slave_life.h"
@@ -70,7 +73,7 @@ static struct info {
#define DEFAULT_CMD_TTL 3
-static inline void prepend_command(struct command *command);
+static void prepend_command(struct command *command);
static inline struct command *create_command(struct slave_node *slave, const char *pkgname, struct packet *packet)
{
@@ -125,7 +128,7 @@ static int slave_async_cb(pid_t pid, int handle, const struct packet *packet, vo
if (!command) {
ErrPrint("Command is NIL\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!
@@ -151,7 +154,7 @@ static int slave_async_cb(pid_t pid, int handle, const struct packet *packet, vo
* Slave will be deactivated from dead monitor if it lost its connections.
* So we don't need to care it again from here.
- command->slave = slave_deactivated_by_fault(command->slave);
+ command->slave = slave_deactivated_by_fault(command->slave);
*/
goto out;
@@ -163,7 +166,7 @@ static int slave_async_cb(pid_t pid, int handle, const struct packet *packet, vo
out:
destroy_command(command);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static Eina_Bool command_consumer_cb(void *data)
@@ -251,7 +254,7 @@ errout:
return ECORE_CALLBACK_RENEW;
}
-static inline void prepend_command(struct command *command)
+static void prepend_command(struct command *command)
{
s_info.command_list = eina_list_prepend(s_info.command_list, command);
@@ -259,7 +262,7 @@ static inline void prepend_command(struct command *command)
return;
}
- s_info.command_consuming_timer = ecore_timer_add(PACKET_TIME, command_consumer_cb, NULL);
+ s_info.command_consuming_timer = ecore_timer_add(DYNAMICBOX_CONF_PACKET_TIME, command_consumer_cb, NULL);
if (!s_info.command_consuming_timer) {
ErrPrint("Failed to add command consumer\n");
s_info.command_list = eina_list_remove(s_info.command_list, command);
@@ -267,7 +270,7 @@ static inline void prepend_command(struct command *command)
}
}
-static inline void push_command(struct command *command)
+static void push_command(struct command *command)
{
s_info.command_list = eina_list_append(s_info.command_list, command);
@@ -275,7 +278,7 @@ static inline void push_command(struct command *command)
return;
}
- s_info.command_consuming_timer = ecore_timer_add(PACKET_TIME, command_consumer_cb, NULL);
+ s_info.command_consuming_timer = ecore_timer_add(DYNAMICBOX_CONF_PACKET_TIME, command_consumer_cb, NULL);
if (!s_info.command_consuming_timer) {
ErrPrint("Failed to add command consumer\n");
s_info.command_list = eina_list_remove(s_info.command_list, command);
@@ -296,7 +299,7 @@ static int slave_deactivate_cb(struct slave_node *slave, void *data)
* \note
* Return negative value will remove this callback from the event list of the slave
*/
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (rpc->pong_timer) {
@@ -339,7 +342,7 @@ static int slave_deactivate_cb(struct slave_node *slave, void *data)
*/
rpc->ping_count = 0;
rpc->next_ping_count = 1;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static Eina_Bool ping_timeout_cb(void *data)
@@ -390,7 +393,7 @@ HAPI int slave_rpc_async_request(struct slave_node *slave, const char *pkgname,
}
packet_unref(packet);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
command->ret_cb = ret_cb;
@@ -404,18 +407,18 @@ HAPI int slave_rpc_async_request(struct slave_node *slave, const char *pkgname,
ret_cb(slave, NULL, data);
}
destroy_command(command);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (rpc->handle < 0) {
DbgPrint("RPC handle is not ready to use it\n");
- if (((slave_control_option(slave) & PROVIDER_CTRL_MANUAL_REACTIVATION) == PROVIDER_CTRL_MANUAL_REACTIVATION || slave_is_secured(slave))
- && !slave_is_activated(slave))
+ if (((slave_control_option(slave) & PROVIDER_CTRL_MANUAL_REACTIVATION) == PROVIDER_CTRL_MANUAL_REACTIVATION || slave_is_secured(slave) || (DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL))
+ && !slave_is_activated(slave))
{
int ret;
DbgPrint("Activate slave forcely\n");
ret = slave_activate(slave);
- if (ret < 0 && ret != LB_STATUS_ERROR_ALREADY) {
+ if (ret < 0 && ret != DBOX_STATUS_ERROR_ALREADY) {
if (ret_cb) {
ret_cb(slave, NULL, data);
@@ -432,7 +435,7 @@ HAPI int slave_rpc_async_request(struct slave_node *slave, const char *pkgname,
rpc->pending_list = eina_list_append(rpc->pending_list, command);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (urgent) {
@@ -441,7 +444,7 @@ HAPI int slave_rpc_async_request(struct slave_node *slave, const char *pkgname,
push_command(command);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_request_only(struct slave_node *slave, const char *pkgname, struct packet *packet, int urgent)
@@ -453,7 +456,7 @@ HAPI int slave_rpc_request_only(struct slave_node *slave, const char *pkgname, s
if (!command) {
ErrPrint("Failed to create a command\n");
packet_unref(packet);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
command->ret_cb = NULL;
@@ -464,19 +467,19 @@ HAPI int slave_rpc_request_only(struct slave_node *slave, const char *pkgname, s
if (!rpc) {
ErrPrint("Slave has no RPC\n");
destroy_command(command);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (rpc->handle < 0) {
DbgPrint("RPC handle is not ready to use it\n");
- if (((slave_control_option(slave) & PROVIDER_CTRL_MANUAL_REACTIVATION) == PROVIDER_CTRL_MANUAL_REACTIVATION || slave_is_secured(slave))
- && !slave_is_activated(slave))
- {
+ if (((slave_control_option(slave) & PROVIDER_CTRL_MANUAL_REACTIVATION) == PROVIDER_CTRL_MANUAL_REACTIVATION || slave_is_secured(slave) || (DBOX_IS_INHOUSE(slave_abi(slave)) && DYNAMICBOX_CONF_SLAVE_LIMIT_TO_TTL))
+ && !slave_is_activated(slave))
+ {
int ret;
DbgPrint("Activate slave forcely\n");
ret = slave_activate(slave);
- if (ret < 0 && ret != LB_STATUS_ERROR_ALREADY) {
+ if (ret < 0 && ret != DBOX_STATUS_ERROR_ALREADY) {
destroy_command(command);
return ret;
}
@@ -488,7 +491,7 @@ HAPI int slave_rpc_request_only(struct slave_node *slave, const char *pkgname, s
rpc->pending_list = eina_list_append(rpc->pending_list, command);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
if (urgent) {
@@ -497,7 +500,7 @@ HAPI int slave_rpc_request_only(struct slave_node *slave, const char *pkgname, s
push_command(command);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_update_handle(struct slave_node *slave, int handle)
@@ -507,7 +510,7 @@ HAPI int slave_rpc_update_handle(struct slave_node *slave, int handle)
rpc = slave_data(slave, "rpc");
if (!rpc) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
DbgPrint("SLAVE: New handle assigned for %d, %d\n", slave_pid(slave), handle);
@@ -516,7 +519,7 @@ HAPI int slave_rpc_update_handle(struct slave_node *slave, int handle)
ecore_timer_del(rpc->pong_timer);
}
- rpc->pong_timer = ecore_timer_add(DEFAULT_PING_TIME, ping_timeout_cb, slave);
+ rpc->pong_timer = ecore_timer_add(DYNAMICBOX_CONF_DEFAULT_PING_TIME, ping_timeout_cb, slave);
if (!rpc->pong_timer) {
ErrPrint("Failed to add ping timer\n");
}
@@ -533,7 +536,7 @@ HAPI int slave_rpc_update_handle(struct slave_node *slave, int handle)
push_command(command);
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_init(struct slave_node *slave)
@@ -543,12 +546,12 @@ HAPI int slave_rpc_init(struct slave_node *slave)
rpc = calloc(1, sizeof(*rpc));
if (!rpc) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
if (slave_set_data(slave, "rpc", rpc) < 0) {
DbgFree(rpc);
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
if (slave_event_callback_add(slave, SLAVE_EVENT_DEACTIVATE, slave_deactivate_cb, NULL) < 0) {
@@ -559,7 +562,7 @@ HAPI int slave_rpc_init(struct slave_node *slave)
rpc->next_ping_count = 1;
rpc->handle = -1;
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_fini(struct slave_node *slave)
@@ -568,7 +571,7 @@ HAPI int slave_rpc_fini(struct slave_node *slave)
rpc = slave_del_data(slave, "rpc");
if (!rpc) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
slave_event_callback_del(slave, SLAVE_EVENT_DEACTIVATE, slave_deactivate_cb, NULL);
@@ -578,7 +581,7 @@ HAPI int slave_rpc_fini(struct slave_node *slave)
}
DbgFree(rpc);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_ping(struct slave_node *slave)
@@ -588,12 +591,12 @@ HAPI int slave_rpc_ping(struct slave_node *slave)
rpc = slave_data(slave, "rpc");
if (!rpc) {
ErrPrint("Slave RPC is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!slave_is_activated(slave)) {
ErrPrint("Slave is not activated\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
rpc->ping_count++;
@@ -604,7 +607,7 @@ HAPI int slave_rpc_ping(struct slave_node *slave)
rpc->next_ping_count++;
ecore_timer_reset(rpc->pong_timer);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_ping_freeze(struct slave_node *slave)
@@ -614,16 +617,16 @@ HAPI int slave_rpc_ping_freeze(struct slave_node *slave)
rpc = slave_data(slave, "rpc");
if (!rpc) {
ErrPrint("Slave RPC is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!slave_is_activated(slave)) {
ErrPrint("Slave is not activated\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
ecore_timer_freeze(rpc->pong_timer);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int slave_rpc_ping_thaw(struct slave_node *slave)
@@ -633,16 +636,16 @@ HAPI int slave_rpc_ping_thaw(struct slave_node *slave)
rpc = slave_data(slave, "rpc");
if (!rpc) {
ErrPrint("Slave RPC is not valid\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!slave_is_activated(slave)) {
ErrPrint("Slave is not activated\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
ecore_timer_thaw(rpc->pong_timer);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void slave_rpc_request_update(const char *pkgname, const char *id, const char *cluster, const char *category, const char *content, int force)
@@ -650,6 +653,7 @@ HAPI void slave_rpc_request_update(const char *pkgname, const char *id, const ch
struct slave_node *slave;
struct pkg_info *info;
struct packet *packet;
+ unsigned int cmd = CMD_UPDATE_CONTENT;
info = package_find(pkgname);
if (!info) {
@@ -663,7 +667,7 @@ HAPI void slave_rpc_request_update(const char *pkgname, const char *id, const ch
return;
}
- packet = packet_create_noack("update_content", "sssssi", pkgname, id, cluster, category, content, force);
+ packet = packet_create_noack((const char *)&cmd, "sssssi", pkgname, id, cluster, category, content, force);
if (!packet) {
ErrPrint("Failed to create a new param\n");
return;
@@ -679,7 +683,7 @@ HAPI int slave_rpc_handle(struct slave_node *slave)
rpc = slave_data(slave, "rpc");
if (!rpc) {
DbgPrint("Slave RPC is not initiated\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
return rpc->handle;
@@ -688,11 +692,12 @@ HAPI int slave_rpc_handle(struct slave_node *slave)
HAPI int slave_rpc_disconnect(struct slave_node *slave)
{
struct packet *packet;
+ unsigned int cmd = CMD_DISCONNECT;
- packet = packet_create_noack("disconnect", "d", util_timestamp());
+ packet = packet_create_noack((const char *)&cmd, "d", util_timestamp());
if (!packet) {
ErrPrint("Failed to create a packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
DbgPrint("Send disconnection request packet\n");
diff --git a/src/util.c b/src/util.c
index 7c95b1c..f9c356e 100644
--- a/src/util.c
+++ b/src/util.c
@@ -34,9 +34,11 @@
#include <Eina.h>
#include <Ecore.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
#else
#include "lite-errno.h"
+#define DYNAMICBOX_CONF_IMAGE_PATH "/tmp/"
#endif
#include "util.h"
@@ -87,78 +89,13 @@ HAPI int util_check_ext(const char *filename, const char *check_ptr)
name_len = strlen(filename);
while (--name_len >= 0 && *check_ptr) {
if (filename[name_len] != *check_ptr) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
check_ptr ++;
}
- return LB_STATUS_SUCCESS;
-}
-
-static inline int check_native_livebox(const char *pkgname)
-{
- int len;
- char *path;
-
- len = strlen(pkgname) * 2;
- len += strlen(ROOT_PATH);
- len += strlen("%s/libexec/liblive-%s.so");
-
- path = malloc(len + 1);
- if (!path) {
- ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
- }
-
- snprintf(path, len, "%s%s/libexec/liblive-%s.so", ROOT_PATH, pkgname, pkgname);
- if (access(path, F_OK | R_OK) != 0) {
- ErrPrint("%s is not a valid package\n", pkgname);
- DbgFree(path);
- return LB_STATUS_ERROR_INVALID;
- }
-
- DbgFree(path);
- return LB_STATUS_SUCCESS;
-}
-
-static inline int check_web_livebox(const char *pkgname)
-{
- int len;
- char *path;
-
- len = strlen(pkgname) * 2;
- len += strlen("/opt/usr/apps/%s/res/wgt/livebox/index.html");
-
- path = malloc(len + 1);
- if (!path) {
- ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
- }
-
- snprintf(path, len, "/opt/usr/apps/%s/res/wgt/livebox/index.html", pkgname);
- if (access(path, F_OK | R_OK) != 0) {
- ErrPrint("%s is not a valid package\n", pkgname);
- DbgFree(path);
- return LB_STATUS_ERROR_INVALID;
- }
-
- DbgFree(path);
- return LB_STATUS_SUCCESS;
-}
-
-HAPI int util_validate_livebox_package(const char *pkgname)
-{
- if (!pkgname) {
- ErrPrint("Invalid argument\n");
- return LB_STATUS_ERROR_INVALID;
- }
-
- if (!check_native_livebox(pkgname) || !check_web_livebox(pkgname)) {
- return LB_STATUS_SUCCESS;
- }
-
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int util_unlink(const char *filename)
@@ -168,28 +105,28 @@ HAPI int util_unlink(const char *filename)
int ret;
if (!filename) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
desclen = strlen(filename) + 6; /* .desc */
descfile = malloc(desclen);
if (!descfile) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
ret = snprintf(descfile, desclen, "%s.desc", filename);
if (ret < 0) {
ErrPrint("Error: %s\n", strerror(errno));
DbgFree(descfile);
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
(void)unlink(descfile);
DbgFree(descfile);
(void)unlink(filename);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI char *util_slavename(void)
@@ -437,18 +374,18 @@ HAPI int util_unlink_files(const char *folder)
if (lstat(folder, &info) < 0) {
ErrPrint("Error: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
if (!S_ISDIR(info.st_mode)) {
ErrPrint("Error: %s is not a folder", folder);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
handle = opendir(folder);
if (!handle) {
ErrPrint("Error: %s\n", strerror(errno));
- return LB_STATUS_ERROR_IO;
+ return DBOX_STATUS_ERROR_IO_ERROR;
}
while ((entry = readdir(handle))) {
@@ -478,18 +415,18 @@ HAPI int util_unlink_files(const char *folder)
if (closedir(handle) < 0) {
ErrPrint("closedir: %s\n", strerror(errno));
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void util_remove_emergency_disk(void)
{
int ret;
- ret = umount(IMAGE_PATH);
+ ret = umount(DYNAMICBOX_CONF_IMAGE_PATH);
if (ret < 0) {
ErrPrint("umount: %s\n", strerror(errno));
}
- DbgPrint("Try to unmount[%s] %d\n", IMAGE_PATH, ret);
+ DbgPrint("Try to unmount[%s] %d\n", DYNAMICBOX_CONF_IMAGE_PATH, ret);
s_info.emergency_mounted = 0;
}
@@ -518,7 +455,7 @@ HAPI void util_prepare_emergency_disk(void)
TAG_ERROR
};
- buf = strdup(EMERGENCY_DISK);
+ buf = strdup(DYNAMICBOX_CONF_EMERGENCY_DISK);
if (!buf) {
ErrPrint("Failed to prepare emergency disk info\n");
return;
@@ -619,69 +556,67 @@ HAPI void util_prepare_emergency_disk(void)
DbgPrint("source[%s] type[%s] option[%s]\n", source, type, option);
- ret = mount(source, IMAGE_PATH, type, MS_NOSUID | MS_NOEXEC, option);
+ ret = mount(source, DYNAMICBOX_CONF_IMAGE_PATH, type, MS_NOSUID | MS_NOEXEC, option);
DbgFree(buf);
if (ret < 0) {
ErrPrint("Failed to mount: %s\n", strerror(errno));
return;
}
- MINIMUM_SPACE = 0;
-
- ErrPrint("Disk space is not enough, use the tmpfs. Currently required minimum space is %lu bytes\n", MINIMUM_SPACE);
- if (chmod(IMAGE_PATH, 0750) < 0) {
+ ErrPrint("Disk space is not enough, use the tmpfs. Currently required minimum space is %lu bytes\n", DYNAMICBOX_CONF_MINIMUM_SPACE);
+ if (chmod(DYNAMICBOX_CONF_IMAGE_PATH, 0750) < 0) {
ErrPrint("chmod: %s\n", strerror(errno));
}
- if (chown(IMAGE_PATH, 5000, 5000) < 0) {
+ if (chown(DYNAMICBOX_CONF_IMAGE_PATH, 5000, 5000) < 0) {
ErrPrint("chown: %s\n", strerror(errno));
}
- ret = smack_setlabel(IMAGE_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
+ ret = smack_setlabel(DYNAMICBOX_CONF_IMAGE_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
if (ret != 0) {
- ErrPrint("Failed to set SMACK for %s (%d)\n", IMAGE_PATH, ret);
+ ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_IMAGE_PATH, ret);
} else {
- ret = smack_setlabel(IMAGE_PATH, "1", SMACK_LABEL_TRANSMUTE);
- DbgPrint("[%s] is successfully created (t: %d)\n", IMAGE_PATH, ret);
+ ret = smack_setlabel(DYNAMICBOX_CONF_IMAGE_PATH, "1", SMACK_LABEL_TRANSMUTE);
+ DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_IMAGE_PATH, ret);
}
- if (mkdir(ALWAYS_PATH, 0755) < 0) {
- ErrPrint("mkdir: (%s) %s\n", ALWAYS_PATH, strerror(errno));
+ if (mkdir(DYNAMICBOX_CONF_ALWAYS_PATH, 0755) < 0) {
+ ErrPrint("mkdir: (%s) %s\n", DYNAMICBOX_CONF_ALWAYS_PATH, strerror(errno));
} else {
- if (chmod(ALWAYS_PATH, 0750) < 0) {
+ if (chmod(DYNAMICBOX_CONF_ALWAYS_PATH, 0750) < 0) {
ErrPrint("chmod: %s\n", strerror(errno));
}
- if (chown(ALWAYS_PATH, 5000, 5000) < 0) {
+ if (chown(DYNAMICBOX_CONF_ALWAYS_PATH, 5000, 5000) < 0) {
ErrPrint("chown: %s\n", strerror(errno));
}
- ret = smack_setlabel(ALWAYS_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
+ ret = smack_setlabel(DYNAMICBOX_CONF_ALWAYS_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
if (ret != 0) {
- ErrPrint("Failed to set SMACK for %s (%d)\n", ALWAYS_PATH, ret);
+ ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_ALWAYS_PATH, ret);
} else {
- ret = smack_setlabel(ALWAYS_PATH, "1", SMACK_LABEL_TRANSMUTE);
- DbgPrint("[%s] is successfully created (t: %d)\n", ALWAYS_PATH, ret);
+ ret = smack_setlabel(DYNAMICBOX_CONF_ALWAYS_PATH, "1", SMACK_LABEL_TRANSMUTE);
+ DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_ALWAYS_PATH, ret);
}
}
- if (mkdir(READER_PATH, 0755) < 0) {
- ErrPrint("mkdir: (%s) %s\n", READER_PATH, strerror(errno));
+ if (mkdir(DYNAMICBOX_CONF_READER_PATH, 0755) < 0) {
+ ErrPrint("mkdir: (%s) %s\n", DYNAMICBOX_CONF_READER_PATH, strerror(errno));
} else {
- if (chmod(READER_PATH, 0750) < 0) {
+ if (chmod(DYNAMICBOX_CONF_READER_PATH, 0750) < 0) {
ErrPrint("chmod: %s\n", strerror(errno));
}
- if (chown(READER_PATH, 5000, 5000) < 0) {
+ if (chown(DYNAMICBOX_CONF_READER_PATH, 5000, 5000) < 0) {
ErrPrint("chown: %s\n", strerror(errno));
}
- ret = smack_setlabel(READER_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
+ ret = smack_setlabel(DYNAMICBOX_CONF_READER_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
if (ret != 0) {
- ErrPrint("Failed to set SMACK for %s (%d)\n", READER_PATH, ret);
+ ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_READER_PATH, ret);
} else {
- ret = smack_setlabel(READER_PATH, "1", SMACK_LABEL_TRANSMUTE);
- DbgPrint("[%s] is successfully created (t: %d)\n", READER_PATH, ret);
+ ret = smack_setlabel(DYNAMICBOX_CONF_READER_PATH, "1", SMACK_LABEL_TRANSMUTE);
+ DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_READER_PATH, ret);
}
}
@@ -697,36 +632,36 @@ HAPI void util_setup_log_disk(void)
{
int ret;
- if (access(SLAVE_LOG_PATH, R_OK | W_OK | X_OK) == 0) {
- DbgPrint("[%s] is already accessible\n", SLAVE_LOG_PATH);
+ if (access(DYNAMICBOX_CONF_LOG_PATH, R_OK | W_OK | X_OK) == 0) {
+ DbgPrint("[%s] is already accessible\n", DYNAMICBOX_CONF_LOG_PATH);
return;
}
- DbgPrint("Initiate the critical log folder [%s]\n", SLAVE_LOG_PATH);
- if (mkdir(SLAVE_LOG_PATH, 0755) < 0) {
+ DbgPrint("Initiate the critical log folder [%s]\n", DYNAMICBOX_CONF_LOG_PATH);
+ if (mkdir(DYNAMICBOX_CONF_LOG_PATH, 0755) < 0) {
ErrPrint("mkdir: %s\n", strerror(errno));
} else {
- if (chmod(SLAVE_LOG_PATH, 0750) < 0) {
+ if (chmod(DYNAMICBOX_CONF_LOG_PATH, 0750) < 0) {
ErrPrint("chmod: %s\n", strerror(errno));
}
- if (chown(SLAVE_LOG_PATH, 5000, 5000) < 0) {
+ if (chown(DYNAMICBOX_CONF_LOG_PATH, 5000, 5000) < 0) {
ErrPrint("chown: %s\n", strerror(errno));
}
- ret = smack_setlabel(SLAVE_LOG_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
+ ret = smack_setlabel(DYNAMICBOX_CONF_LOG_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS);
if (ret != 0) {
- ErrPrint("Failed to set SMACK for %s (%d)\n", SLAVE_LOG_PATH, ret);
+ ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_LOG_PATH, ret);
} else {
- ret = smack_setlabel(SLAVE_LOG_PATH, "1", SMACK_LABEL_TRANSMUTE);
- DbgPrint("[%s] is successfully created (t: %d)\n", SLAVE_LOG_PATH, ret);
+ ret = smack_setlabel(DYNAMICBOX_CONF_LOG_PATH, "1", SMACK_LABEL_TRANSMUTE);
+ DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_LOG_PATH, ret);
}
}
}
HAPI int util_service_is_enabled(const char *tag)
{
- return !!strcasestr(SERVICES, tag);
+ return !!strcasestr(DYNAMICBOX_CONF_SERVICES, tag);
}
/* End of a file */
diff --git a/src/util_wayland.c b/src/util_wayland.c
index a169f3f..4e4db7d 100644
--- a/src/util_wayland.c
+++ b/src/util_wayland.c
@@ -1,7 +1,7 @@
#include "util.h"
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#else
#include "lite-errno.h"
#endif
@@ -10,17 +10,17 @@ int util_screen_size_get(int *width, int *height)
{
*width = 0;
*height = 0;
- return LB_STATUS_ERROR_NOT_IMPLEMENTED;
+ return DBOX_STATUS_ERROR_NOT_IMPLEMENTED;
}
int util_screen_init(void)
{
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
int util_screen_fini(void)
{
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/util_x11.c b/src/util_x11.c
index cbf3764..a05fefc 100644
--- a/src/util_x11.c
+++ b/src/util_x11.c
@@ -1,25 +1,39 @@
#include <Ecore_X.h>
+#include <dlog.h>
#if defined(HAVE_LIVEBOX)
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#else
#include "lite-errno.h"
#endif
#include "util.h"
+#include "debug.h"
+
+static struct info {
+ int initialized;
+} s_info = {
+ .initialized = 0,
+};
int util_screen_size_get(int *width, int *height)
{
+ if (!s_info.initialized) {
+ ErrPrint("Not initialized\n");
+ return DBOX_STATUS_ERROR_FAULT;
+ }
ecore_x_window_size_get(0, width, height);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
int util_screen_init(void)
{
+ s_info.initialized = 1;
return ecore_x_init(NULL);
}
int util_screen_fini(void)
{
+ s_info.initialized = 0;
return ecore_x_shutdown();
}
diff --git a/src/utility_service.c b/src/utility_service.c
index f188c49..c2410a3 100644
--- a/src/utility_service.c
+++ b/src/utility_service.c
@@ -20,7 +20,7 @@
#include <dlog.h>
#include <aul.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include <packet.h>
#include <sys/smack.h>
@@ -89,7 +89,7 @@ static int put_reply_tcb(struct tcb *tcb, double seq)
ctx = malloc(sizeof(*ctx));
if (!ctx) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
ctx->tcb = tcb;
@@ -97,7 +97,7 @@ static int put_reply_tcb(struct tcb *tcb, double seq)
s_info.context_list = eina_list_append(s_info.context_list, ctx);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline struct tcb *get_reply_tcb(double seq)
@@ -162,7 +162,7 @@ static inline int put_pended_request(struct tcb *tcb, struct packet *packet)
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->tcb = tcb;
@@ -170,7 +170,7 @@ static inline int put_pended_request(struct tcb *tcb, struct packet *packet)
if (!item->packet) {
DbgFree(item);
ErrPrint("Unable to ref packet\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
s_info.pending_list = eina_list_append(s_info.pending_list, item);
@@ -214,20 +214,18 @@ static int launch_timeout_cb(struct service_context *svc_ctx, void *data)
static int launch_svc(struct service_context *svc_ctx)
{
pid_t pid;
- int ret = LB_STATUS_SUCCESS;
+ int ret = DBOX_STATUS_ERROR_NONE;
pid = aul_launch_app(SVC_PKG, NULL);
switch (pid) {
-#if defined(WEARABLE)
case AUL_R_EHIDDENFORGUEST: /**< App hidden for guest mode */
-#endif
case AUL_R_ENOLAUNCHPAD: /**< no launchpad */
case AUL_R_EILLACC: /**< Illegal Access */
case AUL_R_EINVAL: /**< Invalid argument */
case AUL_R_ENOINIT: /**< AUL handler NOT initialized */
case AUL_R_ERROR: /**< General error */
ErrPrint("Failed to launch an app: %s(%d)\n", SVC_PKG, pid);
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
break;
case AUL_R_ETIMEOUT: /**< Timeout */
case AUL_R_ECOMM: /**< Comunication Error */
@@ -239,7 +237,7 @@ static int launch_svc(struct service_context *svc_ctx)
s_info.delay_launcher = service_common_add_timer(svc_ctx, LAUNCH_TIMEOUT, lazy_launcher_cb, NULL);
if (!s_info.delay_launcher) {
ErrPrint("Unable to add delay launcher\n");
- ret = LB_STATUS_ERROR_FAULT;
+ ret = DBOX_STATUS_ERROR_FAULT;
}
break;
case AUL_R_LOCAL: /**< Launch by himself */
@@ -268,7 +266,7 @@ static int lazy_launcher_cb(struct service_context *svc_ctx, void *data)
static int ttl_timer_cb(struct service_context *svc_ctx, void *data)
{
DbgPrint("TTL Timer is expired: PID(%d)\n", s_info.svc_daemon_pid);
- (void)aul_terminate_pid(s_info.svc_daemon_pid);
+ (void)aul_terminate_pid_async(s_info.svc_daemon_pid);
s_info.ttl_timer = NULL;
s_info.svc_daemon_is_launched = 0;
@@ -297,20 +295,20 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
}
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
cmd = packet_command(packet);
if (!cmd) {
ErrPrint("Invalid packet\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
switch (packet_type(packet)) {
case PACKET_REQ:
if (!s_info.svc_daemon_is_launched) {
ret = launch_svc(tcb_svc_ctx(tcb));
- if (ret != LB_STATUS_SUCCESS) {
+ if (ret != DBOX_STATUS_ERROR_NONE) {
goto reply_out;
}
}
@@ -338,12 +336,12 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
if (!strcmp(cmd, "service_register")) {
if (!s_info.svc_daemon_is_launched) {
ErrPrint("Service daemon is not launched. but something tries to register a service\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (s_info.svc_daemon) {
ErrPrint("Service daemon is already prepared\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (s_info.launch_timer) {
@@ -355,12 +353,12 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
if (!s_info.ttl_timer) {
ErrPrint("Failed to add TTL timer\n");
if (s_info.svc_daemon_pid > 0) {
- ret = aul_terminate_pid(s_info.svc_daemon_pid);
+ ret = aul_terminate_pid_async(s_info.svc_daemon_pid);
ErrPrint("Terminate: %d\n", ret);
s_info.svc_daemon_pid = -1;
}
s_info.svc_daemon_is_launched = 0;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
DbgPrint("TTL Timer is added: %p\n", s_info.ttl_timer);
@@ -387,10 +385,10 @@ static int service_thread_main(struct tcb *tcb, struct packet *packet, void *dat
break;
default:
ErrPrint("Packet type is not valid[%s]\n", cmd);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
reply_out:
ErrPrint("Error: %d\n", ret);
@@ -406,13 +404,13 @@ int utility_service_init(void)
{
if (s_info.svc_ctx) {
ErrPrint("Already initialized\n");
- return LB_STATUS_ERROR_ALREADY;
+ return DBOX_STATUS_ERROR_ALREADY;
}
s_info.svc_ctx = service_common_create(UTILITY_SOCKET, service_thread_main, NULL);
if (!s_info.svc_ctx) {
ErrPrint("Unable to activate service thread\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
if (smack_fsetlabel(service_common_fd(s_info.svc_ctx), UTILITY_SMACK_LABEL, SMACK_LABEL_IPOUT) != 0) {
@@ -420,7 +418,7 @@ int utility_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
@@ -429,24 +427,24 @@ int utility_service_init(void)
ErrPrint("Unable to set SMACK label(%d)\n", errno);
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
}
DbgPrint("Successfully initiated\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
int utility_service_fini(void)
{
if (!s_info.svc_ctx) {
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
service_common_destroy(s_info.svc_ctx);
s_info.svc_ctx = NULL;
DbgPrint("Successfully Finalized\n");
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/* End of a file */
diff --git a/src/xmonitor.c b/src/xmonitor.c
index 204a22d..b05a438 100644
--- a/src/xmonitor.c
+++ b/src/xmonitor.c
@@ -31,7 +31,8 @@
#include <gio/gio.h>
#include <dlog.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
+#include <dynamicbox_conf.h>
#include "conf.h"
#include "debug.h"
@@ -72,7 +73,7 @@ static struct info {
static inline void touch_paused_file(void)
{
int fd;
- fd = creat(PAUSED_FILE, 0644);
+ fd = creat(DYNAMICBOX_CONF_PAUSED_FILE, 0644);
if (fd >= 0) {
if (close(fd) < 0) {
ErrPrint("close: %s\n", strerror(errno));
@@ -84,7 +85,7 @@ static inline void touch_paused_file(void)
static inline void remove_paused_file(void)
{
- if (unlink(PAUSED_FILE) < 0) {
+ if (unlink(DYNAMICBOX_CONF_PAUSED_FILE) < 0) {
ErrPrint("Unlink .live.paused: %s\n", strerror(errno));
}
}
@@ -101,14 +102,14 @@ static inline int get_pid(Ecore_X_Window win)
sizeof(int), &in_pid, &num) == EINA_FALSE) {
if (ecore_x_netwm_pid_get(win, &pid) == EINA_FALSE) {
ErrPrint("Failed to get PID from a window 0x%X\n", win);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
} else if (in_pid) {
pid = *(int *)in_pid;
DbgFree(in_pid);
} else {
ErrPrint("Failed to get PID\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
return pid;
@@ -149,7 +150,7 @@ HAPI void xmonitor_handle_state_changes(void)
touch_paused_file();
- sqlite3_release_memory(SQLITE_FLUSH_MAX);
+ sqlite3_release_memory(DYNAMICBOX_CONF_SQLITE_FLUSH_MAX);
malloc_trim(0);
} else {
remove_paused_file();
@@ -168,8 +169,8 @@ HAPI int xmonitor_update_state(int target_pid)
struct client_node *client;
int pid;
- if (!USE_XMONITOR || target_pid < 0) {
- return LB_STATUS_SUCCESS;
+ if (!DYNAMICBOX_CONF_USE_XMONITOR || target_pid < 0) {
+ return DBOX_STATUS_ERROR_NONE;
}
win = ecore_x_window_focus_get();
@@ -182,7 +183,7 @@ HAPI int xmonitor_update_state(int target_pid)
DbgPrint("Client window has no focus now\n");
client_paused(client);
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
client = client_find_by_pid(pid);
@@ -193,7 +194,7 @@ HAPI int xmonitor_update_state(int target_pid)
DbgPrint("Client window has no focus now\n");
client_paused(client);
}
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (target_pid != pid) {
@@ -205,7 +206,7 @@ HAPI int xmonitor_update_state(int target_pid)
}
xmonitor_handle_state_changes();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static Eina_Bool client_cb(void *data, int type, void *event)
@@ -307,7 +308,7 @@ static inline void sniff_all_windows(void)
new_item->nr_of_wins = 0;
new_item->wins =
ecore_x_window_children_get(ret,
- &new_item->nr_of_wins);
+ &new_item->nr_of_wins);
if (new_item->wins) {
win_stack =
eina_list_append(win_stack, new_item);
@@ -330,7 +331,7 @@ HAPI int xmonitor_pause(struct client_node *client)
DbgPrint("%d is paused\n", client_pid(client));
client_paused(client);
xmonitor_handle_state_changes();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_resume(struct client_node *client)
@@ -338,7 +339,7 @@ HAPI int xmonitor_resume(struct client_node *client)
DbgPrint("%d is resumed\n", client_pid(client));
client_resumed(client);
xmonitor_handle_state_changes();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
static inline void disable_xmonitor(void)
@@ -360,41 +361,41 @@ static inline int enable_xmonitor(void)
s_info.create_handler =
ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CREATE,
- create_cb, NULL);
+ create_cb, NULL);
if (!s_info.create_handler) {
ErrPrint("Failed to add create event handler\n");
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
s_info.destroy_handler =
ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DESTROY,
- destroy_cb, NULL);
+ destroy_cb, NULL);
if (!s_info.destroy_handler) {
ErrPrint("Failed to add destroy event handler\n");
ecore_event_handler_del(s_info.create_handler);
s_info.create_handler = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
s_info.client_handler =
ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE,
- client_cb, NULL);
+ client_cb, NULL);
if (!s_info.client_handler) {
ErrPrint("Failed to add focus out event handler\n");
ecore_event_handler_del(s_info.create_handler);
ecore_event_handler_del(s_info.destroy_handler);
s_info.create_handler = NULL;
s_info.destroy_handler = NULL;
- return LB_STATUS_ERROR_FAULT;
+ return DBOX_STATUS_ERROR_FAULT;
}
sniff_all_windows();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_init(void)
{
- if (USE_XMONITOR) {
+ if (DYNAMICBOX_CONF_USE_XMONITOR) {
int ret;
ret = enable_xmonitor();
if (ret < 0) {
@@ -409,12 +410,12 @@ HAPI int xmonitor_init(void)
remove_paused_file();
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void xmonitor_fini(void)
{
- if (USE_XMONITOR) {
+ if (DYNAMICBOX_CONF_USE_XMONITOR) {
disable_xmonitor();
}
}
@@ -426,7 +427,7 @@ HAPI int xmonitor_add_event_callback(enum xmonitor_event event, int (*cb)(void *
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->cb = cb;
@@ -442,10 +443,10 @@ HAPI int xmonitor_add_event_callback(enum xmonitor_event event, int (*cb)(void *
default:
ErrPrint("Invalid event type\n");
DbgFree(item);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_del_event_callback(enum xmonitor_event event, int (*cb)(void *user_data), void *user_data)
@@ -460,7 +461,7 @@ HAPI int xmonitor_del_event_callback(enum xmonitor_event event, int (*cb)(void *
if (item->cb == cb && item->user_data == user_data) {
s_info.pause_list = eina_list_remove(s_info.pause_list, item);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -470,16 +471,16 @@ HAPI int xmonitor_del_event_callback(enum xmonitor_event event, int (*cb)(void *
if (item->cb == cb && item->user_data == user_data) {
s_info.resume_list = eina_list_remove(s_info.resume_list, item);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
default:
ErrPrint("Invalid event type\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int xmonitor_is_paused(void)
diff --git a/src/xmonitor_wayland.c b/src/xmonitor_wayland.c
index 488a3d3..7f1604b 100644
--- a/src/xmonitor_wayland.c
+++ b/src/xmonitor_wayland.c
@@ -28,7 +28,7 @@
#include <gio/gio.h>
#include <dlog.h>
-#include <livebox-errno.h>
+#include <dynamicbox_errno.h>
#include "conf.h"
#include "debug.h"
@@ -126,7 +126,7 @@ HAPI int xmonitor_update_state(int target_pid)
struct client_node *client;
if (!USE_XMONITOR || target_pid < 0) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
/*!
@@ -138,7 +138,7 @@ HAPI int xmonitor_update_state(int target_pid)
*/
xmonitor_handle_state_changes();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_pause(struct client_node *client)
@@ -146,7 +146,7 @@ HAPI int xmonitor_pause(struct client_node *client)
DbgPrint("%d is paused\n", client_pid(client));
client_paused(client);
xmonitor_handle_state_changes();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_resume(struct client_node *client)
@@ -154,13 +154,13 @@ HAPI int xmonitor_resume(struct client_node *client)
DbgPrint("%d is resumed\n", client_pid(client));
client_resumed(client);
xmonitor_handle_state_changes();
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_init(void)
{
if (USE_XMONITOR) {
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
s_info.paused = client_is_all_paused() || setting_is_lcd_off();
@@ -170,7 +170,7 @@ HAPI int xmonitor_init(void)
remove_paused_file();
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI void xmonitor_fini(void)
@@ -186,7 +186,7 @@ HAPI int xmonitor_add_event_callback(enum xmonitor_event event, int (*cb)(void *
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %s\n", strerror(errno));
- return LB_STATUS_ERROR_MEMORY;
+ return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
}
item->cb = cb;
@@ -202,10 +202,10 @@ HAPI int xmonitor_add_event_callback(enum xmonitor_event event, int (*cb)(void *
default:
ErrPrint("Invalid event type\n");
DbgFree(item);
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
HAPI int xmonitor_del_event_callback(enum xmonitor_event event, int (*cb)(void *user_data), void *user_data)
@@ -220,7 +220,7 @@ HAPI int xmonitor_del_event_callback(enum xmonitor_event event, int (*cb)(void *
if (item->cb == cb && item->user_data == user_data) {
s_info.pause_list = eina_list_remove(s_info.pause_list, item);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
@@ -230,16 +230,16 @@ HAPI int xmonitor_del_event_callback(enum xmonitor_event event, int (*cb)(void *
if (item->cb == cb && item->user_data == user_data) {
s_info.resume_list = eina_list_remove(s_info.resume_list, item);
DbgFree(item);
- return LB_STATUS_SUCCESS;
+ return DBOX_STATUS_ERROR_NONE;
}
}
break;
default:
ErrPrint("Invalid event type\n");
- return LB_STATUS_ERROR_INVALID;
+ return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
- return LB_STATUS_ERROR_NOT_EXIST;
+ return DBOX_STATUS_ERROR_NOT_EXIST;
}
HAPI int xmonitor_is_paused(void)