@@ -152,6 +152,42 @@ struct display_setup {
152
152
struct connector connectors [];
153
153
};
154
154
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
+
155
191
static const enum connector_type connector_types [] = {
156
192
[DRM_MODE_CONNECTOR_Unknown ] = CONNECTOR_TYPE_OTHER ,
157
193
[DRM_MODE_CONNECTOR_VGA ] = CONNECTOR_TYPE_VGA ,
@@ -181,8 +217,9 @@ static const enum connector_type connector_types[] = {
181
217
};
182
218
183
219
bool 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 );
186
223
if (type_name == NULL ) {
187
224
// if we don't know this type, skip it.
188
225
return false;
0 commit comments