int camera_dispatcher_set_display(muse_module_h module)
{
int ret = CAMERA_ERROR_NONE;
- int parent_id = 0;
muse_camera_handle_s *muse_camera = NULL;
muse_camera_api_e api = MUSE_CAMERA_API_SET_DISPLAY;
muse_camera_api_class_e class = MUSE_CAMERA_API_CLASS_IMMEDIATE;
- camera_display_type_e type = CAMERA_DISPLAY_TYPE_NONE;
+ muse_camera_display_info_s dp_info = {0, };
camera_h camera = NULL;;
muse_camera = (muse_camera_handle_s *)muse_server_ipc_get_handle(module);
camera = muse_camera->camera_handle;
- muse_camera_msg_get(type, muse_server_module_get_msg(module));
+ muse_core_msg_deserialize("dp_info", muse_server_module_get_msg(module),
+ NULL, NULL, MUSE_TYPE_ARRAY, (void *)&dp_info);
- LOGD("type %d", type);
+ LOGD("type %d, parent id %d (%d,%d,%dx%d)",
+ dp_info.type, dp_info.parent_id,
+ dp_info.window_rect.x, dp_info.window_rect.y,
+ dp_info.window_rect.width, dp_info.window_rect.height);
- if (type == CAMERA_DISPLAY_TYPE_OVERLAY) {
- muse_camera_msg_get(parent_id, muse_server_module_get_msg(module));
+ /* set window info */
+ muse_camera->window_info.surface_id = dp_info.parent_id;
+ muse_camera->window_info.rect = dp_info.window_rect;
- LOGD("wayland global surface id : %d", parent_id);
-
- muse_camera->parent_id = parent_id;
-
- ret = legacy_camera_set_display(muse_camera->camera_handle, type, (void *)&muse_camera->parent_id);
-
- muse_camera_msg_return(api, class, ret, module);
- } else {
+ switch (dp_info.type) {
+ case CAMERA_DISPLAY_TYPE_OVERLAY:
+ LOGD("wayland global surface id : %d", muse_camera->window_info.surface_id);
+ ret = legacy_camera_set_display(muse_camera->camera_handle,
+ CAMERA_DISPLAY_TYPE_OVERLAY, (void *)&muse_camera->window_info);
+ break;
+ case CAMERA_DISPLAY_TYPE_EVAS:
+ ret = legacy_camera_set_preview_cb(muse_camera->camera_handle,
+ (camera_preview_cb)_camera_dispatcher_preview_cb, (void *)module);
+ if (ret == CAMERA_ERROR_NONE)
+ SET_PREVIEW_CB_TYPE(muse_camera, PREVIEW_CB_TYPE_EVAS);
+ /* fall through */
+ default:
LOGD("NOT overlay type. set NONE type.");
-
- if (type == CAMERA_DISPLAY_TYPE_EVAS) {
- ret = legacy_camera_set_preview_cb(muse_camera->camera_handle,
- (camera_preview_cb)_camera_dispatcher_preview_cb,
- (void *)module);
-
- if (ret == CAMERA_ERROR_NONE)
- SET_PREVIEW_CB_TYPE(muse_camera, PREVIEW_CB_TYPE_EVAS);
- }
-
- ret = legacy_camera_set_display(muse_camera->camera_handle, CAMERA_DISPLAY_TYPE_NONE, NULL);
-
- muse_camera_msg_return(api, class, ret, module);
+ ret = legacy_camera_set_display(muse_camera->camera_handle,
+ CAMERA_DISPLAY_TYPE_NONE, NULL);
+ break;
}
+ muse_camera_msg_return(api, class, ret, module);
+
return MUSE_CAMERA_ERROR_NONE;
}