LIST_DEL(&buf_info->link);
_pthread_mutex_unlock(&private_display->lock);
+ if (private_capture->done_func)
+ private_capture->done_func(private_capture, buffer, private_capture->done_user_data);
tdm_buffer_unref_backend(buffer);
_pthread_mutex_lock(&private_display->lock);
}
}
EXTERN tdm_error
+tdm_capture_set_done_handler(tdm_capture *capture, tdm_capture_done_handler func, void *user_data)
+{
+ tdm_private_display *private_display;
+ tdm_private_capture *private_capture;
+ tdm_error ret = TDM_ERROR_NONE;
+
+ TDM_RETURN_VAL_IF_FAIL(capture != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ private_capture = (tdm_private_capture*)capture;
+ private_display = private_capture->private_display;
+
+ TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ private_capture->done_func = func;
+ private_capture->done_user_data = user_data;
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return ret;
+}
+
+EXTERN tdm_error
tdm_capture_attach(tdm_capture *capture, tbm_surface_h buffer)
{
CAPTURE_FUNC_ENTRY();