g_variant_unref(result);
if (ret < 0) {
+ DbgPrint("Livebox returns %d\n", ret);
lb_invoke_event_handler(handler, "pd,create,failed");
return;
}
- ret = fb_create_buffer(handler->pd_fb);
+ if (!handler->pd.data.fb) {
+ DbgPrint("Failed to create a PD (FB is not valid)\n");
+ lb_invoke_event_handler(handler, "pd,create,failed");
+ return;
+ }
+
+ ret = fb_create_buffer(handler->pd.data.fb);
if (ret < 0)
lb_invoke_event_handler(handler, "pd,create,failed");
else
g_variant_unref(result);
if (ret < 0) {
+ DbgPrint("PD destroy returns %d\n", ret);
lb_invoke_event_handler(handler, "event,ignored");
return;
}
- fb_destroy_buffer(handler->pd_fb);
+ fb_destroy_buffer(handler->pd.data.fb);
lb_invoke_event_handler(handler, "pd,deleted");
}
ErrPrint("Pinup is not changed: %s\n", strerror(ret));
lb_invoke_event_handler(handler, "pinup,failed");
} else {
- handler->is_pinned_up = (int)data;
+ handler->lb.is_pinned_up = (int)data;
lb_invoke_event_handler(handler, "pinup,changed");
}
}
timestamp = util_timestamp();
param = g_variant_new("(issiiddd)", getpid(), handler->pkgname, handler->filename,
- handler->pd_w, handler->pd_h,
+ handler->pd.width, handler->pd.height,
timestamp, x, y);
if (!param) {
ErrPrint("Failed to build param\n");
}
/* Data provider will set this */
- handler->data_type = FILEDATA;
+ handler->lb.type = LB_FILE;
+ handler->pd.type = PD_FB;
+ handler->lb.period = period;
/* Cluster infomration is not determined yet */
handler->nr_of_sizes = 0x01;
handler->timestamp = util_timestamp();
- handler->period = period;
handler->is_user = 1;
s_info.livebox_list = dlist_append(s_info.livebox_list, handler);
return 0.0f;
}
- return handler->period;
+ return handler->lb.period;
}
EAPI int livebox_set_period(struct livebox *handler, double period)
return -EINVAL;
}
- if (handler->period == period)
+ if (handler->lb.period == period)
return 0;
period_heap = malloc(sizeof(*period_heap));
return -EINVAL;
}
- if (handler->auto_launch)
+ if (handler->lb.auto_launch)
if (aul_launch_app(handler->pkgname, NULL) < 0)
ErrPrint("Failed to launch app %s\n", handler->pkgname);
return -EINVAL;
}
- return !!handler->pd_fb;
+ return !!handler->pd.data.fb;
}
EAPI int livebox_pd_is_created(struct livebox *handler)
return -EINVAL;
}
- if (!handler->pd_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->pd.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
- return fb_is_created(handler->pd_fb);
+ return fb_is_created(handler->pd.data.fb);
}
EAPI int livebox_create_pd(struct livebox *handler)
return -EINVAL;
}
- if (!handler->pd_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->pd.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
- if (fb_is_created(handler->pd_fb) == 1)
+ if (fb_is_created(handler->pd.data.fb) == 1) {
+ DbgPrint("PD already created\n");
return 0;
+ }
param = g_variant_new("(iss)", getpid(), handler->pkgname, handler->filename);
if (!param) {
return -EINVAL;
}
- if (!handler->pd_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->pd.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
- if (fb_is_created(handler->pd_fb) != 1) {
+ if (fb_is_created(handler->pd.data.fb) != 1) {
ErrPrint("PD is not created\n");
return -EINVAL;
}
return -EINVAL;
}
- if (!handler->pd_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->pd.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
return -EINVAL;
}
- if (!handler->pd_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->pd.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
return -EINVAL;
}
- if (!handler->pd_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->pd.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
return -EINVAL;
}
- if (!handler->lb_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->lb.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
return -EINVAL;
}
- if (!handler->lb_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->lb.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
return -EINVAL;
}
- if (!handler->lb_fb || handler->state == DELETE || !handler->filename) {
+ if (!handler->lb.data.fb || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
if (!h)
h = &_h;
- *w = handler->pd_w;
- *h = handler->pd_h;
+ *w = handler->pd.width;
+ *h = handler->pd.height;
return 0;
}
if (!h)
h = &_h;
- *w = handler->lb_w;
- *h = handler->lb_h;
+ *w = handler->lb.width;
+ *h = handler->lb.height;
return 0;
}
}
for (j = i = 0; i < NR_OF_SIZE_LIST; i++) {
- if (handler->size_list & (0x01 << i)) {
+ if (handler->lb.size_list & (0x01 << i)) {
if (j == *cnt)
break;
return -1.0f;
}
- return handler->priority;
+ return handler->lb.priority;
}
EAPI int livebox_delete_cluster(const char *cluster)
return -EINVAL;
}
- return handler->data_type == FILEDATA;
+ return handler->lb.type == LB_FILE;
}
EAPI int livebox_is_text(struct livebox *handler)
return -EINVAL;
}
- return handler->text_lb;
+ return handler->lb.type == LB_TEXT;
}
EAPI int livebox_pd_is_text(struct livebox *handler)
return -EINVAL;
}
- return handler->text_pd;
+ return handler->pd.type == PD_TEXT;
}
EAPI int livebox_pd_set_text_handler(struct livebox *handler, struct livebox_script_operators *ops)
return -EINVAL;
}
- memcpy(&handler->pd_ops, ops, sizeof(*ops));
+ memcpy(&handler->pd.data.ops, ops, sizeof(*ops));
return 0;
}
return -EINVAL;
}
- memcpy(&handler->ops, ops, sizeof(*ops));
+ memcpy(&handler->lb.data.ops, ops, sizeof(*ops));
return 0;
}
return NULL;
}
- if (handler->state == DELETE || !handler->filename || handler->data_type != FBDATA) {
+ if (handler->state == DELETE || !handler->filename || handler->lb.type != LB_FB) {
ErrPrint("Handler is not valid\n");
return NULL;
}
- ptr = fb_buffer(handler->lb_fb);
+ ptr = fb_buffer(handler->lb.data.fb);
return ptr;
}
return NULL;
}
- return fb_buffer(handler->pd_fb);
+ return fb_buffer(handler->pd.data.fb);
}
EAPI int livebox_pdfb_bufsz(struct livebox *handler)
return -EINVAL;
}
- return fb_size(handler->pd_fb);
+ return fb_size(handler->pd.data.fb);
}
EAPI int livebox_lbfb_bufsz(struct livebox *handler)
return -EINVAL;
}
- return fb_size(handler->lb_fb);
+ return fb_size(handler->lb.data.fb);
}
EAPI int livebox_is_user(struct livebox *handler)
return -EINVAL;
}
- if (handler->is_pinned_up == flag)
+ if (handler->lb.is_pinned_up == flag)
return 0;
param = g_variant_new("(issi)", getpid(), handler->pkgname, handler->filename, flag);
if (handler->state == DELETE || !handler->filename)
return -EINVAL;
- return handler->is_pinned_up;
+ return handler->lb.is_pinned_up;
}
EAPI int livebox_has_pinup(struct livebox *handler)
if (handler->state == DELETE || !handler->filename)
return -EINVAL;
- return handler->pinup_supported;
+ return handler->lb.pinup_supported;
}
EAPI int livebox_set_data(struct livebox *handler, void *data)
return -EINVAL;
}
- if ((!handler->text_lb && !handler->text_pd) || handler->state == DELETE || !handler->filename) {
+ if ((handler->lb.type != LB_TEXT && !handler->pd.type != PD_TEXT) || handler->state == DELETE || !handler->filename) {
ErrPrint("Handler is not valid\n");
return -EINVAL;
}
void lb_set_size(struct livebox *handler, int w, int h)
{
- handler->lb_w = w;
- handler->lb_h = h;
+ handler->lb.width = w;
+ handler->lb.height = h;
}
void lb_set_pdsize(struct livebox *handler, int w, int h)
{
- handler->pd_w = w;
- handler->pd_h = h;
+ handler->pd.width = w;
+ handler->pd.height = h;
}
void lb_invoke_fault_handler(const char *event, const char *pkgname, const char *file, const char *func)
struct dlist *n;
struct event_info *info;
+ {
+ DbgPrint("Inovke %s for %s\n", event, handler->pkgname);
+ if (handler->lb.type == LB_FB)
+ DbgPrint("LB[FB] = %s\n", fb_filename(handler->lb.data.fb));
+ else if (handler->lb.type == LB_TEXT)
+ DbgPrint("LB[TEXT] = %s\n", handler->filename);
+ else if (handler->lb.type == LB_FILE)
+ DbgPrint("LB[FILE] = %s\n", handler->filename);
+
+ if (handler->pd.type == PD_FB)
+ DbgPrint("PD[FB] = %s\n", fb_filename(handler->pd.data.fb));
+ else if (handler->pd.type == PD_TEXT)
+ DbgPrint("PD[TEXT] = %s\n", handler->filename);
+ }
+
dlist_foreach_safe(s_info.event_list, l, n, info) {
if (info->handler(handler, event, info->user_data) == EXIT_FAILURE)
s_info.event_list = dlist_remove(s_info.event_list, l);
}
handler->timestamp = timestamp;
+ handler->lb.type = LB_FILE;
+ handler->pd.type = PD_FB;
s_info.livebox_list = dlist_append(s_info.livebox_list, handler);
lb_ref(handler);
void lb_set_size_list(struct livebox *handler, int size_list)
{
- handler->size_list = size_list;
+ handler->lb.size_list = size_list;
}
void lb_set_auto_launch(struct livebox *handler, int auto_launch)
{
- handler->auto_launch = auto_launch;
+ handler->lb.auto_launch = auto_launch;
}
void lb_set_priority(struct livebox *handler, double priority)
{
- handler->priority = priority;
+ handler->lb.priority = priority;
}
void lb_set_filename(struct livebox *handler, const char *filename)
return;
}
- if (!handler->lb_fb) {
+ if (!handler->lb.data.fb) {
ErrPrint("Buffer type is not valid\n");
return;
}
- fb_get_size(handler->lb_fb, &ow, &oh);
+ fb_get_size(handler->lb.data.fb, &ow, &oh);
if (ow == w && oh == h) {
- if (fb_is_created(handler->lb_fb))
+ if (fb_is_created(handler->lb.data.fb))
return;
}
- tmp = fb_filename(handler->lb_fb);
+ tmp = fb_filename(handler->lb.data.fb);
if (!tmp) {
ErrPrint("Filename for LB fb is not specified\n");
return;
if (!handler)
return;
- if (!handler->pd_fb)
+ if (!handler->pd.data.fb)
return;
- fb_get_size(handler->pd_fb, &ow, &oh);
+ fb_get_size(handler->pd.data.fb, &ow, &oh);
if (ow == w && oh == h) {
- if (fb_is_created(handler->pd_fb))
+ if (fb_is_created(handler->pd.data.fb))
return;
}
- tmp = fb_filename(handler->pd_fb);
+ tmp = fb_filename(handler->pd.data.fb);
if (!tmp) {
ErrPrint("PD fb has no file\n");
return;
lb_set_pdsize(handler, w, h);
lb_set_pd_fb(handler, filename);
- ret = fb_create_buffer(handler->pd_fb);
+ ret = fb_create_buffer(handler->pd.data.fb);
if (ret < 0) {
ErrPrint("Error: %s\n", strerror(ret));
- fb_destroy(handler->pd_fb);
- handler->pd_fb = NULL;
+ fb_destroy(handler->pd.data.fb);
+ handler->pd.data.fb = NULL;
}
}
if (!handler)
return;
- if (handler->lb_fb) {
- fb_destroy_buffer(handler->lb_fb);
- fb_destroy(handler->lb_fb);
- handler->lb_fb = NULL;
+ if (handler->lb.data.fb) {
+ fb_destroy_buffer(handler->lb.data.fb);
+ fb_destroy(handler->lb.data.fb);
+ handler->lb.data.fb = NULL;
}
if (!filename || filename[0] == '\0')
return;
- handler->lb_fb = fb_create(filename, handler->lb_w, handler->lb_h);
- if (!handler->lb_fb) {
+ handler->lb.data.fb = fb_create(filename, handler->lb.width, handler->lb.height);
+ if (!handler->lb.data.fb) {
ErrPrint("Faield to create a FB\n");
return;
}
- if (fb_create_buffer(handler->lb_fb) < 0) {
- fb_destroy(handler->lb_fb);
- handler->lb_fb = NULL;
+ if (fb_create_buffer(handler->lb.data.fb) < 0) {
+ fb_destroy(handler->lb.data.fb);
+ handler->lb.data.fb = NULL;
ErrPrint("Failed to create frame buffer\n");
return;
}
- handler->data_type = FBDATA;
+ handler->lb.type = LB_FB;
}
void lb_set_pd_fb(struct livebox *handler, const char *filename)
if (!handler)
return;
- if (handler->pd_fb) {
- fb_destroy_buffer(handler->pd_fb);
- fb_destroy(handler->pd_fb);
- handler->pd_fb = NULL;
+ if (handler->pd.data.fb) {
+ fb_destroy_buffer(handler->pd.data.fb);
+ fb_destroy(handler->pd.data.fb);
+ handler->pd.data.fb = NULL;
}
if (!filename || filename[0] == '\0')
return;
- handler->pd_fb = fb_create(filename, handler->pd_w, handler->pd_h);
- if (!handler->pd_fb) {
+ handler->pd.data.fb = fb_create(filename, handler->pd.width, handler->pd.height);
+ if (!handler->pd.data.fb) {
ErrPrint("Failed to create a FB\n");
return;
}
+
+ handler->pd.type = PD_FB;
}
struct fb_info *lb_get_lb_fb(struct livebox *handler)
{
- return handler->lb_fb;
+ return handler->lb.data.fb;
}
struct fb_info *lb_get_pd_fb(struct livebox *handler)
{
- return handler->pd_fb;
+ return handler->pd.data.fb;
}
void lb_set_user(struct livebox *handler, int user)
void lb_set_pinup(struct livebox *handler, int pinup_supported)
{
- handler->pinup_supported = pinup_supported;
+ handler->lb.pinup_supported = pinup_supported;
}
-void lb_set_text_lb(struct livebox *handler, int flag)
+void lb_set_text_lb(struct livebox *handler)
{
- handler->text_lb = flag;
+ handler->lb.type = LB_TEXT;
}
-void lb_set_text_pd(struct livebox *handler, int flag)
+void lb_set_text_pd(struct livebox *handler)
{
- handler->text_pd = flag;
+ handler->pd.type = PD_TEXT;
}
int lb_text_lb(struct livebox *handler)
{
- return handler->text_lb;
+ return handler->lb.type == LB_TEXT;
}
int lb_text_pd(struct livebox *handler)
{
- return handler->text_pd;
+ return handler->pd.type == PD_TEXT;
}
void lb_set_period(struct livebox *handler, double period)
{
- handler->period = period;
+ handler->lb.period = period;
}
struct livebox *lb_ref(struct livebox *handler)
free(handler->filename);
free(handler->pkgname);
- if (handler->lb_fb) {
- fb_destroy_buffer(handler->lb_fb);
- fb_destroy(handler->lb_fb);
- handler->lb_fb = NULL;
+ if (handler->lb.data.fb) {
+ fb_destroy_buffer(handler->lb.data.fb);
+ fb_destroy(handler->lb.data.fb);
+ handler->lb.data.fb = NULL;
}
- if (handler->pd_fb) {
- fb_destroy_buffer(handler->pd_fb);
- fb_destroy(handler->pd_fb);
- handler->pd_fb = NULL;
+ if (handler->pd.data.fb) {
+ fb_destroy_buffer(handler->pd.data.fb);
+ fb_destroy(handler->pd.data.fb);
+ handler->pd.data.fb = NULL;
}
free(handler);