X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fminicontrol-provider.c;h=3a457218f64434110ac6242fa9241d0c6aaf6ece;hb=cf4be8bb15d827cab3b4c4fcd9ef84c6dfa55490;hp=bda4b06fce1464000f7bf4a3cea520128ba54286;hpb=9265db2c03d02584b6f9fcd4d0aba967f984a1e7;p=apps%2Fhome%2Fminicontrol.git diff --git a/src/minicontrol-provider.c b/src/minicontrol-provider.c old mode 100755 new mode 100644 index bda4b06..3a45721 --- a/src/minicontrol-provider.c +++ b/src/minicontrol-provider.c @@ -15,13 +15,14 @@ */ #include +#include #include "minicontrol-error.h" #include "minicontrol-type.h" #include "minicontrol-internal.h" #include "minicontrol-provider.h" +#include "minicontrol-provider-internal.h" #include "minicontrol-log.h" -#include "minicontrol-handler.h" #define MINICTRL_PRIORITY_SUFFIX_TOP "__minicontrol_top" #define MINICTRL_PRIORITY_SUFFIX_LOW "__minicontrol_low" @@ -32,54 +33,39 @@ enum { MINICTRL_STATE_RUNNING, }; -struct _provider_data { +struct _minicontrol_provider { char *name; int state; - minicontrol_priority_e priority; Evas_Object *obj; - minictrl_sig_handle *sh; - minicontrol_h handler; + minictrl_sig_handle *running_sh; + minictrl_sig_handle *event_sh; + minicontrol_event_cb event_callback; }; -static void __provider_data_free(struct _provider_data *pd) +static void _minictrl_win_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _minictrl_win_hide_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _minictrl_win_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _minictrl_win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); + +static void __minicontrol_provider_free(struct _minicontrol_provider *pd) { if (pd) { if (pd->name) free(pd->name); - if (pd->sh) - _minictrl_dbus_sig_handle_dettach(pd->sh); + if (pd->running_sh) + _minictrl_dbus_sig_handle_dettach(pd->running_sh); - if (pd->handler) - _minictrl_handler_destroy(pd->handler); + if (pd->event_sh) + _minictrl_dbus_sig_handle_dettach(pd->event_sh); free(pd); } } -static int __str_has_suffix(const char *str, const char *suffix) -{ - int str_len; - int suffix_len; - - if (!str) - return -1; - - if (!suffix) - return -1; - - str_len = strlen (str); - suffix_len = strlen (suffix); - - if (str_len < suffix_len) - return -1; - - return strcmp(str + str_len - suffix_len, suffix); -} - static void _running_req_cb(void *data, DBusMessage *msg) { - struct _provider_data *pd; + struct _minicontrol_provider *pd; if (!data) { ERR("data is NULL"); @@ -91,14 +77,188 @@ static void _running_req_cb(void *data, DBusMessage *msg) Evas_Coord w = 0; Evas_Coord h = 0; evas_object_geometry_get(pd->obj, NULL, NULL, &w, &h); - _minictrl_provider_message_send(MINICTRL_DBUS_SIG_START, - pd->name, w, h, pd->priority, pd->handler); + _minictrl_provider_message_send(MINICONTROL_EVENT_START, pd->name, w, h, 0); } } -static int minicontrol_win_start(Evas_Object *mincontrol) +static void _sig_to_provider_handler_cb(void *data, DBusMessage *msg) +{ + struct _minicontrol_provider *pd; + DBusError err; + char *minicontrol_name = NULL; + minicontrol_viewer_event_e event; + dbus_bool_t dbus_ret; + bundle *event_arg_bundle = NULL; + bundle_raw *serialized_arg = NULL; + unsigned int serialized_arg_length = 0; + + if (!data) { + ERR("data is NULL"); + return; + } + pd = data; + + dbus_error_init(&err); /* Does not allocate any memory. the error only needs to be freed if it is set at some point. */ + + dbus_ret = dbus_message_get_args(msg, &err, + DBUS_TYPE_STRING, &minicontrol_name, + DBUS_TYPE_INT32, &event, + DBUS_TYPE_STRING, &serialized_arg, + DBUS_TYPE_UINT32, &serialized_arg_length, + DBUS_TYPE_INVALID); + + if (!dbus_ret) { + ERR("fail to get args : %s", err.message); + dbus_error_free(&err); + return; + } + + INFO("minicontrol_name[%s] event[%d] pd->name[%s]", minicontrol_name, event, pd->name); + + if (minicontrol_name && pd->name && strcmp(minicontrol_name, pd->name) == 0) { + event_arg_bundle = bundle_decode(serialized_arg, serialized_arg_length); + /* event argument can be null */ + + if (event == MINICONTROL_VIEWER_EVENT_SHOW) { + Evas_Coord width; + Evas_Coord height; + evas_object_geometry_get (pd->obj, NULL, NULL, &width, &height); + INFO("width[%d] height[%d]", width, height); + _minictrl_provider_message_send(MINICONTROL_EVENT_RESIZE, pd->name, width, height, 0); + } + + if (pd->event_callback) + pd->event_callback(event, event_arg_bundle); + + if (event_arg_bundle) + bundle_free(event_arg_bundle); + } +} + + + +static char *_minictrl_create_name(const char *name) +{ + char *buf; + int size = 0; + + if (!name) { + ERR("name is NULL, invaild parameter"); + set_last_result(MINICONTROL_ERROR_INVALID_PARAMETER); + return NULL; + } + + size = snprintf(NULL, 0, "[%s]", name) + 1; + buf = (char *)malloc(sizeof(char) * size); + if (!buf) { + ERR("fail to alloc buf"); + set_last_result(MINICONTROL_ERROR_OUT_OF_MEMORY); + return NULL; + } + + snprintf(buf, size, "[%s]", name); + + return buf; +} + +static void _access_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj)); + if (ee != NULL) { + if (elm_config_access_get()) { + /* TODO : Check this API is supported + ecore_evas_extn_socket_events_block_set(ee, EINA_TRUE); + */ + } + else { + /* TODO : Check this API is supported + ecore_evas_extn_socket_events_block_set(ee, EINA_FALSE); + */ + } + } +} + + +EXPORT_API Evas_Object* minicontrol_create_window(const char *name, minicontrol_target_viewer_e target_viewer, minicontrol_event_cb event_callback) +{ + Evas_Object *win = NULL; + char *name_inter = NULL; + struct _minicontrol_provider *pd; + + if (!name) { + ERR("invalid parameter"); + set_last_result(MINICONTROL_ERROR_INVALID_PARAMETER); + return NULL; + } + + win = elm_win_add(NULL, "minicontrol", ELM_WIN_SOCKET_IMAGE); + if (!win) { + ERR("elm_win_add failed"); + set_last_result(MINICONTROL_ERROR_ELM_FAILURE); + return NULL; + } + + if (elm_config_access_get()) { + Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win)); + + if (ee != NULL) { + /* TODO : Check this API is supported + ecore_evas_extn_socket_events_block_set(ee, EINA_TRUE); + */ + } + + } + evas_object_smart_callback_add(win, "access,changed", _access_changed_cb, NULL); + + name_inter = _minictrl_create_name(name); + if (!name_inter) { + ERR("Fail to create name_inter for : %s", name); + evas_object_del(win); + return NULL; + } + + if (!elm_win_socket_listen(win, name_inter, 0, EINA_TRUE)) { + ERR("Fail to elm win socket listen"); + set_last_result(MINICONTROL_ERROR_ELM_FAILURE); + evas_object_del(win); + free(name_inter); + return NULL; + } + + pd = malloc(sizeof(struct _minicontrol_provider)); + if (!pd) { + ERR("Fail to alloc memory"); + set_last_result(MINICONTROL_ERROR_OUT_OF_MEMORY); + evas_object_del(win); + free(name_inter); + return NULL; + + } + memset(pd, 0x00, sizeof(struct _minicontrol_provider)); + pd->name = name_inter; + pd->state = MINICTRL_STATE_READY; + pd->obj = win; + + evas_object_data_set(win ,MINICTRL_DATA_KEY,pd); + + elm_win_autodel_set(win, EINA_TRUE); + + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _minictrl_win_del_cb, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_SHOW, _minictrl_win_show_cb, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_HIDE, _minictrl_win_hide_cb, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _minictrl_win_resize_cb, pd); + + pd->running_sh = _minictrl_dbus_sig_handle_attach(MINICTRL_DBUS_SIG_RUNNING_REQ, _running_req_cb, pd); + pd->event_sh = _minictrl_dbus_sig_handle_attach(MINICTRL_DBUS_SIG_TO_PROVIDER, _sig_to_provider_handler_cb, pd); + pd->event_callback = event_callback; + + INFO("new minicontrol created - %s", pd->name); + return win; +} + +EXPORT_API int minicontrol_send_event(Evas_Object *mincontrol, minicontrol_provider_event_e event, bundle *event_arg) { - struct _provider_data *pd; + struct _minicontrol_provider *pd; int ret = MINICONTROL_ERROR_NONE; if (!mincontrol) { @@ -117,23 +277,16 @@ static int minicontrol_win_start(Evas_Object *mincontrol) return MINICONTROL_ERROR_INVALID_PARAMETER; } - if (pd->state != MINICTRL_STATE_RUNNING) { - Evas_Coord w = 0; - Evas_Coord h = 0; - pd->state = MINICTRL_STATE_RUNNING; - - evas_object_geometry_get(mincontrol, NULL, NULL, &w, &h); - _minictrl_provider_proc_send(MINICONTROL_DBUS_PROC_EXCLUDE); - ret = _minictrl_provider_message_send(MINICTRL_DBUS_SIG_START, - pd->name, w, h, pd->priority, pd->handler); + if (pd->state == MINICTRL_STATE_RUNNING) { + ret = _minictrl_send_event(MINICTRL_DBUS_SIG_TO_VIEWER, pd->name, event, event_arg); } return ret; } -static int minicontrol_win_realize(Evas_Object *mincontrol) +static int minicontrol_win_start(Evas_Object *mincontrol) { - struct _provider_data *pd; + struct _minicontrol_provider *pd; int ret = MINICONTROL_ERROR_NONE; if (!mincontrol) { @@ -152,22 +305,22 @@ static int minicontrol_win_realize(Evas_Object *mincontrol) return MINICONTROL_ERROR_INVALID_PARAMETER; } - Evas_Coord w = 0; - Evas_Coord h = 0; if (pd->state != MINICTRL_STATE_RUNNING) { + Evas_Coord w = 0; + Evas_Coord h = 0; pd->state = MINICTRL_STATE_RUNNING; - } - evas_object_geometry_get(mincontrol, NULL, NULL, &w, &h); - ret = _minictrl_provider_message_send(MINICTRL_DBUS_SIG_REALIZE, - pd->name, w, h, pd->priority, pd->handler); + evas_object_geometry_get(mincontrol, NULL, NULL, &w, &h); + _minictrl_provider_proc_send(MINICONTROL_DBUS_PROC_EXCLUDE); + ret = _minictrl_provider_message_send(MINICONTROL_EVENT_START, pd->name, w, h, 0); + } return ret; } static int minicontrol_win_stop(Evas_Object *mincontrol) { - struct _provider_data *pd; + struct _minicontrol_provider *pd; int ret = MINICONTROL_ERROR_NONE; if (!mincontrol) { @@ -188,71 +341,40 @@ static int minicontrol_win_stop(Evas_Object *mincontrol) if (pd->state != MINICTRL_STATE_READY) { pd->state = MINICTRL_STATE_READY; _minictrl_provider_proc_send(MINICONTROL_DBUS_PROC_INCLUDE); - ret = _minictrl_provider_message_send(MINICTRL_DBUS_SIG_STOP, - pd->name, 0, 0, pd->priority, pd->handler); + ret = _minictrl_provider_message_send(MINICONTROL_EVENT_STOP, pd->name, 0, 0, 0); } return ret; } -static void _minictrl_win_del(void *data, Evas *e, - Evas_Object *obj, void *event_info) +static void _minictrl_win_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { - struct _provider_data *pd = NULL; + struct _minicontrol_provider *pd = NULL; minicontrol_win_stop(obj); pd = evas_object_data_get(obj, MINICTRL_DATA_KEY); - __provider_data_free(pd); + __minicontrol_provider_free(pd); evas_object_data_set(obj, MINICTRL_DATA_KEY, NULL); } -static void _minictrl_win_hide(void *data, Evas *e, - Evas_Object *obj, void *event_info) +static void _minictrl_win_hide_cb(void *data, Evas *e, + Evas_Object *obj, void *event_info) { minicontrol_win_stop(obj); } -static void _minictrl_win_show(void *data, Evas *e, - Evas_Object *obj, void *event_info) +static void _minictrl_win_show_cb(void *data, Evas *e, + Evas_Object *obj, void *event_info) { minicontrol_win_start(obj); } -static void _minictrl_win_realize(void *data, Evas *e, - Evas_Object *obj, void *event_info) -{ - struct _provider_data *pd; - - if (!data) { - ERR("data is NULL, invaild parameter"); - return; - } - pd = data; - - if (!pd->obj) { - ERR("minicontrol object is NULL, invalid parameter"); - return; - } - - Evas *win_e = evas_object_evas_get(pd->obj); - if (win_e != NULL) { - evas_event_callback_del(win_e, EVAS_CALLBACK_RENDER_POST, - _minictrl_win_realize); - } - - minicontrol_win_realize(pd->obj); - - if (pd->handler != NULL) { - _minictrl_handler_set_state(pd->handler, 1); - } -} - -static void _minictrl_win_resize(void *data, Evas *e, - Evas_Object *obj, void *event_info) +static void _minictrl_win_resize_cb(void *data, Evas *e, + Evas_Object *obj, void *event_info) { - struct _provider_data *pd; + struct _minicontrol_provider *pd; if (!data) { ERR("data is NULL, invaild parameter"); @@ -265,219 +387,94 @@ static void _minictrl_win_resize(void *data, Evas *e, Evas_Coord h = 0; evas_object_geometry_get(obj, NULL, NULL, &w, &h); - _minictrl_provider_message_send(MINICTRL_DBUS_SIG_RESIZE, - pd->name, w, h, pd->priority, pd->handler); + _minictrl_provider_message_send(MINICONTROL_EVENT_RESIZE, pd->name, w, h, 0); } } -static char *_minictrl_create_name(const char *name) -{ - char *buf; - int size = 0; - - if (!name) { - ERR("name is NULL, invaild parameter"); - return NULL; - } - - size = snprintf(NULL, 0, "[%s]", name) + 1; - buf = (char *)malloc(sizeof(char) * size); - if (!buf) { - ERR("fail to alloc buf"); - return NULL; - } - - snprintf(buf, size, "[%s]", name); - - return buf; -} - -static minicontrol_priority_e _minictrl_get_priroty_by_name(const char *name) -{ - minicontrol_priority_e priority = MINICONTROL_PRIORITY_MIDDLE; - - if (!__str_has_suffix(name, MINICTRL_PRIORITY_SUFFIX_TOP)) - priority = MINICONTROL_PRIORITY_TOP; - else if (!__str_has_suffix(name, MINICTRL_PRIORITY_SUFFIX_LOW)) - priority = MINICONTROL_PRIORITY_LOW; - - return priority; -} - EXPORT_API Evas_Object *minicontrol_win_add(const char *name) { - minicontrol_h handler = NULL; Evas_Object *win = NULL; - - if (_minictrl_handler_create(&handler) == MINICONTROL_ERROR_NONE) { - if (_minictrl_handler_set_service_name(handler, name) != MINICONTROL_ERROR_NONE) { - ERR("failed to service name"); - _minictrl_handler_destroy(handler); - return NULL; - } - if (_minictrl_handler_set_timestamp(handler, time(NULL)) != MINICONTROL_ERROR_NONE) { - ERR("failed to set timestamp"); - } - if (_minictrl_handler_set_priority(handler, MINICONTROL_HDL_PRIORITY_LV3) != MINICONTROL_ERROR_NONE) { - ERR("failed to set priority"); - } - } else { - ERR("Failed to create minicontrol handler"); - return NULL; - } - - win = minicontrol_win_add_by_handler(handler); - _minictrl_handler_destroy(handler); - - return win; -} - -EXPORT_API Evas_Object *minicontrol_win_add_by_handler(minicontrol_h handler) -{ - Evas_Object *win = NULL; - char *name = NULL; char *name_inter = NULL; - char *priority = NULL; - struct _provider_data *pd; - time_t timestamp_value = 0; + struct _minicontrol_provider *pd; - if (_minictrl_handler_check_validation(handler) != MINICONTROL_ERROR_NONE) { - ERR("handler is invalid, invaild parameter"); - return NULL; - } + INFO("minicontrol_win_add [%s]", name); - _minictrl_handler_get_service_name(handler, &name); - if (name == NULL) { - ERR("service name cannot be NULL"); + if (!name) { + ERR("name is null"); return NULL; } - _minictrl_handler_get_timestamp(handler, ×tamp_value); - if (timestamp_value == 0) { - if (_minictrl_handler_set_timestamp(handler, time(NULL)) != MINICONTROL_ERROR_NONE) { - ERR("failed to set timestamp"); - } - } - _minictrl_handler_get_priority(handler, &priority); - if (priority == NULL) { - if (_minictrl_handler_set_priority(handler, MINICONTROL_HDL_PRIORITY_LV3) != MINICONTROL_ERROR_NONE) { - ERR("failed to set priority"); - } - } else { - free(priority); - } win = elm_win_add(NULL, "minicontrol", ELM_WIN_SOCKET_IMAGE); if (!win) { - free(name); + ERR("elm_win_add returns null for [%s]", name); return NULL; } + if (elm_config_access_get()) { + Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win)); + + if (ee != NULL) { + /* TODO : Check this API is supported + ecore_evas_extn_socket_events_block_set(ee, EINA_TRUE); + */ + } + + } + evas_object_smart_callback_add(win, "access,changed", _access_changed_cb, NULL); + name_inter = _minictrl_create_name(name); if (!name_inter) { + ERR("Fail to create name_inter for : %s", name); - free(name); evas_object_del(win); return NULL; } if (!elm_win_socket_listen(win, name_inter, 0, EINA_TRUE)) { ERR("Fail to elm win socket listen"); - free(name); evas_object_del(win); free(name_inter); return NULL; } - pd = malloc(sizeof(struct _provider_data)); + pd = malloc(sizeof(struct _minicontrol_provider)); if (!pd) { ERR("Fail to alloc memory"); - free(name); evas_object_del(win); free(name_inter); return NULL; } - memset(pd, 0x00, sizeof(struct _provider_data)); + memset(pd, 0x00, sizeof(struct _minicontrol_provider)); pd->name = name_inter; pd->state = MINICTRL_STATE_READY; pd->obj = win; - pd->priority = _minictrl_get_priroty_by_name(name); - - if (_minictrl_handler_clone(handler, &(pd->handler)) != MINICONTROL_ERROR_NONE) { - ERR("Fail to clone handler"); - free(name); - evas_object_del(win); - free(name_inter); - free(pd); - return NULL; - } evas_object_data_set(win ,MINICTRL_DATA_KEY,pd); elm_win_autodel_set(win, EINA_TRUE); - evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, - _minictrl_win_del, pd); - - evas_object_event_callback_add(win, EVAS_CALLBACK_SHOW, - _minictrl_win_show, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _minictrl_win_del_cb, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_SHOW, _minictrl_win_show_cb, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_HIDE, _minictrl_win_hide_cb, pd); + evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _minictrl_win_resize_cb, pd); - evas_object_event_callback_add(win, EVAS_CALLBACK_HIDE, - _minictrl_win_hide, pd); - - evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, - _minictrl_win_resize, pd); - - Evas *win_e = evas_object_evas_get(win); - if (win_e != NULL) { - evas_event_callback_add(win_e, EVAS_CALLBACK_RENDER_POST, - _minictrl_win_realize, pd); - } - - pd->sh = _minictrl_dbus_sig_handle_attach(MINICTRL_DBUS_SIG_RUNNING_REQ, - _running_req_cb, pd); + pd->running_sh = _minictrl_dbus_sig_handle_attach(MINICTRL_DBUS_SIG_RUNNING_REQ, _running_req_cb, pd); INFO("new minicontrol created - %s", pd->name); - - free(name); - return win; } -EXPORT_API minicontrol_error_e minicontrol_win_handler_get(Evas_Object *mincontrol, minicontrol_h *handler) -{ - if (!mincontrol) { - ERR("invaild mincontrol object"); - return MINICONTROL_ERROR_INVALID_PARAMETER; - } - if (!handler) { - ERR("invaild mincontrol handler"); - return MINICONTROL_ERROR_INVALID_PARAMETER; - } - - struct _provider_data *pd = evas_object_data_get(mincontrol, MINICTRL_DATA_KEY); - if (pd != NULL) { - *handler = pd->handler; - } else { - return MINICONTROL_ERROR_NO_DATA; - } - - return MINICONTROL_ERROR_NONE; -} - -EXPORT_API minicontrol_error_e minicontrol_win_handler_update(Evas_Object *mincontrol, minicontrol_h handler) +EXPORT_API int minicontrol_request(Evas_Object *mincontrol, minicontrol_request_e request) { - struct _provider_data *pd; + struct _minicontrol_provider *pd; int ret = MINICONTROL_ERROR_NONE; + minicontrol_event_e event; if (!mincontrol) { ERR("mincontrol is NULL, invaild parameter"); return MINICONTROL_ERROR_INVALID_PARAMETER; } - if (_minictrl_handler_check_validation(handler) != MINICONTROL_ERROR_NONE) { - ERR("handler is invalid, invaild parameter"); - return MINICONTROL_ERROR_INVALID_PARAMETER; - } pd = evas_object_data_get(mincontrol, MINICTRL_DATA_KEY); if (!pd) { @@ -490,51 +487,33 @@ EXPORT_API minicontrol_error_e minicontrol_win_handler_update(Evas_Object *minco return MINICONTROL_ERROR_INVALID_PARAMETER; } - if (pd->handler != handler) { - if (pd->handler != NULL) { - _minictrl_handler_destroy(pd->handler); - pd->handler = NULL; - } - if (_minictrl_handler_clone(handler, &(pd->handler)) != MINICONTROL_ERROR_NONE) { - ERR("failed to clone a minicontrol handler"); - return MINICONTROL_ERROR_OUT_OF_MEMORY; + if (pd->state == MINICTRL_STATE_RUNNING) { + switch(request) { + case MINICONTROL_REQ_HIDE_VIEWER : + event = MINICONTROL_EVENT_REQUEST_HIDE; + break; + + case MINICONTROL_REQ_REPORT_VIEWER_ANGLE : + event = MINICONTROL_EVENT_REQUEST_ANGLE; + break; + + case MINICONTROL_REQ_FREEZE_SCROLL_VIEWER : + case MINICONTROL_REQ_UNFREEZE_SCROLL_VIEWER : + case MINICONTROL_REQ_ROTATE_PROVIDER : + WARN("Could be not supported [%d]", request); + event = request; + break; + + case MINICONTROL_REQ_NONE : + default : + ERR("Not supported request[%d]", request); + ret = MINICONTROL_ERROR_NOT_SUPPORTED; + goto out; } - } - if (pd->state == MINICTRL_STATE_RUNNING) { - ret = _minictrl_provider_message_send(MINICTRL_DBUS_SIG_REQUEST, - pd->name, MINICONTROL_REQ_UPDATE_HANDLER, MINICONTROL_REQ_UPDATE_HANDLER - , pd->priority, pd->handler); + _minictrl_send_event(MINICTRL_DBUS_SIG_TO_VIEWER, pd->name, event, NULL); } - +out: return ret; } -EXPORT_API minicontrol_error_e minicontrol_request(Evas_Object *mincontrol, minicontrol_request_e request) -{ - struct _provider_data *pd; - int ret = MINICONTROL_ERROR_NONE; - - if (!mincontrol) { - ERR("mincontrol is NULL, invaild parameter"); - return MINICONTROL_ERROR_INVALID_PARAMETER; - } - - pd = evas_object_data_get(mincontrol, MINICTRL_DATA_KEY); - if (!pd) { - ERR("pd is NULL, invaild parameter"); - return MINICONTROL_ERROR_INVALID_PARAMETER; - } - - if (!pd->name) { - ERR("pd name is NULL, invaild parameter"); - return MINICONTROL_ERROR_INVALID_PARAMETER; - } - - if (pd->state == MINICTRL_STATE_RUNNING) { - ret = _minictrl_provider_message_send(MINICTRL_DBUS_SIG_REQUEST, - pd->name, request, request, pd->priority, pd->handler); - } - - return ret; -}