Skip to content

Commit 98d8759

Browse files
committed
don't use drmModeGetConnectorTypeName
too new
1 parent 12de576 commit 98d8759

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

src/compositor_ng.c

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
155191
static 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

183219
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);
186223
if (type_name == NULL) {
187224
// if we don't know this type, skip it.
188225
return false;

0 commit comments

Comments
 (0)