add error information to protocol 90/148590/1
authorBoram Park <boram1288.park@samsung.com>
Fri, 8 Sep 2017 02:58:28 +0000 (11:58 +0900)
committerBoram Park <boram1288.park@samsung.com>
Fri, 8 Sep 2017 02:58:28 +0000 (11:58 +0900)
Change-Id: Ieba9ce9235eb815528228b6b656d12531af7e746

client/tdm_client.c
protocol/tdm.xml
src/tdm_server.c

index 04c9d2f..6ab849d 100644 (file)
@@ -188,7 +188,7 @@ _tdm_client_output_destroy(tdm_private_client_output *private_output)
 
 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;
 
@@ -198,13 +198,16 @@ _tdm_client_output_cb_mode(void *data, struct wl_tdm_output *wl_tdm_output,
        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;
@@ -217,6 +220,9 @@ _tdm_client_output_cb_connection(void *data, struct wl_tdm_output *wl_tdm_output
 
        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),
@@ -230,7 +236,7 @@ _tdm_client_output_cb_connection(void *data, struct wl_tdm_output *wl_tdm_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;
@@ -243,6 +249,9 @@ _tdm_client_output_cb_dpms(void *data, struct wl_tdm_output *wl_tdm_output, uint
 
        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),
index dcd99ed..22328ac 100644 (file)
             <arg name="width" type="uint"/>
             <arg name="height" type="uint"/>
             <arg name="refresh" type="uint"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
         </event>
 
         <event name="connection">
             <arg name="value" type="uint"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
         </event>
 
         <event name="dpms">
             <arg name="value" type="uint"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
         </event>
 
         <request name="destroy" type="destructor"/>
index c49e9db..ca994ce 100644 (file)
@@ -217,10 +217,10 @@ _tdm_server_cb_output_change(tdm_output *output, tdm_output_change_type type,
 
        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;
@@ -463,12 +463,12 @@ _tdm_server_output_cb_get_connection(struct wl_client *client, struct wl_resourc
        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
@@ -494,14 +494,14 @@ _tdm_server_output_cb_get_mode(struct wl_client *client, struct wl_resource *res
                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
@@ -522,14 +522,14 @@ _tdm_server_output_cb_get_dpms(struct wl_client *client, struct wl_resource *res
                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 = {
@@ -569,6 +569,7 @@ _tdm_server_cb_create_output(struct wl_client *client, struct wl_resource *resou
        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) {
@@ -606,25 +607,25 @@ _tdm_server_cb_create_output(struct wl_client *client, struct wl_resource *resou
        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);
        }
 }