}
if (tdm_debug_module & TDM_DEBUG_VBLANK)
- TDM_INFO("req_id(%d) done", wait_info->req_id);
+ TDM_DBG("req_id(%d) done", wait_info->req_id);
TDM_TRACE_COUNT(ServerDoneVBlank, wait_info->req_id);
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;
TDM_RETURN_IF_FAIL(vblank_info != NULL);
+ LIST_DEL(&vblank_info->link);
+
if (vblank_info->vblank)
tdm_vblank_destroy(vblank_info->vblank);
destroy_wait(w);
}
- LIST_DEL(&vblank_info->link);
free(vblank_info);
}
wait_info->req_id = req_id;
if (tdm_debug_module & TDM_DEBUG_VBLANK)
- TDM_INFO("req_id(%d) wait", req_id);
+ TDM_DBG("req_id(%d) wait", req_id);
ret = tdm_vblank_wait(vblank_info->vblank, req_sec, req_usec, interval, _tdm_server_cb_vblank, wait_info);
wait_info->req_id = req_id;
if (tdm_debug_module & TDM_DEBUG_VBLANK)
- TDM_INFO("req_id(%d) wait", req_id);
+ TDM_DBG("req_id(%d) wait", req_id);
ret = tdm_vblank_wait_seq(vblank_info->vblank, req_sec, req_usec, sequence, _tdm_server_cb_vblank, wait_info);
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 = {
TDM_RETURN_IF_FAIL(output_info != NULL);
+ LIST_DEL(&output_info->link);
+
tdm_output_remove_change_handler(output_info->output,
_tdm_server_cb_output_change, output_info);
wl_resource_destroy(v->resource);
}
- LIST_DEL(&output_info->link);
free(output_info);
}
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);
}
}
size = sizeof(message) - len;
m = message;
- wl_client_flush(wl_resource_get_client(resource));
+ wl_client_flush(client);
while (size > 0) {
char buffer[TDM_DEBUG_REPLY_MSG_LEN];
_tdm_socket_init(tdm_private_loop *private_loop)
{
const char *dir = NULL;
- char socket_path[128];
+ char socket_path[TDM_NAME_LEN * 2];
int ret = -1;
uid_t uid;
gid_t gid;
return;
}
- snprintf(socket_path, sizeof(socket_path), "%s/%s", dir, "tdm-socket");
+ strncpy(socket_path, dir, TDM_NAME_LEN - 1);
+ socket_path[TDM_NAME_LEN - 1] = '\0';
+
+ strncat(socket_path, "/tdm-socket", 11);
+ socket_path[TDM_NAME_LEN + 10] = '\0';
ret = chmod(socket_path, 509);
if (ret < 0) {