int widget_instance_get_width(widget_instance_h instance, int *w);
int widget_instance_get_height(widget_instance_h instance, int *h);
int widget_instance_get_period(widget_instance_h instance, double *period);
+int widget_instance_get_error_code(widget_instance_h instance, int *err);
int widget_instance_create(const char *widget_id, char **instance_id);
int widget_instance_launch(const char *instance_id, char *content_info, int w, int h);
int status;
int stored;
int ref;
+ int err;
};
struct widget_app {
instance->content_info = NULL;
instance->ref = 0;
instance->period = period;
+ instance->err = 0;
_widget_instances = g_list_append(_widget_instances, instance);
return 0;
}
-static int __widget_instance_handler(int status, char *widget_id, char *instance_id, char *content_info)
+static int __widget_instance_handler(int status, char *widget_id,
+ char *instance_id, char *content_info, int err)
{
struct _widget_instance *instance;
break;
case WIDGET_INSTANCE_EVENT_CREATE_ABORTED:
instance->pid = -1;
+ instance->err = err;
break;
default:
_E("unknown status: %d", status);
{
char *widget_id = NULL;
char *instance_id = NULL;
+ char *error_code = NULL;
int *status = NULL;
size_t status_sz = 0;
char *content_info = NULL;
char *sender_pid_str = NULL;
int sender_pid;
int ret;
+ int err = 0;
bundle_get_str(envelope, AUL_K_WIDGET_ID, &widget_id);
bundle_get_byte(envelope, AUL_K_WIDGET_STATUS, (void **)&status, &status_sz);
} else {
bundle_get_str(envelope, AUL_K_WIDGET_INSTANCE_ID, &instance_id);
bundle_get_str(envelope, WIDGET_K_CONTENT_INFO, &content_info);
- __widget_instance_handler(*status, widget_id, instance_id, content_info);
+ bundle_get_str(envelope, AUL_K_WIDGET_ERROR_CODE, &error_code);
+ if (error_code)
+ err = atoi(error_code);
+
+ __widget_instance_handler(*status, widget_id, instance_id,
+ content_info, err);
}
return 0;
return 0;
}
+EAPI int widget_instance_get_error_code(widget_instance_h instance, int *err)
+{
+ if (instance == NULL || err == NULL)
+ return -1;
+
+ *err = instance->err;
+
+ return 0;
+}
+
EAPI int widget_instance_get_id(widget_instance_h instance, char **id)
{
if (instance == NULL || id == NULL)