///////////////////////////////////////////////////////////////////////////////
+typedef enum
+{
+ TDM_DISPLAY_CAPABILITY_PP = (1<<0),
+ TDM_DISPLAY_CAPABILITY_CAPTURE = (1<<1),
+} tdm_display_capability;
+
/* not neccessary for user to know what backend is */
tdm_display* tdm_display_init(tdm_error *error);
void tdm_display_deinit(tdm_display *dpy);
typedef struct _tdm_caps_display
{
- tdm_display_capability capabilities;
-
/* -1: not defined */
int max_layer_count;
} tdm_caps_display;
typedef enum
{
- TDM_DISPLAY_CAPABILITY_PP = (1<<0),
- TDM_DISPLAY_CAPABILITY_CAPTURE = (1<<1),
-} tdm_display_capability;
-
-typedef enum
-{
TDM_LAYER_CAPABILITY_CURSOR = (1<<0),
TDM_LAYER_CAPABILITY_PRIMARY = (1<<1),
TDM_LAYER_CAPABILITY_OVERLAY = (1<<2),
_tdm_display_destroy_caps_pp(&private_display->caps_pp);
_tdm_display_destroy_caps_capture(&private_display->caps_capture);
- private_display->caps_display.capabilities = 0;
+
+ private_display->capabilities = 0;
+ private_display->caps_display.max_layer_count = -1;
}
static tdm_error
int i;
tdm_error ret;
- if (!(private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_PP))
+ if (!(private_display->capabilities & TDM_DISPLAY_CAPABILITY_PP))
return TDM_ERROR_NONE;
if (!func_display->display_get_pp_capability)
int i;
tdm_error ret;
- if (!(private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
+ if (!(private_display->capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
return TDM_ERROR_NONE;
if (!func_display->display_get_capture_capability)
return TDM_ERROR_BAD_MODULE;
}
- if (private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_PP)
+ if (private_display->capabilities & TDM_DISPLAY_CAPABILITY_PP)
{
tdm_func_pp *func_pp = &private_display->func_pp;
TDM_RETURN_VAL_IF_FAIL(func_display->display_get_pp_capability, TDM_ERROR_BAD_MODULE);
TDM_RETURN_VAL_IF_FAIL(func_pp->pp_set_done_handler, TDM_ERROR_BAD_MODULE);
}
- if (private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE)
+ if (private_display->capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE)
{
tdm_func_capture *func_capture = &private_display->func_capture;
TDM_RETURN_VAL_IF_FAIL(func_display->display_get_capture_capability, TDM_ERROR_BAD_MODULE);
return TDM_ERROR_NONE;
pthread_mutex_lock(&private_display->lock);
+ private_display->capabilities |= TDM_DISPLAY_CAPABILITY_PP;
private_display->func_pp = *func_pp;
pthread_mutex_unlock(&private_display->lock);
return TDM_ERROR_NONE;
pthread_mutex_lock(&private_display->lock);
+ private_display->capabilities |= TDM_DISPLAY_CAPABILITY_CAPTURE;
private_display->func_capture = *func_capture;
pthread_mutex_unlock(&private_display->lock);
func_display = &private_display->func_display;
func_capture = &private_display->func_capture;
- if (!(private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
+ if (!(private_display->capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
{
TDM_ERR("no capture capability");
if (error)
func_display = &private_display->func_display;
func_capture = &private_display->func_capture;
- if (!(private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
+ if (!(private_display->capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
{
TDM_ERR("no capture capability");
if (error)
pthread_mutex_lock(&private_display->lock);
- *capabilities = private_display->caps_display.capabilities;
+ *capabilities = private_display->capabilities;
pthread_mutex_unlock(&private_display->lock);
func_display = &private_display->func_display;
func_pp = &private_display->func_pp;
- if (!(private_display->caps_display.capabilities & TDM_DISPLAY_CAPABILITY_PP))
+ if (!(private_display->capabilities & TDM_DISPLAY_CAPABILITY_PP))
{
TDM_ERR("no pp capability");
if (error)
tdm_backend_data *bdata;
/* backend function */
+ tdm_display_capability capabilities;
tdm_func_display func_display;
tdm_func_pp func_pp;
tdm_func_capture func_capture;