add excluding coverage comments for tdm_monitor_server.c and tdm_output.c
[platform/core/uifw/libtdm.git] / src / tdm_monitor_server.c
index c46d457..ea56a8b 100644 (file)
 
 #define TDM_DBG_SERVER_ARGS_MAX                32
 
+/* LCOV_EXCL_START */
 static void _tdm_monitor_server_usage(char *app_name, char *reply, int *len);
 
 static void
 _tdm_monitor_server_query(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
 {
+       tdm_display_lock(dpy);
        tdm_helper_get_display_information(dpy, reply, len);
+       tdm_display_unlock(dpy);
 }
 
 static void
@@ -106,12 +109,9 @@ _tdm_monitor_server_dpms(unsigned int pid, char *cwd, int argc, char *argv[], ch
 static void
 _tdm_monitor_server_ttrace_vblank(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
 {
-       int enable, output_id = 0;
-       tdm_output *output;
+       int ttrace_vblank, output_id = 0;
        char *arg;
        char *end;
-       tdm_error ret;
-       tdm_output_type type;
 
        if (argc < 3) {
                _tdm_monitor_server_usage(argv[0], reply, len);
@@ -119,29 +119,45 @@ _tdm_monitor_server_ttrace_vblank(unsigned int pid, char *cwd, int argc, char *a
        }
 
        arg = argv[2];
-       enable = strtol(arg, &end, 10);
+       ttrace_vblank = strtol(arg, &end, 10);
 
-       if (*end == '@') {
-               arg = end + 1;
-               output_id = strtol(arg, &end, 10);
-       }
+       if (ttrace_vblank > 0) {
+               tdm_output *output;
+               tdm_error ret;
+               tdm_output_type type;
+               char *temp;
 
-       output = tdm_display_get_output(dpy, output_id, NULL);
-       if (!output) {
-               TDM_SNPRINTF(reply, len, "can't find the output_id(%d)\n", output_id);
-               return;
-       }
+               if (*end == '@') {
+                       arg = end + 1;
+                       output_id = strtol(arg, &end, 10);
+               }
 
-       ret = tdm_output_get_output_type(output, &type);
-       if (ret != TDM_ERROR_NONE) {
-               TDM_SNPRINTF(reply, len, "can't find the type of output_id(%d)\n", output_id);
-               return;
-       }
+               output = tdm_display_get_output(dpy, output_id, NULL);
+               if (!output) {
+                       TDM_SNPRINTF(reply, len, "can't find the output_id(%d)\n", output_id);
+                       return;
+               }
 
-       tdm_display_enable_ttrace_vblank(dpy, output, enable);
+               ret = tdm_output_get_output_type(output, &type);
+               if (ret != TDM_ERROR_NONE) {
+                       TDM_SNPRINTF(reply, len, "can't find the type of output_id(%d)\n", output_id);
+                       return;
+               }
+
+               temp = "server";
+               tdm_display_enable_ttrace_vblank(dpy, output, 1);
+
+               if (ttrace_vblank > 1) {
+                       temp = "clients";
+                       tdm_server_enable_ttrace_vblank(dpy, output, 1);
+               }
 
-       TDM_SNPRINTF(reply, len, "%s ttrace vblank for '%s'\n",
-                                (enable) ? "enable" : "disable", tdm_conn_str(type));
+               TDM_SNPRINTF(reply, len, "enable ttrace vblank for '%s': %s \n", tdm_conn_str(type), temp);
+       } else {
+               tdm_display_enable_ttrace_vblank(dpy, NULL, 0);
+               tdm_server_enable_ttrace_vblank(dpy, NULL, 0);
+               TDM_SNPRINTF(reply, len, "disable ttrace vblank\n");
+       }
 }
 
 static void
@@ -218,23 +234,34 @@ done:
 }
 
 static void
-_tdm_monitor_server_commit_per_vblank(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
+_tdm_monitor_server_choose_commit_per_vblank_mode(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
 {
-       int enable;
+       int output_idx;
+       int mode;
        char *arg;
        char *end;
+       tdm_error err;
 
-       if (argc < 3) {
+       /* TODO: do we have to provide an ability to choose commit_per_vblank mode outside? */
+
+       if (argc < 4) {
                _tdm_monitor_server_usage(argv[0], reply, len);
                return;
        }
 
        arg = argv[2];
-       enable = strtol(arg, &end, 10);
+       output_idx = strtol(arg, &end, 10);
+
+       arg = argv[3];
+       mode = strtol(arg, &end, 10);
 
-       tdm_display_enable_commit_per_vblank(dpy, enable);
+       err = tdm_output_choose_commit_per_vblank_mode(tdm_display_get_output(dpy, output_idx, NULL), mode);
+       if (err != TDM_ERROR_NONE) {
+               TDM_SNPRINTF(reply, len, "an error: output_idx or mode is wrong\n");
+               return;
+       }
 
-       TDM_SNPRINTF(reply, len, "%s the commit-per-vblank\n", (enable) ? "enable" : "disable");
+       TDM_SNPRINTF(reply, len, "the mode's been set\n");
 }
 
 static void
@@ -521,8 +548,8 @@ static struct {
        },
        {
                "ttrace_vblank", _tdm_monitor_server_ttrace_vblank,
-               "enable/disable the vblank for ttrace [0:disable 1:enable]",
-               "<enable>[@<output_idx>]", "0 or 1"
+               "enable/disable the vblank for ttrace [0:disable, 1:server, 2:clients]",
+               "<enable>[@<output_idx>]", "0 or 1 or 2 or 1@0 or 2@0 or 1@1 or 2@1"
        },
        {
                "debug", _tdm_monitor_server_debug,
@@ -537,10 +564,10 @@ static struct {
                "console"
        },
        {
-               "commit_per_vblank", _tdm_monitor_server_commit_per_vblank,
-               "enable/disable the commit per vblank",
-               "<enable>",
-               "0 or 1"
+               "choose_commit_per_vblank_mode", _tdm_monitor_server_choose_commit_per_vblank_mode,
+               "choose a commit_per_vblank mode for the output",
+               "<output_idx> <mode>",
+               "0 1 or 1 2 or 2 0"
        },
        {
                "fps", _tdm_monitor_server_fps,
@@ -676,3 +703,4 @@ tdm_monitor_server_command(tdm_display *dpy, const char *options, char *reply, i
 
        _tdm_monitor_server_command(pid, cwd, dpy, argc, argv, reply, len);
 }
+/* LCOV_EXCL_STOP */