summaryrefslogtreecommitdiff
path: root/src/compositor-wayland.c
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2014-10-23 12:24:18 -0500
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-11-19 16:46:56 +0200
commit64a3df086e0f376a8ae483e58275037e185ef313 (patch)
tree9443464b6cca51e1b104a875b1a3e7d25458166f /src/compositor-wayland.c
parenteaea47051053d6f991e900ab6b51cdc99095a7d3 (diff)
downloadweston-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.c25
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,