diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:09:31 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:09:31 +0200 |
commit | 143bfc9f801c84428074312d661f8e08803df83b (patch) | |
tree | 59a8a447529bd9ce3807aa8bacef861dc5aafd70 /src/photos/PhotoFileAdapter.c | |
parent | 29a7aef998e975b42401cfa96d1b750d91eadf06 (diff) |
Imported Upstream version 0.23.5upstream/0.23.5
Diffstat (limited to 'src/photos/PhotoFileAdapter.c')
-rw-r--r-- | src/photos/PhotoFileAdapter.c | 1104 |
1 files changed, 1104 insertions, 0 deletions
diff --git a/src/photos/PhotoFileAdapter.c b/src/photos/PhotoFileAdapter.c new file mode 100644 index 0000000..2f05603 --- /dev/null +++ b/src/photos/PhotoFileAdapter.c @@ -0,0 +1,1104 @@ +/* PhotoFileAdapter.c generated by valac 0.32.1, the Vala compiler + * generated from PhotoFileAdapter.vala, do not modify */ + +/* Copyright 2016 Software Freedom Conservancy Inc. + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ +/**/ +/* PhotoFileAdapter*/ +/**/ +/* PhotoFileAdapter (and its immediate children, PhotoFileReader and PhotoFileWriter) are drivers*/ +/* hiding details of reading and writing image files and their metadata. They should keep*/ +/* minimal state beyond the filename, if any stat at all. In particular, they should avoid caching*/ +/* values, especially the readers, as writers may be created at any time and invalidate that*/ +/* information, unless the readers monitor the file for these changes.*/ +/**/ +/* PhotoFileAdapters should be entirely thread-safe. They are not, however, responsible for*/ +/* atomicity on the filesystem.*/ +/**/ + +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gio/gio.h> +#include <glib/gstdio.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gobject/gvaluecollector.h> + + +#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ()) +#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)) +#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass)) +#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER)) +#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER)) +#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass)) + +typedef struct _PhotoFileAdapter PhotoFileAdapter; +typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass; +typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate; + +#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ()) +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +typedef struct _ParamSpecPhotoFileAdapter ParamSpecPhotoFileAdapter; + +#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ()) +#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader)) +#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass)) +#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER)) +#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER)) +#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass)) + +typedef struct _PhotoFileReader PhotoFileReader; +typedef struct _PhotoFileReaderClass PhotoFileReaderClass; +typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate; + +#define TYPE_MEDIA_METADATA (media_metadata_get_type ()) +#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata)) +#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass)) +#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA)) +#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA)) +#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass)) + +typedef struct _MediaMetadata MediaMetadata; +typedef struct _MediaMetadataClass MediaMetadataClass; + +#define TYPE_PHOTO_METADATA (photo_metadata_get_type ()) +#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata)) +#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass)) +#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA)) +#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA)) +#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass)) + +typedef struct _PhotoMetadata PhotoMetadata; +typedef struct _PhotoMetadataClass PhotoMetadataClass; + +#define TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; + +#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ()) +#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter)) +#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass)) +#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER)) +#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER)) +#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass)) + +typedef struct _PhotoFileWriter PhotoFileWriter; +typedef struct _PhotoFileWriterClass PhotoFileWriterClass; +#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL))) + +#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ()) +#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter)) +#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass)) +#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER)) +#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER)) +#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass)) + +typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter; +typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass; +typedef struct _PhotoFileWriterPrivate PhotoFileWriterPrivate; + +#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ()) +typedef struct _PhotoFileMetadataWriterPrivate PhotoFileMetadataWriterPrivate; + +struct _PhotoFileAdapter { + GTypeInstance parent_instance; + volatile int ref_count; + PhotoFileAdapterPrivate * priv; +}; + +struct _PhotoFileAdapterClass { + GTypeClass parent_class; + void (*finalize) (PhotoFileAdapter *self); +}; + +typedef enum { + PHOTO_FILE_FORMAT_JFIF, + PHOTO_FILE_FORMAT_RAW, + PHOTO_FILE_FORMAT_PNG, + PHOTO_FILE_FORMAT_TIFF, + PHOTO_FILE_FORMAT_BMP, + PHOTO_FILE_FORMAT_UNKNOWN +} PhotoFileFormat; + +struct _PhotoFileAdapterPrivate { + gchar* filepath; + PhotoFileFormat file_format; + GFile* file; + GRecMutex __lock_file; +}; + +struct _ParamSpecPhotoFileAdapter { + GParamSpec parent_instance; +}; + +struct _Dimensions { + gint width; + gint height; +}; + +struct _PhotoFileReader { + PhotoFileAdapter parent_instance; + PhotoFileReaderPrivate * priv; +}; + +struct _PhotoFileReaderClass { + PhotoFileAdapterClass parent_class; + PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error); + GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error); + GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error); +}; + +typedef enum { + PHOTO_FORMAT_ERROR_READ_ONLY +} PhotoFormatError; +#define PHOTO_FORMAT_ERROR photo_format_error_quark () +typedef enum { + JPEG_QUALITY_LOW = 50, + JPEG_QUALITY_MEDIUM = 75, + JPEG_QUALITY_HIGH = 90, + JPEG_QUALITY_MAXIMUM = 100 +} JpegQuality; + +struct _PhotoFileWriter { + PhotoFileAdapter parent_instance; + PhotoFileWriterPrivate * priv; +}; + +struct _PhotoFileWriterClass { + PhotoFileAdapterClass parent_class; + void (*write) (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error); +}; + +struct _PhotoFileMetadataWriter { + PhotoFileAdapter parent_instance; + PhotoFileMetadataWriterPrivate * priv; +}; + +struct _PhotoFileMetadataWriterClass { + PhotoFileAdapterClass parent_class; + void (*write_metadata) (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error); +}; + + +static gpointer photo_file_adapter_parent_class = NULL; +static gpointer photo_file_reader_parent_class = NULL; +static gpointer photo_file_writer_parent_class = NULL; +static gpointer photo_file_metadata_writer_parent_class = NULL; + +gpointer photo_file_adapter_ref (gpointer instance); +void photo_file_adapter_unref (gpointer instance); +GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_file_adapter (GValue* value, gpointer v_object); +void value_take_photo_file_adapter (GValue* value, gpointer v_object); +gpointer value_get_photo_file_adapter (const GValue* value); +GType photo_file_adapter_get_type (void) G_GNUC_CONST; +GType photo_file_format_get_type (void) G_GNUC_CONST; +#define PHOTO_FILE_ADAPTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterPrivate)) +enum { + PHOTO_FILE_ADAPTER_DUMMY_PROPERTY +}; +PhotoFileAdapter* photo_file_adapter_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format); +gboolean photo_file_adapter_file_exists (PhotoFileAdapter* self); +gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self); +GFile* photo_file_adapter_get_file (PhotoFileAdapter* self); +PhotoFileFormat photo_file_adapter_get_file_format (PhotoFileAdapter* self); +static void photo_file_adapter_finalize (PhotoFileAdapter* obj); +GType photo_file_reader_get_type (void) G_GNUC_CONST; +gpointer media_metadata_ref (gpointer instance); +void media_metadata_unref (gpointer instance); +GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_media_metadata (GValue* value, gpointer v_object); +void value_take_media_metadata (GValue* value, gpointer v_object); +gpointer value_get_media_metadata (const GValue* value); +GType media_metadata_get_type (void) G_GNUC_CONST; +GType photo_metadata_get_type (void) G_GNUC_CONST; +GType dimensions_get_type (void) G_GNUC_CONST; +Dimensions* dimensions_dup (const Dimensions* self); +void dimensions_free (Dimensions* self); +enum { + PHOTO_FILE_READER_DUMMY_PROPERTY +}; +PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format); +GType photo_file_writer_get_type (void) G_GNUC_CONST; +GQuark photo_format_error_quark (void); +PhotoFileWriter* photo_file_reader_create_writer (PhotoFileReader* self, GError** error); +PhotoFileWriter* photo_file_format_create_writer (PhotoFileFormat self, const gchar* filepath, GError** error); +GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST; +PhotoFileMetadataWriter* photo_file_reader_create_metadata_writer (PhotoFileReader* self, GError** error); +PhotoFileMetadataWriter* photo_file_format_create_metadata_writer (PhotoFileFormat self, const gchar* filepath, GError** error); +PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error); +static PhotoMetadata* photo_file_reader_real_read_metadata (PhotoFileReader* self, GError** error); +GdkPixbuf* photo_file_reader_unscaled_read (PhotoFileReader* self, GError** error); +static GdkPixbuf* photo_file_reader_real_unscaled_read (PhotoFileReader* self, GError** error); +GdkPixbuf* photo_file_reader_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error); +static GdkPixbuf* photo_file_reader_real_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error); +GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp); +GType jpeg_quality_get_type (void) G_GNUC_CONST; +enum { + PHOTO_FILE_WRITER_DUMMY_PROPERTY +}; +PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format); +PhotoFileReader* photo_file_writer_create_reader (PhotoFileWriter* self); +PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath); +void photo_file_writer_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error); +static void photo_file_writer_real_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error); +enum { + PHOTO_FILE_METADATA_WRITER_DUMMY_PROPERTY +}; +PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format); +PhotoFileReader* photo_file_metadata_writer_create_reader (PhotoFileMetadataWriter* self); +void photo_file_metadata_writer_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error); +static void photo_file_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error); + + +PhotoFileAdapter* photo_file_adapter_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) { + PhotoFileAdapter* self = NULL; + const gchar* _tmp0_ = NULL; + gchar* _tmp1_ = NULL; + PhotoFileFormat _tmp2_ = 0; +#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (filepath != NULL, NULL); +#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self = (PhotoFileAdapter*) g_type_create_instance (object_type); +#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = filepath; +#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_free0 (self->priv->filepath); +#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self->priv->filepath = _tmp1_; +#line 27 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = file_format; +#line 27 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self->priv->file_format = _tmp2_; +#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return self; +#line 282 "PhotoFileAdapter.c" +} + + +gboolean photo_file_adapter_file_exists (PhotoFileAdapter* self) { + gboolean result = FALSE; + const gchar* _tmp0_ = NULL; + gboolean _tmp1_ = FALSE; +#line 30 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), FALSE); +#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = self->priv->filepath; +#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = g_file_test (_tmp0_, G_FILE_TEST_IS_REGULAR); +#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp1_; +#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 300 "PhotoFileAdapter.c" +} + + +gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self) { + gchar* result = NULL; + const gchar* _tmp0_ = NULL; + gchar* _tmp1_ = NULL; +#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), NULL); +#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = self->priv->filepath; +#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = g_strdup (_tmp0_); +#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp1_; +#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 318 "PhotoFileAdapter.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return self ? g_object_ref (self) : NULL; +#line 325 "PhotoFileAdapter.c" +} + + +GFile* photo_file_adapter_get_file (PhotoFileAdapter* self) { + GFile* result = NULL; + GFile* _result_ = NULL; + GError * _inner_error_ = NULL; +#line 38 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), NULL); +#line 335 "PhotoFileAdapter.c" + { + GFile* _tmp0_ = NULL; +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = self->priv->file; +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_rec_mutex_lock (&self->priv->__lock_file); +#line 342 "PhotoFileAdapter.c" + { + GFile* _tmp1_ = NULL; + GFile* _tmp4_ = NULL; + GFile* _tmp5_ = NULL; +#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = self->priv->file; +#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (_tmp1_ == NULL) { +#line 351 "PhotoFileAdapter.c" + const gchar* _tmp2_ = NULL; + GFile* _tmp3_ = NULL; +#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = self->priv->filepath; +#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp3_ = g_file_new_for_path (_tmp2_); +#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_object_unref0 (self->priv->file); +#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self->priv->file = _tmp3_; +#line 362 "PhotoFileAdapter.c" + } +#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp4_ = self->priv->file; +#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp5_ = _g_object_ref0 (_tmp4_); +#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_object_unref0 (_result_); +#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _result_ = _tmp5_; +#line 372 "PhotoFileAdapter.c" + } + __finally22: + { + GFile* _tmp6_ = NULL; +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp6_ = self->priv->file; +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_rec_mutex_unlock (&self->priv->__lock_file); +#line 381 "PhotoFileAdapter.c" + } +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_object_unref0 (_result_); +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_clear_error (&_inner_error_); +#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 393 "PhotoFileAdapter.c" + } + } +#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _result_; +#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 400 "PhotoFileAdapter.c" +} + + +PhotoFileFormat photo_file_adapter_get_file_format (PhotoFileAdapter* self) { + PhotoFileFormat result = 0; + PhotoFileFormat _tmp0_ = 0; +#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), 0); +#line 51 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = self->priv->file_format; +#line 51 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp0_; +#line 51 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 415 "PhotoFileAdapter.c" +} + + +static void value_photo_file_adapter_init (GValue* value) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = NULL; +#line 422 "PhotoFileAdapter.c" +} + + +static void value_photo_file_adapter_free_value (GValue* value) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (value->data[0].v_pointer) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_adapter_unref (value->data[0].v_pointer); +#line 431 "PhotoFileAdapter.c" + } +} + + +static void value_photo_file_adapter_copy_value (const GValue* src_value, GValue* dest_value) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (src_value->data[0].v_pointer) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + dest_value->data[0].v_pointer = photo_file_adapter_ref (src_value->data[0].v_pointer); +#line 441 "PhotoFileAdapter.c" + } else { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + dest_value->data[0].v_pointer = NULL; +#line 445 "PhotoFileAdapter.c" + } +} + + +static gpointer value_photo_file_adapter_peek_pointer (const GValue* value) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return value->data[0].v_pointer; +#line 453 "PhotoFileAdapter.c" +} + + +static gchar* value_photo_file_adapter_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (collect_values[0].v_pointer) { +#line 460 "PhotoFileAdapter.c" + PhotoFileAdapter* object; + object = collect_values[0].v_pointer; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (object->parent_instance.g_class == NULL) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 467 "PhotoFileAdapter.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 471 "PhotoFileAdapter.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = photo_file_adapter_ref (object); +#line 475 "PhotoFileAdapter.c" + } else { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = NULL; +#line 479 "PhotoFileAdapter.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 483 "PhotoFileAdapter.c" +} + + +static gchar* value_photo_file_adapter_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { + PhotoFileAdapter** object_p; + object_p = collect_values[0].v_pointer; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (!object_p) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 494 "PhotoFileAdapter.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (!value->data[0].v_pointer) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + *object_p = NULL; +#line 500 "PhotoFileAdapter.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + *object_p = value->data[0].v_pointer; +#line 504 "PhotoFileAdapter.c" + } else { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + *object_p = photo_file_adapter_ref (value->data[0].v_pointer); +#line 508 "PhotoFileAdapter.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 512 "PhotoFileAdapter.c" +} + + +GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { + ParamSpecPhotoFileAdapter* spec; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_FILE_ADAPTER), NULL); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return G_PARAM_SPEC (spec); +#line 526 "PhotoFileAdapter.c" +} + + +gpointer value_get_photo_file_adapter (const GValue* value) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_ADAPTER), NULL); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return value->data[0].v_pointer; +#line 535 "PhotoFileAdapter.c" +} + + +void value_set_photo_file_adapter (GValue* value, gpointer v_object) { + PhotoFileAdapter* old; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_ADAPTER)); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + old = value->data[0].v_pointer; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (v_object) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_ADAPTER)); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = v_object; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_adapter_ref (value->data[0].v_pointer); +#line 555 "PhotoFileAdapter.c" + } else { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = NULL; +#line 559 "PhotoFileAdapter.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (old) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_adapter_unref (old); +#line 565 "PhotoFileAdapter.c" + } +} + + +void value_take_photo_file_adapter (GValue* value, gpointer v_object) { + PhotoFileAdapter* old; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_ADAPTER)); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + old = value->data[0].v_pointer; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (v_object) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_ADAPTER)); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = v_object; +#line 584 "PhotoFileAdapter.c" + } else { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + value->data[0].v_pointer = NULL; +#line 588 "PhotoFileAdapter.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (old) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_adapter_unref (old); +#line 594 "PhotoFileAdapter.c" + } +} + + +static void photo_file_adapter_class_init (PhotoFileAdapterClass * klass) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_adapter_parent_class = g_type_class_peek_parent (klass); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + ((PhotoFileAdapterClass *) klass)->finalize = photo_file_adapter_finalize; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_type_class_add_private (klass, sizeof (PhotoFileAdapterPrivate)); +#line 606 "PhotoFileAdapter.c" +} + + +static void photo_file_adapter_instance_init (PhotoFileAdapter * self) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self->priv = PHOTO_FILE_ADAPTER_GET_PRIVATE (self); +#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_rec_mutex_init (&self->priv->__lock_file); +#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self->priv->file = NULL; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self->ref_count = 1; +#line 619 "PhotoFileAdapter.c" +} + + +static void photo_file_adapter_finalize (PhotoFileAdapter* obj) { + PhotoFileAdapter * self; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_signal_handlers_destroy (self); +#line 21 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_free0 (self->priv->filepath); +#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_rec_mutex_clear (&self->priv->__lock_file); +#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_object_unref0 (self->priv->file); +#line 635 "PhotoFileAdapter.c" +} + + +GType photo_file_adapter_get_type (void) { + static volatile gsize photo_file_adapter_type_id__volatile = 0; + if (g_once_init_enter (&photo_file_adapter_type_id__volatile)) { + static const GTypeValueTable g_define_type_value_table = { value_photo_file_adapter_init, value_photo_file_adapter_free_value, value_photo_file_adapter_copy_value, value_photo_file_adapter_peek_pointer, "p", value_photo_file_adapter_collect_value, "p", value_photo_file_adapter_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (PhotoFileAdapterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_adapter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileAdapter), 0, (GInstanceInitFunc) photo_file_adapter_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType photo_file_adapter_type_id; + photo_file_adapter_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoFileAdapter", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&photo_file_adapter_type_id__volatile, photo_file_adapter_type_id); + } + return photo_file_adapter_type_id__volatile; +} + + +gpointer photo_file_adapter_ref (gpointer instance) { + PhotoFileAdapter* self; + self = instance; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_atomic_int_inc (&self->ref_count); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return instance; +#line 660 "PhotoFileAdapter.c" +} + + +void photo_file_adapter_unref (gpointer instance) { + PhotoFileAdapter* self; + self = instance; +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + PHOTO_FILE_ADAPTER_GET_CLASS (self)->finalize (self); +#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 673 "PhotoFileAdapter.c" + } +} + + +PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) { + PhotoFileReader* self = NULL; + const gchar* _tmp0_ = NULL; + PhotoFileFormat _tmp1_ = 0; +#line 60 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (filepath != NULL, NULL); +#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = filepath; +#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = file_format; +#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self = (PhotoFileReader*) photo_file_adapter_construct (object_type, _tmp0_, _tmp1_); +#line 60 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return self; +#line 692 "PhotoFileAdapter.c" +} + + +PhotoFileWriter* photo_file_reader_create_writer (PhotoFileReader* self, GError** error) { + PhotoFileWriter* result = NULL; + PhotoFileWriter* _tmp0_ = NULL; + PhotoFileFormat _tmp1_ = 0; + gchar* _tmp2_ = NULL; + gchar* _tmp3_ = NULL; + PhotoFileWriter* _tmp4_ = NULL; + PhotoFileWriter* _tmp5_ = NULL; + PhotoFileWriter* _tmp6_ = NULL; + GError * _inner_error_ = NULL; +#line 64 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp3_ = _tmp2_; +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp4_ = photo_file_format_create_writer (_tmp1_, _tmp3_, &_inner_error_); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp5_ = _tmp4_; +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_free0 (_tmp3_); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = _tmp5_; +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (_inner_error_->domain == PHOTO_FORMAT_ERROR) { +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_propagate_error (error, _inner_error_); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 730 "PhotoFileAdapter.c" + } else { +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_clear_error (&_inner_error_); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 738 "PhotoFileAdapter.c" + } + } +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp6_ = _tmp0_; +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = NULL; +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp6_; +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _photo_file_adapter_unref0 (_tmp0_); +#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 751 "PhotoFileAdapter.c" +} + + +PhotoFileMetadataWriter* photo_file_reader_create_metadata_writer (PhotoFileReader* self, GError** error) { + PhotoFileMetadataWriter* result = NULL; + PhotoFileMetadataWriter* _tmp0_ = NULL; + PhotoFileFormat _tmp1_ = 0; + gchar* _tmp2_ = NULL; + gchar* _tmp3_ = NULL; + PhotoFileMetadataWriter* _tmp4_ = NULL; + PhotoFileMetadataWriter* _tmp5_ = NULL; + PhotoFileMetadataWriter* _tmp6_ = NULL; + GError * _inner_error_ = NULL; +#line 68 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp3_ = _tmp2_; +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp4_ = photo_file_format_create_metadata_writer (_tmp1_, _tmp3_, &_inner_error_); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp5_ = _tmp4_; +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_free0 (_tmp3_); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = _tmp5_; +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (_inner_error_->domain == PHOTO_FORMAT_ERROR) { +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_propagate_error (error, _inner_error_); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 789 "PhotoFileAdapter.c" + } else { +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_clear_error (&_inner_error_); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 797 "PhotoFileAdapter.c" + } + } +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp6_ = _tmp0_; +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = NULL; +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp6_; +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _photo_file_adapter_unref0 (_tmp0_); +#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 810 "PhotoFileAdapter.c" +} + + +static PhotoMetadata* photo_file_reader_real_read_metadata (PhotoFileReader* self, GError** error) { +#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("Type `%s' does not implement abstract method `photo_file_reader_read_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 819 "PhotoFileAdapter.c" +} + + +PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error) { +#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL); +#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return PHOTO_FILE_READER_GET_CLASS (self)->read_metadata (self, error); +#line 828 "PhotoFileAdapter.c" +} + + +static GdkPixbuf* photo_file_reader_real_unscaled_read (PhotoFileReader* self, GError** error) { +#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("Type `%s' does not implement abstract method `photo_file_reader_unscaled_read'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 837 "PhotoFileAdapter.c" +} + + +GdkPixbuf* photo_file_reader_unscaled_read (PhotoFileReader* self, GError** error) { +#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL); +#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return PHOTO_FILE_READER_GET_CLASS (self)->unscaled_read (self, error); +#line 846 "PhotoFileAdapter.c" +} + + +static GdkPixbuf* photo_file_reader_real_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error) { + GdkPixbuf* result = NULL; + GdkPixbuf* _tmp0_ = NULL; + GdkPixbuf* _tmp1_ = NULL; + Dimensions _tmp2_ = {0}; + GdkPixbuf* _tmp3_ = NULL; + GError * _inner_error_ = NULL; +#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (full != NULL, NULL); +#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (scaled != NULL, NULL); +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = photo_file_reader_unscaled_read (self, &_inner_error_); +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = _tmp1_; +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_propagate_error (error, _inner_error_); +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return NULL; +#line 871 "PhotoFileAdapter.c" + } +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = *scaled; +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp3_ = resize_pixbuf (_tmp0_, &_tmp2_, GDK_INTERP_BILINEAR); +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp3_; +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_object_unref0 (_tmp0_); +#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 883 "PhotoFileAdapter.c" +} + + +GdkPixbuf* photo_file_reader_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error) { +#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL); +#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return PHOTO_FILE_READER_GET_CLASS (self)->scaled_read (self, full, scaled, error); +#line 892 "PhotoFileAdapter.c" +} + + +static void photo_file_reader_class_init (PhotoFileReaderClass * klass) { +#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_reader_parent_class = g_type_class_peek_parent (klass); +#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + ((PhotoFileReaderClass *) klass)->read_metadata = photo_file_reader_real_read_metadata; +#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + ((PhotoFileReaderClass *) klass)->unscaled_read = photo_file_reader_real_unscaled_read; +#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + ((PhotoFileReaderClass *) klass)->scaled_read = photo_file_reader_real_scaled_read; +#line 905 "PhotoFileAdapter.c" +} + + +static void photo_file_reader_instance_init (PhotoFileReader * self) { +} + + +GType photo_file_reader_get_type (void) { + static volatile gsize photo_file_reader_type_id__volatile = 0; + if (g_once_init_enter (&photo_file_reader_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (PhotoFileReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileReader), 0, (GInstanceInitFunc) photo_file_reader_instance_init, NULL }; + GType photo_file_reader_type_id; + photo_file_reader_type_id = g_type_register_static (TYPE_PHOTO_FILE_ADAPTER, "PhotoFileReader", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&photo_file_reader_type_id__volatile, photo_file_reader_type_id); + } + return photo_file_reader_type_id__volatile; +} + + +PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) { + PhotoFileWriter* self = NULL; + const gchar* _tmp0_ = NULL; + PhotoFileFormat _tmp1_ = 0; +#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (filepath != NULL, NULL); +#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = filepath; +#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = file_format; +#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self = (PhotoFileWriter*) photo_file_adapter_construct (object_type, _tmp0_, _tmp1_); +#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return self; +#line 939 "PhotoFileAdapter.c" +} + + +PhotoFileReader* photo_file_writer_create_reader (PhotoFileWriter* self) { + PhotoFileReader* result = NULL; + PhotoFileFormat _tmp0_ = 0; + gchar* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + PhotoFileReader* _tmp3_ = NULL; + PhotoFileReader* _tmp4_ = NULL; +#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_WRITER (self), NULL); +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = _tmp1_; +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp3_ = photo_file_format_create_reader (_tmp0_, _tmp2_); +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp4_ = _tmp3_; +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_free0 (_tmp2_); +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp4_; +#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 968 "PhotoFileAdapter.c" +} + + +static void photo_file_writer_real_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) { +#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("Type `%s' does not implement abstract method `photo_file_writer_write'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return; +#line 977 "PhotoFileAdapter.c" +} + + +void photo_file_writer_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) { +#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (IS_PHOTO_FILE_WRITER (self)); +#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + PHOTO_FILE_WRITER_GET_CLASS (self)->write (self, pixbuf, quality, error); +#line 986 "PhotoFileAdapter.c" +} + + +static void photo_file_writer_class_init (PhotoFileWriterClass * klass) { +#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_writer_parent_class = g_type_class_peek_parent (klass); +#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + ((PhotoFileWriterClass *) klass)->write = photo_file_writer_real_write; +#line 995 "PhotoFileAdapter.c" +} + + +static void photo_file_writer_instance_init (PhotoFileWriter * self) { +} + + +GType photo_file_writer_get_type (void) { + static volatile gsize photo_file_writer_type_id__volatile = 0; + if (g_once_init_enter (&photo_file_writer_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (PhotoFileWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileWriter), 0, (GInstanceInitFunc) photo_file_writer_instance_init, NULL }; + GType photo_file_writer_type_id; + photo_file_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_ADAPTER, "PhotoFileWriter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&photo_file_writer_type_id__volatile, photo_file_writer_type_id); + } + return photo_file_writer_type_id__volatile; +} + + +PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) { + PhotoFileMetadataWriter* self = NULL; + const gchar* _tmp0_ = NULL; + PhotoFileFormat _tmp1_ = 0; +#line 102 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (filepath != NULL, NULL); +#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = filepath; +#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = file_format; +#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + self = (PhotoFileMetadataWriter*) photo_file_adapter_construct (object_type, _tmp0_, _tmp1_); +#line 102 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return self; +#line 1029 "PhotoFileAdapter.c" +} + + +PhotoFileReader* photo_file_metadata_writer_create_reader (PhotoFileMetadataWriter* self) { + PhotoFileReader* result = NULL; + PhotoFileFormat _tmp0_ = 0; + gchar* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + PhotoFileReader* _tmp3_ = NULL; + PhotoFileReader* _tmp4_ = NULL; +#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_val_if_fail (IS_PHOTO_FILE_METADATA_WRITER (self), NULL); +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp0_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp2_ = _tmp1_; +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp3_ = photo_file_format_create_reader (_tmp0_, _tmp2_); +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _tmp4_ = _tmp3_; +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + _g_free0 (_tmp2_); +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + result = _tmp4_; +#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return result; +#line 1058 "PhotoFileAdapter.c" +} + + +static void photo_file_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error) { +#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_critical ("Type `%s' does not implement abstract method `photo_file_metadata_writer_write_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self))); +#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + return; +#line 1067 "PhotoFileAdapter.c" +} + + +void photo_file_metadata_writer_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error) { +#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + g_return_if_fail (IS_PHOTO_FILE_METADATA_WRITER (self)); +#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + PHOTO_FILE_METADATA_WRITER_GET_CLASS (self)->write_metadata (self, metadata, error); +#line 1076 "PhotoFileAdapter.c" +} + + +static void photo_file_metadata_writer_class_init (PhotoFileMetadataWriterClass * klass) { +#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + photo_file_metadata_writer_parent_class = g_type_class_peek_parent (klass); +#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala" + ((PhotoFileMetadataWriterClass *) klass)->write_metadata = photo_file_metadata_writer_real_write_metadata; +#line 1085 "PhotoFileAdapter.c" +} + + +static void photo_file_metadata_writer_instance_init (PhotoFileMetadataWriter * self) { +} + + +GType photo_file_metadata_writer_get_type (void) { + static volatile gsize photo_file_metadata_writer_type_id__volatile = 0; + if (g_once_init_enter (&photo_file_metadata_writer_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (PhotoFileMetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileMetadataWriter), 0, (GInstanceInitFunc) photo_file_metadata_writer_instance_init, NULL }; + GType photo_file_metadata_writer_type_id; + photo_file_metadata_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_ADAPTER, "PhotoFileMetadataWriter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&photo_file_metadata_writer_type_id__volatile, photo_file_metadata_writer_type_id); + } + return photo_file_metadata_writer_type_id__volatile; +} + + + |