/*
- * wayland parent id related functiosn
+ * wayland parent id related function
*/
static void __global(void *data, struct wl_registry *registry,
uint32_t name, const char *interface, uint32_t version)
};
-int _mm_display_get_parent_id(Evas_Object *obj, int *parent_id)
+int _mm_display_get_parent_id(mm_display_type_e type, void *handle, int *parent_id)
{
int ret = MM_ERROR_NONE;
Ecore_Wl2_Window *wl2_window = NULL;
struct tizen_surface *tz_surface = NULL;
struct tizen_resource *tz_resource = NULL;
- if (!obj || !parent_id) {
- LOGE("NULL parameter %p %p", obj, parent_id);
+ if (!handle || !parent_id) {
+ LOGE("NULL parameter %p %p", handle, parent_id);
return MM_ERROR_INVALID_ARGUMENT;
}
- wl2_window = ecore_evas_wayland2_window_get(ecore_evas_ecore_evas_get(evas_object_evas_get(obj)));
+ if (type == MM_DISPLAY_TYPE_OVERLAY)
+ wl2_window = ecore_evas_wayland2_window_get(ecore_evas_ecore_evas_get(evas_object_evas_get((Evas_Object *)handle)));
+ else
+ wl2_window = (Ecore_Wl2_Window *)handle;
+
if (!wl2_window) {
LOGE("failed to get wayland window");
ret = MM_ERROR_UNKNOWN;
/* Get parent_id which is unique in a entire system. */
tz_resource = tizen_surface_get_tizen_resource(tz_surface, surface);
if (!tz_resource) {
- LOGE("failed to get tizen resurce");
+ LOGE("failed to get tizen resource");
ret = MM_ERROR_UNKNOWN;
goto _DONE;
}
return MM_ERROR_OUT_OF_MEMORY;
}
- new_handle->type = MM_DISPLAY_TYPE_INVALID;
+ new_handle->type = MM_DISPLAY_TYPE_OVERLAY;
*handle = (mm_display_h)new_handle;
{
int ret = MM_ERROR_NONE;
const char *object_type = NULL;
- Evas_Object *obj = NULL;
mm_display_t *dp_handle = NULL;
- if (!handle || !display ||
- type < MM_DISPLAY_TYPE_OVERLAY ||
- type > MM_DISPLAY_TYPE_EVAS) {
- LOGE("invalid param %p %p %d", handle, display, type);
+ if (!handle || !display || !parent_id ||
+ type > MM_DISPLAY_TYPE_OVERLAY_EXT) {
+ LOGE("invalid param %p %d %p %p", handle, type, display, parent_id);
return MM_ERROR_INVALID_ARGUMENT;
}
LOGD("enter - type %d", type);
- obj = (Evas_Object *)display;
- object_type = evas_object_type_get(obj);
- if (!object_type) {
- LOGE("failed to get evas object type from %p", obj);
- return MM_ERROR_INVALID_ARGUMENT;
- }
-
- if (type == MM_DISPLAY_TYPE_OVERLAY && !strcmp(object_type, "elm_win")) {
- /* get wayland parent id */
- if (!parent_id) {
- LOGE("NULL parant_id");
+ if (type != MM_DISPLAY_TYPE_OVERLAY_EXT) {
+ object_type = evas_object_type_get((Evas_Object *)display);
+ if (!object_type) {
+ LOGE("failed to get evas object type from %p", display);
return MM_ERROR_INVALID_ARGUMENT;
}
+ }
- ret = _mm_display_get_parent_id(obj, &dp_handle->parent_id);
+ if ((type == MM_DISPLAY_TYPE_OVERLAY && !strcmp(object_type, "elm_win")) ||
+ type == MM_DISPLAY_TYPE_OVERLAY_EXT) {
+ /* get wayland parent id */
+ ret = _mm_display_get_parent_id(type, display, &dp_handle->parent_id);
if (ret == MM_ERROR_NONE)
*parent_id = dp_handle->parent_id;
else
MMHandleType new_evas_renderer = NULL;
/* create evas renderer */
- ret = mm_evas_renderer_create(&new_evas_renderer, obj);
+ ret = mm_evas_renderer_create(&new_evas_renderer, (Evas_Object *)display);
if (ret != MM_ERROR_NONE) {
LOGE("failed to creat evas renderer 0x%x", ret);
ret = MM_ERROR_UNKNOWN;
ret = MM_ERROR_NOT_SUPPORT_API;
#endif /* TIZEN_FEATURE_EVAS_RENDERER */
} else {
- LOGE("unknown evas object [%p,%s] or type [%d] mismatch", obj, object_type, type);
+ LOGE("unknown display handle [%p,%s] or type [%d] mismatch",
+ display, object_type ? object_type : "UNKNOWN", type);
ret = MM_ERROR_INVALID_ARGUMENT;
}
if (ret == MM_ERROR_NONE) {
dp_handle->type = type;
- dp_handle->eo = obj;
+ dp_handle->display = display;
}
return ret;
return MM_ERROR_COMMON_INTERNAL;
}
- LOGD("get window rect for parent id : %d, eo %p",
- dp_handle->parent_id, dp_handle->eo);
+ LOGD("get window rect for parent id : %d, display %p",
+ dp_handle->parent_id, dp_handle->display);
- evas_object_geometry_get(dp_handle->eo, &window_rect->x, &window_rect->y,
+ evas_object_geometry_get((Evas_Object *)dp_handle->display,
+ &window_rect->x, &window_rect->y,
&window_rect->width, &window_rect->height);
- ee = ecore_evas_ecore_evas_get(evas_object_evas_get(dp_handle->eo));
+ ee = ecore_evas_ecore_evas_get(evas_object_evas_get((Evas_Object *)dp_handle->display));
if (ee) {
rotation = ecore_evas_rotation_get(ee);
if (rotation == 90 || rotation == 270) {