e_comp_wl_video_buffer_clear(vbuf);
- ret = e_output_capture(mirror->e_output, vbuf->tbm_surface, screenshot_auto_rotation, _e_output_capture_oneshot_cb, buffer);
+ ret = e_output_capture(mirror->e_output, vbuf->tbm_surface, screenshot_auto_rotation, EINA_FALSE, _e_output_capture_oneshot_cb, buffer);
if (ret) return;
else ERR("capture fail");
}
strncpy(path_backup, path, PATH_MAX);
- ret = e_output_capture(eout, surface, EINA_FALSE, _e_info_server_cb_screen_dump_cb, path_backup);
+ ret = e_output_capture(eout, surface, EINA_FALSE, EINA_TRUE, _e_info_server_cb_screen_dump_cb, path_backup);
if (ret)
return reply;
else
}
EINTERN Eina_Bool
-e_output_capture(E_Output *output, tbm_surface_h tsurface, Eina_Bool auto_rotate, E_Output_Capture_Cb func, void *data)
+e_output_capture(E_Output *output, tbm_surface_h tsurface, Eina_Bool auto_rotate, Eina_Bool sync, E_Output_Capture_Cb func, void *data)
{
Eina_Bool ret = EINA_FALSE;
tdm_capture *tcapture = NULL;
return EINA_TRUE;
}
+ if (sync)
+ {
+ ret = _e_output_capture(output, tsurface, auto_rotate);
+ EINA_SAFETY_ON_FALSE_GOTO(ret == EINA_TRUE, fail);
+
+ DBG("capture done(%p)", tsurface);
+ func(output, tsurface, data);
+
+ return EINA_TRUE;
+ }
+
tcapture = _e_output_tdm_capture_create(output, TDM_CAPTURE_CAPABILITY_ONESHOT);
if (tcapture)
{
EINTERN Eina_Bool e_output_fake_config_set(E_Output *output, int w, int h);
EINTERN Eina_Bool e_output_zoom_set(E_Output *output, double zoomx, double zoomy, int cx, int cy);
EINTERN void e_output_zoom_unset(E_Output *output);
-EINTERN Eina_Bool e_output_capture(E_Output *output, tbm_surface_h surface, Eina_Bool auto_rotate, E_Output_Capture_Cb func, void *data);
+EINTERN Eina_Bool e_output_capture(E_Output *output, tbm_surface_h surface, Eina_Bool auto_rotate, Eina_Bool sync, E_Output_Capture_Cb func, void *data);
EINTERN Eina_Bool e_output_stream_capture_queue(E_Output *output, tbm_surface_h surface, E_Output_Capture_Cb func, void *data);
EINTERN Eina_Bool e_output_stream_capture_dequeue(E_Output *output, tbm_surface_h surface);
EINTERN Eina_Bool e_output_stream_capture_start(E_Output *output);