libweston: print head names on output enable
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 2 Nov 2017 12:03:11 +0000 (14:03 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Tue, 17 Apr 2018 12:57:41 +0000 (15:57 +0300)
This will be interesting to see when testing clone mode.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Derek Foreman <derekf@osg.samsung.com>
libweston/compositor.c

index d149bb0..d5bbcb2 100644 (file)
@@ -5482,6 +5482,32 @@ weston_compositor_add_pending_output(struct weston_output *output,
        wl_list_insert(compositor->pending_output_list.prev, &output->link);
 }
 
+/** Create a string with the attached heads' names.
+ *
+ * The string must be free()'d.
+ */
+static char *
+weston_output_create_heads_string(struct weston_output *output)
+{
+       FILE *fp;
+       char *str = NULL;
+       size_t size = 0;
+       struct weston_head *head;
+       const char *sep = "";
+
+       fp = open_memstream(&str, &size);
+       if (!fp)
+               return NULL;
+
+       wl_list_for_each(head, &output->head_list, output_link) {
+               fprintf(fp, "%s%s", sep, head->name);
+               sep = ", ";
+       }
+       fclose(fp);
+
+       return str;
+}
+
 /** Constructs a weston_output object that can be used by the compositor.
  *
  * \param output The weston_output object that needs to be enabled. Must not
@@ -5521,6 +5547,7 @@ weston_output_enable(struct weston_output *output)
        struct weston_compositor *c = output->compositor;
        struct weston_output *iterator;
        struct weston_head *head;
+       char *head_names;
        int x = 0, y = 0;
 
        if (output->enabled) {
@@ -5585,6 +5612,11 @@ weston_output_enable(struct weston_output *output)
 
        weston_compositor_add_output(output->compositor, output);
 
+       head_names = weston_output_create_heads_string(output);
+       weston_log("Output '%s' enabled with head(s) %s\n",
+                  output->name, head_names);
+       free(head_names);
+
        return 0;
 }