compositor-drm: Assign unique output names like xrandr does
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 8ea4965..7c5ba6e 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -99,6 +99,7 @@
 struct drm_output {
 	struct weston_output   base;
 
+	char *name;
 	uint32_t crtc_id;
 	uint32_t connector_id;
 	drmModeCrtcPtr original_crtc;
@@ -1241,6 +1242,24 @@
 	drmModeFreeConnector(connector);
 }
 
+static const char *connector_type_names[] = {
+	"None",
+	"VGA",
+	"DVI",
+	"DVI",
+	"DVI",
+	"Composite",
+	"TV",
+	"LVDS",
+	"CTV",
+	"DIN",
+	"DP",
+	"HDMI",
+	"HDMI",
+	"TV",
+	"eDP",
+};
+
 static int
 create_output_for_connector(struct drm_compositor *ec,
 			    drmModeRes *resources,
@@ -1254,6 +1273,8 @@
 	drmModeModeInfo crtc_mode;
 	drmModeCrtc *crtc;
 	int i, ret;
+	char name[32];
+	const char *type_name;
 
 	encoder = drmModeGetEncoder(ec->drm.fd, connector->encoders[0]);
 	if (encoder == NULL) {
@@ -1284,6 +1305,13 @@
 	output->base.model = "unknown";
 	wl_list_init(&output->base.mode_list);
 
+	if (connector->connector_type < ARRAY_LENGTH(connector_type_names))
+		type_name = connector_type_names[connector->connector_type];
+	else
+		type_name = "UNKNOWN";
+	snprintf(name, 32, "%s%d", type_name, connector->connector_type_id);
+	output->name = strdup(name);
+
 	output->crtc_id = resources->crtcs[i];
 	ec->crtc_allocator |= (1 << output->crtc_id);
 	output->connector_id = connector->connector_id;
@@ -1389,8 +1417,8 @@
 	output->base.set_dpms = drm_set_dpms;
 	output->base.switch_mode = drm_output_switch_mode;
 
-	weston_log("kms connector %d, crtc %d\n",
-		   output->connector_id, output->crtc_id);
+	weston_log("Output %s, (connector %d, crtc %d)\n",
+		   output->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,