X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftdm_server.c;h=a71eb0eecb16d6f83717224eb68a6073ec807f10;hb=e21703af4902508822f6c9942b94496da4e4342e;hp=e51d868591c147f1922321b0a5e767b98850b276;hpb=7a73695132cffbca3953d44f42ad8987b69e468a;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/src/tdm_server.c b/src/tdm_server.c index e51d868..a71eb0e 100644 --- a/src/tdm_server.c +++ b/src/tdm_server.c @@ -596,6 +596,53 @@ failed: wl_tdm_output_send_dpms(output_info->resource, TDM_OUTPUT_DPMS_OFF, ret); } +static void +_tdm_server_output_cb_get_available_modes(struct wl_client *client, struct wl_resource *resource) +{ + tdm_server_output_info *output_info = wl_resource_get_user_data(resource); + const tdm_output_mode *modes; + tdm_output_mode *mode; + struct wl_array array; + int i, size, count = 0; + tdm_error ret; + + ret = tdm_output_get_available_modes(output_info->output, &modes, &count); + + if ((ret != TDM_ERROR_NONE) || (count == 0)) { + wl_tdm_output_send_available_modes(output_info->resource, NULL, ret); + return; + } + + size = sizeof(tdm_output_mode); + wl_array_init(&array); + for (i = 0; i < count; i++) { + mode = wl_array_add(&array, size); + memcpy(mode, &modes[i], size); + } + + wl_tdm_output_send_available_modes(output_info->resource, &array, ret); + + wl_array_release(&array); +} + +static void +_tdm_server_output_cb_set_mode(struct wl_client *client, struct wl_resource *resource, unsigned int index) +{ + tdm_server_output_info *output_info = wl_resource_get_user_data(resource); + tdm_output_conn_status status = TDM_OUTPUT_CONN_STATUS_DISCONNECTED; + tdm_error ret; + + TDM_RETURN_IF_FAIL(output_info != NULL); + + ret = tdm_output_get_conn_status(output_info->output, &status); + TDM_RETURN_IF_FAIL(ret == TDM_ERROR_NONE); + TDM_RETURN_IF_FAIL(status != TDM_OUTPUT_CONN_STATUS_DISCONNECTED); + + //To do + + return; +} + static const struct wl_tdm_output_interface tdm_output_implementation = { _tdm_server_output_cb_destroy, _tdm_server_output_cb_create_vblank, @@ -603,6 +650,8 @@ static const struct wl_tdm_output_interface tdm_output_implementation = { _tdm_server_output_cb_get_connection, _tdm_server_output_cb_get_mode, _tdm_server_output_cb_get_dpms, + _tdm_server_output_cb_get_available_modes, + _tdm_server_output_cb_set_mode, }; static void