unsigned int tv_sec, unsigned int tv_usec, void *user_data);
static void _tdm_layer_reset_pending_data(tdm_private_layer *private_layer);
+EXTERN tdm_output*
+tdm_layer_get_output(tdm_layer *layer, tdm_error *error)
+{
+ tdm_output *output;
+
+ LAYER_FUNC_ENTRY_ERROR();
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ if (error)
+ *error = TDM_ERROR_NONE;
+
+ output = private_layer->private_output;
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return output;
+}
+
EXTERN tdm_error
tdm_layer_get_capabilities(tdm_layer *layer, tdm_layer_capability *capabilities)
{
}
}
-EXTERN tdm_error
-tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer)
+INTERN tdm_error
+tdm_layer_set_buffer_internal(tdm_private_layer *private_layer, tbm_surface_h buffer)
{
+ tdm_private_output *private_output = private_layer->private_output;
+ tdm_private_display *private_display = private_output->private_display;
tdm_func_layer *func_layer;
- LAYER_FUNC_ENTRY();
-
- TDM_RETURN_VAL_IF_FAIL(buffer != NULL, TDM_ERROR_INVALID_PARAMETER);
-
- _pthread_mutex_lock(&private_display->lock);
-
/* LCOV_EXCL_START */
/* dump buffer */
if (tdm_dump_enable && !(private_layer->caps.capabilities & TDM_LAYER_CAPABILITY_VIDEO))
if (!func_layer->layer_set_buffer) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_ERR("not implemented!!");
return TDM_ERROR_NOT_IMPLEMENTED;
/* LCOV_EXCL_START */
TDM_TRACE_ASYNC_BEGIN((intptr_t)private_layer, "[LAYER] %d", tbm_bo_export(bo));
}
- _pthread_mutex_unlock(&private_display->lock);
-
- return ret;
+ return TDM_ERROR_NONE;
}
EXTERN tdm_error
-tdm_layer_unset_buffer(tdm_layer *layer)
+tdm_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer)
{
- tdm_func_layer *func_layer;
LAYER_FUNC_ENTRY();
+ TDM_RETURN_VAL_IF_FAIL(buffer != NULL, TDM_ERROR_INVALID_PARAMETER);
+
_pthread_mutex_lock(&private_display->lock);
+ ret = tdm_layer_set_buffer_internal(private_layer, buffer);
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return ret;
+}
+
+INTERN tdm_error
+tdm_layer_unset_buffer_internal(tdm_private_layer *private_layer)
+{
+ tdm_private_output *private_output = private_layer->private_output;
+ tdm_private_display *private_display = private_output->private_display;
+ tdm_func_layer *func_layer;
+ tdm_error ret = TDM_ERROR_NONE;
+
func_layer = &private_display->func_layer;
_tdm_layer_free_all_buffers(private_layer);
if (!func_layer->layer_unset_buffer) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_ERR("not implemented!!");
return TDM_ERROR_NOT_IMPLEMENTED;
/* LCOV_EXCL_START */
ret = func_layer->layer_unset_buffer(private_layer->layer_backend);
TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE);
+ return ret;
+}
+
+EXTERN tdm_error
+tdm_layer_unset_buffer(tdm_layer *layer)
+{
+ LAYER_FUNC_ENTRY();
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ ret = tdm_layer_unset_buffer_internal(private_layer);
+
_pthread_mutex_unlock(&private_display->lock);
return ret;