diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:11:08 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:11:08 +0200 |
commit | cb612a12b952e349b96d427645aaeb55d15f509a (patch) | |
tree | f29298f41d2a7ea2a976616243aca64c2c2547ce /src/Orientation.c | |
parent | e7be93745e4a2ff3aa255227bef7b9d3b733aafa (diff) | |
parent | 143bfc9f801c84428074312d661f8e08803df83b (diff) |
Merge tag 'upstream/0.23.5'
Upstream version 0.23.5
Diffstat (limited to 'src/Orientation.c')
-rw-r--r-- | src/Orientation.c | 2061 |
1 files changed, 2061 insertions, 0 deletions
diff --git a/src/Orientation.c b/src/Orientation.c new file mode 100644 index 0000000..3e2da2a --- /dev/null +++ b/src/Orientation.c @@ -0,0 +1,2061 @@ +/* Orientation.c generated by valac 0.32.1, the Vala compiler + * generated from Orientation.vala, do not modify */ + +/* Copyright 2016 Software Freedom Conservancy Inc. + * + * This software is licensed under the GNU LGPL (version 2.1 or later). + * See the COPYING file in this distribution. + */ + +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gdk/gdk.h> + + +#define TYPE_ORIENTATION (orientation_get_type ()) + +#define TYPE_ROTATION (rotation_get_type ()) + +#define TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +#define TYPE_BOX (box_get_type ()) +typedef struct _Box Box; +#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); +#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } +#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } +#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); + +typedef enum { + ORIENTATION_MIN = 1, + ORIENTATION_TOP_LEFT = 1, + ORIENTATION_TOP_RIGHT = 2, + ORIENTATION_BOTTOM_RIGHT = 3, + ORIENTATION_BOTTOM_LEFT = 4, + ORIENTATION_LEFT_TOP = 5, + ORIENTATION_RIGHT_TOP = 6, + ORIENTATION_RIGHT_BOTTOM = 7, + ORIENTATION_LEFT_BOTTOM = 8, + ORIENTATION_MAX = 8 +} Orientation; + +typedef enum { + ROTATION_CLOCKWISE, + ROTATION_COUNTERCLOCKWISE, + ROTATION_MIRROR, + ROTATION_UPSIDE_DOWN +} Rotation; + +struct _Dimensions { + gint width; + gint height; +}; + +struct _Box { + gint left; + gint top; + gint right; + gint bottom; +}; + + + +GType orientation_get_type (void) G_GNUC_CONST; +gchar* orientation_to_string (Orientation self); +Orientation orientation_rotate_clockwise (Orientation self); +Orientation orientation_rotate_counterclockwise (Orientation self); +Orientation orientation_flip_top_to_bottom (Orientation self); +Orientation orientation_flip_left_to_right (Orientation self); +GType rotation_get_type (void) G_GNUC_CONST; +Orientation orientation_perform (Orientation self, Rotation rotation); +Rotation* orientation_to_rotations (Orientation self, int* result_length1); +GType dimensions_get_type (void) G_GNUC_CONST; +Dimensions* dimensions_dup (const Dimensions* self); +void dimensions_free (Dimensions* self); +void orientation_rotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result); +void dimensions_init (Dimensions *self, gint width, gint height); +void orientation_derotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result); +GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf); +void orientation_rotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result); +gboolean dimensions_has_area (Dimensions *self); +void orientation_derotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result); +GType box_get_type (void) G_GNUC_CONST; +Box* box_dup (const Box* self); +void box_free (Box* self); +void orientation_rotate_box (Orientation self, Dimensions* space, Box* box, Box* result); +void box_get_points (Box *self, GdkPoint* top_left, GdkPoint* bottom_right); +void box_from_points (GdkPoint* corner1, GdkPoint* corner2, Box* result); +void orientation_derotate_box (Orientation self, Dimensions* space, Box* box, Box* result); +GdkPixbuf* rotation_perform (Rotation self, GdkPixbuf* pixbuf); +Rotation rotation_opposite (Rotation self); + + +gchar* orientation_to_string (Orientation self) { + gchar* result = NULL; +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 104 "Orientation.c" + { + gchar* _tmp0_ = NULL; +#line 22 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = g_strdup ("top-left"); +#line 22 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp0_; +#line 22 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 113 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 117 "Orientation.c" + { + gchar* _tmp1_ = NULL; +#line 25 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = g_strdup ("top-right"); +#line 25 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp1_; +#line 25 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 126 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 130 "Orientation.c" + { + gchar* _tmp2_ = NULL; +#line 28 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = g_strdup ("bottom-right"); +#line 28 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp2_; +#line 28 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 139 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 143 "Orientation.c" + { + gchar* _tmp3_ = NULL; +#line 31 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = g_strdup ("bottom-left"); +#line 31 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp3_; +#line 31 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 152 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 156 "Orientation.c" + { + gchar* _tmp4_ = NULL; +#line 34 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = g_strdup ("left-top"); +#line 34 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp4_; +#line 34 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 165 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 169 "Orientation.c" + { + gchar* _tmp5_ = NULL; +#line 37 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = g_strdup ("right-top"); +#line 37 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp5_; +#line 37 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 178 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 182 "Orientation.c" + { + gchar* _tmp6_ = NULL; +#line 40 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = g_strdup ("right-bottom"); +#line 40 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp6_; +#line 40 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 191 "Orientation.c" + } +#line 20 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 195 "Orientation.c" + { + gchar* _tmp7_ = NULL; +#line 43 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = g_strdup ("left-bottom"); +#line 43 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp7_; +#line 43 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 204 "Orientation.c" + } + default: + { + gchar* _tmp8_ = NULL; +#line 46 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = g_strdup_printf ("unknown orientation %d", (gint) self); +#line 46 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp8_; +#line 46 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 215 "Orientation.c" + } + } +} + + +Orientation orientation_rotate_clockwise (Orientation self) { + Orientation result = 0; +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 227 "Orientation.c" + { +#line 53 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_TOP; +#line 53 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 233 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 237 "Orientation.c" + { +#line 56 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_BOTTOM; +#line 56 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 243 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 247 "Orientation.c" + { +#line 59 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_BOTTOM; +#line 59 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 253 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 257 "Orientation.c" + { +#line 62 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_TOP; +#line 62 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 263 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 267 "Orientation.c" + { +#line 65 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_RIGHT; +#line 65 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 273 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 277 "Orientation.c" + { +#line 68 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_RIGHT; +#line 68 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 283 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 287 "Orientation.c" + { +#line 71 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_LEFT; +#line 71 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 293 "Orientation.c" + } +#line 51 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 297 "Orientation.c" + { +#line 74 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_LEFT; +#line 74 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 303 "Orientation.c" + } + default: + { +#line 77 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:77: rotate_clockwise: %d", (gint) self); +#line 309 "Orientation.c" + } + } +} + + +Orientation orientation_rotate_counterclockwise (Orientation self) { + Orientation result = 0; +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 321 "Orientation.c" + { +#line 84 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_BOTTOM; +#line 84 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 327 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 331 "Orientation.c" + { +#line 87 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_TOP; +#line 87 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 337 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 341 "Orientation.c" + { +#line 90 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_TOP; +#line 90 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 347 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 351 "Orientation.c" + { +#line 93 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_BOTTOM; +#line 93 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 357 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 361 "Orientation.c" + { +#line 96 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_LEFT; +#line 96 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 367 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 371 "Orientation.c" + { +#line 99 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_LEFT; +#line 99 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 377 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 381 "Orientation.c" + { +#line 102 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_RIGHT; +#line 102 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 387 "Orientation.c" + } +#line 82 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 391 "Orientation.c" + { +#line 105 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_RIGHT; +#line 105 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 397 "Orientation.c" + } + default: + { +#line 108 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:108: rotate_counterclockwise: %d", (gint) self); +#line 403 "Orientation.c" + } + } +} + + +Orientation orientation_flip_top_to_bottom (Orientation self) { + Orientation result = 0; +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 415 "Orientation.c" + { +#line 115 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_LEFT; +#line 115 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 421 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 425 "Orientation.c" + { +#line 118 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_RIGHT; +#line 118 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 431 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 435 "Orientation.c" + { +#line 121 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_RIGHT; +#line 121 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 441 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 445 "Orientation.c" + { +#line 124 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_LEFT; +#line 124 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 451 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 455 "Orientation.c" + { +#line 127 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_BOTTOM; +#line 127 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 461 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 465 "Orientation.c" + { +#line 130 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_BOTTOM; +#line 130 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 471 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 475 "Orientation.c" + { +#line 133 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_TOP; +#line 133 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 481 "Orientation.c" + } +#line 113 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 485 "Orientation.c" + { +#line 136 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_TOP; +#line 136 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 491 "Orientation.c" + } + default: + { +#line 139 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:139: flip_top_to_bottom: %d", (gint) self); +#line 497 "Orientation.c" + } + } +} + + +Orientation orientation_flip_left_to_right (Orientation self) { + Orientation result = 0; +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 509 "Orientation.c" + { +#line 146 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_RIGHT; +#line 146 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 515 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 519 "Orientation.c" + { +#line 149 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_TOP_LEFT; +#line 149 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 525 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 529 "Orientation.c" + { +#line 152 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_LEFT; +#line 152 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 535 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 539 "Orientation.c" + { +#line 155 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_BOTTOM_RIGHT; +#line 155 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 545 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 549 "Orientation.c" + { +#line 158 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_TOP; +#line 158 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 555 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 559 "Orientation.c" + { +#line 161 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_TOP; +#line 161 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 565 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 569 "Orientation.c" + { +#line 164 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_LEFT_BOTTOM; +#line 164 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 575 "Orientation.c" + } +#line 144 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 579 "Orientation.c" + { +#line 167 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ORIENTATION_RIGHT_BOTTOM; +#line 167 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 585 "Orientation.c" + } + default: + { +#line 170 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:170: flip_left_to_right: %d", (gint) self); +#line 591 "Orientation.c" + } + } +} + + +Orientation orientation_perform (Orientation self, Rotation rotation) { + Orientation result = 0; + Rotation _tmp0_ = 0; +#line 175 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = rotation; +#line 175 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (_tmp0_) { +#line 175 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_CLOCKWISE: +#line 606 "Orientation.c" + { + Orientation _tmp1_ = 0; +#line 177 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = orientation_rotate_clockwise (self); +#line 177 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp1_; +#line 177 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 615 "Orientation.c" + } +#line 175 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_COUNTERCLOCKWISE: +#line 619 "Orientation.c" + { + Orientation _tmp2_ = 0; +#line 180 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = orientation_rotate_counterclockwise (self); +#line 180 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp2_; +#line 180 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 628 "Orientation.c" + } +#line 175 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_MIRROR: +#line 632 "Orientation.c" + { + Orientation _tmp3_ = 0; +#line 183 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = orientation_flip_left_to_right (self); +#line 183 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp3_; +#line 183 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 641 "Orientation.c" + } +#line 175 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_UPSIDE_DOWN: +#line 645 "Orientation.c" + { + Orientation _tmp4_ = 0; +#line 186 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = orientation_flip_top_to_bottom (self); +#line 186 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp4_; +#line 186 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 654 "Orientation.c" + } + default: + { + Rotation _tmp5_ = 0; +#line 189 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = rotation; +#line 189 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:189: perform: %d", (gint) _tmp5_); +#line 663 "Orientation.c" + } + } +} + + +Rotation* orientation_to_rotations (Orientation self, int* result_length1) { + Rotation* result = NULL; +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 675 "Orientation.c" + { + Rotation* _tmp0_ = NULL; + Rotation* _tmp1_ = NULL; + gint _tmp1__length1 = 0; +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = g_new0 (Rotation, 0); +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = _tmp0_; +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1__length1 = 0; +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp1__length1; +#line 690 "Orientation.c" + } +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp1_; +#line 197 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 696 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 700 "Orientation.c" + { + Rotation* _tmp2_ = NULL; + Rotation* _tmp3_ = NULL; + gint _tmp3__length1 = 0; +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = g_new0 (Rotation, 1); +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_[0] = ROTATION_MIRROR; +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = _tmp2_; +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3__length1 = 1; +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp3__length1; +#line 717 "Orientation.c" + } +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp3_; +#line 200 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 723 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 727 "Orientation.c" + { + Rotation* _tmp4_ = NULL; + Rotation* _tmp5_ = NULL; + gint _tmp5__length1 = 0; +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = g_new0 (Rotation, 1); +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_[0] = ROTATION_UPSIDE_DOWN; +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = _tmp4_; +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5__length1 = 1; +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp5__length1; +#line 744 "Orientation.c" + } +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp5_; +#line 203 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 750 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 754 "Orientation.c" + { + Rotation* _tmp6_ = NULL; + Rotation* _tmp7_ = NULL; + gint _tmp7__length1 = 0; +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = g_new0 (Rotation, 2); +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_[0] = ROTATION_MIRROR; +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_[1] = ROTATION_UPSIDE_DOWN; +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = _tmp6_; +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7__length1 = 2; +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp7__length1; +#line 773 "Orientation.c" + } +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp7_; +#line 207 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 779 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 783 "Orientation.c" + { + Rotation* _tmp8_ = NULL; + Rotation* _tmp9_ = NULL; + gint _tmp9__length1 = 0; +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = g_new0 (Rotation, 2); +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_[0] = ROTATION_COUNTERCLOCKWISE; +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_[1] = ROTATION_UPSIDE_DOWN; +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9_ = _tmp8_; +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9__length1 = 2; +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp9__length1; +#line 802 "Orientation.c" + } +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp9_; +#line 210 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 808 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 812 "Orientation.c" + { + Rotation* _tmp10_ = NULL; + Rotation* _tmp11_ = NULL; + gint _tmp11__length1 = 0; +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp10_ = g_new0 (Rotation, 1); +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp10_[0] = ROTATION_CLOCKWISE; +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp11_ = _tmp10_; +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp11__length1 = 1; +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp11__length1; +#line 829 "Orientation.c" + } +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp11_; +#line 213 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 835 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 839 "Orientation.c" + { + Rotation* _tmp12_ = NULL; + Rotation* _tmp13_ = NULL; + gint _tmp13__length1 = 0; +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_ = g_new0 (Rotation, 2); +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_[0] = ROTATION_CLOCKWISE; +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_[1] = ROTATION_UPSIDE_DOWN; +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp13_ = _tmp12_; +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp13__length1 = 2; +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp13__length1; +#line 858 "Orientation.c" + } +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp13_; +#line 216 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 864 "Orientation.c" + } +#line 194 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 868 "Orientation.c" + { + Rotation* _tmp14_ = NULL; + Rotation* _tmp15_ = NULL; + gint _tmp15__length1 = 0; +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp14_ = g_new0 (Rotation, 1); +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp14_[0] = ROTATION_COUNTERCLOCKWISE; +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp15_ = _tmp14_; +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp15__length1 = 1; +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + if (result_length1) { +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + *result_length1 = _tmp15__length1; +#line 885 "Orientation.c" + } +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp15_; +#line 219 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 891 "Orientation.c" + } + default: + { +#line 222 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:222: to_rotations: %d", (gint) self); +#line 897 "Orientation.c" + } + } +} + + +void orientation_rotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result) { +#line 226 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (dim != NULL); +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 916 "Orientation.c" + { + Dimensions _tmp0_ = {0}; +#line 233 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = *dim; +#line 233 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = _tmp0_; +#line 233 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 925 "Orientation.c" + } +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 227 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 935 "Orientation.c" + { + Dimensions _tmp1_ = {0}; + gint _tmp2_ = 0; + Dimensions _tmp3_ = {0}; + gint _tmp4_ = 0; + Dimensions _tmp5_ = {0}; +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = *dim; +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = _tmp1_.height; +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = *dim; +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = _tmp3_.width; +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + dimensions_init (&_tmp5_, _tmp2_, _tmp4_); +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = _tmp5_; +#line 240 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 956 "Orientation.c" + } + default: + { +#line 243 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:243: rotate_dimensions: %d", (gint) self); +#line 962 "Orientation.c" + } + } +} + + +void orientation_derotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result) { + Dimensions _tmp0_ = {0}; + Dimensions _tmp1_ = {0}; +#line 247 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (dim != NULL); +#line 248 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = *dim; +#line 248 "/home/jens/Source/shotwell/src/Orientation.vala" + orientation_rotate_dimensions (self, &_tmp0_, &_tmp1_); +#line 248 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = _tmp1_; +#line 248 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 981 "Orientation.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 256 "/home/jens/Source/shotwell/src/Orientation.vala" + return self ? g_object_ref (self) : NULL; +#line 988 "Orientation.c" +} + + +GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf) { + GdkPixbuf* result = NULL; + GdkPixbuf* rotated = NULL; +#line 251 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 1001 "Orientation.c" + { + GdkPixbuf* _tmp0_ = NULL; + GdkPixbuf* _tmp1_ = NULL; +#line 256 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = pixbuf; +#line 256 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 256 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 256 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp1_; +#line 257 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1015 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 1019 "Orientation.c" + { + GdkPixbuf* _tmp2_ = NULL; + GdkPixbuf* _tmp3_ = NULL; +#line 261 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = pixbuf; +#line 261 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = gdk_pixbuf_flip (_tmp2_, TRUE); +#line 261 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 261 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp3_; +#line 262 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1033 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 1037 "Orientation.c" + { + GdkPixbuf* _tmp4_ = NULL; + GdkPixbuf* _tmp5_ = NULL; +#line 265 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = pixbuf; +#line 265 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = gdk_pixbuf_rotate_simple (_tmp4_, GDK_PIXBUF_ROTATE_UPSIDEDOWN); +#line 265 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 265 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp5_; +#line 266 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1051 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 1055 "Orientation.c" + { + GdkPixbuf* _tmp6_ = NULL; + GdkPixbuf* _tmp7_ = NULL; +#line 270 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = pixbuf; +#line 270 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = gdk_pixbuf_flip (_tmp6_, FALSE); +#line 270 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 270 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp7_; +#line 271 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1069 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 1073 "Orientation.c" + { + GdkPixbuf* _tmp8_ = NULL; + GdkPixbuf* _tmp9_ = NULL; + GdkPixbuf* _tmp10_ = NULL; + GdkPixbuf* _tmp11_ = NULL; +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = pixbuf; +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9_ = gdk_pixbuf_rotate_simple (_tmp8_, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE); +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp10_ = _tmp9_; +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp11_ = gdk_pixbuf_flip (_tmp10_, FALSE); +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp11_; +#line 274 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (_tmp10_); +#line 275 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1095 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 1099 "Orientation.c" + { + GdkPixbuf* _tmp12_ = NULL; + GdkPixbuf* _tmp13_ = NULL; +#line 278 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_ = pixbuf; +#line 278 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp13_ = gdk_pixbuf_rotate_simple (_tmp12_, GDK_PIXBUF_ROTATE_CLOCKWISE); +#line 278 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 278 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp13_; +#line 279 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1113 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 1117 "Orientation.c" + { + GdkPixbuf* _tmp14_ = NULL; + GdkPixbuf* _tmp15_ = NULL; + GdkPixbuf* _tmp16_ = NULL; + GdkPixbuf* _tmp17_ = NULL; +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp14_ = pixbuf; +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp15_ = gdk_pixbuf_rotate_simple (_tmp14_, GDK_PIXBUF_ROTATE_CLOCKWISE); +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp16_ = _tmp15_; +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp17_ = gdk_pixbuf_flip (_tmp16_, FALSE); +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp17_; +#line 282 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (_tmp16_); +#line 283 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1139 "Orientation.c" + } +#line 253 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 1143 "Orientation.c" + { + GdkPixbuf* _tmp18_ = NULL; + GdkPixbuf* _tmp19_ = NULL; +#line 286 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp18_ = pixbuf; +#line 286 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp19_ = gdk_pixbuf_rotate_simple (_tmp18_, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE); +#line 286 "/home/jens/Source/shotwell/src/Orientation.vala" + _g_object_unref0 (rotated); +#line 286 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp19_; +#line 287 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1157 "Orientation.c" + } + default: + { +#line 290 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:290: rotate_pixbuf: %d", (gint) self); +#line 1163 "Orientation.c" + } + } +#line 293 "/home/jens/Source/shotwell/src/Orientation.vala" + result = rotated; +#line 293 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 1170 "Orientation.c" +} + + +void orientation_rotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result) { + gboolean _tmp0_ = FALSE; + GdkPoint _tmp1_ = {0}; + gint _tmp2_ = 0; + GdkPoint _tmp3_ = {0}; + gint _tmp4_ = 0; + Dimensions _tmp5_ = {0}; + gint _tmp6_ = 0; + GdkPoint _tmp7_ = {0}; + gint _tmp8_ = 0; + GdkPoint _tmp9_ = {0}; + gint _tmp10_ = 0; + Dimensions _tmp11_ = {0}; + gint _tmp12_ = 0; + GdkPoint rotated = {0}; +#line 297 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (space != NULL); +#line 297 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (point != NULL); +#line 298 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = dimensions_has_area (space); +#line 298 "/home/jens/Source/shotwell/src/Orientation.vala" + _vala_assert (_tmp0_, "space.has_area()"); +#line 299 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = *point; +#line 299 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = _tmp1_.x; +#line 299 "/home/jens/Source/shotwell/src/Orientation.vala" + _vala_assert (_tmp2_ >= 0, "point.x >= 0"); +#line 300 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = *point; +#line 300 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = _tmp3_.x; +#line 300 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = *space; +#line 300 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = _tmp5_.width; +#line 300 "/home/jens/Source/shotwell/src/Orientation.vala" + _vala_assert (_tmp4_ < _tmp6_, "point.x < space.width"); +#line 301 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = *point; +#line 301 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = _tmp7_.y; +#line 301 "/home/jens/Source/shotwell/src/Orientation.vala" + _vala_assert (_tmp8_ >= 0, "point.y >= 0"); +#line 302 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9_ = *point; +#line 302 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp10_ = _tmp9_.y; +#line 302 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp11_ = *space; +#line 302 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_ = _tmp11_.height; +#line 302 "/home/jens/Source/shotwell/src/Orientation.vala" + _vala_assert (_tmp10_ < _tmp12_, "point.y < space.height"); +#line 304 "/home/jens/Source/shotwell/src/Orientation.vala" + memset (&rotated, 0, sizeof (GdkPoint)); +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 1235 "Orientation.c" + { + GdkPoint _tmp13_ = {0}; +#line 309 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp13_ = *point; +#line 309 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated = _tmp13_; +#line 310 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1244 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 1248 "Orientation.c" + { + Dimensions _tmp14_ = {0}; + gint _tmp15_ = 0; + GdkPoint _tmp16_ = {0}; + gint _tmp17_ = 0; + GdkPoint _tmp18_ = {0}; + gint _tmp19_ = 0; +#line 314 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp14_ = *space; +#line 314 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp15_ = _tmp14_.width; +#line 314 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp16_ = *point; +#line 314 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp17_ = _tmp16_.x; +#line 314 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = (_tmp15_ - _tmp17_) - 1; +#line 315 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp18_ = *point; +#line 315 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp19_ = _tmp18_.y; +#line 315 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = _tmp19_; +#line 316 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1274 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 1278 "Orientation.c" + { + Dimensions _tmp20_ = {0}; + gint _tmp21_ = 0; + GdkPoint _tmp22_ = {0}; + gint _tmp23_ = 0; + Dimensions _tmp24_ = {0}; + gint _tmp25_ = 0; + GdkPoint _tmp26_ = {0}; + gint _tmp27_ = 0; +#line 320 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp20_ = *space; +#line 320 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp21_ = _tmp20_.width; +#line 320 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp22_ = *point; +#line 320 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp23_ = _tmp22_.x; +#line 320 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = (_tmp21_ - _tmp23_) - 1; +#line 321 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp24_ = *space; +#line 321 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp25_ = _tmp24_.height; +#line 321 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp26_ = *point; +#line 321 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp27_ = _tmp26_.y; +#line 321 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = (_tmp25_ - _tmp27_) - 1; +#line 322 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1310 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 1314 "Orientation.c" + { + GdkPoint _tmp28_ = {0}; + gint _tmp29_ = 0; + Dimensions _tmp30_ = {0}; + gint _tmp31_ = 0; + GdkPoint _tmp32_ = {0}; + gint _tmp33_ = 0; +#line 326 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp28_ = *point; +#line 326 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp29_ = _tmp28_.x; +#line 326 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = _tmp29_; +#line 327 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp30_ = *space; +#line 327 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp31_ = _tmp30_.height; +#line 327 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp32_ = *point; +#line 327 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp33_ = _tmp32_.y; +#line 327 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = (_tmp31_ - _tmp33_) - 1; +#line 328 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1340 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 1344 "Orientation.c" + { + GdkPoint _tmp34_ = {0}; + gint _tmp35_ = 0; + GdkPoint _tmp36_ = {0}; + gint _tmp37_ = 0; +#line 332 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp34_ = *point; +#line 332 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp35_ = _tmp34_.y; +#line 332 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = _tmp35_; +#line 333 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp36_ = *point; +#line 333 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp37_ = _tmp36_.x; +#line 333 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = _tmp37_; +#line 334 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1364 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 1368 "Orientation.c" + { + Dimensions _tmp38_ = {0}; + gint _tmp39_ = 0; + GdkPoint _tmp40_ = {0}; + gint _tmp41_ = 0; + GdkPoint _tmp42_ = {0}; + gint _tmp43_ = 0; +#line 338 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp38_ = *space; +#line 338 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp39_ = _tmp38_.height; +#line 338 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp40_ = *point; +#line 338 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp41_ = _tmp40_.y; +#line 338 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = (_tmp39_ - _tmp41_) - 1; +#line 339 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp42_ = *point; +#line 339 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp43_ = _tmp42_.x; +#line 339 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = _tmp43_; +#line 340 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1394 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 1398 "Orientation.c" + { + Dimensions _tmp44_ = {0}; + gint _tmp45_ = 0; + GdkPoint _tmp46_ = {0}; + gint _tmp47_ = 0; + Dimensions _tmp48_ = {0}; + gint _tmp49_ = 0; + GdkPoint _tmp50_ = {0}; + gint _tmp51_ = 0; +#line 344 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp44_ = *space; +#line 344 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp45_ = _tmp44_.height; +#line 344 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp46_ = *point; +#line 344 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp47_ = _tmp46_.y; +#line 344 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = (_tmp45_ - _tmp47_) - 1; +#line 345 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp48_ = *space; +#line 345 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp49_ = _tmp48_.width; +#line 345 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp50_ = *point; +#line 345 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp51_ = _tmp50_.x; +#line 345 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = (_tmp49_ - _tmp51_) - 1; +#line 346 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1430 "Orientation.c" + } +#line 306 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 1434 "Orientation.c" + { + GdkPoint _tmp52_ = {0}; + gint _tmp53_ = 0; + Dimensions _tmp54_ = {0}; + gint _tmp55_ = 0; + GdkPoint _tmp56_ = {0}; + gint _tmp57_ = 0; +#line 350 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp52_ = *point; +#line 350 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp53_ = _tmp52_.y; +#line 350 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.x = _tmp53_; +#line 351 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp54_ = *space; +#line 351 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp55_ = _tmp54_.width; +#line 351 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp56_ = *point; +#line 351 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp57_ = _tmp56_.x; +#line 351 "/home/jens/Source/shotwell/src/Orientation.vala" + rotated.y = (_tmp55_ - _tmp57_) - 1; +#line 352 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1460 "Orientation.c" + } + default: + { +#line 355 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:355: rotate_point: %d", (gint) self); +#line 1466 "Orientation.c" + } + } +#line 358 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = rotated; +#line 358 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 1473 "Orientation.c" +} + + +void orientation_derotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result) { + gboolean _tmp0_ = FALSE; + GdkPoint derotated = {0}; +#line 362 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (space != NULL); +#line 362 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (point != NULL); +#line 363 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = dimensions_has_area (space); +#line 363 "/home/jens/Source/shotwell/src/Orientation.vala" + _vala_assert (_tmp0_, "space.has_area()"); +#line 365 "/home/jens/Source/shotwell/src/Orientation.vala" + memset (&derotated, 0, sizeof (GdkPoint)); +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_LEFT: +#line 1494 "Orientation.c" + { + GdkPoint _tmp1_ = {0}; +#line 370 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = *point; +#line 370 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated = _tmp1_; +#line 371 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1503 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_TOP_RIGHT: +#line 1507 "Orientation.c" + { + Dimensions _tmp2_ = {0}; + gint _tmp3_ = 0; + GdkPoint _tmp4_ = {0}; + gint _tmp5_ = 0; + GdkPoint _tmp6_ = {0}; + gint _tmp7_ = 0; +#line 375 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = *space; +#line 375 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = _tmp2_.width; +#line 375 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = *point; +#line 375 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = _tmp4_.x; +#line 375 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = (_tmp3_ - _tmp5_) - 1; +#line 376 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = *point; +#line 376 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = _tmp6_.y; +#line 376 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = _tmp7_; +#line 377 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1533 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_RIGHT: +#line 1537 "Orientation.c" + { + Dimensions _tmp8_ = {0}; + gint _tmp9_ = 0; + GdkPoint _tmp10_ = {0}; + gint _tmp11_ = 0; + Dimensions _tmp12_ = {0}; + gint _tmp13_ = 0; + GdkPoint _tmp14_ = {0}; + gint _tmp15_ = 0; +#line 381 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = *space; +#line 381 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9_ = _tmp8_.width; +#line 381 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp10_ = *point; +#line 381 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp11_ = _tmp10_.x; +#line 381 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = (_tmp9_ - _tmp11_) - 1; +#line 382 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_ = *space; +#line 382 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp13_ = _tmp12_.height; +#line 382 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp14_ = *point; +#line 382 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp15_ = _tmp14_.y; +#line 382 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = (_tmp13_ - _tmp15_) - 1; +#line 383 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1569 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_BOTTOM_LEFT: +#line 1573 "Orientation.c" + { + GdkPoint _tmp16_ = {0}; + gint _tmp17_ = 0; + Dimensions _tmp18_ = {0}; + gint _tmp19_ = 0; + GdkPoint _tmp20_ = {0}; + gint _tmp21_ = 0; +#line 387 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp16_ = *point; +#line 387 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp17_ = _tmp16_.x; +#line 387 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = _tmp17_; +#line 388 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp18_ = *space; +#line 388 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp19_ = _tmp18_.height; +#line 388 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp20_ = *point; +#line 388 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp21_ = _tmp20_.y; +#line 388 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = (_tmp19_ - _tmp21_) - 1; +#line 389 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1599 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_TOP: +#line 1603 "Orientation.c" + { + GdkPoint _tmp22_ = {0}; + gint _tmp23_ = 0; + GdkPoint _tmp24_ = {0}; + gint _tmp25_ = 0; +#line 393 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp22_ = *point; +#line 393 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp23_ = _tmp22_.y; +#line 393 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = _tmp23_; +#line 394 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp24_ = *point; +#line 394 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp25_ = _tmp24_.x; +#line 394 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = _tmp25_; +#line 395 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1623 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_TOP: +#line 1627 "Orientation.c" + { + GdkPoint _tmp26_ = {0}; + gint _tmp27_ = 0; + Dimensions _tmp28_ = {0}; + gint _tmp29_ = 0; + GdkPoint _tmp30_ = {0}; + gint _tmp31_ = 0; +#line 399 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp26_ = *point; +#line 399 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp27_ = _tmp26_.y; +#line 399 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = _tmp27_; +#line 400 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp28_ = *space; +#line 400 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp29_ = _tmp28_.height; +#line 400 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp30_ = *point; +#line 400 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp31_ = _tmp30_.x; +#line 400 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = (_tmp29_ - _tmp31_) - 1; +#line 401 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1653 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_RIGHT_BOTTOM: +#line 1657 "Orientation.c" + { + Dimensions _tmp32_ = {0}; + gint _tmp33_ = 0; + GdkPoint _tmp34_ = {0}; + gint _tmp35_ = 0; + Dimensions _tmp36_ = {0}; + gint _tmp37_ = 0; + GdkPoint _tmp38_ = {0}; + gint _tmp39_ = 0; +#line 405 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp32_ = *space; +#line 405 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp33_ = _tmp32_.width; +#line 405 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp34_ = *point; +#line 405 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp35_ = _tmp34_.y; +#line 405 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = (_tmp33_ - _tmp35_) - 1; +#line 406 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp36_ = *space; +#line 406 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp37_ = _tmp36_.height; +#line 406 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp38_ = *point; +#line 406 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp39_ = _tmp38_.x; +#line 406 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = (_tmp37_ - _tmp39_) - 1; +#line 407 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1689 "Orientation.c" + } +#line 367 "/home/jens/Source/shotwell/src/Orientation.vala" + case ORIENTATION_LEFT_BOTTOM: +#line 1693 "Orientation.c" + { + Dimensions _tmp40_ = {0}; + gint _tmp41_ = 0; + GdkPoint _tmp42_ = {0}; + gint _tmp43_ = 0; + GdkPoint _tmp44_ = {0}; + gint _tmp45_ = 0; +#line 411 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp40_ = *space; +#line 411 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp41_ = _tmp40_.width; +#line 411 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp42_ = *point; +#line 411 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp43_ = _tmp42_.y; +#line 411 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.x = (_tmp41_ - _tmp43_) - 1; +#line 412 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp44_ = *point; +#line 412 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp45_ = _tmp44_.x; +#line 412 "/home/jens/Source/shotwell/src/Orientation.vala" + derotated.y = _tmp45_; +#line 413 "/home/jens/Source/shotwell/src/Orientation.vala" + break; +#line 1719 "Orientation.c" + } + default: + { +#line 416 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:416: rotate_point: %d", (gint) self); +#line 1725 "Orientation.c" + } + } +#line 419 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = derotated; +#line 419 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 1732 "Orientation.c" +} + + +void orientation_rotate_box (Orientation self, Dimensions* space, Box* box, Box* result) { + GdkPoint top_left = {0}; + GdkPoint bottom_right = {0}; + GdkPoint _tmp0_ = {0}; + GdkPoint _tmp1_ = {0}; + GdkPoint _tmp2_ = {0}; + gint _tmp3_ = 0; + Dimensions _tmp4_ = {0}; + gint _tmp5_ = 0; + gint _tmp6_ = 0; + GdkPoint _tmp7_ = {0}; + gint _tmp8_ = 0; + Dimensions _tmp9_ = {0}; + gint _tmp10_ = 0; + gint _tmp11_ = 0; + GdkPoint _tmp12_ = {0}; + gint _tmp13_ = 0; + Dimensions _tmp14_ = {0}; + gint _tmp15_ = 0; + gint _tmp16_ = 0; + GdkPoint _tmp17_ = {0}; + gint _tmp18_ = 0; + Dimensions _tmp19_ = {0}; + gint _tmp20_ = 0; + gint _tmp21_ = 0; + Dimensions _tmp22_ = {0}; + GdkPoint _tmp23_ = {0}; + GdkPoint _tmp24_ = {0}; + Dimensions _tmp25_ = {0}; + GdkPoint _tmp26_ = {0}; + GdkPoint _tmp27_ = {0}; + GdkPoint _tmp28_ = {0}; + GdkPoint _tmp29_ = {0}; + Box _tmp30_ = {0}; +#line 423 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (space != NULL); +#line 423 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (box != NULL); +#line 425 "/home/jens/Source/shotwell/src/Orientation.vala" + box_get_points (box, &_tmp0_, &_tmp1_); +#line 425 "/home/jens/Source/shotwell/src/Orientation.vala" + top_left = _tmp0_; +#line 425 "/home/jens/Source/shotwell/src/Orientation.vala" + bottom_right = _tmp1_; +#line 427 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = top_left; +#line 427 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = _tmp2_.x; +#line 427 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = *space; +#line 427 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = _tmp4_.width; +#line 427 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = CLAMP (_tmp3_, 0, _tmp5_ - 1); +#line 427 "/home/jens/Source/shotwell/src/Orientation.vala" + top_left.x = _tmp6_; +#line 428 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = top_left; +#line 428 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = _tmp7_.y; +#line 428 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9_ = *space; +#line 428 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp10_ = _tmp9_.height; +#line 428 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp11_ = CLAMP (_tmp8_, 0, _tmp10_ - 1); +#line 428 "/home/jens/Source/shotwell/src/Orientation.vala" + top_left.y = _tmp11_; +#line 430 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp12_ = bottom_right; +#line 430 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp13_ = _tmp12_.x; +#line 430 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp14_ = *space; +#line 430 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp15_ = _tmp14_.width; +#line 430 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp16_ = CLAMP (_tmp13_, 0, _tmp15_ - 1); +#line 430 "/home/jens/Source/shotwell/src/Orientation.vala" + bottom_right.x = _tmp16_; +#line 431 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp17_ = bottom_right; +#line 431 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp18_ = _tmp17_.y; +#line 431 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp19_ = *space; +#line 431 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp20_ = _tmp19_.height; +#line 431 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp21_ = CLAMP (_tmp18_, 0, _tmp20_ - 1); +#line 431 "/home/jens/Source/shotwell/src/Orientation.vala" + bottom_right.y = _tmp21_; +#line 433 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp22_ = *space; +#line 433 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp23_ = top_left; +#line 433 "/home/jens/Source/shotwell/src/Orientation.vala" + orientation_rotate_point (self, &_tmp22_, &_tmp23_, &_tmp24_); +#line 433 "/home/jens/Source/shotwell/src/Orientation.vala" + top_left = _tmp24_; +#line 434 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp25_ = *space; +#line 434 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp26_ = bottom_right; +#line 434 "/home/jens/Source/shotwell/src/Orientation.vala" + orientation_rotate_point (self, &_tmp25_, &_tmp26_, &_tmp27_); +#line 434 "/home/jens/Source/shotwell/src/Orientation.vala" + bottom_right = _tmp27_; +#line 436 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp28_ = top_left; +#line 436 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp29_ = bottom_right; +#line 436 "/home/jens/Source/shotwell/src/Orientation.vala" + box_from_points (&_tmp28_, &_tmp29_, &_tmp30_); +#line 436 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = _tmp30_; +#line 436 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 1854 "Orientation.c" +} + + +void orientation_derotate_box (Orientation self, Dimensions* space, Box* box, Box* result) { + GdkPoint top_left = {0}; + GdkPoint bottom_right = {0}; + GdkPoint _tmp0_ = {0}; + GdkPoint _tmp1_ = {0}; + Dimensions _tmp2_ = {0}; + GdkPoint _tmp3_ = {0}; + GdkPoint _tmp4_ = {0}; + Dimensions _tmp5_ = {0}; + GdkPoint _tmp6_ = {0}; + GdkPoint _tmp7_ = {0}; + GdkPoint _tmp8_ = {0}; + GdkPoint _tmp9_ = {0}; + Box _tmp10_ = {0}; +#line 440 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (space != NULL); +#line 440 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_if_fail (box != NULL); +#line 442 "/home/jens/Source/shotwell/src/Orientation.vala" + box_get_points (box, &_tmp0_, &_tmp1_); +#line 442 "/home/jens/Source/shotwell/src/Orientation.vala" + top_left = _tmp0_; +#line 442 "/home/jens/Source/shotwell/src/Orientation.vala" + bottom_right = _tmp1_; +#line 444 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = *space; +#line 444 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = top_left; +#line 444 "/home/jens/Source/shotwell/src/Orientation.vala" + orientation_derotate_point (self, &_tmp2_, &_tmp3_, &_tmp4_); +#line 444 "/home/jens/Source/shotwell/src/Orientation.vala" + top_left = _tmp4_; +#line 445 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = *space; +#line 445 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = bottom_right; +#line 445 "/home/jens/Source/shotwell/src/Orientation.vala" + orientation_derotate_point (self, &_tmp5_, &_tmp6_, &_tmp7_); +#line 445 "/home/jens/Source/shotwell/src/Orientation.vala" + bottom_right = _tmp7_; +#line 447 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp8_ = top_left; +#line 447 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp9_ = bottom_right; +#line 447 "/home/jens/Source/shotwell/src/Orientation.vala" + box_from_points (&_tmp8_, &_tmp9_, &_tmp10_); +#line 447 "/home/jens/Source/shotwell/src/Orientation.vala" + *result = _tmp10_; +#line 447 "/home/jens/Source/shotwell/src/Orientation.vala" + return; +#line 1908 "Orientation.c" +} + + +GType orientation_get_type (void) { + static volatile gsize orientation_type_id__volatile = 0; + if (g_once_init_enter (&orientation_type_id__volatile)) { + static const GEnumValue values[] = {{ORIENTATION_MIN, "ORIENTATION_MIN", "min"}, {ORIENTATION_TOP_LEFT, "ORIENTATION_TOP_LEFT", "top-left"}, {ORIENTATION_TOP_RIGHT, "ORIENTATION_TOP_RIGHT", "top-right"}, {ORIENTATION_BOTTOM_RIGHT, "ORIENTATION_BOTTOM_RIGHT", "bottom-right"}, {ORIENTATION_BOTTOM_LEFT, "ORIENTATION_BOTTOM_LEFT", "bottom-left"}, {ORIENTATION_LEFT_TOP, "ORIENTATION_LEFT_TOP", "left-top"}, {ORIENTATION_RIGHT_TOP, "ORIENTATION_RIGHT_TOP", "right-top"}, {ORIENTATION_RIGHT_BOTTOM, "ORIENTATION_RIGHT_BOTTOM", "right-bottom"}, {ORIENTATION_LEFT_BOTTOM, "ORIENTATION_LEFT_BOTTOM", "left-bottom"}, {ORIENTATION_MAX, "ORIENTATION_MAX", "max"}, {0, NULL, NULL}}; + GType orientation_type_id; + orientation_type_id = g_enum_register_static ("Orientation", values); + g_once_init_leave (&orientation_type_id__volatile, orientation_type_id); + } + return orientation_type_id__volatile; +} + + +GdkPixbuf* rotation_perform (Rotation self, GdkPixbuf* pixbuf) { + GdkPixbuf* result = NULL; +#line 457 "/home/jens/Source/shotwell/src/Orientation.vala" + g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); +#line 458 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 458 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_CLOCKWISE: +#line 1932 "Orientation.c" + { + GdkPixbuf* _tmp0_ = NULL; + GdkPixbuf* _tmp1_ = NULL; +#line 460 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp0_ = pixbuf; +#line 460 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp1_ = gdk_pixbuf_rotate_simple (_tmp0_, GDK_PIXBUF_ROTATE_CLOCKWISE); +#line 460 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp1_; +#line 460 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 1944 "Orientation.c" + } +#line 458 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_COUNTERCLOCKWISE: +#line 1948 "Orientation.c" + { + GdkPixbuf* _tmp2_ = NULL; + GdkPixbuf* _tmp3_ = NULL; +#line 463 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp2_ = pixbuf; +#line 463 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp3_ = gdk_pixbuf_rotate_simple (_tmp2_, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE); +#line 463 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp3_; +#line 463 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 1960 "Orientation.c" + } +#line 458 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_MIRROR: +#line 1964 "Orientation.c" + { + GdkPixbuf* _tmp4_ = NULL; + GdkPixbuf* _tmp5_ = NULL; +#line 466 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp4_ = pixbuf; +#line 466 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp5_ = gdk_pixbuf_flip (_tmp4_, TRUE); +#line 466 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp5_; +#line 466 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 1976 "Orientation.c" + } +#line 458 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_UPSIDE_DOWN: +#line 1980 "Orientation.c" + { + GdkPixbuf* _tmp6_ = NULL; + GdkPixbuf* _tmp7_ = NULL; +#line 469 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp6_ = pixbuf; +#line 469 "/home/jens/Source/shotwell/src/Orientation.vala" + _tmp7_ = gdk_pixbuf_flip (_tmp6_, FALSE); +#line 469 "/home/jens/Source/shotwell/src/Orientation.vala" + result = _tmp7_; +#line 469 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 1992 "Orientation.c" + } + default: + { +#line 472 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:472: Unknown rotation: %d", (gint) self); +#line 1998 "Orientation.c" + } + } +} + + +Rotation rotation_opposite (Rotation self) { + Rotation result = 0; +#line 477 "/home/jens/Source/shotwell/src/Orientation.vala" + switch (self) { +#line 477 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_CLOCKWISE: +#line 2010 "Orientation.c" + { +#line 479 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ROTATION_COUNTERCLOCKWISE; +#line 479 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 2016 "Orientation.c" + } +#line 477 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_COUNTERCLOCKWISE: +#line 2020 "Orientation.c" + { +#line 482 "/home/jens/Source/shotwell/src/Orientation.vala" + result = ROTATION_CLOCKWISE; +#line 482 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 2026 "Orientation.c" + } +#line 477 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_MIRROR: +#line 477 "/home/jens/Source/shotwell/src/Orientation.vala" + case ROTATION_UPSIDE_DOWN: +#line 2032 "Orientation.c" + { +#line 486 "/home/jens/Source/shotwell/src/Orientation.vala" + result = self; +#line 486 "/home/jens/Source/shotwell/src/Orientation.vala" + return result; +#line 2038 "Orientation.c" + } + default: + { +#line 489 "/home/jens/Source/shotwell/src/Orientation.vala" + g_error ("Orientation.vala:489: Unknown rotation: %d", (gint) self); +#line 2044 "Orientation.c" + } + } +} + + +GType rotation_get_type (void) { + static volatile gsize rotation_type_id__volatile = 0; + if (g_once_init_enter (&rotation_type_id__volatile)) { + static const GEnumValue values[] = {{ROTATION_CLOCKWISE, "ROTATION_CLOCKWISE", "clockwise"}, {ROTATION_COUNTERCLOCKWISE, "ROTATION_COUNTERCLOCKWISE", "counterclockwise"}, {ROTATION_MIRROR, "ROTATION_MIRROR", "mirror"}, {ROTATION_UPSIDE_DOWN, "ROTATION_UPSIDE_DOWN", "upside-down"}, {0, NULL, NULL}}; + GType rotation_type_id; + rotation_type_id = g_enum_register_static ("Rotation", values); + g_once_init_leave (&rotation_type_id__volatile, rotation_type_id); + } + return rotation_type_id__volatile; +} + + + |