static void
_tdm_client_output_cb_mode(void *data, struct wl_tdm_output *wl_tdm_output,
- uint32_t width, uint32_t height, uint32_t refresh)
+ uint32_t width, uint32_t height, uint32_t refresh, uint32_t error)
{
tdm_private_client_output *private_output = (tdm_private_client_output*)data;
private_output->height = height;
private_output->refresh = refresh;
+ if (error != TDM_ERROR_NONE)
+ TDM_INFO("mode event error: %d", error);
+
TDM_DBG("private_output(%p) wl_tbm_output@%d width(%d) height(%d) refresh(%d)",
private_output, wl_proxy_get_id((struct wl_proxy*)private_output->output),
width, height, refresh);
}
static void
-_tdm_client_output_cb_connection(void *data, struct wl_tdm_output *wl_tdm_output, uint32_t value)
+_tdm_client_output_cb_connection(void *data, struct wl_tdm_output *wl_tdm_output, uint32_t value, uint32_t error)
{
tdm_private_client_output *private_output = (tdm_private_client_output*)data;
tdm_client_output_handler_info *h = NULL;
private_output->connection = value;
+ if (error != TDM_ERROR_NONE)
+ TDM_INFO("connection event error: %d", error);
+
TDM_DBG("private_output(%p) wl_tbm_output@%d connection(%d)",
private_output,
wl_proxy_get_id((struct wl_proxy*)private_output->output),
}
static void
-_tdm_client_output_cb_dpms(void *data, struct wl_tdm_output *wl_tdm_output, uint32_t value)
+_tdm_client_output_cb_dpms(void *data, struct wl_tdm_output *wl_tdm_output, uint32_t value, uint32_t error)
{
tdm_private_client_output *private_output = (tdm_private_client_output*)data;
tdm_client_output_handler_info *h = NULL;
private_output->dpms = value;
+ if (error != TDM_ERROR_NONE)
+ TDM_INFO("dpms event error: %d", error);
+
TDM_DBG("private_output(%p) wl_tbm_output@%d dpms(%d)",
private_output,
wl_proxy_get_id((struct wl_proxy*)private_output->output),
switch (type) {
case TDM_OUTPUT_CHANGE_DPMS:
- wl_tdm_output_send_dpms(output_info->resource, value.u32);
+ wl_tdm_output_send_dpms(output_info->resource, value.u32, TDM_ERROR_NONE);
break;
case TDM_OUTPUT_CHANGE_CONNECTION:
- wl_tdm_output_send_connection(output_info->resource, value.u32);
+ wl_tdm_output_send_connection(output_info->resource, value.u32, TDM_ERROR_NONE);
break;
default:
break;
ret = tdm_output_get_conn_status(output_info->output, &status);
TDM_GOTO_IF_FAIL(ret != TDM_ERROR_NONE, failed);
- wl_tdm_output_send_connection(output_info->resource, status);
+ wl_tdm_output_send_connection(output_info->resource, status, ret);
return;
failed:
- wl_tdm_output_send_connection(output_info->resource, TDM_OUTPUT_CONN_STATUS_DISCONNECTED);
+ wl_tdm_output_send_connection(output_info->resource, TDM_OUTPUT_CONN_STATUS_DISCONNECTED, ret);
}
static void
vdisplay = (mode) ? mode->vdisplay : 0;
vrefresh = (mode) ? mode->vrefresh : 0;
- wl_tdm_output_send_mode(output_info->resource, hdisplay, vdisplay, vrefresh);
+ wl_tdm_output_send_mode(output_info->resource, hdisplay, vdisplay, vrefresh, ret);
} else {
- wl_tdm_output_send_mode(output_info->resource, 0, 0, 0);
+ wl_tdm_output_send_mode(output_info->resource, 0, 0, 0, TDM_ERROR_OUTPUT_DISCONNECTED);
}
return;
failed:
- wl_tdm_output_send_mode(output_info->resource, 0, 0, 0);
+ wl_tdm_output_send_mode(output_info->resource, 0, 0, 0, ret);
}
static void
ret = tdm_output_get_dpms(output_info->output, &dpms_value);
TDM_GOTO_IF_FAIL(ret != TDM_ERROR_NONE, failed);
- wl_tdm_output_send_dpms(output_info->resource, dpms_value);
+ wl_tdm_output_send_dpms(output_info->resource, dpms_value, ret);
} else {
- wl_tdm_output_send_dpms(output_info->resource, TDM_OUTPUT_DPMS_OFF);
+ wl_tdm_output_send_dpms(output_info->resource, TDM_OUTPUT_DPMS_OFF, TDM_ERROR_OUTPUT_DISCONNECTED);
}
return;
failed:
- wl_tdm_output_send_dpms(output_info->resource, TDM_OUTPUT_DPMS_OFF);
+ wl_tdm_output_send_dpms(output_info->resource, TDM_OUTPUT_DPMS_OFF, ret);
}
static const struct wl_tdm_output_interface tdm_output_implementation = {
struct wl_resource *output_resource = NULL;
tdm_output *output;
tdm_output_conn_status status = TDM_OUTPUT_CONN_STATUS_DISCONNECTED;
+ tdm_error ret;
output = _tdm_server_find_output(private_server, name);
if (!output) {
wl_resource_set_implementation(output_resource, &tdm_output_implementation,
output_info, destroy_output_callback);
- tdm_output_get_conn_status(output, &status);
- wl_tdm_output_send_connection(output_resource, status);
+ ret = tdm_output_get_conn_status(output, &status);
+ wl_tdm_output_send_connection(output_resource, status, ret);
if (status != TDM_OUTPUT_CONN_STATUS_DISCONNECTED) {
tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF;
const tdm_output_mode *mode = NULL;
unsigned int hdisplay, vdisplay, vrefresh;
- tdm_output_get_mode(output, &mode);
+ ret = tdm_output_get_mode(output, &mode);
hdisplay = (mode) ? mode->hdisplay : 0;
vdisplay = (mode) ? mode->vdisplay : 0;
vrefresh = (mode) ? mode->vrefresh : 0;
- wl_tdm_output_send_mode(output_resource, hdisplay, vdisplay, vrefresh);
+ wl_tdm_output_send_mode(output_resource, hdisplay, vdisplay, vrefresh, ret);
- tdm_output_get_dpms(output, &dpms_value);
- wl_tdm_output_send_dpms(output_resource, dpms_value);
+ ret = tdm_output_get_dpms(output, &dpms_value);
+ wl_tdm_output_send_dpms(output_resource, dpms_value, ret);
} else {
- wl_tdm_output_send_mode(output_resource, 0, 0, 0);
- wl_tdm_output_send_dpms(output_resource, TDM_OUTPUT_DPMS_OFF);
+ wl_tdm_output_send_mode(output_resource, 0, 0, 0, TDM_ERROR_OUTPUT_DISCONNECTED);
+ wl_tdm_output_send_dpms(output_resource, TDM_OUTPUT_DPMS_OFF, TDM_ERROR_OUTPUT_DISCONNECTED);
}
}