From 09e84cee8b97e8b431e537fbbacde1313d5896ac Mon Sep 17 00:00:00 2001 From: Damien Lespiau Date: Sun, 2 Feb 2014 17:48:24 +0000 Subject: [PATCH] lib: Introduce symbolic names for display planes It'd be nice to have symbolic names for planes instead of using an index in igt_output_get_plane(). We also namespace the enum to not conflict with anyone. Signed-off-by: Damien Lespiau --- lib/igt_display.h | 18 +++++++++--------- lib/igt_kms.c | 18 ++++++++++++++++-- lib/igt_kms.h | 2 +- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/lib/igt_display.h b/lib/igt_display.h index 84638b2..77a75a7 100644 --- a/lib/igt_display.h +++ b/lib/igt_display.h @@ -33,16 +33,16 @@ enum pipe { }; #define pipe_name(p) ((p) + 'A') -/* FIXME: i915_drm.h on Android pollutes the general namespace. */ -#undef PLANE_A -#undef PLANE_B - -enum plane { - PLANE_A = 0, - PLANE_B, - PLANE_C, +/* We namespace this enum to not conflict with the Android i915_drm.h */ +enum igt_plane { + IGT_PLANE_1 = 0, + IGT_PLANE_PRIMARY = IGT_PLANE_1, + IGT_PLANE_2, + IGT_PLANE_3, + IGT_PLANE_CURSOR, }; -#define plane_name(p) ((p) + 'A') + +const char *plane_name(enum igt_plane p); #define sprite_name(p, s) ((p) * dev_priv->num_plane + (s) + 'A') diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 4f3ea32..ab02c28 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -765,6 +765,20 @@ void kmstest_free_connector_config(struct kmstest_connector_config *config) drmModeFreeConnector(config->connector); } +const char *plane_name(enum igt_plane p) +{ + static const char *names[] = { + [IGT_PLANE_1] = "plane1", + [IGT_PLANE_2] = "plane2", + [IGT_PLANE_3] = "plane3", + [IGT_PLANE_CURSOR] = "cursor", + }; + + igt_assert(p < ARRAY_SIZE(names) && names[p]); + + return names[p]; +} + /* * A small modeset API */ @@ -1107,12 +1121,12 @@ static igt_plane_t *igt_pipe_get_plane(igt_pipe_t *pipe, int index) return &pipe->planes[index]; } -igt_plane_t *igt_ouput_get_plane(igt_output_t *output, int index) +igt_plane_t *igt_ouput_get_plane(igt_output_t *output, enum igt_plane plane) { igt_pipe_t *pipe; pipe = igt_output_get_driving_pipe(output); - return igt_pipe_get_plane(pipe, 0); + return igt_pipe_get_plane(pipe, plane); } void igt_plane_set_fb(igt_plane_t *plane, struct kmstest_fb *fb) diff --git a/lib/igt_kms.h b/lib/igt_kms.h index 901fc1a..80cdfb6 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -154,7 +154,7 @@ void igt_display_set_verbose(igt_display_t *display, bool verbose); const char *igt_output_name(igt_output_t *output); drmModeModeInfo *igt_output_get_mode(igt_output_t *output); void igt_output_set_pipe(igt_output_t *output, enum pipe pipe); -igt_plane_t *igt_ouput_get_plane(igt_output_t *output, int index); +igt_plane_t *igt_ouput_get_plane(igt_output_t *output, enum igt_plane plane); void igt_plane_set_fb(igt_plane_t *plane, struct kmstest_fb *fb); -- 2.7.4