diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2014-10-23 12:24:18 -0500 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-11-19 16:46:56 +0200 |
commit | 64a3df086e0f376a8ae483e58275037e185ef313 (patch) | |
tree | 9443464b6cca51e1b104a875b1a3e7d25458166f /src/compositor-wayland.c | |
parent | eaea47051053d6f991e900ab6b51cdc99095a7d3 (diff) | |
download | weston-64a3df086e0f376a8ae483e58275037e185ef313.tar.gz |
backends: refactor transform string parsing
Most of the backends do their own parsing of transform strings, so let's
put that all in the same place (compositor.c/h)
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'src/compositor-wayland.c')
-rw-r--r-- | src/compositor-wayland.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c index bf71a768..65bce39b 100644 --- a/src/compositor-wayland.c +++ b/src/compositor-wayland.c @@ -1077,18 +1077,7 @@ wayland_output_create_for_config(struct wayland_compositor *c, char *mode, *t, *name, *str; int width, height, scale; uint32_t transform; - unsigned int i, slen; - - static const struct { const char *name; uint32_t token; } transform_names[] = { - { "normal", WL_OUTPUT_TRANSFORM_NORMAL }, - { "90", WL_OUTPUT_TRANSFORM_90 }, - { "180", WL_OUTPUT_TRANSFORM_180 }, - { "270", WL_OUTPUT_TRANSFORM_270 }, - { "flipped", WL_OUTPUT_TRANSFORM_FLIPPED }, - { "flipped-90", WL_OUTPUT_TRANSFORM_FLIPPED_90 }, - { "flipped-180", WL_OUTPUT_TRANSFORM_FLIPPED_180 }, - { "flipped-270", WL_OUTPUT_TRANSFORM_FLIPPED_270 }, - }; + unsigned int slen; weston_config_section_get_string(config_section, "name", &name, NULL); if (name) { @@ -1125,15 +1114,9 @@ wayland_output_create_for_config(struct wayland_compositor *c, weston_config_section_get_string(config_section, "transform", &t, "normal"); - transform = WL_OUTPUT_TRANSFORM_NORMAL; - for (i = 0; i < ARRAY_LENGTH(transform_names); i++) { - if (strcmp(transform_names[i].name, t) == 0) { - transform = transform_names[i].token; - break; - } - } - if (i >= ARRAY_LENGTH(transform_names)) - weston_log("Invalid transform \"%s\" for output %s\n", t, name); + if (weston_parse_transform(t, &transform) < 0) + weston_log("Invalid transform \"%s\" for output %s\n", + t, name); free(t); output = wayland_output_create(c, x, y, width, height, name, 0, |