@@ -152,6 +152,42 @@ struct display_setup {
152152 struct connector connectors [];
153153};
154154
155+ /**
156+ * @brief Gets the name for a DRM connector type.
157+ *
158+ * Follows the kernel naming.
159+ */
160+ static const char * get_connector_type_name (uint32_t connector_type ) {
161+ switch (connector_type ) {
162+ case DRM_MODE_CONNECTOR_Unknown : return "Unknown" ;
163+ case DRM_MODE_CONNECTOR_VGA : return "VGA" ;
164+ case DRM_MODE_CONNECTOR_DVII : return "DVI-I" ;
165+ case DRM_MODE_CONNECTOR_DVID : return "DVI-D" ;
166+ case DRM_MODE_CONNECTOR_DVIA : return "DVI-A" ;
167+ case DRM_MODE_CONNECTOR_Composite : return "Composite" ;
168+ case DRM_MODE_CONNECTOR_SVIDEO : return "SVIDEO" ;
169+ case DRM_MODE_CONNECTOR_LVDS : return "LVDS" ;
170+ case DRM_MODE_CONNECTOR_Component : return "Component" ;
171+ case DRM_MODE_CONNECTOR_9PinDIN : return "DIN" ;
172+ case DRM_MODE_CONNECTOR_DisplayPort : return "DP" ;
173+ case DRM_MODE_CONNECTOR_HDMIA : return "HDMI-A" ;
174+ case DRM_MODE_CONNECTOR_HDMIB : return "HDMI-B" ;
175+ case DRM_MODE_CONNECTOR_TV : return "TV" ;
176+ case DRM_MODE_CONNECTOR_eDP : return "eDP" ;
177+ case DRM_MODE_CONNECTOR_VIRTUAL : return "Virtual" ;
178+ case DRM_MODE_CONNECTOR_DSI : return "DSI" ;
179+ case DRM_MODE_CONNECTOR_DPI : return "DPI" ;
180+ case DRM_MODE_CONNECTOR_WRITEBACK : return "Writeback" ;
181+ #ifdef DRM_MODE_CONNECTOR_SPI
182+ case DRM_MODE_CONNECTOR_SPI : return "SPI" ;
183+ #endif
184+ #ifdef DRM_MODE_CONNECTOR_USB
185+ case DRM_MODE_CONNECTOR_USB : return "USB" ;
186+ #endif
187+ default : return NULL ;
188+ }
189+ }
190+
155191static const enum connector_type connector_types [] = {
156192 [DRM_MODE_CONNECTOR_Unknown ] = CONNECTOR_TYPE_OTHER ,
157193 [DRM_MODE_CONNECTOR_VGA ] = CONNECTOR_TYPE_VGA ,
@@ -181,8 +217,9 @@ static const enum connector_type connector_types[] = {
181217};
182218
183219bool connector_init (const struct drm_connector * connector , int64_t fl_display_id , struct connector * out ) {
184- const char * type_name = drmModeGetConnectorTypeName (connector -> type );
185-
220+ // We unfortunately can't use drmModeGetConnectorTypeName yet
221+ // because it's too new.
222+ const char * type_name = get_connector_type_name (connector -> type );
186223 if (type_name == NULL ) {
187224 // if we don't know this type, skip it.
188225 return false;
0 commit comments