modeprint: use libutil to lookup strings

Use libutil to lookup connector type names and state. This also
makes sure that the latest connector type addition "DPI" gets
printed correctly.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
main
Stefan Agner 2018-09-05 11:00:19 -07:00 committed by Emil Velikov
parent 4ec31fc31a
commit eaed5c8825
3 changed files with 9 additions and 37 deletions

View File

@ -16,4 +16,5 @@ endif
modeprint_SOURCES = \ modeprint_SOURCES = \
modeprint.c modeprint.c
modeprint_LDADD = \ modeprint_LDADD = \
$(top_builddir)/tests/util/libutil.la \
$(top_builddir)/libdrm.la $(top_builddir)/libdrm.la

View File

@ -23,7 +23,7 @@ modeprint = executable(
files('modeprint.c'), files('modeprint.c'),
c_args : libdrm_c_args, c_args : libdrm_c_args,
include_directories : [inc_root, inc_tests, inc_drm], include_directories : [inc_root, inc_tests, inc_drm],
link_with : libdrm, link_with : [libdrm, libutil],
dependencies : dep_threads, dependencies : dep_threads,
install : with_install_tests, install : with_install_tests,
) )

View File

@ -42,6 +42,7 @@
#include "xf86drmMode.h" #include "xf86drmMode.h"
#include "util/common.h" #include "util/common.h"
#include "util/kms.h"
int current; int current;
int connectors; int connectors;
@ -54,20 +55,6 @@ int crtcs;
int fbs; int fbs;
char *module_name; char *module_name;
static const char* getConnectionText(drmModeConnection conn)
{
switch (conn) {
case DRM_MODE_CONNECTED:
return "connected";
case DRM_MODE_DISCONNECTED:
return "disconnected";
case DRM_MODE_UNKNOWNCONNECTION:
default:
return "unknown";
}
}
static int printMode(struct drm_mode_modeinfo *mode) static int printMode(struct drm_mode_modeinfo *mode)
{ {
if (full_modes) { if (full_modes) {
@ -141,40 +128,24 @@ static int printProperty(int fd, drmModeResPtr res, drmModePropertyPtr props, ui
return 0; return 0;
} }
static const char * const output_names[] = { "None",
"VGA",
"DVI-I",
"DVI-D",
"DVI-A",
"Composite",
"SVIDEO",
"LVDS",
"Component",
"DIN",
"DP",
"HDMI-A",
"HDMI-B",
"TV",
"eDP",
"Virtual",
"DSI",
};
static int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uint32_t id) static int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uint32_t id)
{ {
int i = 0; int i = 0;
struct drm_mode_modeinfo *mode = NULL; struct drm_mode_modeinfo *mode = NULL;
drmModePropertyPtr props; drmModePropertyPtr props;
const char *connector_type_name = NULL;
if (connector->connector_type < ARRAY_SIZE(output_names)) connector_type_name = util_lookup_connector_type_name(connector->connector_type);
printf("Connector: %s-%d\n", output_names[connector->connector_type],
if (connector_type_name)
printf("Connector: %s-%d\n", connector_type_name,
connector->connector_type_id); connector->connector_type_id);
else else
printf("Connector: %d-%d\n", connector->connector_type, printf("Connector: %d-%d\n", connector->connector_type,
connector->connector_type_id); connector->connector_type_id);
printf("\tid : %i\n", id); printf("\tid : %i\n", id);
printf("\tencoder id : %i\n", connector->encoder_id); printf("\tencoder id : %i\n", connector->encoder_id);
printf("\tconn : %s\n", getConnectionText(connector->connection)); printf("\tconn : %s\n", util_lookup_connector_status_name(connector->connection));
printf("\tsize : %ix%i (mm)\n", connector->mmWidth, connector->mmHeight); printf("\tsize : %ix%i (mm)\n", connector->mmWidth, connector->mmHeight);
printf("\tcount_modes : %i\n", connector->count_modes); printf("\tcount_modes : %i\n", connector->count_modes);
printf("\tcount_props : %i\n", connector->count_props); printf("\tcount_props : %i\n", connector->count_props);