lib: move connector_type_str and co to drmtest

These are used by multiple test cases, so make them shared.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
This commit is contained in:
Imre Deak 2013-05-30 22:53:53 +03:00
parent 18bf2e6b34
commit 3a2aed1f30
4 changed files with 65 additions and 111 deletions

View File

@ -53,56 +53,6 @@
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
struct type_name {
int type;
const char *name;
};
#define type_name_fn(res) \
static const char * res##_str(int type) { \
unsigned int i; \
for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \
if (res##_names[i].type == type) \
return res##_names[i].name; \
} \
return "(invalid)"; \
}
struct type_name encoder_type_names[] = {
{ DRM_MODE_ENCODER_NONE, "none" },
{ DRM_MODE_ENCODER_DAC, "DAC" },
{ DRM_MODE_ENCODER_TMDS, "TMDS" },
{ DRM_MODE_ENCODER_LVDS, "LVDS" },
{ DRM_MODE_ENCODER_TVDAC, "TVDAC" },
};
type_name_fn(encoder_type)
struct type_name connector_status_names[] = {
{ DRM_MODE_CONNECTED, "connected" },
{ DRM_MODE_DISCONNECTED, "disconnected" },
{ DRM_MODE_UNKNOWNCONNECTION, "unknown" },
};
type_name_fn(connector_status)
struct type_name connector_type_names[] = {
{ DRM_MODE_CONNECTOR_Unknown, "unknown" },
{ DRM_MODE_CONNECTOR_VGA, "VGA" },
{ DRM_MODE_CONNECTOR_DVII, "DVI-I" },
{ DRM_MODE_CONNECTOR_DVID, "DVI-D" },
{ DRM_MODE_CONNECTOR_DVIA, "DVI-A" },
{ DRM_MODE_CONNECTOR_Composite, "composite" },
{ DRM_MODE_CONNECTOR_SVIDEO, "s-video" },
{ DRM_MODE_CONNECTOR_LVDS, "LVDS" },
{ DRM_MODE_CONNECTOR_Component, "component" },
{ DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN" },
{ DRM_MODE_CONNECTOR_DisplayPort, "DisplayPort" },
{ DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" },
{ DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
{ DRM_MODE_CONNECTOR_TV, "TV" },
{ DRM_MODE_CONNECTOR_eDP, "Embedded DisplayPort" },
};
type_name_fn(connector_type)
/* /*
* Mode setting with the kernel interfaces is a bit of a chore. * Mode setting with the kernel interfaces is a bit of a chore.
* First you have to find the connector in question and make sure the * First you have to find the connector in question and make sure the
@ -157,8 +107,8 @@ static void dump_connectors(int gfx_fd, drmModeRes *resources)
printf("%d\t%d\t%s\t%s\t%dx%d\t\t%d\n", printf("%d\t%d\t%s\t%s\t%dx%d\t\t%d\n",
connector->connector_id, connector->connector_id,
connector->encoder_id, connector->encoder_id,
connector_status_str(connector->connection), kmstest_connector_status_str(connector->connection),
connector_type_str(connector->connector_type), kmstest_connector_type_str(connector->connector_type),
connector->mmWidth, connector->mmHeight, connector->mmWidth, connector->mmHeight,
connector->count_modes); connector->count_modes);
@ -744,14 +694,14 @@ static void ricochet(int tiled, int sprite_w, int sprite_h,
curr_connector.mode.flags, curr_connector.mode.flags,
curr_connector.encoder->encoder_id, curr_connector.encoder->encoder_id,
curr_connector.encoder->encoder_type, curr_connector.encoder->encoder_type,
encoder_type_str(curr_connector.encoder->encoder_type), kmstest_encoder_type_str(curr_connector.encoder->encoder_type),
curr_connector.encoder->crtc_id, curr_connector.encoder->crtc_id,
curr_connector.encoder->possible_crtcs, curr_connector.encoder->possible_crtcs,
curr_connector.encoder->possible_clones, curr_connector.encoder->possible_clones,
curr_connector.connector->connector_id, curr_connector.connector->connector_id,
curr_connector.connector->encoder_id, curr_connector.connector->encoder_id,
curr_connector.connector->connector_type, curr_connector.connector->connector_type,
connector_type_str(curr_connector.connector->connector_type), kmstest_connector_type_str(curr_connector.connector->connector_type),
curr_connector.connector->connector_type_id); curr_connector.connector->connector_type_id);
printf("Sprite surface dimensions = %dx%d\n" printf("Sprite surface dimensions = %dx%d\n"

View File

@ -1023,6 +1023,60 @@ void kmstest_remove_fb(int fd, int fb_id)
do_or_die(drmModeRmFB(fd, fb_id)); do_or_die(drmModeRmFB(fd, fb_id));
} }
struct type_name {
int type;
const char *name;
};
#define type_name_fn(res) \
const char * kmstest_##res##_str(int type) { \
unsigned int i; \
for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \
if (res##_names[i].type == type) \
return res##_names[i].name; \
} \
return "(invalid)"; \
}
struct type_name encoder_type_names[] = {
{ DRM_MODE_ENCODER_NONE, "none" },
{ DRM_MODE_ENCODER_DAC, "DAC" },
{ DRM_MODE_ENCODER_TMDS, "TMDS" },
{ DRM_MODE_ENCODER_LVDS, "LVDS" },
{ DRM_MODE_ENCODER_TVDAC, "TVDAC" },
};
type_name_fn(encoder_type)
struct type_name connector_status_names[] = {
{ DRM_MODE_CONNECTED, "connected" },
{ DRM_MODE_DISCONNECTED, "disconnected" },
{ DRM_MODE_UNKNOWNCONNECTION, "unknown" },
};
type_name_fn(connector_status)
struct type_name connector_type_names[] = {
{ DRM_MODE_CONNECTOR_Unknown, "unknown" },
{ DRM_MODE_CONNECTOR_VGA, "VGA" },
{ DRM_MODE_CONNECTOR_DVII, "DVI-I" },
{ DRM_MODE_CONNECTOR_DVID, "DVI-D" },
{ DRM_MODE_CONNECTOR_DVIA, "DVI-A" },
{ DRM_MODE_CONNECTOR_Composite, "composite" },
{ DRM_MODE_CONNECTOR_SVIDEO, "s-video" },
{ DRM_MODE_CONNECTOR_LVDS, "LVDS" },
{ DRM_MODE_CONNECTOR_Component, "component" },
{ DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN" },
{ DRM_MODE_CONNECTOR_DisplayPort, "DisplayPort" },
{ DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" },
{ DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
{ DRM_MODE_CONNECTOR_TV, "TV" },
{ DRM_MODE_CONNECTOR_eDP, "Embedded DisplayPort" },
};
type_name_fn(connector_type)
void kmstest_dump_mode(drmModeModeInfo *mode) void kmstest_dump_mode(drmModeModeInfo *mode)
{ {
printf(" %s %d %d %d %d %d %d %d %d %d 0x%x 0x%x %d\n", printf(" %s %d %d %d %d %d %d %d %d %d 0x%x 0x%x %d\n",

View File

@ -119,6 +119,9 @@ unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
void kmstest_remove_fb(int fd, int fb_id); void kmstest_remove_fb(int fd, int fb_id);
void kmstest_dump_mode(drmModeModeInfo *mode); void kmstest_dump_mode(drmModeModeInfo *mode);
int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id); int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);
const char *kmstest_encoder_type_str(int type);
const char *kmstest_connector_status_str(int type);
const char *kmstest_connector_type_str(int type);
inline static void _do_or_die(const char *function, int line, int ret) inline static void _do_or_die(const char *function, int line, int ret)
{ {

View File

@ -88,59 +88,6 @@ uint32_t *fb_ptr;
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
struct type_name {
int type;
const char *name;
};
#define type_name_fn(res) \
static const char * res##_str(int type) { \
unsigned int i; \
for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \
if (res##_names[i].type == type) \
return res##_names[i].name; \
} \
return "(invalid)"; \
}
struct type_name encoder_type_names[] = {
{ DRM_MODE_ENCODER_NONE, "none" },
{ DRM_MODE_ENCODER_DAC, "DAC" },
{ DRM_MODE_ENCODER_TMDS, "TMDS" },
{ DRM_MODE_ENCODER_LVDS, "LVDS" },
{ DRM_MODE_ENCODER_TVDAC, "TVDAC" },
};
type_name_fn(encoder_type)
struct type_name connector_status_names[] = {
{ DRM_MODE_CONNECTED, "connected" },
{ DRM_MODE_DISCONNECTED, "disconnected" },
{ DRM_MODE_UNKNOWNCONNECTION, "unknown" },
};
type_name_fn(connector_status)
struct type_name connector_type_names[] = {
{ DRM_MODE_CONNECTOR_Unknown, "unknown" },
{ DRM_MODE_CONNECTOR_VGA, "VGA" },
{ DRM_MODE_CONNECTOR_DVII, "DVI-I" },
{ DRM_MODE_CONNECTOR_DVID, "DVI-D" },
{ DRM_MODE_CONNECTOR_DVIA, "DVI-A" },
{ DRM_MODE_CONNECTOR_Composite, "composite" },
{ DRM_MODE_CONNECTOR_SVIDEO, "s-video" },
{ DRM_MODE_CONNECTOR_LVDS, "LVDS" },
{ DRM_MODE_CONNECTOR_Component, "component" },
{ DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN" },
{ DRM_MODE_CONNECTOR_DisplayPort, "DisplayPort" },
{ DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" },
{ DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
{ DRM_MODE_CONNECTOR_TV, "TV" },
{ DRM_MODE_CONNECTOR_eDP, "Embedded DisplayPort" },
};
type_name_fn(connector_type)
/* /*
* Mode setting with the kernel interfaces is a bit of a chore. * Mode setting with the kernel interfaces is a bit of a chore.
* First you have to find the connector in question and make sure the * First you have to find the connector in question and make sure the
@ -185,8 +132,8 @@ static void dump_connectors_fd(int drmfd)
printf("%d\t%d\t%s\t%s\t%dx%d\t\t%d\n", printf("%d\t%d\t%s\t%s\t%dx%d\t\t%d\n",
connector->connector_id, connector->connector_id,
connector->encoder_id, connector->encoder_id,
connector_status_str(connector->connection), kmstest_connector_status_str(connector->connection),
connector_type_str(connector->connector_type), kmstest_connector_type_str(connector->connector_type),
connector->mmWidth, connector->mmHeight, connector->mmWidth, connector->mmHeight,
connector->count_modes); connector->count_modes);
@ -390,7 +337,7 @@ paint_output_info(cairo_t *cr, int l_width, int l_height, void *priv)
/* Get text extents for each string */ /* Get text extents for each string */
snprintf(name_buf, sizeof name_buf, "%s", snprintf(name_buf, sizeof name_buf, "%s",
connector_type_str(c->connector->connector_type)); kmstest_connector_type_str(c->connector->connector_type));
cairo_set_font_size(cr, 48); cairo_set_font_size(cr, 48);
cairo_select_font_face(cr, "Helvetica", cairo_select_font_face(cr, "Helvetica",
CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_SLANT_NORMAL,
@ -399,7 +346,7 @@ paint_output_info(cairo_t *cr, int l_width, int l_height, void *priv)
snprintf(mode_buf, sizeof mode_buf, "%s @ %dHz on %s encoder", snprintf(mode_buf, sizeof mode_buf, "%s @ %dHz on %s encoder",
c->mode.name, c->mode.vrefresh, c->mode.name, c->mode.vrefresh,
encoder_type_str(c->encoder->encoder_type)); kmstest_encoder_type_str(c->encoder->encoder_type));
cairo_set_font_size(cr, 36); cairo_set_font_size(cr, 36);
cairo_text_extents(cr, mode_buf, &mode_extents); cairo_text_extents(cr, mode_buf, &mode_extents);