[PATCH 5/5] Move the optional output name property from drm_output to weston_output

Richard Hughes hughsient at gmail.com
Thu May 2 02:10:04 PDT 2013


In the future the CMS plugins will need to read the config file and setup a list
of hardcoded names to ICC profiles.
---
 src/compositor-drm.c | 11 ++++-------
 src/compositor.c     |  1 +
 src/compositor.h     |  1 +
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index db4db33..b6a7ae4 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -146,7 +146,6 @@ struct drm_edid {
 struct drm_output {
 	struct weston_output   base;
 
-	char *name;
 	uint32_t crtc_id;
 	int pipe;
 	uint32_t connector_id;
@@ -1073,7 +1072,6 @@ drm_output_destroy(struct weston_output *output_base)
 	weston_output_destroy(&output->base);
 	wl_list_remove(&output->base.link);
 
-	free(output->name);
 	free(output);
 }
 
@@ -1696,7 +1694,7 @@ create_output_for_connector(struct drm_compositor *ec,
 	else
 		type_name = "UNKNOWN";
 	snprintf(name, 32, "%s%d", type_name, connector->connector_type_id);
-	output->name = strdup(name);
+	output->base.name = strdup(name);
 
 	output->crtc_id = resources->crtcs[i];
 	output->pipe = i;
@@ -1731,7 +1729,7 @@ create_output_for_connector(struct drm_compositor *ec,
 	configured = NULL;
 
 	wl_list_for_each(temp, &configured_output_list, link) {
-		if (strcmp(temp->name, output->name) == 0) {
+		if (strcmp(temp->name, output->base.name) == 0) {
 			if (temp->mode)
 				weston_log("%s mode \"%s\" in config\n",
 							temp->name, temp->mode);
@@ -1785,7 +1783,7 @@ create_output_for_connector(struct drm_compositor *ec,
 		output->base.current = &current->base;
 
 	if (output->base.current == NULL) {
-		weston_log("no available modes for %s\n", output->name);
+		weston_log("no available modes for %s\n", output->base.name);
 		goto err_free;
 	}
 
@@ -1835,7 +1833,7 @@ create_output_for_connector(struct drm_compositor *ec,
 				      &ec->base.primary_plane);
 
 	weston_log("Output %s, (connector %d, crtc %d)\n",
-		   output->name, output->connector_id, output->crtc_id);
+		   output->base.name, output->connector_id, output->crtc_id);
 	wl_list_for_each(m, &output->base.mode_list, link)
 		weston_log_continue("  mode %dx%d@%.1f%s%s%s\n",
 				    m->width, m->height, m->refresh / 1000.0,
@@ -1860,7 +1858,6 @@ err_free:
 	drmModeFreeCrtc(output->original_crtc);
 	ec->crtc_allocator &= ~(1 << output->crtc_id);
 	ec->connector_allocator &= ~(1 << output->connector_id);
-	free(output->name);
 	free(output);
 
 	return -1;
diff --git a/src/compositor.c b/src/compositor.c
index c1acd50..a6610e6 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2908,6 +2908,7 @@ weston_output_destroy(struct weston_output *output)
 
 	wl_signal_emit(&output->destroy_signal, output);
 
+	free(output->name);
 	pixman_region32_fini(&output->region);
 	pixman_region32_fini(&output->previous_damage);
 	output->compositor->output_id_pool &= ~(1 << output->id);
diff --git a/src/compositor.h b/src/compositor.h
index 63d1127..7da6c48 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -156,6 +156,7 @@ enum dpms_enum {
 
 struct weston_output {
 	uint32_t id;
+	char *name;
 
 	void *renderer_state;
 
-- 
1.8.2.1



More information about the wayland-devel mailing list