summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2016-08-20 15:11:08 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2016-08-20 15:11:08 +0200
commitcb612a12b952e349b96d427645aaeb55d15f509a (patch)
treef29298f41d2a7ea2a976616243aca64c2c2547ce /src/plugins
parente7be93745e4a2ff3aa255227bef7b9d3b733aafa (diff)
parent143bfc9f801c84428074312d661f8e08803df83b (diff)
Merge tag 'upstream/0.23.5'
Upstream version 0.23.5
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/DataImportsInterfaces.c1738
-rw-r--r--src/plugins/ManifestWidget.c2253
-rw-r--r--src/plugins/Plugins.c4420
-rw-r--r--src/plugins/PublishingInterfaces.c1760
-rw-r--r--src/plugins/PublishingInterfaces.vala17
-rw-r--r--src/plugins/SpitInterfaces.c1324
-rw-r--r--src/plugins/StandardHostInterface.c699
-rw-r--r--src/plugins/TransitionsInterfaces.c1808
-rw-r--r--src/plugins/mk/interfaces.mk29
-rw-r--r--src/plugins/mk/plugins.mk35
10 files changed, 14014 insertions, 69 deletions
diff --git a/src/plugins/DataImportsInterfaces.c b/src/plugins/DataImportsInterfaces.c
new file mode 100644
index 0000000..96920a9
--- /dev/null
+++ b/src/plugins/DataImportsInterfaces.c
@@ -0,0 +1,1738 @@
+/* DataImportsInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImportsInterfaces.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+#include <gtk/gtk.h>
+#include <time.h>
+
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER (spit_data_imports_data_importer_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER, SpitDataImportsDataImporter))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER))
+#define SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER, SpitDataImportsDataImporterIface))
+
+typedef struct _SpitDataImportsDataImporter SpitDataImportsDataImporter;
+typedef struct _SpitDataImportsDataImporterIface SpitDataImportsDataImporterIface;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+
+#define SPIT_DATA_IMPORTS_TYPE_SERVICE (spit_data_imports_service_get_type ())
+#define SPIT_DATA_IMPORTS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_SERVICE, SpitDataImportsService))
+#define SPIT_DATA_IMPORTS_IS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_SERVICE))
+#define SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_SERVICE, SpitDataImportsServiceIface))
+
+typedef struct _SpitDataImportsService SpitDataImportsService;
+typedef struct _SpitDataImportsServiceIface SpitDataImportsServiceIface;
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST (spit_data_imports_plugin_host_get_type ())
+#define SPIT_DATA_IMPORTS_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost))
+#define SPIT_DATA_IMPORTS_IS_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST))
+#define SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHostIface))
+
+typedef struct _SpitDataImportsPluginHost SpitDataImportsPluginHost;
+typedef struct _SpitDataImportsPluginHostIface SpitDataImportsPluginHostIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE (spit_data_imports_dialog_pane_get_type ())
+#define SPIT_DATA_IMPORTS_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane))
+#define SPIT_DATA_IMPORTS_IS_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE))
+#define SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPaneIface))
+
+typedef struct _SpitDataImportsDialogPane SpitDataImportsDialogPane;
+typedef struct _SpitDataImportsDialogPaneIface SpitDataImportsDialogPaneIface;
+
+#define SPIT_DATA_IMPORTS_DIALOG_PANE_TYPE_GEOMETRY_OPTIONS (spit_data_imports_dialog_pane_geometry_options_get_type ())
+
+#define SPIT_DATA_IMPORTS_PLUGIN_HOST_TYPE_BUTTON_MODE (spit_data_imports_plugin_host_button_mode_get_type ())
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY (spit_data_imports_importable_library_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_LIBRARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY, SpitDataImportsImportableLibrary))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_LIBRARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_LIBRARY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY, SpitDataImportsImportableLibraryIface))
+
+typedef struct _SpitDataImportsImportableLibrary SpitDataImportsImportableLibrary;
+typedef struct _SpitDataImportsImportableLibraryIface SpitDataImportsImportableLibraryIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM (spit_data_imports_importable_media_item_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM, SpitDataImportsImportableMediaItem))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM, SpitDataImportsImportableMediaItemIface))
+
+typedef struct _SpitDataImportsImportableMediaItem SpitDataImportsImportableMediaItem;
+typedef struct _SpitDataImportsImportableMediaItemIface SpitDataImportsImportableMediaItemIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG (spit_data_imports_importable_tag_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG, SpitDataImportsImportableTag))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_TAG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG, SpitDataImportsImportableTagIface))
+
+typedef struct _SpitDataImportsImportableTag SpitDataImportsImportableTag;
+typedef struct _SpitDataImportsImportableTagIface SpitDataImportsImportableTagIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT (spit_data_imports_importable_event_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT, SpitDataImportsImportableEvent))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_EVENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT, SpitDataImportsImportableEventIface))
+
+typedef struct _SpitDataImportsImportableEvent SpitDataImportsImportableEvent;
+typedef struct _SpitDataImportsImportableEventIface SpitDataImportsImportableEventIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING (spit_data_imports_importable_rating_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING, SpitDataImportsImportableRating))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING, SpitDataImportsImportableRatingIface))
+
+typedef struct _SpitDataImportsImportableRating SpitDataImportsImportableRating;
+typedef struct _SpitDataImportsImportableRatingIface SpitDataImportsImportableRatingIface;
+
+/**
+ * The error domain for alien databases
+ */
+typedef enum {
+ SPIT_DATA_IMPORTS_DATA_IMPORT_ERROR_UNSUPPORTED_VERSION
+} SpitDataImportsDataImportError;
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_ERROR spit_data_imports_data_import_error_quark ()
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+typedef enum {
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE = 0,
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE = 1 << 0,
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE = 1 << 1,
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE = 1 << 2
+} SpitDataImportsDialogPaneGeometryOptions;
+
+struct _SpitDataImportsDialogPaneIface {
+ GTypeInterface parent_iface;
+ GtkWidget* (*get_widget) (SpitDataImportsDialogPane* self);
+ SpitDataImportsDialogPaneGeometryOptions (*get_preferred_geometry) (SpitDataImportsDialogPane* self);
+ void (*on_pane_installed) (SpitDataImportsDialogPane* self);
+ void (*on_pane_uninstalled) (SpitDataImportsDialogPane* self);
+ void (*reserved0) (SpitDataImportsDialogPane* self);
+ void (*reserved1) (SpitDataImportsDialogPane* self);
+ void (*reserved2) (SpitDataImportsDialogPane* self);
+ void (*reserved3) (SpitDataImportsDialogPane* self);
+ void (*reserved4) (SpitDataImportsDialogPane* self);
+ void (*reserved5) (SpitDataImportsDialogPane* self);
+ void (*reserved6) (SpitDataImportsDialogPane* self);
+ void (*reserved7) (SpitDataImportsDialogPane* self);
+};
+
+typedef enum {
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE = 0,
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL = 1
+} SpitDataImportsPluginHostButtonMode;
+
+struct _SpitDataImportsImportableLibraryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_display_name) (SpitDataImportsImportableLibrary* self);
+};
+
+struct _SpitDataImportsImportableTagIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (SpitDataImportsImportableTag* self);
+ SpitDataImportsImportableTag* (*get_parent) (SpitDataImportsImportableTag* self);
+};
+
+struct _SpitDataImportsImportableEventIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (SpitDataImportsImportableEvent* self);
+};
+
+struct _SpitDataImportsImportableRatingIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_unrated) (SpitDataImportsImportableRating* self);
+ gboolean (*is_rejected) (SpitDataImportsImportableRating* self);
+ gint (*get_value) (SpitDataImportsImportableRating* self);
+};
+
+struct _SpitDataImportsImportableMediaItemIface {
+ GTypeInterface parent_iface;
+ SpitDataImportsImportableTag** (*get_tags) (SpitDataImportsImportableMediaItem* self, int* result_length1);
+ SpitDataImportsImportableEvent* (*get_event) (SpitDataImportsImportableMediaItem* self);
+ SpitDataImportsImportableRating* (*get_rating) (SpitDataImportsImportableMediaItem* self);
+ gchar* (*get_title) (SpitDataImportsImportableMediaItem* self);
+ gchar* (*get_folder_path) (SpitDataImportsImportableMediaItem* self);
+ gchar* (*get_filename) (SpitDataImportsImportableMediaItem* self);
+ time_t* (*get_exposure_time) (SpitDataImportsImportableMediaItem* self);
+};
+
+typedef void (*SpitDataImportsImportedItemsCountCallback) (gint imported_items_count, void* user_data);
+struct _SpitDataImportsPluginHostIface {
+ GTypeInterface parent_iface;
+ void (*post_error) (SpitDataImportsPluginHost* self, GError* err);
+ void (*post_error_message) (SpitDataImportsPluginHost* self, const gchar* msg);
+ void (*start_importing) (SpitDataImportsPluginHost* self);
+ void (*stop_importing) (SpitDataImportsPluginHost* self);
+ SpitDataImportsDataImporter* (*get_data_importer) (SpitDataImportsPluginHost* self);
+ void (*install_dialog_pane) (SpitDataImportsPluginHost* self, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode mode);
+ void (*install_static_message_pane) (SpitDataImportsPluginHost* self, const gchar* message, SpitDataImportsPluginHostButtonMode mode);
+ void (*install_library_selection_pane) (SpitDataImportsPluginHost* self, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+ void (*install_import_progress_pane) (SpitDataImportsPluginHost* self, const gchar* message);
+ void (*update_import_progress_pane) (SpitDataImportsPluginHost* self, gdouble progress, const gchar* progress_message);
+ void (*prepare_media_items_for_import) (SpitDataImportsPluginHost* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+ void (*finalize_import) (SpitDataImportsPluginHost* self, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message);
+ void (*reserved0) (SpitDataImportsPluginHost* self);
+ void (*reserved1) (SpitDataImportsPluginHost* self);
+ void (*reserved2) (SpitDataImportsPluginHost* self);
+ void (*reserved3) (SpitDataImportsPluginHost* self);
+ void (*reserved4) (SpitDataImportsPluginHost* self);
+ void (*reserved5) (SpitDataImportsPluginHost* self);
+ void (*reserved6) (SpitDataImportsPluginHost* self);
+ void (*reserved7) (SpitDataImportsPluginHost* self);
+};
+
+struct _SpitDataImportsServiceIface {
+ GTypeInterface parent_iface;
+ SpitDataImportsDataImporter* (*create_data_importer) (SpitDataImportsService* self, SpitDataImportsPluginHost* host);
+ void (*reserved0) (SpitDataImportsService* self);
+ void (*reserved1) (SpitDataImportsService* self);
+ void (*reserved2) (SpitDataImportsService* self);
+ void (*reserved3) (SpitDataImportsService* self);
+ void (*reserved4) (SpitDataImportsService* self);
+ void (*reserved5) (SpitDataImportsService* self);
+ void (*reserved6) (SpitDataImportsService* self);
+ void (*reserved7) (SpitDataImportsService* self);
+};
+
+struct _SpitDataImportsDataImporterIface {
+ GTypeInterface parent_iface;
+ SpitDataImportsService* (*get_service) (SpitDataImportsDataImporter* self);
+ void (*start) (SpitDataImportsDataImporter* self);
+ gboolean (*is_running) (SpitDataImportsDataImporter* self);
+ void (*stop) (SpitDataImportsDataImporter* self);
+ void (*on_library_selected) (SpitDataImportsDataImporter* self, SpitDataImportsImportableLibrary* library);
+ void (*on_file_selected) (SpitDataImportsDataImporter* self, GFile* file);
+ void (*reserved0) (SpitDataImportsDataImporter* self);
+ void (*reserved1) (SpitDataImportsDataImporter* self);
+ void (*reserved2) (SpitDataImportsDataImporter* self);
+ void (*reserved3) (SpitDataImportsDataImporter* self);
+ void (*reserved4) (SpitDataImportsDataImporter* self);
+ void (*reserved5) (SpitDataImportsDataImporter* self);
+ void (*reserved6) (SpitDataImportsDataImporter* self);
+ void (*reserved7) (SpitDataImportsDataImporter* self);
+};
+
+
+
+#define SPIT_DATA_IMPORTS_CURRENT_INTERFACE 0
+GQuark spit_data_imports_data_import_error_quark (void);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_dialog_pane_geometry_options_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_dialog_pane_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_plugin_host_button_mode_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_library_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_tag_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_event_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_rating_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_media_item_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_plugin_host_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_service_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_data_importer_get_type (void) G_GNUC_CONST;
+SpitDataImportsService* spit_data_imports_data_importer_get_service (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_start (SpitDataImportsDataImporter* self);
+gboolean spit_data_imports_data_importer_is_running (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_stop (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_on_library_selected (SpitDataImportsDataImporter* self, SpitDataImportsImportableLibrary* library);
+void spit_data_imports_data_importer_on_file_selected (SpitDataImportsDataImporter* self, GFile* file);
+void spit_data_imports_data_importer_reserved0 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved0 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved1 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved1 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved2 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved2 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved3 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved3 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved4 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved4 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved5 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved5 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved6 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved6 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved7 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved7 (SpitDataImportsDataImporter* self);
+gchar* spit_data_imports_importable_library_get_display_name (SpitDataImportsImportableLibrary* self);
+SpitDataImportsImportableTag** spit_data_imports_importable_media_item_get_tags (SpitDataImportsImportableMediaItem* self, int* result_length1);
+SpitDataImportsImportableEvent* spit_data_imports_importable_media_item_get_event (SpitDataImportsImportableMediaItem* self);
+SpitDataImportsImportableRating* spit_data_imports_importable_media_item_get_rating (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_media_item_get_title (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_media_item_get_folder_path (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_media_item_get_filename (SpitDataImportsImportableMediaItem* self);
+time_t* spit_data_imports_importable_media_item_get_exposure_time (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_tag_get_name (SpitDataImportsImportableTag* self);
+SpitDataImportsImportableTag* spit_data_imports_importable_tag_get_parent (SpitDataImportsImportableTag* self);
+gchar* spit_data_imports_importable_event_get_name (SpitDataImportsImportableEvent* self);
+gboolean spit_data_imports_importable_rating_is_unrated (SpitDataImportsImportableRating* self);
+gboolean spit_data_imports_importable_rating_is_rejected (SpitDataImportsImportableRating* self);
+gint spit_data_imports_importable_rating_get_value (SpitDataImportsImportableRating* self);
+GtkWidget* spit_data_imports_dialog_pane_get_widget (SpitDataImportsDialogPane* self);
+SpitDataImportsDialogPaneGeometryOptions spit_data_imports_dialog_pane_get_preferred_geometry (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_on_pane_installed (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_on_pane_uninstalled (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved0 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved0 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved1 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved1 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved2 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved2 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved3 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved3 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved4 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved4 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved5 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved5 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved6 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved6 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved7 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved7 (SpitDataImportsDialogPane* self);
+void spit_data_imports_plugin_host_post_error (SpitDataImportsPluginHost* self, GError* err);
+void spit_data_imports_plugin_host_post_error_message (SpitDataImportsPluginHost* self, const gchar* msg);
+void spit_data_imports_plugin_host_start_importing (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_stop_importing (SpitDataImportsPluginHost* self);
+SpitDataImportsDataImporter* spit_data_imports_plugin_host_get_data_importer (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_install_dialog_pane (SpitDataImportsPluginHost* self, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode mode);
+void spit_data_imports_plugin_host_install_static_message_pane (SpitDataImportsPluginHost* self, const gchar* message, SpitDataImportsPluginHostButtonMode mode);
+void spit_data_imports_plugin_host_install_library_selection_pane (SpitDataImportsPluginHost* self, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+void spit_data_imports_plugin_host_install_import_progress_pane (SpitDataImportsPluginHost* self, const gchar* message);
+void spit_data_imports_plugin_host_update_import_progress_pane (SpitDataImportsPluginHost* self, gdouble progress, const gchar* progress_message);
+void spit_data_imports_plugin_host_prepare_media_items_for_import (SpitDataImportsPluginHost* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+void spit_data_imports_plugin_host_finalize_import (SpitDataImportsPluginHost* self, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message);
+void spit_data_imports_plugin_host_reserved0 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved0 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved1 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved1 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved2 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved2 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved3 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved3 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved4 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved4 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved5 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved5 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved6 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved6 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved7 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved7 (SpitDataImportsPluginHost* self);
+SpitDataImportsDataImporter* spit_data_imports_service_create_data_importer (SpitDataImportsService* self, SpitDataImportsPluginHost* host);
+void spit_data_imports_service_reserved0 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved0 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved1 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved1 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved2 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved2 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved3 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved3 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved4 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved4 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved5 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved5 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved6 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved6 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved7 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved7 (SpitDataImportsService* self);
+
+
+GQuark spit_data_imports_data_import_error_quark (void) {
+ return g_quark_from_static_string ("spit_data_imports_data_import_error-quark");
+}
+
+
+/**
+ * Returns a {@link Service} object describing the service to which this connects.
+ */
+SpitDataImportsService* spit_data_imports_data_importer_get_service (SpitDataImportsDataImporter* self) {
+#line 53 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self), NULL);
+#line 53 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->get_service (self);
+#line 434 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Makes this data importer enter the running state and endows it with exclusive access
+ * to the shared services provided by the {@link PluginHost}. Through the host’s interface,
+ * this data importer can install user interface panes and query configuration information.
+ */
+void spit_data_imports_data_importer_start (SpitDataImportsDataImporter* self) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 60 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->start (self);
+#line 448 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Returns true if this data importer is in the running state; false otherwise.
+ */
+gboolean spit_data_imports_data_importer_is_running (SpitDataImportsDataImporter* self) {
+#line 65 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self), FALSE);
+#line 65 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->is_running (self);
+#line 460 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Causes this data importer to enter a non-running state. This data importer should stop all
+ * data access operations and cease use of the shared services provided by the {@link PluginHost}.
+ */
+void spit_data_imports_data_importer_stop (SpitDataImportsDataImporter* self) {
+#line 71 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 71 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->stop (self);
+#line 473 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Causes this data importer to enter start the import of a library.
+ */
+void spit_data_imports_data_importer_on_library_selected (SpitDataImportsDataImporter* self, SpitDataImportsImportableLibrary* library) {
+#line 76 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 76 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->on_library_selected (self, library);
+#line 485 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Causes this data importer to enter start the import of a library file.
+ */
+void spit_data_imports_data_importer_on_file_selected (SpitDataImportsDataImporter* self, GFile* file) {
+#line 81 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 81 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->on_file_selected (self, file);
+#line 497 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved0 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved0 (SpitDataImportsDataImporter* self) {
+#line 86 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 86 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved0 (self);
+#line 510 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved1 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved1 (SpitDataImportsDataImporter* self) {
+#line 87 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 87 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved1 (self);
+#line 523 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved2 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved2 (SpitDataImportsDataImporter* self) {
+#line 88 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 88 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved2 (self);
+#line 536 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved3 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved3 (SpitDataImportsDataImporter* self) {
+#line 89 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 89 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved3 (self);
+#line 549 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved4 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved4 (SpitDataImportsDataImporter* self) {
+#line 90 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 90 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved4 (self);
+#line 562 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved5 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved5 (SpitDataImportsDataImporter* self) {
+#line 91 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 91 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved5 (self);
+#line 575 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved6 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved6 (SpitDataImportsDataImporter* self) {
+#line 92 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 92 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved6 (self);
+#line 588 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved7 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved7 (SpitDataImportsDataImporter* self) {
+#line 93 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 93 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved7 (self);
+#line 601 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_base_init (SpitDataImportsDataImporterIface * iface) {
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_data_importer_real_reserved0;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_data_importer_real_reserved1;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_data_importer_real_reserved2;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_data_importer_real_reserved3;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_data_importer_real_reserved4;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_data_importer_real_reserved5;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_data_importer_real_reserved6;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_data_importer_real_reserved7;
+#line 628 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents a module that is able to import data from a specific database format.
+ *
+ * Developers of data import plugins provide a class that implements this interface. At
+ * any given time, only one DataImporter can be running. When a data importer is running, it
+ * has exclusive use of the shared user-interface and
+ * configuration services provided by the {@link PluginHost}. Data importers are created in
+ * a non-running state and do not begin running until start( ) is invoked. Data importers
+ * run until stop( ) is invoked.
+ */
+GType spit_data_imports_data_importer_get_type (void) {
+ static volatile gsize spit_data_imports_data_importer_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_data_importer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDataImporterIface), (GBaseInitFunc) spit_data_imports_data_importer_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_data_importer_type_id;
+ spit_data_imports_data_importer_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsDataImporter", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_data_importer_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_data_importer_type_id__volatile, spit_data_imports_data_importer_type_id);
+ }
+ return spit_data_imports_data_importer_type_id__volatile;
+}
+
+
+gchar* spit_data_imports_importable_library_get_display_name (SpitDataImportsImportableLibrary* self) {
+#line 102 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_LIBRARY (self), NULL);
+#line 102 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_LIBRARY_GET_INTERFACE (self)->get_display_name (self);
+#line 661 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_library_base_init (SpitDataImportsImportableLibraryIface * iface) {
+#line 101 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 101 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 672 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents a library of importable media items.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_library_get_type (void) {
+ static volatile gsize spit_data_imports_importable_library_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_library_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableLibraryIface), (GBaseInitFunc) spit_data_imports_importable_library_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_library_type_id;
+ spit_data_imports_importable_library_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableLibrary", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_library_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_library_type_id__volatile, spit_data_imports_importable_library_type_id);
+ }
+ return spit_data_imports_importable_library_type_id__volatile;
+}
+
+
+SpitDataImportsImportableTag** spit_data_imports_importable_media_item_get_tags (SpitDataImportsImportableMediaItem* self, int* result_length1) {
+#line 111 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 111 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_tags (self, result_length1);
+#line 700 "DataImportsInterfaces.c"
+}
+
+
+SpitDataImportsImportableEvent* spit_data_imports_importable_media_item_get_event (SpitDataImportsImportableMediaItem* self) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 113 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_event (self);
+#line 709 "DataImportsInterfaces.c"
+}
+
+
+SpitDataImportsImportableRating* spit_data_imports_importable_media_item_get_rating (SpitDataImportsImportableMediaItem* self) {
+#line 115 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 115 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_rating (self);
+#line 718 "DataImportsInterfaces.c"
+}
+
+
+gchar* spit_data_imports_importable_media_item_get_title (SpitDataImportsImportableMediaItem* self) {
+#line 117 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 117 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_title (self);
+#line 727 "DataImportsInterfaces.c"
+}
+
+
+gchar* spit_data_imports_importable_media_item_get_folder_path (SpitDataImportsImportableMediaItem* self) {
+#line 119 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 119 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_folder_path (self);
+#line 736 "DataImportsInterfaces.c"
+}
+
+
+gchar* spit_data_imports_importable_media_item_get_filename (SpitDataImportsImportableMediaItem* self) {
+#line 121 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 121 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_filename (self);
+#line 745 "DataImportsInterfaces.c"
+}
+
+
+time_t* spit_data_imports_importable_media_item_get_exposure_time (SpitDataImportsImportableMediaItem* self) {
+#line 123 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 123 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_exposure_time (self);
+#line 754 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_media_item_base_init (SpitDataImportsImportableMediaItemIface * iface) {
+#line 110 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 110 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 110 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 765 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable media item such as a photo or a video file.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_media_item_get_type (void) {
+ static volatile gsize spit_data_imports_importable_media_item_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_media_item_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableMediaItemIface), (GBaseInitFunc) spit_data_imports_importable_media_item_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_media_item_type_id;
+ spit_data_imports_importable_media_item_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableMediaItem", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_media_item_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_media_item_type_id__volatile, spit_data_imports_importable_media_item_type_id);
+ }
+ return spit_data_imports_importable_media_item_type_id__volatile;
+}
+
+
+gchar* spit_data_imports_importable_tag_get_name (SpitDataImportsImportableTag* self) {
+#line 132 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG (self), NULL);
+#line 132 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_TAG_GET_INTERFACE (self)->get_name (self);
+#line 793 "DataImportsInterfaces.c"
+}
+
+
+SpitDataImportsImportableTag* spit_data_imports_importable_tag_get_parent (SpitDataImportsImportableTag* self) {
+#line 134 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG (self), NULL);
+#line 134 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_TAG_GET_INTERFACE (self)->get_parent (self);
+#line 802 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_tag_base_init (SpitDataImportsImportableTagIface * iface) {
+#line 131 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 131 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 131 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 813 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable tag.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_tag_get_type (void) {
+ static volatile gsize spit_data_imports_importable_tag_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_tag_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableTagIface), (GBaseInitFunc) spit_data_imports_importable_tag_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_tag_type_id;
+ spit_data_imports_importable_tag_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableTag", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_tag_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_tag_type_id__volatile, spit_data_imports_importable_tag_type_id);
+ }
+ return spit_data_imports_importable_tag_type_id__volatile;
+}
+
+
+gchar* spit_data_imports_importable_event_get_name (SpitDataImportsImportableEvent* self) {
+#line 143 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_EVENT (self), NULL);
+#line 143 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_EVENT_GET_INTERFACE (self)->get_name (self);
+#line 841 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_event_base_init (SpitDataImportsImportableEventIface * iface) {
+#line 142 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 142 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 142 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 852 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable event.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_event_get_type (void) {
+ static volatile gsize spit_data_imports_importable_event_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_event_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableEventIface), (GBaseInitFunc) spit_data_imports_importable_event_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_event_type_id;
+ spit_data_imports_importable_event_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableEvent", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_event_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_event_type_id__volatile, spit_data_imports_importable_event_type_id);
+ }
+ return spit_data_imports_importable_event_type_id__volatile;
+}
+
+
+gboolean spit_data_imports_importable_rating_is_unrated (SpitDataImportsImportableRating* self) {
+#line 155 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING (self), FALSE);
+#line 155 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE (self)->is_unrated (self);
+#line 880 "DataImportsInterfaces.c"
+}
+
+
+gboolean spit_data_imports_importable_rating_is_rejected (SpitDataImportsImportableRating* self) {
+#line 157 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING (self), FALSE);
+#line 157 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE (self)->is_rejected (self);
+#line 889 "DataImportsInterfaces.c"
+}
+
+
+gint spit_data_imports_importable_rating_get_value (SpitDataImportsImportableRating* self) {
+#line 159 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING (self), 0);
+#line 159 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE (self)->get_value (self);
+#line 898 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_rating_base_init (SpitDataImportsImportableRatingIface * iface) {
+#line 154 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 154 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 909 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable rating value.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ * Note that the value returned by the get_value method should be a value between
+ * 1 and 5, unless the rating object is unrated or rejected, in which case the
+ * value is unspecified.
+ */
+GType spit_data_imports_importable_rating_get_type (void) {
+ static volatile gsize spit_data_imports_importable_rating_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_rating_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableRatingIface), (GBaseInitFunc) spit_data_imports_importable_rating_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_rating_type_id;
+ spit_data_imports_importable_rating_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableRating", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_rating_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_rating_type_id__volatile, spit_data_imports_importable_rating_type_id);
+ }
+ return spit_data_imports_importable_rating_type_id__volatile;
+}
+
+
+/**
+ * Describes how the on-screen publishing dialog box should look and behave when an associated
+ * pane is installed in the on-screen publishing dialog box.
+ */
+GType spit_data_imports_dialog_pane_geometry_options_get_type (void) {
+ static volatile gsize spit_data_imports_dialog_pane_geometry_options_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_dialog_pane_geometry_options_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE", "none"}, {SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE", "extended-size"}, {SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE", "resizable"}, {SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE", "colossal-size"}, {0, NULL, NULL}};
+ GType spit_data_imports_dialog_pane_geometry_options_type_id;
+ spit_data_imports_dialog_pane_geometry_options_type_id = g_enum_register_static ("SpitDataImportsDialogPaneGeometryOptions", values);
+ g_once_init_leave (&spit_data_imports_dialog_pane_geometry_options_type_id__volatile, spit_data_imports_dialog_pane_geometry_options_type_id);
+ }
+ return spit_data_imports_dialog_pane_geometry_options_type_id__volatile;
+}
+
+
+/**
+ * Returns the Gtk.Widget that is this pane's on-screen representation.
+ */
+GtkWidget* spit_data_imports_dialog_pane_get_widget (SpitDataImportsDialogPane* self) {
+#line 204 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self), NULL);
+#line 204 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->get_widget (self);
+#line 959 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Returns a {@link GeometryOptions} bitfield describing how the on-screen publishing dialog
+ * box should look and behave when this pane is installed.
+ */
+SpitDataImportsDialogPaneGeometryOptions spit_data_imports_dialog_pane_get_preferred_geometry (SpitDataImportsDialogPane* self) {
+#line 210 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self), 0);
+#line 210 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->get_preferred_geometry (self);
+#line 972 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been installed into the on-screen
+ * publishing dialog box and become visible to the user.
+ */
+void spit_data_imports_dialog_pane_on_pane_installed (SpitDataImportsDialogPane* self) {
+#line 216 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 216 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->on_pane_installed (self);
+#line 985 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been removed from the on-screen
+ * publishing dialog box and is no longer visible to the user.
+ */
+void spit_data_imports_dialog_pane_on_pane_uninstalled (SpitDataImportsDialogPane* self) {
+#line 222 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 222 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->on_pane_uninstalled (self);
+#line 998 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved0 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved0 (SpitDataImportsDialogPane* self) {
+#line 227 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 227 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved0 (self);
+#line 1011 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved1 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved1 (SpitDataImportsDialogPane* self) {
+#line 228 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 228 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved1 (self);
+#line 1024 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved2 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved2 (SpitDataImportsDialogPane* self) {
+#line 229 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 229 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved2 (self);
+#line 1037 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved3 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved3 (SpitDataImportsDialogPane* self) {
+#line 230 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 230 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved3 (self);
+#line 1050 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved4 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved4 (SpitDataImportsDialogPane* self) {
+#line 231 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 231 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved4 (self);
+#line 1063 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved5 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved5 (SpitDataImportsDialogPane* self) {
+#line 232 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 232 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved5 (self);
+#line 1076 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved6 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved6 (SpitDataImportsDialogPane* self) {
+#line 233 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 233 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved6 (self);
+#line 1089 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved7 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved7 (SpitDataImportsDialogPane* self) {
+#line 234 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 234 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved7 (self);
+#line 1102 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_base_init (SpitDataImportsDialogPaneIface * iface) {
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_dialog_pane_real_reserved0;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_dialog_pane_real_reserved1;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_dialog_pane_real_reserved2;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_dialog_pane_real_reserved3;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_dialog_pane_real_reserved4;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_dialog_pane_real_reserved5;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_dialog_pane_real_reserved6;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_dialog_pane_real_reserved7;
+#line 1129 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Encapsulates a pane that can be installed in the on-screen import dialog box to
+ * communicate status to and to get information from the user.
+ *
+ */
+GType spit_data_imports_dialog_pane_get_type (void) {
+ static volatile gsize spit_data_imports_dialog_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_dialog_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDialogPaneIface), (GBaseInitFunc) spit_data_imports_dialog_pane_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_dialog_pane_type_id;
+ spit_data_imports_dialog_pane_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsDialogPane", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_dialog_pane_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_dialog_pane_type_id__volatile, spit_data_imports_dialog_pane_type_id);
+ }
+ return spit_data_imports_dialog_pane_type_id__volatile;
+}
+
+
+/**
+ * Specifies the label text on the push button control that appears in the
+ * lower-right-hand corner of the on-screen publishing dialog box.
+ */
+GType spit_data_imports_plugin_host_button_mode_get_type (void) {
+ static volatile gsize spit_data_imports_plugin_host_button_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_plugin_host_button_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE, "SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE", "close"}, {SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL, "SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL", "cancel"}, {0, NULL, NULL}};
+ GType spit_data_imports_plugin_host_button_mode_type_id;
+ spit_data_imports_plugin_host_button_mode_type_id = g_enum_register_static ("SpitDataImportsPluginHostButtonMode", values);
+ g_once_init_leave (&spit_data_imports_plugin_host_button_mode_type_id__volatile, spit_data_imports_plugin_host_button_mode_type_id);
+ }
+ return spit_data_imports_plugin_host_button_mode_type_id__volatile;
+}
+
+
+/**
+ * Notifies the user that an unrecoverable import error has occurred and halts
+ * the import process.
+ *
+ * @param err An error object that describes the kind of error that occurred.
+ */
+void spit_data_imports_plugin_host_post_error (SpitDataImportsPluginHost* self, GError* err) {
+#line 271 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 271 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->post_error (self, err);
+#line 1179 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Notifies the user that an unrecoverable import error has occurred and halts
+ * the import process.
+ *
+ * @param msg A message that describes the kind of error that occurred.
+ */
+void spit_data_imports_plugin_host_post_error_message (SpitDataImportsPluginHost* self, const gchar* msg) {
+#line 279 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 279 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->post_error_message (self, msg);
+#line 1194 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Starts the import process.
+ *
+ * Calling this method starts the import activity for this host.
+ */
+void spit_data_imports_plugin_host_start_importing (SpitDataImportsPluginHost* self) {
+#line 286 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 286 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->start_importing (self);
+#line 1208 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Halts the import process.
+ *
+ * Calling this method stops all import activity and hides the on-screen import
+ * dialog box.
+ */
+void spit_data_imports_plugin_host_stop_importing (SpitDataImportsPluginHost* self) {
+#line 294 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 294 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->stop_importing (self);
+#line 1223 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Returns a reference to the {@link DataImporter} object that this is currently hosting.
+ */
+SpitDataImportsDataImporter* spit_data_imports_plugin_host_get_data_importer (SpitDataImportsPluginHost* self) {
+#line 299 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self), NULL);
+#line 299 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->get_data_importer (self);
+#line 1235 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen data import dialog box, making the pane visible
+ * and allowing it to interact with the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param pane the pane to install
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen data import dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your importer is in the
+ * middle of processing 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the processing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable actions have already
+ * occurred.
+ */
+void spit_data_imports_plugin_host_install_dialog_pane (SpitDataImportsPluginHost* self, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode mode) {
+#line 319 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 319 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_dialog_pane (self, pane, mode);
+#line 1262 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen data import dialog box that contains
+ * static text.
+ *
+ * The text appears centered in the data import dialog box and is drawn in
+ * the system font. This is a convenience method only; similar results could be
+ * achieved by manually constructing a Gtk.Label widget, wrapping it inside a
+ * {@link DialogPane}, and installing it manually with a call to
+ * install_dialog_pane( ). To provide visual consistency across data import services,
+ * however, always use this convenience method instead of constructing label panes when
+ * you need to display static text to the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param message the text to show in the pane
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen data import dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your importer is in the
+ * middle of processing 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the processing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable actions have already
+ * occurred.
+ */
+void spit_data_imports_plugin_host_install_static_message_pane (SpitDataImportsPluginHost* self, const gchar* message, SpitDataImportsPluginHostButtonMode mode) {
+#line 348 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 348 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_static_message_pane (self, message, mode);
+#line 1297 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a library selection pane that presents a list of
+ * discovered libraries to the user.
+ *
+ * When the user clicks the “OK” button, you’ll be notified of the user’s action through
+ * the 'on_library_selected' callback if a discovered library was selected or through
+ * the 'on_file_selected' callback if a file was selected.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param welcome_message the text to be displayed above the list of discovered
+ * libraries.
+ *
+ * @param discovered_libraries the list of importable libraries that the plugin
+ * has discovered in well known locations.
+ *
+ * @param file_select_label the label to display for the file selection
+ * option. If this label is null, the
+ * user will not be presented with a file selection option.
+ */
+void spit_data_imports_plugin_host_install_library_selection_pane (SpitDataImportsPluginHost* self, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label) {
+#line 371 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 371 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_library_selection_pane (self, welcome_message, discovered_libraries, discovered_libraries_length1, file_select_label);
+#line 1326 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a progress pane that provides the user with feedback
+ * on import preparation.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param message the text to be displayed above the progress bar.
+ */
+void spit_data_imports_plugin_host_install_import_progress_pane (SpitDataImportsPluginHost* self, const gchar* message) {
+#line 385 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 385 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_import_progress_pane (self, message);
+#line 1343 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Update the progress bar installed by install_import_progress_pane.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param progress a value between 0.0 and 1.0 identifying progress for the
+ * plugin.
+ *
+ * @param progress_label the text to be displayed below the progress bar. If that
+ * parameter is null, the message will be left unchanged.
+ */
+void spit_data_imports_plugin_host_update_import_progress_pane (SpitDataImportsPluginHost* self, gdouble progress, const gchar* progress_message) {
+#line 400 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 400 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->update_import_progress_pane (self, progress, progress_message);
+#line 1363 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Sends an importable media item to the host in order to prepare it for import
+ * and update the progress bar installed by install_import_progress_pane.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param item the importable media item to prepare for import.
+ *
+ * @param progress a value between 0.0 and 1.0 identifying progress for the
+ * plugin.
+ *
+ * @param host_progress_delta the amount of progress the host should update
+ * the progress bar during import preparation. Plugins should ensure that
+ * a proportion of progress for each media item is set aside for the host
+ * in oder to ensure a smoother update to the progress bar.
+ *
+ * @param progress_message the text to be displayed below the progress bar. If that
+ * parameter is null, the message will be left unchanged.
+ */
+void spit_data_imports_plugin_host_prepare_media_items_for_import (SpitDataImportsPluginHost* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message) {
+#line 424 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 424 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->prepare_media_items_for_import (self, items, items_length1, progress, host_progress_delta, progress_message);
+#line 1391 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Finalize the import sequence for the plugin. This tells the host that
+ * all media items have been processed and that the plugin has finished all
+ * import work. Once this method has been called, all resources used by the
+ * plugin for import should be released and the plugin should be back to the
+ * state it had just after running the start method. The host will then display
+ * the final message and show progress as fully complete. In a standard import
+ * scenario, the user is expected to click the Close button to dismiss the
+ * dialog. On first run, the host may call the LibrarySelectedCallback again
+ * to import another library handled by the same plugin.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param finalize_message the text to be displayed below the progress bar. If that
+ * parameter is null, the message will be left unchanged.
+ */
+void spit_data_imports_plugin_host_finalize_import (SpitDataImportsPluginHost* self, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message) {
+#line 447 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 447 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->finalize_import (self, report_imported_items_count, report_imported_items_count_target, finalize_message);
+#line 1416 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved0 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved0 (SpitDataImportsPluginHost* self) {
+#line 455 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 455 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved0 (self);
+#line 1429 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved1 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved1 (SpitDataImportsPluginHost* self) {
+#line 456 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 456 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved1 (self);
+#line 1442 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved2 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved2 (SpitDataImportsPluginHost* self) {
+#line 457 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 457 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved2 (self);
+#line 1455 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved3 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved3 (SpitDataImportsPluginHost* self) {
+#line 458 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 458 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved3 (self);
+#line 1468 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved4 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved4 (SpitDataImportsPluginHost* self) {
+#line 459 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 459 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved4 (self);
+#line 1481 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved5 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved5 (SpitDataImportsPluginHost* self) {
+#line 460 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 460 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved5 (self);
+#line 1494 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved6 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved6 (SpitDataImportsPluginHost* self) {
+#line 461 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 461 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved6 (self);
+#line 1507 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved7 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved7 (SpitDataImportsPluginHost* self) {
+#line 462 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 462 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved7 (self);
+#line 1520 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_base_init (SpitDataImportsPluginHostIface * iface) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_plugin_host_real_reserved0;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_plugin_host_real_reserved1;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_plugin_host_real_reserved2;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_plugin_host_real_reserved3;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_plugin_host_real_reserved4;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_plugin_host_real_reserved5;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_plugin_host_real_reserved6;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_plugin_host_real_reserved7;
+#line 1547 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Manages and provides services for data import plugins.
+ *
+ * Implemented inside Shotwell, the PluginHost provides an interface through which the
+ * developers of data import plugins can query and make changes to the import
+ * environment. Plugins can use the services of the PluginHost only when their
+ * {@link DataImporter} is in the running state. This ensures that non-running data importers
+ * don’t destructively interfere with the actively running importer.
+ */
+GType spit_data_imports_plugin_host_get_type (void) {
+ static volatile gsize spit_data_imports_plugin_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_plugin_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsPluginHostIface), (GBaseInitFunc) spit_data_imports_plugin_host_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_plugin_host_type_id;
+ spit_data_imports_plugin_host_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsPluginHost", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_plugin_host_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_data_imports_plugin_host_type_id, SPIT_TYPE_HOST_INTERFACE);
+ g_once_init_leave (&spit_data_imports_plugin_host_type_id__volatile, spit_data_imports_plugin_host_type_id);
+ }
+ return spit_data_imports_plugin_host_type_id__volatile;
+}
+
+
+/**
+ * A factory method that instantiates and returns a new {@link DataImporter} object
+ * that this Service describes.
+ */
+SpitDataImportsDataImporter* spit_data_imports_service_create_data_importer (SpitDataImportsService* self, SpitDataImportsPluginHost* host) {
+#line 475 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self), NULL);
+#line 475 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->create_data_importer (self, host);
+#line 1584 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved0 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved0 (SpitDataImportsService* self) {
+#line 480 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 480 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved0 (self);
+#line 1597 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved1 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved1 (SpitDataImportsService* self) {
+#line 481 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 481 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved1 (self);
+#line 1610 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved2 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved2 (SpitDataImportsService* self) {
+#line 482 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 482 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved2 (self);
+#line 1623 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved3 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved3 (SpitDataImportsService* self) {
+#line 483 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 483 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved3 (self);
+#line 1636 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved4 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved4 (SpitDataImportsService* self) {
+#line 484 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 484 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved4 (self);
+#line 1649 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved5 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved5 (SpitDataImportsService* self) {
+#line 485 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 485 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved5 (self);
+#line 1662 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved6 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved6 (SpitDataImportsService* self) {
+#line 486 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 486 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved6 (self);
+#line 1675 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved7 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved7 (SpitDataImportsService* self) {
+#line 487 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 487 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved7 (self);
+#line 1688 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_base_init (SpitDataImportsServiceIface * iface) {
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_service_real_reserved0;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_service_real_reserved1;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_service_real_reserved2;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_service_real_reserved3;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_service_real_reserved4;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_service_real_reserved5;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_service_real_reserved6;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_service_real_reserved7;
+#line 1715 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Describes the features and capabilities of a data import service.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_service_get_type (void) {
+ static volatile gsize spit_data_imports_service_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_service_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsServiceIface), (GBaseInitFunc) spit_data_imports_service_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_service_type_id;
+ spit_data_imports_service_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsService", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_service_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_data_imports_service_type_id, SPIT_TYPE_PLUGGABLE);
+ g_once_init_leave (&spit_data_imports_service_type_id__volatile, spit_data_imports_service_type_id);
+ }
+ return spit_data_imports_service_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/ManifestWidget.c b/src/plugins/ManifestWidget.c
new file mode 100644
index 0000000..e09267a
--- /dev/null
+++ b/src/plugins/ManifestWidget.c
@@ -0,0 +1,2253 @@
+/* ManifestWidget.c generated by valac 0.32.1, the Vala compiler
+ * generated from ManifestWidget.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <gdk/gdk.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR (plugins_manifest_widget_mediator_get_type ())
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator))
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
+#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
+#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
+
+typedef struct _PluginsManifestWidgetMediator PluginsManifestWidgetMediator;
+typedef struct _PluginsManifestWidgetMediatorClass PluginsManifestWidgetMediatorClass;
+typedef struct _PluginsManifestWidgetMediatorPrivate PluginsManifestWidgetMediatorPrivate;
+
+#define PLUGINS_TYPE_MANIFEST_LIST_VIEW (plugins_manifest_list_view_get_type ())
+#define PLUGINS_MANIFEST_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView))
+#define PLUGINS_MANIFEST_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewClass))
+#define PLUGINS_IS_MANIFEST_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW))
+#define PLUGINS_IS_MANIFEST_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_LIST_VIEW))
+#define PLUGINS_MANIFEST_LIST_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewClass))
+
+typedef struct _PluginsManifestListView PluginsManifestListView;
+typedef struct _PluginsManifestListViewClass PluginsManifestListViewClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _PluginsParamSpecManifestWidgetMediator PluginsParamSpecManifestWidgetMediator;
+typedef struct _PluginsManifestListViewPrivate PluginsManifestListViewPrivate;
+
+#define PLUGINS_MANIFEST_LIST_VIEW_TYPE_COLUMN (plugins_manifest_list_view_column_get_type ())
+
+#define PLUGINS_TYPE_EXTENSION_POINT (plugins_extension_point_get_type ())
+#define PLUGINS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint))
+#define PLUGINS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+#define PLUGINS_IS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_IS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_EXTENSION_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+
+typedef struct _PluginsExtensionPoint PluginsExtensionPoint;
+typedef struct _PluginsExtensionPointClass PluginsExtensionPointClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _gtk_icon_info_free0(var) ((var == NULL) ? NULL : (var = (gtk_icon_info_free (var), NULL)))
+#define _plugins_extension_point_unref0(var) ((var == NULL) ? NULL : (var = (plugins_extension_point_unref (var), NULL)))
+#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
+#define __g_list_free__gtk_tree_path_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__gtk_tree_path_free0_ (var), NULL)))
+
+struct _PluginsManifestWidgetMediator {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsManifestWidgetMediatorPrivate * priv;
+};
+
+struct _PluginsManifestWidgetMediatorClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsManifestWidgetMediator *self);
+};
+
+struct _PluginsManifestWidgetMediatorPrivate {
+ GtkBuilder* builder;
+ PluginsManifestListView* list;
+};
+
+struct _PluginsParamSpecManifestWidgetMediator {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsManifestListView {
+ GtkTreeView parent_instance;
+ PluginsManifestListViewPrivate * priv;
+};
+
+struct _PluginsManifestListViewClass {
+ GtkTreeViewClass parent_class;
+};
+
+struct _PluginsManifestListViewPrivate {
+ GtkTreeStore* store;
+};
+
+typedef enum {
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS
+} PluginsManifestListViewColumn;
+
+
+static gpointer plugins_manifest_widget_mediator_parent_class = NULL;
+static gpointer plugins_manifest_list_view_parent_class = NULL;
+
+gpointer plugins_manifest_widget_mediator_ref (gpointer instance);
+void plugins_manifest_widget_mediator_unref (gpointer instance);
+GParamSpec* plugins_param_spec_manifest_widget_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_manifest_widget_mediator (GValue* value, gpointer v_object);
+void plugins_value_take_manifest_widget_mediator (GValue* value, gpointer v_object);
+gpointer plugins_value_get_manifest_widget_mediator (const GValue* value);
+GType plugins_manifest_widget_mediator_get_type (void) G_GNUC_CONST;
+GType plugins_manifest_list_view_get_type (void) G_GNUC_CONST;
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorPrivate))
+enum {
+ PLUGINS_MANIFEST_WIDGET_MEDIATOR_DUMMY_PROPERTY
+};
+static GtkButton* plugins_manifest_widget_mediator_get_about_button (PluginsManifestWidgetMediator* self);
+static void plugins_manifest_widget_mediator_on_about (PluginsManifestWidgetMediator* self);
+static void _plugins_manifest_widget_mediator_on_about_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void plugins_manifest_widget_mediator_on_selection_changed (PluginsManifestWidgetMediator* self);
+static void _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+PluginsManifestListView* plugins_manifest_list_view_new (void);
+PluginsManifestListView* plugins_manifest_list_view_construct (GType object_type);
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_new (void);
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_construct (GType object_type);
+static GtkScrolledWindow* plugins_manifest_widget_mediator_get_list_bin (PluginsManifestWidgetMediator* self);
+static void plugins_manifest_widget_mediator_set_about_button_sensitivity (PluginsManifestWidgetMediator* self);
+gchar** plugins_manifest_list_view_get_selected_ids (PluginsManifestListView* self, int* result_length1);
+gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info);
+gboolean is_string_empty (const gchar* s);
+static void _vala_array_add49 (gchar*** array, int* length, int* size, gchar* value);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_GENERIC_PLUGIN "generic-plugin.png"
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+gchar* plugins_get_pluggable_name (const gchar* id);
+GtkWidget* plugins_manifest_widget_mediator_get_widget (PluginsManifestWidgetMediator* self);
+static void plugins_manifest_widget_mediator_finalize (PluginsManifestWidgetMediator* obj);
+#define PLUGINS_MANIFEST_LIST_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewPrivate))
+enum {
+ PLUGINS_MANIFEST_LIST_VIEW_DUMMY_PROPERTY
+};
+static GType plugins_manifest_list_view_column_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE 24
+#define PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING 6
+#define PLUGINS_MANIFEST_LIST_VIEW_ICON_Y_PADDING 2
+GtkIconTheme* resources_get_icon_theme_engine (void);
+gpointer plugins_extension_point_ref (gpointer instance);
+void plugins_extension_point_unref (gpointer instance);
+GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_extension_point (GValue* value, gpointer v_object);
+void plugins_value_take_extension_point (GValue* value, gpointer v_object);
+gpointer plugins_value_get_extension_point (const GValue* value);
+GType plugins_extension_point_get_type (void) G_GNUC_CONST;
+GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gint plugins_compare_extension_point_names (void* a, void* b);
+static gint _plugins_compare_extension_point_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self);
+const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self);
+gint plugins_compare_pluggable_names (void* a, void* b);
+static gint _plugins_compare_pluggable_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled);
+static gchar* plugins_manifest_list_view_get_id_at_path (PluginsManifestListView* self, GtkTreePath* path, GtkTreeIter* iter);
+static void _vala_array_add50 (gchar*** array, int* length, int* size, gchar* value);
+static void _gtk_tree_path_free0_ (gpointer var);
+static void _g_list_free__gtk_tree_path_free0_ (GList* self);
+static gboolean plugins_manifest_list_view_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled);
+static void plugins_manifest_list_view_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+static void _plugins_manifest_widget_mediator_on_about_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_on_about ((PluginsManifestWidgetMediator*) self);
+#line 187 "ManifestWidget.c"
+}
+
+
+static void _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) {
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_on_selection_changed ((PluginsManifestWidgetMediator*) self);
+#line 194 "ManifestWidget.c"
+}
+
+
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_construct (GType object_type) {
+ PluginsManifestWidgetMediator* self = NULL;
+ GtkScrolledWindow* _tmp0_ = NULL;
+ GtkScrolledWindow* _tmp1_ = NULL;
+ PluginsManifestListView* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ PluginsManifestListView* _tmp5_ = NULL;
+ GtkTreeSelection* _tmp6_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = (PluginsManifestWidgetMediator*) g_type_create_instance (object_type);
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = plugins_manifest_widget_mediator_get_list_bin (self);
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = _tmp0_;
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = self->priv->list;
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_scrolled_window_add_with_viewport (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 34 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = plugins_manifest_widget_mediator_get_about_button (self);
+#line 34 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = _tmp3_;
+#line 34 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_connect (_tmp4_, "clicked", (GCallback) _plugins_manifest_widget_mediator_on_about_gtk_button_clicked, self);
+#line 35 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = self->priv->list;
+#line 35 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_tree_view_get_type (), GtkTreeView));
+#line 35 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_connect (_tmp6_, "changed", (GCallback) _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed, self);
+#line 37 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_set_about_button_sensitivity (self);
+#line 31 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self;
+#line 233 "ManifestWidget.c"
+}
+
+
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_new (void) {
+#line 31 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return plugins_manifest_widget_mediator_construct (PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR);
+#line 240 "ManifestWidget.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 263 "ManifestWidget.c"
+}
+
+
+static void _vala_array_add49 (gchar*** array, int* length, int* size, gchar* value) {
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if ((*length) == (*size)) {
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 274 "ManifestWidget.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[(*length)++] = value;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[*length] = NULL;
+#line 280 "ManifestWidget.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 287 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_on_about (PluginsManifestWidgetMediator* self) {
+ gchar** ids = NULL;
+ PluginsManifestListView* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* id = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ SpitPluggableInfo info = {0};
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar** authors = NULL;
+ gint authors_length1 = 0;
+ gint _authors_size_ = 0;
+ SpitPluggableInfo _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ GtkAboutDialog* about_dialog = NULL;
+ GtkAboutDialog* _tmp31_ = NULL;
+ GtkAboutDialog* _tmp32_ = NULL;
+ gchar** _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ GtkAboutDialog* _tmp34_ = NULL;
+ SpitPluggableInfo _tmp35_ = {0};
+ const gchar* _tmp36_ = NULL;
+ GtkAboutDialog* _tmp37_ = NULL;
+ SpitPluggableInfo _tmp38_ = {0};
+ const gchar* _tmp39_ = NULL;
+ GtkAboutDialog* _tmp40_ = NULL;
+ SpitPluggableInfo _tmp41_ = {0};
+ const gchar* _tmp42_ = NULL;
+ GtkAboutDialog* _tmp43_ = NULL;
+ SpitPluggableInfo _tmp44_ = {0};
+ gboolean _tmp45_ = FALSE;
+ GdkPixbuf* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+ SpitPluggableInfo _tmp48_ = {0};
+ GdkPixbuf** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ GtkAboutDialog* _tmp57_ = NULL;
+ GtkAboutDialog* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ GtkAboutDialog* _tmp62_ = NULL;
+ SpitPluggableInfo _tmp63_ = {0};
+ const gchar* _tmp64_ = NULL;
+ GtkAboutDialog* _tmp65_ = NULL;
+ SpitPluggableInfo _tmp66_ = {0};
+ const gchar* _tmp67_ = NULL;
+ GtkAboutDialog* _tmp68_ = NULL;
+ SpitPluggableInfo _tmp69_ = {0};
+ const gchar* _tmp70_ = NULL;
+ GtkAboutDialog* _tmp71_ = NULL;
+ SpitPluggableInfo _tmp72_ = {0};
+ const gchar* _tmp73_ = NULL;
+ GtkAboutDialog* _tmp74_ = NULL;
+ GtkAboutDialog* _tmp75_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self));
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->list;
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = plugins_manifest_list_view_get_selected_ids (_tmp0_, &_tmp1_);
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids_length1 = _tmp1_;
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _ids_size_ = ids_length1;
+#line 47 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = ids;
+#line 47 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3__length1 = ids_length1;
+#line 47 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp3__length1 == 0) {
+#line 48 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 48 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return;
+#line 376 "ManifestWidget.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = ids;
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4__length1 = ids_length1;
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = _tmp4_[0];
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ id = _tmp6_;
+#line 52 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ memset (&info, 0, sizeof (SpitPluggableInfo));
+#line 53 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = id;
+#line 53 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = plugins_get_pluggable_info (_tmp7_, &info);
+#line 53 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp8_) {
+#line 396 "ManifestWidget.c"
+ const gchar* _tmp9_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = id;
+#line 54 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_warning ("ManifestWidget.vala:54: Unable to retrieve information for plugin %s", _tmp9_);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_info_destroy (&info);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return;
+#line 410 "ManifestWidget.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = NULL;
+#line 61 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors_length1 = 0;
+#line 61 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _authors_size_ = authors_length1;
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = info;
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = _tmp10_.authors;
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp11_ != NULL) {
+#line 424 "ManifestWidget.c"
+ gchar** split = NULL;
+ SpitPluggableInfo _tmp12_ = {0};
+ const gchar* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint split_length1 = 0;
+ gint _split_size_ = 0;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = info;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp13_ = _tmp12_.authors;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp15_ = _tmp14_ = g_strsplit (_tmp13_, ",", 0);
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ split = _tmp15_;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ split_length1 = _vala_array_length (_tmp14_);
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _split_size_ = split_length1;
+#line 444 "ManifestWidget.c"
+ {
+ gint ctr = 0;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ctr = 0;
+#line 449 "ManifestWidget.c"
+ {
+ gboolean _tmp16_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = TRUE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ while (TRUE) {
+#line 456 "ManifestWidget.c"
+ gint _tmp18_ = 0;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gchar* stripped = NULL;
+ gchar** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint _tmp21_ = 0;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp16_) {
+#line 470 "ManifestWidget.c"
+ gint _tmp17_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp17_ = ctr;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ctr = _tmp17_ + 1;
+#line 476 "ManifestWidget.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp18_ = ctr;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19_ = split;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19__length1 = split_length1;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!(_tmp18_ < _tmp19__length1)) {
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ break;
+#line 490 "ManifestWidget.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20_ = split;
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20__length1 = split_length1;
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp21_ = ctr;
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp22_ = _tmp20_[_tmp21_];
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp23_ = string_strip (_tmp22_);
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ stripped = _tmp23_;
+#line 66 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp24_ = stripped;
+#line 66 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp25_ = is_string_empty (_tmp24_);
+#line 66 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp25_) {
+#line 510 "ManifestWidget.c"
+ gchar** _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26_ = authors;
+#line 67 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26__length1 = authors_length1;
+#line 67 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp26_ == NULL) {
+#line 523 "ManifestWidget.c"
+ gchar** _tmp27_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp27_ = g_new0 (gchar*, 0 + 1);
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = _tmp27_;
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors_length1 = 0;
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _authors_size_ = authors_length1;
+#line 535 "ManifestWidget.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28_ = authors;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28__length1 = authors_length1;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp29_ = stripped;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _vala_array_add49 (&authors, &authors_length1, &_authors_size_, _tmp30_);
+#line 547 "ManifestWidget.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (stripped);
+#line 551 "ManifestWidget.c"
+ }
+ }
+ }
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL);
+#line 557 "ManifestWidget.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp31_ = (GtkAboutDialog*) gtk_about_dialog_new ();
+#line 75 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp31_);
+#line 75 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ about_dialog = _tmp31_;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp32_ = about_dialog;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33_ = authors;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33__length1 = authors_length1;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_authors (_tmp32_, _tmp33_);
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp34_ = about_dialog;
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp35_ = info;
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp36_ = _tmp35_.brief_description;
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_comments (_tmp34_, _tmp36_);
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp37_ = about_dialog;
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp38_ = info;
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp39_ = _tmp38_.copyright;
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_copyright (_tmp37_, _tmp39_);
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp40_ = about_dialog;
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp41_ = info;
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp42_ = _tmp41_.license;
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_license (_tmp40_, _tmp42_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp43_ = about_dialog;
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp44_ = info;
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp45_ = _tmp44_.is_license_wordwrapped;
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_wrap_license (_tmp43_, _tmp45_);
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp48_ = info;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp49_ = _tmp48_.icons;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp49__length1 = _tmp48_.icons_length1;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp49_ != NULL) {
+#line 613 "ManifestWidget.c"
+ SpitPluggableInfo _tmp50_ = {0};
+ GdkPixbuf** _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp50_ = info;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp51_ = _tmp50_.icons;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp51__length1 = _tmp50_.icons_length1;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp47_ = _tmp51__length1 > 0;
+#line 625 "ManifestWidget.c"
+ } else {
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp47_ = FALSE;
+#line 629 "ManifestWidget.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp47_) {
+#line 633 "ManifestWidget.c"
+ SpitPluggableInfo _tmp52_ = {0};
+ GdkPixbuf** _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ GdkPixbuf* _tmp54_ = NULL;
+ GdkPixbuf* _tmp55_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp52_ = info;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp53_ = _tmp52_.icons;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp53__length1 = _tmp52_.icons_length1;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp54_ = _tmp53_[0];
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp55_ = _g_object_ref0 (_tmp54_);
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp46_ = _tmp55_;
+#line 653 "ManifestWidget.c"
+ } else {
+ GdkPixbuf* _tmp56_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp56_ = resources_get_icon (RESOURCES_ICON_GENERIC_PLUGIN, RESOURCES_DEFAULT_ICON_SCALE);
+#line 82 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 82 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp46_ = _tmp56_;
+#line 662 "ManifestWidget.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp57_ = about_dialog;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_logo (_tmp57_, _tmp46_);
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp58_ = about_dialog;
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp59_ = id;
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp60_ = plugins_get_pluggable_name (_tmp59_);
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp61_ = _tmp60_;
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_program_name (_tmp58_, _tmp61_);
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (_tmp61_);
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp62_ = about_dialog;
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp63_ = info;
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp64_ = _tmp63_.translators;
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_translator_credits (_tmp62_, _tmp64_);
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp65_ = about_dialog;
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp66_ = info;
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp67_ = _tmp66_.version;
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_version (_tmp65_, _tmp67_);
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp68_ = about_dialog;
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp69_ = info;
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp70_ = _tmp69_.website_url;
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_website (_tmp68_, _tmp70_);
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp71_ = about_dialog;
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp72_ = info;
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp73_ = _tmp72_.website_name;
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_website_label (_tmp71_, _tmp73_);
+#line 89 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp74_ = about_dialog;
+#line 89 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, gtk_dialog_get_type (), GtkDialog));
+#line 91 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp75_ = about_dialog;
+#line 91 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_widget_get_type (), GtkWidget));
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (about_dialog);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_info_destroy (&info);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 732 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_on_selection_changed (PluginsManifestWidgetMediator* self) {
+#line 94 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self));
+#line 95 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_set_about_button_sensitivity (self);
+#line 741 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_set_about_button_sensitivity (PluginsManifestWidgetMediator* self) {
+ gchar** ids = NULL;
+ PluginsManifestListView* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ GtkButton* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self));
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->list;
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = plugins_manifest_list_view_get_selected_ids (_tmp0_, &_tmp1_);
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids_length1 = _tmp1_;
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _ids_size_ = ids_length1;
+#line 104 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = plugins_manifest_widget_mediator_get_about_button (self);
+#line 104 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = _tmp3_;
+#line 104 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), ids_length1 == 1);
+#line 98 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 774 "ManifestWidget.c"
+}
+
+
+GtkWidget* plugins_manifest_widget_mediator_get_widget (PluginsManifestWidgetMediator* self) {
+ GtkWidget* result;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self), NULL);
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->builder;
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "plugin-manifest");
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_widget_get_type ()) ? ((GtkWidget*) _tmp1_) : NULL;
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 792 "ManifestWidget.c"
+}
+
+
+static GtkButton* plugins_manifest_widget_mediator_get_about_button (PluginsManifestWidgetMediator* self) {
+ GtkButton* result;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self), NULL);
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->builder;
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "about-plugin-button");
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_button_get_type ()) ? ((GtkButton*) _tmp1_) : NULL;
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 810 "ManifestWidget.c"
+}
+
+
+static GtkScrolledWindow* plugins_manifest_widget_mediator_get_list_bin (PluginsManifestWidgetMediator* self) {
+ GtkScrolledWindow* result;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self), NULL);
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->builder;
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "plugin-list-scrolled-window");
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_scrolled_window_get_type ()) ? ((GtkScrolledWindow*) _tmp1_) : NULL;
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 828 "ManifestWidget.c"
+}
+
+
+static void plugins_value_manifest_widget_mediator_init (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 835 "ManifestWidget.c"
+}
+
+
+static void plugins_value_manifest_widget_mediator_free_value (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_unref (value->data[0].v_pointer);
+#line 844 "ManifestWidget.c"
+ }
+}
+
+
+static void plugins_value_manifest_widget_mediator_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (src_value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ dest_value->data[0].v_pointer = plugins_manifest_widget_mediator_ref (src_value->data[0].v_pointer);
+#line 854 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 858 "ManifestWidget.c"
+ }
+}
+
+
+static gpointer plugins_value_manifest_widget_mediator_peek_pointer (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return value->data[0].v_pointer;
+#line 866 "ManifestWidget.c"
+}
+
+
+static gchar* plugins_value_manifest_widget_mediator_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (collect_values[0].v_pointer) {
+#line 873 "ManifestWidget.c"
+ PluginsManifestWidgetMediator* object;
+ object = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 880 "ManifestWidget.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.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 884 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = plugins_manifest_widget_mediator_ref (object);
+#line 888 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 892 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return NULL;
+#line 896 "ManifestWidget.c"
+}
+
+
+static gchar* plugins_value_manifest_widget_mediator_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsManifestWidgetMediator** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!object_p) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 907 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *object_p = NULL;
+#line 913 "ManifestWidget.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *object_p = value->data[0].v_pointer;
+#line 917 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *object_p = plugins_manifest_widget_mediator_ref (value->data[0].v_pointer);
+#line 921 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return NULL;
+#line 925 "ManifestWidget.c"
+}
+
+
+GParamSpec* plugins_param_spec_manifest_widget_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecManifestWidgetMediator* spec;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR), NULL);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return G_PARAM_SPEC (spec);
+#line 939 "ManifestWidget.c"
+}
+
+
+gpointer plugins_value_get_manifest_widget_mediator (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR), NULL);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return value->data[0].v_pointer;
+#line 948 "ManifestWidget.c"
+}
+
+
+void plugins_value_set_manifest_widget_mediator (GValue* value, gpointer v_object) {
+ PluginsManifestWidgetMediator* old;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = v_object;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_ref (value->data[0].v_pointer);
+#line 968 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 972 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_unref (old);
+#line 978 "ManifestWidget.c"
+ }
+}
+
+
+void plugins_value_take_manifest_widget_mediator (GValue* value, gpointer v_object) {
+ PluginsManifestWidgetMediator* old;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = v_object;
+#line 997 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 1001 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_unref (old);
+#line 1007 "ManifestWidget.c"
+ }
+}
+
+
+static void plugins_manifest_widget_mediator_class_init (PluginsManifestWidgetMediatorClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ((PluginsManifestWidgetMediatorClass *) klass)->finalize = plugins_manifest_widget_mediator_finalize;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_type_class_add_private (klass, sizeof (PluginsManifestWidgetMediatorPrivate));
+#line 1019 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_instance_init (PluginsManifestWidgetMediator * self) {
+ GtkBuilder* _tmp0_ = NULL;
+ PluginsManifestListView* _tmp1_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv = PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_PRIVATE (self);
+#line 28 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 28 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv->builder = _tmp0_;
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = plugins_manifest_list_view_new ();
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp1_);
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv->list = _tmp1_;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->ref_count = 1;
+#line 1040 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_finalize (PluginsManifestWidgetMediator* obj) {
+ PluginsManifestWidgetMediator * self;
+ GtkButton* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ PluginsManifestListView* _tmp3_ = NULL;
+ GtkTreeSelection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_handlers_destroy (self);
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = plugins_manifest_widget_mediator_get_about_button (self);
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = _tmp0_;
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp2_, NULL, FALSE);
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _plugins_manifest_widget_mediator_on_about_gtk_button_clicked, self);
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = self->priv->list;
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_tree_view_get_type (), GtkTreeView));
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_parse_name ("changed", gtk_tree_selection_get_type (), &_tmp5_, NULL, FALSE);
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed, self);
+#line 28 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (self->priv->list);
+#line 1076 "ManifestWidget.c"
+}
+
+
+GType plugins_manifest_widget_mediator_get_type (void) {
+ static volatile gsize plugins_manifest_widget_mediator_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_manifest_widget_mediator_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_manifest_widget_mediator_init, plugins_value_manifest_widget_mediator_free_value, plugins_value_manifest_widget_mediator_copy_value, plugins_value_manifest_widget_mediator_peek_pointer, "p", plugins_value_manifest_widget_mediator_collect_value, "p", plugins_value_manifest_widget_mediator_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsManifestWidgetMediatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_manifest_widget_mediator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsManifestWidgetMediator), 0, (GInstanceInitFunc) plugins_manifest_widget_mediator_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 plugins_manifest_widget_mediator_type_id;
+ plugins_manifest_widget_mediator_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsManifestWidgetMediator", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_manifest_widget_mediator_type_id__volatile, plugins_manifest_widget_mediator_type_id);
+ }
+ return plugins_manifest_widget_mediator_type_id__volatile;
+}
+
+
+gpointer plugins_manifest_widget_mediator_ref (gpointer instance) {
+ PluginsManifestWidgetMediator* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return instance;
+#line 1101 "ManifestWidget.c"
+}
+
+
+void plugins_manifest_widget_mediator_unref (gpointer instance) {
+ PluginsManifestWidgetMediator* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_CLASS (self)->finalize (self);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1114 "ManifestWidget.c"
+ }
+}
+
+
+static GType plugins_manifest_list_view_column_get_type (void) {
+ static volatile gsize plugins_manifest_list_view_column_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_manifest_list_view_column_type_id__volatile)) {
+ static const GEnumValue values[] = {{PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED", "enabled"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE", "can-enable"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON", "icon"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME", "name"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID", "id"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
+ GType plugins_manifest_list_view_column_type_id;
+ plugins_manifest_list_view_column_type_id = g_enum_register_static ("PluginsManifestListViewColumn", values);
+ g_once_init_leave (&plugins_manifest_list_view_column_type_id__volatile, plugins_manifest_list_view_column_type_id);
+ }
+ return plugins_manifest_list_view_column_type_id__volatile;
+}
+
+
+static gint _plugins_compare_extension_point_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = plugins_compare_extension_point_names (a, b);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1136 "ManifestWidget.c"
+}
+
+
+static gint _plugins_compare_pluggable_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = plugins_compare_pluggable_names (a, b);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1145 "ManifestWidget.c"
+}
+
+
+PluginsManifestListView* plugins_manifest_list_view_construct (GType object_type) {
+ PluginsManifestListView * self = NULL;
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkCellRendererToggle* checkbox_renderer = NULL;
+ GtkCellRendererToggle* _tmp1_ = NULL;
+ GtkCellRendererToggle* _tmp2_ = NULL;
+ GtkCellRendererToggle* _tmp3_ = NULL;
+ GtkCellRendererPixbuf* icon_renderer = NULL;
+ GtkCellRendererPixbuf* _tmp4_ = NULL;
+ GtkCellRendererPixbuf* _tmp5_ = NULL;
+ GtkCellRendererPixbuf* _tmp6_ = NULL;
+ GtkCellRendererPixbuf* _tmp7_ = NULL;
+ GtkCellRendererText* text_renderer = NULL;
+ GtkCellRendererText* _tmp8_ = NULL;
+ GtkTreeViewColumn* column = NULL;
+ GtkTreeViewColumn* _tmp9_ = NULL;
+ GtkTreeViewColumn* _tmp10_ = NULL;
+ GtkTreeViewColumn* _tmp11_ = NULL;
+ GtkCellRendererToggle* _tmp12_ = NULL;
+ GtkTreeViewColumn* _tmp13_ = NULL;
+ GtkCellRendererPixbuf* _tmp14_ = NULL;
+ GtkTreeViewColumn* _tmp15_ = NULL;
+ GtkCellRendererText* _tmp16_ = NULL;
+ GtkTreeViewColumn* _tmp17_ = NULL;
+ GtkCellRendererToggle* _tmp18_ = NULL;
+ GtkTreeViewColumn* _tmp19_ = NULL;
+ GtkCellRendererToggle* _tmp20_ = NULL;
+ GtkTreeViewColumn* _tmp21_ = NULL;
+ GtkCellRendererPixbuf* _tmp22_ = NULL;
+ GtkTreeViewColumn* _tmp23_ = NULL;
+ GtkCellRendererText* _tmp24_ = NULL;
+ GtkTreeViewColumn* _tmp25_ = NULL;
+ GtkTreeSelection* _tmp26_ = NULL;
+ GtkIconTheme* icon_theme = NULL;
+ GtkIconTheme* _tmp27_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = (PluginsManifestListView*) g_object_new (object_type, NULL);
+#line 131 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->store;
+#line 131 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_model (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 133 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = (GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ();
+#line 133 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp1_);
+#line 133 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ checkbox_renderer = _tmp1_;
+#line 134 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = checkbox_renderer;
+#line 134 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_renderer_toggle_set_radio (_tmp2_, FALSE);
+#line 135 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = checkbox_renderer;
+#line 135 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_renderer_toggle_set_activatable (_tmp3_, TRUE);
+#line 137 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+#line 137 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp4_);
+#line 137 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon_renderer = _tmp4_;
+#line 138 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = icon_renderer;
+#line 138 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_set (_tmp5_, "stock-size", (guint) GTK_ICON_SIZE_MENU, NULL);
+#line 139 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = icon_renderer;
+#line 139 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_cell_renderer_get_type (), GtkCellRenderer), "xpad", (guint) PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING, NULL);
+#line 140 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = icon_renderer;
+#line 140 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_cell_renderer_get_type (), GtkCellRenderer), "ypad", (guint) PLUGINS_MANIFEST_LIST_VIEW_ICON_Y_PADDING, NULL);
+#line 142 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 142 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp8_);
+#line 142 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ text_renderer = _tmp8_;
+#line 144 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = gtk_tree_view_column_new ();
+#line 144 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp9_);
+#line 144 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ column = _tmp9_;
+#line 145 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = column;
+#line 145 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_column_set_sizing (_tmp10_, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+#line 146 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = column;
+#line 146 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = checkbox_renderer;
+#line 146 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 147 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp13_ = column;
+#line 147 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp14_ = icon_renderer;
+#line 147 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 148 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp15_ = column;
+#line 148 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = text_renderer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_pack_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 150 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp17_ = column;
+#line 150 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp18_ = checkbox_renderer;
+#line 150 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_cell_renderer_get_type (), GtkCellRenderer), "active", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED);
+#line 151 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19_ = column;
+#line 151 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20_ = checkbox_renderer;
+#line 151 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_cell_renderer_get_type (), GtkCellRenderer), "visible", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE);
+#line 152 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp21_ = column;
+#line 152 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp22_ = icon_renderer;
+#line 152 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_cell_renderer_get_type (), GtkCellRenderer), "pixbuf", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON);
+#line 153 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp23_ = column;
+#line 153 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp24_ = text_renderer;
+#line 153 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME);
+#line 155 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp25_ = column;
+#line 155 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_append_column (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp25_);
+#line 157 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_headers_visible (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 158 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_enable_search (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 159 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_rules_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), TRUE);
+#line 160 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_show_expanders (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), TRUE);
+#line 161 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_reorderable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 162 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_enable_tree_lines (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 163 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_grid_lines (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), GTK_TREE_VIEW_GRID_LINES_NONE);
+#line 164 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 164 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_selection_set_mode (_tmp26_, GTK_SELECTION_BROWSE);
+#line 166 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp27_ = resources_get_icon_theme_engine ();
+#line 166 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon_theme = _tmp27_;
+#line 1307 "ManifestWidget.c"
+ {
+ GeeIterator* _extension_point_it = NULL;
+ GeeCollection* _tmp28_ = NULL;
+ GeeCollection* _tmp29_ = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ GeeIterator* _tmp31_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28_ = plugins_get_extension_points (_plugins_compare_extension_point_names_gcompare_data_func, NULL, NULL);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp29_ = _tmp28_;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp30_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp31_ = _tmp30_;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp29_);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _extension_point_it = _tmp31_;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ while (TRUE) {
+#line 1328 "ManifestWidget.c"
+ GeeIterator* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ PluginsExtensionPoint* extension_point = NULL;
+ GeeIterator* _tmp34_ = NULL;
+ gpointer _tmp35_ = NULL;
+ GtkTreeIter category_iter = {0};
+ GtkTreeStore* _tmp36_ = NULL;
+ GtkTreeIter _tmp37_ = {0};
+ GdkPixbuf* icon = NULL;
+ PluginsExtensionPoint* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ GtkTreeStore* _tmp59_ = NULL;
+ GtkTreeIter _tmp60_ = {0};
+ PluginsExtensionPoint* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+ GdkPixbuf* _tmp64_ = NULL;
+ GeeCollection* pluggables = NULL;
+ PluginsExtensionPoint* _tmp65_ = NULL;
+ GType _tmp66_ = 0UL;
+ GType _tmp67_ = 0UL;
+ GeeCollection* _tmp68_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp32_ = _extension_point_it;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33_ = gee_iterator_next (_tmp32_);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp33_) {
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ break;
+#line 1360 "ManifestWidget.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp34_ = _extension_point_it;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp35_ = gee_iterator_get (_tmp34_);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ extension_point = (PluginsExtensionPoint*) _tmp35_;
+#line 172 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp36_ = self->priv->store;
+#line 172 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_append (_tmp36_, &_tmp37_, NULL);
+#line 172 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ category_iter = _tmp37_;
+#line 174 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon = NULL;
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp38_ = extension_point;
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp39_ = plugins_extension_point_get_icon_name (_tmp38_);
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp40_ = _tmp39_;
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp40_ != NULL) {
+#line 1384 "ManifestWidget.c"
+ GtkIconInfo* icon_info = NULL;
+ GtkIconTheme* _tmp41_ = NULL;
+ PluginsExtensionPoint* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ GThemedIcon* _tmp45_ = NULL;
+ GThemedIcon* _tmp46_ = NULL;
+ GtkIconInfo* _tmp47_ = NULL;
+ GtkIconInfo* _tmp48_ = NULL;
+ GtkIconInfo* _tmp49_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp41_ = icon_theme;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp42_ = extension_point;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp43_ = plugins_extension_point_get_icon_name (_tmp42_);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp44_ = _tmp43_;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp45_ = (GThemedIcon*) g_themed_icon_new (_tmp44_);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp46_ = _tmp45_;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp47_ = gtk_icon_theme_lookup_by_gicon (_tmp41_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, G_TYPE_ICON, GIcon), PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE, 0);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp48_ = _tmp47_;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon_info = _tmp48_;
+#line 178 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp49_ = icon_info;
+#line 178 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp49_ != NULL) {
+#line 1419 "ManifestWidget.c"
+ {
+ GdkPixbuf* _tmp50_ = NULL;
+ GtkIconInfo* _tmp51_ = NULL;
+ GdkPixbuf* _tmp52_ = NULL;
+ GdkPixbuf* _tmp53_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp51_ = icon_info;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp52_ = gtk_icon_info_load_icon (_tmp51_, &_inner_error_);
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp50_ = _tmp52_;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1433 "ManifestWidget.c"
+ goto __catch33_g_error;
+ }
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp53_ = _tmp50_;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp50_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon = _tmp53_;
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp50_);
+#line 1446 "ManifestWidget.c"
+ }
+ goto __finally33;
+ __catch33_g_error:
+ {
+ GError* err = NULL;
+ PluginsExtensionPoint* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ GError* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ err = _inner_error_;
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _inner_error_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp54_ = extension_point;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp55_ = plugins_extension_point_get_icon_name (_tmp54_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp56_ = _tmp55_;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp57_ = err;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp58_ = _tmp57_->message;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_warning ("ManifestWidget.vala:182: Unable to load icon %s: %s", _tmp56_, _tmp58_);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_error_free0 (err);
+#line 1475 "ManifestWidget.c"
+ }
+ __finally33:
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_icon_info_free0 (icon_info);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _plugins_extension_point_unref0 (extension_point);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_extension_point_it);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_theme);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (column);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (text_renderer);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_renderer);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (checkbox_renderer);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.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 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_clear_error (&_inner_error_);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return NULL;
+#line 1504 "ManifestWidget.c"
+ }
+ }
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_icon_info_free0 (icon_info);
+#line 1509 "ManifestWidget.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp59_ = self->priv->store;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp60_ = category_iter;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp61_ = extension_point;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp62_ = plugins_extension_point_get_name (_tmp61_);
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp63_ = _tmp62_;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp64_ = icon;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_set (_tmp59_, &_tmp60_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME, _tmp63_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE, FALSE, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON, _tmp64_, -1);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp65_ = extension_point;
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp66_ = plugins_extension_point_get_pluggable_type (_tmp65_);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp67_ = _tmp66_;
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp68_ = plugins_get_pluggables_for_type (_tmp67_, _plugins_compare_pluggable_names_gcompare_data_func, NULL, NULL, TRUE);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ pluggables = _tmp68_;
+#line 1535 "ManifestWidget.c"
+ {
+ GeeIterator* _pluggable_it = NULL;
+ GeeCollection* _tmp69_ = NULL;
+ GeeIterator* _tmp70_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp69_ = pluggables;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp70_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _pluggable_it = _tmp70_;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ while (TRUE) {
+#line 1548 "ManifestWidget.c"
+ GeeIterator* _tmp71_ = NULL;
+ gboolean _tmp72_ = FALSE;
+ SpitPluggable* pluggable = NULL;
+ GeeIterator* _tmp73_ = NULL;
+ gpointer _tmp74_ = NULL;
+ gboolean enabled = FALSE;
+ SpitPluggable* _tmp75_ = NULL;
+ const gchar* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+ gboolean _tmp78_ = FALSE;
+ SpitPluggableInfo info = {0};
+ SpitPluggable* _tmp79_ = NULL;
+ GdkPixbuf* _tmp80_ = NULL;
+ gboolean _tmp81_ = FALSE;
+ SpitPluggableInfo _tmp82_ = {0};
+ GdkPixbuf** _tmp83_ = NULL;
+ gint _tmp83__length1 = 0;
+ GdkPixbuf* _tmp91_ = NULL;
+ GtkTreeIter plugin_iter = {0};
+ GtkTreeStore* _tmp92_ = NULL;
+ GtkTreeIter _tmp93_ = {0};
+ GtkTreeIter _tmp94_ = {0};
+ GtkTreeStore* _tmp95_ = NULL;
+ GtkTreeIter _tmp96_ = {0};
+ gboolean _tmp97_ = FALSE;
+ SpitPluggable* _tmp98_ = NULL;
+ const gchar* _tmp99_ = NULL;
+ SpitPluggable* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ GdkPixbuf* _tmp102_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp71_ = _pluggable_it;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp72_ = gee_iterator_next (_tmp71_);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp72_) {
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ break;
+#line 1587 "ManifestWidget.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp73_ = _pluggable_it;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp74_ = gee_iterator_get (_tmp73_);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ pluggable = (SpitPluggable*) _tmp74_;
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp75_ = pluggable;
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp76_ = spit_pluggable_get_id (_tmp75_);
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp78_ = plugins_get_pluggable_enabled (_tmp76_, &_tmp77_);
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ enabled = _tmp77_;
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp78_) {
+#line 195 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (pluggable);
+#line 195 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ continue;
+#line 1609 "ManifestWidget.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ memset (&info, 0, sizeof (SpitPluggableInfo));
+#line 198 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp79_ = pluggable;
+#line 198 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_get_info (_tmp79_, &info);
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp82_ = info;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp83_ = _tmp82_.icons;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp83__length1 = _tmp82_.icons_length1;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp83_ != NULL) {
+#line 1625 "ManifestWidget.c"
+ SpitPluggableInfo _tmp84_ = {0};
+ GdkPixbuf** _tmp85_ = NULL;
+ gint _tmp85__length1 = 0;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp84_ = info;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp85_ = _tmp84_.icons;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp85__length1 = _tmp84_.icons_length1;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp81_ = _tmp85__length1 > 0;
+#line 1637 "ManifestWidget.c"
+ } else {
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp81_ = FALSE;
+#line 1641 "ManifestWidget.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp81_) {
+#line 1645 "ManifestWidget.c"
+ SpitPluggableInfo _tmp86_ = {0};
+ GdkPixbuf** _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+ GdkPixbuf* _tmp88_ = NULL;
+ GdkPixbuf* _tmp89_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp86_ = info;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp87_ = _tmp86_.icons;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp87__length1 = _tmp86_.icons_length1;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp88_ = _tmp87_[0];
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp89_ = _g_object_ref0 (_tmp88_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp80_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp80_ = _tmp89_;
+#line 1665 "ManifestWidget.c"
+ } else {
+ GdkPixbuf* _tmp90_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp90_ = resources_get_icon (RESOURCES_ICON_GENERIC_PLUGIN, PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE);
+#line 202 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp80_);
+#line 202 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp80_ = _tmp90_;
+#line 1674 "ManifestWidget.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp91_ = _g_object_ref0 (_tmp80_);
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon = _tmp91_;
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp92_ = self->priv->store;
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp93_ = category_iter;
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_append (_tmp92_, &_tmp94_, &_tmp93_);
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugin_iter = _tmp94_;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp95_ = self->priv->store;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp96_ = plugin_iter;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp97_ = enabled;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp98_ = pluggable;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp99_ = spit_pluggable_get_pluggable_name (_tmp98_);
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp100_ = pluggable;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp101_ = spit_pluggable_get_id (_tmp100_);
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp102_ = icon;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_set (_tmp95_, &_tmp96_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED, _tmp97_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME, _tmp99_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID, _tmp101_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE, TRUE, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON, _tmp102_, -1);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp80_);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_info_destroy (&info);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (pluggable);
+#line 1714 "ManifestWidget.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_pluggable_it);
+#line 1718 "ManifestWidget.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (pluggables);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _plugins_extension_point_unref0 (extension_point);
+#line 1726 "ManifestWidget.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_extension_point_it);
+#line 1730 "ManifestWidget.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_expand_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_theme);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (column);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (text_renderer);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_renderer);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (checkbox_renderer);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self;
+#line 1746 "ManifestWidget.c"
+}
+
+
+PluginsManifestListView* plugins_manifest_list_view_new (void) {
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return plugins_manifest_list_view_construct (PLUGINS_TYPE_MANIFEST_LIST_VIEW);
+#line 1753 "ManifestWidget.c"
+}
+
+
+static gpointer _gtk_tree_path_copy0 (gpointer self) {
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self ? gtk_tree_path_copy (self) : NULL;
+#line 1760 "ManifestWidget.c"
+}
+
+
+static void _vala_array_add50 (gchar*** array, int* length, int* size, gchar* value) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if ((*length) == (*size)) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1771 "ManifestWidget.c"
+ }
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[(*length)++] = value;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[*length] = NULL;
+#line 1777 "ManifestWidget.c"
+}
+
+
+static void _gtk_tree_path_free0_ (gpointer var) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL));
+#line 1784 "ManifestWidget.c"
+}
+
+
+static void _g_list_free__gtk_tree_path_free0_ (GList* self) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_list_foreach (self, (GFunc) _gtk_tree_path_free0_, NULL);
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_list_free (self);
+#line 1793 "ManifestWidget.c"
+}
+
+
+gchar** plugins_manifest_list_view_get_selected_ids (PluginsManifestListView* self, int* result_length1) {
+ gchar** result = NULL;
+ gchar** ids = NULL;
+ gchar** _tmp0_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ GList* selected = NULL;
+ GtkTreeSelection* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GList* _tmp3_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 215 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_LIST_VIEW (self), NULL);
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = _tmp0_;
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids_length1 = 0;
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _ids_size_ = ids_length1;
+#line 218 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 218 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = gtk_tree_selection_get_selected_rows (_tmp1_, NULL);
+#line 218 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ selected = _tmp2_;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = selected;
+#line 1827 "ManifestWidget.c"
+ {
+ GList* path_collection = NULL;
+ GList* path_it = NULL;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ path_collection = _tmp3_;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ for (path_it = path_collection; path_it != NULL; path_it = path_it->next) {
+#line 1835 "ManifestWidget.c"
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreePath* path = NULL;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = _gtk_tree_path_copy0 ((GtkTreePath*) path_it->data);
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ path = _tmp4_;
+#line 1842 "ManifestWidget.c"
+ {
+ GtkTreeIter iter = {0};
+ gchar* id = NULL;
+ GtkTreePath* _tmp5_ = NULL;
+ GtkTreeIter _tmp6_ = {0};
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = path;
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = plugins_manifest_list_view_get_id_at_path (self, _tmp5_, &_tmp6_);
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ iter = _tmp6_;
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ id = _tmp7_;
+#line 222 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = id;
+#line 222 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp8_ != NULL) {
+#line 1862 "ManifestWidget.c"
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = ids;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9__length1 = ids_length1;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = id;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _vala_array_add50 (&ids, &ids_length1, &_ids_size_, _tmp11_);
+#line 1877 "ManifestWidget.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 1883 "ManifestWidget.c"
+ }
+ }
+ }
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = ids;
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12__length1 = ids_length1;
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (result_length1) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *result_length1 = _tmp12__length1;
+#line 1895 "ManifestWidget.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp12_;
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ __g_list_free__gtk_tree_path_free0_0 (selected);
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1903 "ManifestWidget.c"
+}
+
+
+static gchar* plugins_manifest_list_view_get_id_at_path (PluginsManifestListView* self, GtkTreePath* path, GtkTreeIter* iter) {
+ GtkTreeIter _vala_iter = {0};
+ gchar* result = NULL;
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ GtkTreeIter _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ const gchar* id = NULL;
+ GtkTreeStore* _tmp4_ = NULL;
+ GtkTreeIter _tmp5_ = {0};
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_LIST_VIEW (self), NULL);
+#line 229 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->store;
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = path;
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = gtk_tree_model_get_iter (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp2_, _tmp1_);
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _vala_iter = _tmp2_;
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp3_) {
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = NULL;
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (iter) {
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *iter = _vala_iter;
+#line 1939 "ManifestWidget.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1943 "ManifestWidget.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = self->priv->store;
+#line 234 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = _vala_iter;
+#line 234 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_model_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp5_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID, &id, -1);
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = id;
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp7_;
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (iter) {
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *iter = _vala_iter;
+#line 1961 "ManifestWidget.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1965 "ManifestWidget.c"
+}
+
+
+static gboolean plugins_manifest_list_view_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+ PluginsManifestListView * self;
+ gboolean result = FALSE;
+ GtkTreePath* path = NULL;
+ GtkTreeViewColumn* col = NULL;
+ gint cellx = 0;
+ gint celly = 0;
+ GdkEventButton* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ GdkEventButton* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreeViewColumn* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ GtkTreeViewColumn* _tmp9_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gint _tmp13_ = 0;
+ GtkTreeIter iter = {0};
+ gchar* id = NULL;
+ GtkTreePath* _tmp17_ = NULL;
+ GtkTreeIter _tmp18_ = {0};
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gboolean enabled = FALSE;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ const gchar* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ GtkTreeStore* _tmp31_ = NULL;
+ GtkTreeIter _tmp32_ = {0};
+ gboolean _tmp33_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView);
+#line 247 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = event;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = _tmp0_->x;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = event;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = _tmp2_->y;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = gtk_tree_view_get_path_at_pos (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), (gint) _tmp1_, (gint) _tmp3_, &_tmp4_, &_tmp5_, &_tmp6_, &_tmp7_);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ path = _tmp4_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = _g_object_ref0 (_tmp5_);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ col = _tmp9_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ cellx = _tmp6_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ celly = _tmp7_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp8_) {
+#line 2034 "ManifestWidget.c"
+ GdkEventButton* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = event;
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp10_);
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp11_;
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2049 "ManifestWidget.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp13_ = cellx;
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp13_ < (PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE + PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING)) {
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = TRUE;
+#line 2057 "ManifestWidget.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp14_ = cellx;
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = _tmp14_ > (2 * (PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING + PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE));
+#line 2064 "ManifestWidget.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp12_) {
+#line 2068 "ManifestWidget.c"
+ GdkEventButton* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp15_ = event;
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp15_);
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp16_;
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2083 "ManifestWidget.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp17_ = path;
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19_ = plugins_manifest_list_view_get_id_at_path (self, _tmp17_, &_tmp18_);
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ iter = _tmp18_;
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ id = _tmp19_;
+#line 264 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20_ = id;
+#line 264 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp20_ == NULL) {
+#line 2097 "ManifestWidget.c"
+ GdkEventButton* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp21_ = event;
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp22_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp21_);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp22_;
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2114 "ManifestWidget.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp23_ = id;
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp25_ = plugins_get_pluggable_enabled (_tmp23_, &_tmp24_);
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ enabled = _tmp24_;
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp25_) {
+#line 2124 "ManifestWidget.c"
+ GdkEventButton* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26_ = event;
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp27_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp26_);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp27_;
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2141 "ManifestWidget.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28_ = enabled;
+#line 272 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ enabled = !_tmp28_;
+#line 273 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp29_ = id;
+#line 273 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp30_ = enabled;
+#line 273 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_set_pluggable_enabled (_tmp29_, _tmp30_);
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp31_ = self->priv->store;
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp32_ = iter;
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33_ = enabled;
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_set (_tmp31_, &_tmp32_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED, _tmp33_, -1);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = TRUE;
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2171 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_list_view_class_init (PluginsManifestListViewClass * klass) {
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_list_view_parent_class = g_type_class_peek_parent (klass);
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_type_class_add_private (klass, sizeof (PluginsManifestListViewPrivate));
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ((GtkWidgetClass *) klass)->button_press_event = plugins_manifest_list_view_real_button_press_event;
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ G_OBJECT_CLASS (klass)->finalize = plugins_manifest_list_view_finalize;
+#line 2184 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_list_view_instance_init (PluginsManifestListView * self) {
+ GtkTreeStore* _tmp0_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv = PLUGINS_MANIFEST_LIST_VIEW_GET_PRIVATE (self);
+#line 122 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = gtk_tree_store_new ((gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING);
+#line 122 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv->store = _tmp0_;
+#line 2196 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_list_view_finalize (GObject* obj) {
+ PluginsManifestListView * self;
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView);
+#line 122 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (self->priv->store);
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ G_OBJECT_CLASS (plugins_manifest_list_view_parent_class)->finalize (obj);
+#line 2208 "ManifestWidget.c"
+}
+
+
+GType plugins_manifest_list_view_get_type (void) {
+ static volatile gsize plugins_manifest_list_view_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_manifest_list_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsManifestListViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_manifest_list_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsManifestListView), 0, (GInstanceInitFunc) plugins_manifest_list_view_instance_init, NULL };
+ GType plugins_manifest_list_view_type_id;
+ plugins_manifest_list_view_type_id = g_type_register_static (gtk_tree_view_get_type (), "PluginsManifestListView", &g_define_type_info, 0);
+ g_once_init_leave (&plugins_manifest_list_view_type_id__volatile, plugins_manifest_list_view_type_id);
+ }
+ return plugins_manifest_list_view_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/plugins/Plugins.c b/src/plugins/Plugins.c
new file mode 100644
index 0000000..0134c1f
--- /dev/null
+++ b/src/plugins/Plugins.c
@@ -0,0 +1,4420 @@
+/* Plugins.c generated by valac 0.32.1, the Vala compiler
+ * generated from Plugins.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gmodule.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define PLUGINS_TYPE_EXTENSION_POINT (plugins_extension_point_get_type ())
+#define PLUGINS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint))
+#define PLUGINS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+#define PLUGINS_IS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_IS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_EXTENSION_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+
+typedef struct _PluginsExtensionPoint PluginsExtensionPoint;
+typedef struct _PluginsExtensionPointClass PluginsExtensionPointClass;
+typedef struct _PluginsExtensionPointPrivate PluginsExtensionPointPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _PluginsParamSpecExtensionPoint PluginsParamSpecExtensionPoint;
+
+#define PLUGINS_TYPE_MODULE_REP (plugins_module_rep_get_type ())
+#define PLUGINS_MODULE_REP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MODULE_REP, PluginsModuleRep))
+#define PLUGINS_MODULE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MODULE_REP, PluginsModuleRepClass))
+#define PLUGINS_IS_MODULE_REP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MODULE_REP))
+#define PLUGINS_IS_MODULE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MODULE_REP))
+#define PLUGINS_MODULE_REP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MODULE_REP, PluginsModuleRepClass))
+
+typedef struct _PluginsModuleRep PluginsModuleRep;
+typedef struct _PluginsModuleRepClass PluginsModuleRepClass;
+typedef struct _PluginsModuleRepPrivate PluginsModuleRepPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_module_close0(var) ((var == NULL) ? NULL : (var = (g_module_close (var), NULL)))
+#define _plugins_module_rep_unref0(var) ((var == NULL) ? NULL : (var = (plugins_module_rep_unref (var), NULL)))
+typedef struct _PluginsParamSpecModuleRep PluginsParamSpecModuleRep;
+
+#define PLUGINS_TYPE_PLUGGABLE_REP (plugins_pluggable_rep_get_type ())
+#define PLUGINS_PLUGGABLE_REP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRep))
+#define PLUGINS_PLUGGABLE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepClass))
+#define PLUGINS_IS_PLUGGABLE_REP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_PLUGGABLE_REP))
+#define PLUGINS_IS_PLUGGABLE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_PLUGGABLE_REP))
+#define PLUGINS_PLUGGABLE_REP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepClass))
+
+typedef struct _PluginsPluggableRep PluginsPluggableRep;
+typedef struct _PluginsPluggableRepClass PluginsPluggableRepClass;
+typedef struct _PluginsPluggableRepPrivate PluginsPluggableRepPrivate;
+
+#define TYPE_FUZZY_PROPERTY_STATE (fuzzy_property_state_get_type ())
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _PluginsParamSpecPluggableRep PluginsParamSpecPluggableRep;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define PLUGINS_TYPE_NOTIFIER (plugins_notifier_get_type ())
+#define PLUGINS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifier))
+#define PLUGINS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass))
+#define PLUGINS_IS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_NOTIFIER))
+#define PLUGINS_IS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_NOTIFIER))
+#define PLUGINS_NOTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass))
+
+typedef struct _PluginsNotifier PluginsNotifier;
+typedef struct _PluginsNotifierClass PluginsNotifierClass;
+typedef struct _PluginsNotifierPrivate PluginsNotifierPrivate;
+#define _plugins_notifier_unref0(var) ((var == NULL) ? NULL : (var = (plugins_notifier_unref (var), NULL)))
+typedef struct _PluginsParamSpecNotifier PluginsParamSpecNotifier;
+#define _plugins_extension_point_unref0(var) ((var == NULL) ? NULL : (var = (plugins_extension_point_unref (var), NULL)))
+#define _plugins_pluggable_rep_unref0(var) ((var == NULL) ? NULL : (var = (plugins_pluggable_rep_unref (var), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+#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);
+
+struct _PluginsExtensionPoint {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsExtensionPointPrivate * priv;
+};
+
+struct _PluginsExtensionPointClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsExtensionPoint *self);
+};
+
+struct _PluginsExtensionPointPrivate {
+ GType _pluggable_type;
+ gchar* _name;
+ gchar* _icon_name;
+ gchar** _core_ids;
+ gint _core_ids_length1;
+ gint __core_ids_size_;
+};
+
+struct _PluginsParamSpecExtensionPoint {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsModuleRep {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsModuleRepPrivate * priv;
+ GFile* file;
+ GModule* module;
+ SpitModule* spit_module;
+ gint spit_interface;
+ gchar* id;
+};
+
+struct _PluginsModuleRepClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsModuleRep *self);
+};
+
+struct _PluginsParamSpecModuleRep {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsPluggableRep {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsPluggableRepPrivate * priv;
+};
+
+struct _PluginsPluggableRepClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsPluggableRep *self);
+};
+
+struct _PluginsPluggableRepPrivate {
+ SpitPluggable* _pluggable;
+ gchar* _id;
+ gboolean _is_core;
+ gboolean _activated;
+ gboolean enabled;
+};
+
+typedef enum {
+ FUZZY_PROPERTY_STATE_ENABLED,
+ FUZZY_PROPERTY_STATE_DISABLED,
+ FUZZY_PROPERTY_STATE_UNKNOWN
+} FuzzyPropertyState;
+
+struct _PluginsParamSpecPluggableRep {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsNotifier {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsNotifierPrivate * priv;
+};
+
+struct _PluginsNotifierClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsNotifier *self);
+};
+
+struct _PluginsParamSpecNotifier {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+
+static gpointer plugins_extension_point_parent_class = NULL;
+static gpointer plugins_module_rep_parent_class = NULL;
+static gpointer plugins_pluggable_rep_parent_class = NULL;
+extern GFile** plugins_search_dirs;
+extern gint plugins_search_dirs_length1;
+GFile** plugins_search_dirs = NULL;
+gint plugins_search_dirs_length1 = 0;
+static gint _plugins_search_dirs_size_ = 0;
+extern GeeHashMap* plugins_module_table;
+GeeHashMap* plugins_module_table = NULL;
+extern GeeHashMap* plugins_pluggable_table;
+GeeHashMap* plugins_pluggable_table = NULL;
+extern GeeHashMap* plugins_extension_points;
+GeeHashMap* plugins_extension_points = NULL;
+extern GeeHashSet* plugins_core_ids;
+GeeHashSet* plugins_core_ids = NULL;
+static gpointer plugins_notifier_parent_class = NULL;
+static PluginsNotifier* plugins_notifier_instance;
+static PluginsNotifier* plugins_notifier_instance = NULL;
+
+#define PLUGINS_MIN_SPIT_INTERFACE 0
+#define PLUGINS_MAX_SPIT_INTERFACE 0
+gpointer plugins_extension_point_ref (gpointer instance);
+void plugins_extension_point_unref (gpointer instance);
+GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_extension_point (GValue* value, gpointer v_object);
+void plugins_value_take_extension_point (GValue* value, gpointer v_object);
+gpointer plugins_value_get_extension_point (const GValue* value);
+GType plugins_extension_point_get_type (void) G_GNUC_CONST;
+#define PLUGINS_EXTENSION_POINT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointPrivate))
+enum {
+ PLUGINS_EXTENSION_POINT_DUMMY_PROPERTY
+};
+PluginsExtensionPoint* plugins_extension_point_new (GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+PluginsExtensionPoint* plugins_extension_point_construct (GType object_type, GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+static void plugins_extension_point_set_pluggable_type (PluginsExtensionPoint* self, GType value);
+static void plugins_extension_point_set_name (PluginsExtensionPoint* self, const gchar* value);
+static void plugins_extension_point_set_icon_name (PluginsExtensionPoint* self, const gchar* value);
+static void plugins_extension_point_set_core_ids (PluginsExtensionPoint* self, gchar** value, int value_length1);
+GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self);
+const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self);
+const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self);
+gchar** plugins_extension_point_get_core_ids (PluginsExtensionPoint* self, int* result_length1);
+static gchar** _vala_array_dup18 (gchar** self, int length);
+static void plugins_extension_point_finalize (PluginsExtensionPoint* obj);
+gpointer plugins_module_rep_ref (gpointer instance);
+void plugins_module_rep_unref (gpointer instance);
+GParamSpec* plugins_param_spec_module_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_module_rep (GValue* value, gpointer v_object);
+void plugins_value_take_module_rep (GValue* value, gpointer v_object);
+gpointer plugins_value_get_module_rep (const GValue* value);
+GType plugins_module_rep_get_type (void) G_GNUC_CONST;
+enum {
+ PLUGINS_MODULE_REP_DUMMY_PROPERTY
+};
+static PluginsModuleRep* plugins_module_rep_new (GFile* file);
+static PluginsModuleRep* plugins_module_rep_construct (GType object_type, GFile* file);
+PluginsModuleRep* plugins_module_rep_open (GFile* file);
+static void plugins_module_rep_finalize (PluginsModuleRep* obj);
+gpointer plugins_pluggable_rep_ref (gpointer instance);
+void plugins_pluggable_rep_unref (gpointer instance);
+GParamSpec* plugins_param_spec_pluggable_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_pluggable_rep (GValue* value, gpointer v_object);
+void plugins_value_take_pluggable_rep (GValue* value, gpointer v_object);
+gpointer plugins_value_get_pluggable_rep (const GValue* value);
+GType plugins_pluggable_rep_get_type (void) G_GNUC_CONST;
+#define PLUGINS_PLUGGABLE_REP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepPrivate))
+enum {
+ PLUGINS_PLUGGABLE_REP_DUMMY_PROPERTY
+};
+PluginsPluggableRep* plugins_pluggable_rep_new (SpitPluggable* pluggable);
+PluginsPluggableRep* plugins_pluggable_rep_construct (GType object_type, SpitPluggable* pluggable);
+static void plugins_pluggable_rep_set_pluggable (PluginsPluggableRep* self, SpitPluggable* value);
+static void plugins_pluggable_rep_set_id (PluginsPluggableRep* self, const gchar* value);
+void plugins_pluggable_rep_activate (PluginsPluggableRep* self);
+gboolean plugins_is_core_pluggable (SpitPluggable* pluggable);
+SpitPluggable* plugins_pluggable_rep_get_pluggable (PluginsPluggableRep* self);
+static void plugins_pluggable_rep_set_is_core (PluginsPluggableRep* self, gboolean value);
+GType fuzzy_property_state_get_type (void) G_GNUC_CONST;
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+FuzzyPropertyState configuration_facade_is_plugin_enabled (ConfigurationFacade* self, const gchar* id);
+const gchar* plugins_pluggable_rep_get_id (PluginsPluggableRep* self);
+gboolean plugins_pluggable_rep_get_is_core (PluginsPluggableRep* self);
+static void plugins_pluggable_rep_set_activated (PluginsPluggableRep* self, gboolean value);
+gboolean plugins_pluggable_rep_is_enabled (PluginsPluggableRep* self);
+gboolean plugins_pluggable_rep_set_enabled (PluginsPluggableRep* self, gboolean enabled);
+void configuration_facade_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled);
+gboolean plugins_pluggable_rep_get_activated (PluginsPluggableRep* self);
+static void plugins_pluggable_rep_finalize (PluginsPluggableRep* obj);
+void plugins_init (GError** error);
+GFile* app_dirs_get_user_plugins_dir (void);
+static void _vala_array_add47 (GFile*** array, int* length, int* size, GFile* value);
+GFile* app_dirs_get_system_plugins_dir (void);
+static void _vala_array_add48 (GFile*** array, int* length, int* size, GFile* value);
+void plugins_search_for_plugins (GFile* dir, GError** error);
+void plugins_terminate (void);
+gpointer plugins_notifier_ref (gpointer instance);
+void plugins_notifier_unref (gpointer instance);
+GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_notifier (GValue* value, gpointer v_object);
+void plugins_value_take_notifier (GValue* value, gpointer v_object);
+gpointer plugins_value_get_notifier (const GValue* value);
+GType plugins_notifier_get_type (void) G_GNUC_CONST;
+enum {
+ PLUGINS_NOTIFIER_DUMMY_PROPERTY
+};
+static PluginsNotifier* plugins_notifier_new (void);
+static PluginsNotifier* plugins_notifier_construct (GType object_type);
+PluginsNotifier* plugins_notifier_get_instance (void);
+static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void plugins_notifier_finalize (PluginsNotifier* obj);
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+GeeCollection* plugins_get_pluggables (gboolean include_disabled);
+PluginsModuleRep* plugins_get_module_for_pluggable (SpitPluggable* needle);
+static SpitPluggable** _vala_array_dup19 (SpitPluggable** self, int length);
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle);
+GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+gchar* plugins_get_pluggable_name (const gchar* id);
+gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info);
+gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled);
+void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled);
+GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable);
+gint plugins_compare_pluggable_names (void* a, void* b);
+gint plugins_compare_extension_point_names (void* a, void* b);
+gboolean plugins_is_shared_library (GFile* file);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+void plugins_load_module (GFile* file);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+const gchar* PLUGINS_SHARED_LIB_EXTS[2] = {"so", "la"};
+
+PluginsExtensionPoint* plugins_extension_point_construct (GType object_type, GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) {
+ PluginsExtensionPoint* self = NULL;
+ GType _tmp0_ = 0UL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsExtensionPoint*) g_type_create_instance (object_type);
+#line 26 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = pluggable_type;
+#line 26 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_pluggable_type (self, _tmp0_);
+#line 27 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = name;
+#line 27 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_name (self, _tmp1_);
+#line 28 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = icon_name;
+#line 28 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_icon_name (self, _tmp2_);
+#line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = core_ids;
+#line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__length1 = core_ids_length1;
+#line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_core_ids (self, _tmp3_, _tmp3__length1);
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 374 "Plugins.c"
+}
+
+
+PluginsExtensionPoint* plugins_extension_point_new (GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_extension_point_construct (PLUGINS_TYPE_EXTENSION_POINT, pluggable_type, name, icon_name, core_ids, core_ids_length1);
+#line 381 "Plugins.c"
+}
+
+
+GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self) {
+ GType result;
+ GType _tmp0_ = 0UL;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), 0UL);
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_pluggable_type;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 396 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_pluggable_type (PluginsExtensionPoint* self, GType value) {
+ GType _tmp0_ = 0UL;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_pluggable_type = _tmp0_;
+#line 408 "Plugins.c"
+}
+
+
+const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_name;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 423 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_name (PluginsExtensionPoint* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_name);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_name = _tmp1_;
+#line 440 "Plugins.c"
+}
+
+
+const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_icon_name;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 455 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_icon_name (PluginsExtensionPoint* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_icon_name);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_icon_name = _tmp1_;
+#line 472 "Plugins.c"
+}
+
+
+gchar** plugins_extension_point_get_core_ids (PluginsExtensionPoint* self, int* result_length1) {
+ gchar** result;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_core_ids;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__length1 = self->priv->_core_ids_length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (result_length1) {
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *result_length1 = _tmp1__length1;
+#line 496 "Plugins.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 502 "Plugins.c"
+}
+
+
+static gchar** _vala_array_dup18 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (i = 0; i < length; i++) {
+#line 513 "Plugins.c"
+ gchar* _tmp0_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result[i] = _tmp0_;
+#line 519 "Plugins.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 523 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_core_ids (PluginsExtensionPoint* self, gchar** value, int value_length1) {
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__length1 = value_length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup18 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids = (_vala_array_free (self->priv->_core_ids, self->priv->_core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids_length1 = _tmp1__length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->__core_ids_size_ = self->priv->_core_ids_length1;
+#line 550 "Plugins.c"
+}
+
+
+static void plugins_value_extension_point_init (GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 557 "Plugins.c"
+}
+
+
+static void plugins_value_extension_point_free_value (GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_unref (value->data[0].v_pointer);
+#line 566 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_extension_point_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_extension_point_ref (src_value->data[0].v_pointer);
+#line 576 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 580 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_extension_point_peek_pointer (const GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 588 "Plugins.c"
+}
+
+
+static gchar* plugins_value_extension_point_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 595 "Plugins.c"
+ PluginsExtensionPoint* object;
+ object = collect_values[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 602 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.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 606 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_extension_point_ref (object);
+#line 610 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 614 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 618 "Plugins.c"
+}
+
+
+static gchar* plugins_value_extension_point_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsExtensionPoint** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 629 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 635 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 639 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_extension_point_ref (value->data[0].v_pointer);
+#line 643 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 647 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecExtensionPoint* spec;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_EXTENSION_POINT), NULL);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 661 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_extension_point (const GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT), NULL);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 670 "Plugins.c"
+}
+
+
+void plugins_value_set_extension_point (GValue* value, gpointer v_object) {
+ PluginsExtensionPoint* old;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_ref (value->data[0].v_pointer);
+#line 690 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 694 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_unref (old);
+#line 700 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_extension_point (GValue* value, gpointer v_object) {
+ PluginsExtensionPoint* old;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 719 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 723 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_unref (old);
+#line 729 "Plugins.c"
+ }
+}
+
+
+static void plugins_extension_point_class_init (PluginsExtensionPointClass * klass) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_parent_class = g_type_class_peek_parent (klass);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsExtensionPointClass *) klass)->finalize = plugins_extension_point_finalize;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_class_add_private (klass, sizeof (PluginsExtensionPointPrivate));
+#line 741 "Plugins.c"
+}
+
+
+static void plugins_extension_point_instance_init (PluginsExtensionPoint * self) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv = PLUGINS_EXTENSION_POINT_GET_PRIVATE (self);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 750 "Plugins.c"
+}
+
+
+static void plugins_extension_point_finalize (PluginsExtensionPoint* obj) {
+ PluginsExtensionPoint * self;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_name);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_icon_name);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids = (_vala_array_free (self->priv->_core_ids, self->priv->_core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 766 "Plugins.c"
+}
+
+
+GType plugins_extension_point_get_type (void) {
+ static volatile gsize plugins_extension_point_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_extension_point_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_extension_point_init, plugins_value_extension_point_free_value, plugins_value_extension_point_copy_value, plugins_value_extension_point_peek_pointer, "p", plugins_value_extension_point_collect_value, "p", plugins_value_extension_point_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsExtensionPointClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_extension_point_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsExtensionPoint), 0, (GInstanceInitFunc) plugins_extension_point_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 plugins_extension_point_type_id;
+ plugins_extension_point_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsExtensionPoint", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_extension_point_type_id__volatile, plugins_extension_point_type_id);
+ }
+ return plugins_extension_point_type_id__volatile;
+}
+
+
+gpointer plugins_extension_point_ref (gpointer instance) {
+ PluginsExtensionPoint* self;
+ self = instance;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 791 "Plugins.c"
+}
+
+
+void plugins_extension_point_unref (gpointer instance) {
+ PluginsExtensionPoint* self;
+ self = instance;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_EXTENSION_POINT_GET_CLASS (self)->finalize (self);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 804 "Plugins.c"
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 812 "Plugins.c"
+}
+
+
+static PluginsModuleRep* plugins_module_rep_construct (GType object_type, GFile* file) {
+ PluginsModuleRep* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GModule* _tmp5_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsModuleRep*) g_type_create_instance (object_type);
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->file);
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->file = _tmp1_;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = file;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = g_module_open (_tmp4_, G_MODULE_BIND_LAZY);
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_module_close0 (self->module);
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->module = _tmp5_;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 852 "Plugins.c"
+}
+
+
+static PluginsModuleRep* plugins_module_rep_new (GFile* file) {
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_module_rep_construct (PLUGINS_TYPE_MODULE_REP, file);
+#line 859 "Plugins.c"
+}
+
+
+static gpointer _plugins_module_rep_ref0 (gpointer self) {
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self ? plugins_module_rep_ref (self) : NULL;
+#line 866 "Plugins.c"
+}
+
+
+PluginsModuleRep* plugins_module_rep_open (GFile* file) {
+ PluginsModuleRep* result = NULL;
+ PluginsModuleRep* module_rep = NULL;
+ GFile* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ PluginsModuleRep* _tmp2_ = NULL;
+ PluginsModuleRep* _tmp3_ = NULL;
+ GModule* _tmp4_ = NULL;
+ PluginsModuleRep* _tmp6_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_module_rep_new (_tmp0_);
+#line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = module_rep;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_->module;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ != NULL) {
+#line 893 "Plugins.c"
+ PluginsModuleRep* _tmp5_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = module_rep;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp5_;
+#line 899 "Plugins.c"
+ } else {
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = NULL;
+#line 903 "Plugins.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _plugins_module_rep_ref0 (_tmp2_);
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp6_;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 913 "Plugins.c"
+}
+
+
+static void plugins_value_module_rep_init (GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 920 "Plugins.c"
+}
+
+
+static void plugins_value_module_rep_free_value (GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_unref (value->data[0].v_pointer);
+#line 929 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_module_rep_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_module_rep_ref (src_value->data[0].v_pointer);
+#line 939 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 943 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_module_rep_peek_pointer (const GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 951 "Plugins.c"
+}
+
+
+static gchar* plugins_value_module_rep_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 958 "Plugins.c"
+ PluginsModuleRep* object;
+ object = collect_values[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 965 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.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 969 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_module_rep_ref (object);
+#line 973 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 977 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 981 "Plugins.c"
+}
+
+
+static gchar* plugins_value_module_rep_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsModuleRep** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 992 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 998 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1002 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_module_rep_ref (value->data[0].v_pointer);
+#line 1006 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 1010 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_module_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecModuleRep* spec;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_MODULE_REP), NULL);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 1024 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_module_rep (const GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP), NULL);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 1033 "Plugins.c"
+}
+
+
+void plugins_value_set_module_rep (GValue* value, gpointer v_object) {
+ PluginsModuleRep* old;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_ref (value->data[0].v_pointer);
+#line 1053 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1057 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_unref (old);
+#line 1063 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_module_rep (GValue* value, gpointer v_object) {
+ PluginsModuleRep* old;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 1082 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1086 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_unref (old);
+#line 1092 "Plugins.c"
+ }
+}
+
+
+static void plugins_module_rep_class_init (PluginsModuleRepClass * klass) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_parent_class = g_type_class_peek_parent (klass);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsModuleRepClass *) klass)->finalize = plugins_module_rep_finalize;
+#line 1102 "Plugins.c"
+}
+
+
+static void plugins_module_rep_instance_init (PluginsModuleRep * self) {
+#line 36 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->spit_module = NULL;
+#line 37 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->spit_interface = SPIT_UNSUPPORTED_INTERFACE;
+#line 38 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->id = NULL;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 1115 "Plugins.c"
+}
+
+
+static void plugins_module_rep_finalize (PluginsModuleRep* obj) {
+ PluginsModuleRep * self;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MODULE_REP, PluginsModuleRep);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 48 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->spit_module);
+#line 48 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->spit_module = NULL;
+#line 34 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->file);
+#line 35 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_module_close0 (self->module);
+#line 36 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->spit_module);
+#line 38 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->id);
+#line 1137 "Plugins.c"
+}
+
+
+GType plugins_module_rep_get_type (void) {
+ static volatile gsize plugins_module_rep_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_module_rep_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_module_rep_init, plugins_value_module_rep_free_value, plugins_value_module_rep_copy_value, plugins_value_module_rep_peek_pointer, "p", plugins_value_module_rep_collect_value, "p", plugins_value_module_rep_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsModuleRepClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_module_rep_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsModuleRep), 0, (GInstanceInitFunc) plugins_module_rep_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 plugins_module_rep_type_id;
+ plugins_module_rep_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsModuleRep", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_module_rep_type_id__volatile, plugins_module_rep_type_id);
+ }
+ return plugins_module_rep_type_id__volatile;
+}
+
+
+gpointer plugins_module_rep_ref (gpointer instance) {
+ PluginsModuleRep* self;
+ self = instance;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 1162 "Plugins.c"
+}
+
+
+void plugins_module_rep_unref (gpointer instance) {
+ PluginsModuleRep* self;
+ self = instance;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_MODULE_REP_GET_CLASS (self)->finalize (self);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1175 "Plugins.c"
+ }
+}
+
+
+PluginsPluggableRep* plugins_pluggable_rep_construct (GType object_type, SpitPluggable* pluggable) {
+ PluginsPluggableRep* self = NULL;
+ SpitPluggable* _tmp0_ = NULL;
+ SpitPluggable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL);
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsPluggableRep*) g_type_create_instance (object_type);
+#line 71 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = pluggable;
+#line 71 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_pluggable (self, _tmp0_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = pluggable;
+#line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = spit_pluggable_get_id (_tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_id (self, _tmp2_);
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 1201 "Plugins.c"
+}
+
+
+PluginsPluggableRep* plugins_pluggable_rep_new (SpitPluggable* pluggable) {
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_pluggable_rep_construct (PLUGINS_TYPE_PLUGGABLE_REP, pluggable);
+#line 1208 "Plugins.c"
+}
+
+
+void plugins_pluggable_rep_activate (PluginsPluggableRep* self) {
+ SpitPluggable* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ FuzzyPropertyState saved_state = 0;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ FuzzyPropertyState _tmp5_ = 0;
+ FuzzyPropertyState _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ SpitPluggable* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_pluggable;
+#line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_is_core_pluggable (_tmp0_);
+#line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_is_core (self, _tmp1_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = self->priv->_id;
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = configuration_facade_is_plugin_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp4_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _tmp5_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp3_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ saved_state = _tmp6_;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = self->priv->_is_core;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp9_) {
+#line 1252 "Plugins.c"
+ FuzzyPropertyState _tmp10_ = 0;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = saved_state;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp10_ != FUZZY_PROPERTY_STATE_DISABLED;
+#line 1258 "Plugins.c"
+ } else {
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = FALSE;
+#line 1262 "Plugins.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp8_) {
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = TRUE;
+#line 1268 "Plugins.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = self->priv->_is_core;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp12_) {
+#line 1276 "Plugins.c"
+ FuzzyPropertyState _tmp13_ = 0;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = saved_state;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp13_ == FUZZY_PROPERTY_STATE_ENABLED;
+#line 1282 "Plugins.c"
+ } else {
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = FALSE;
+#line 1286 "Plugins.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp11_;
+#line 1290 "Plugins.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->enabled = _tmp7_;
+#line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = self->priv->_pluggable;
+#line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = self->priv->enabled;
+#line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_pluggable_activation (_tmp14_, _tmp15_);
+#line 87 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_activated (self, TRUE);
+#line 1302 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_is_enabled (PluginsPluggableRep* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->enabled;
+#line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1317 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_set_enabled (PluginsPluggableRep* self, gboolean enabled) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ SpitPluggable* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = enabled;
+#line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = self->priv->enabled;
+#line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 97 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 97 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1344 "Plugins.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = enabled;
+#line 99 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->enabled = _tmp2_;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = self->priv->_id;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = enabled;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ configuration_facade_set_plugin_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp5_, _tmp6_);
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp4_);
+#line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = self->priv->_pluggable;
+#line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = enabled;
+#line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_pluggable_activation (_tmp7_, _tmp8_);
+#line 103 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 103 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1372 "Plugins.c"
+}
+
+
+SpitPluggable* plugins_pluggable_rep_get_pluggable (PluginsPluggableRep* self) {
+ SpitPluggable* result;
+ SpitPluggable* _tmp0_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), NULL);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_pluggable;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1387 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_pluggable (PluginsPluggableRep* self, SpitPluggable* value) {
+ SpitPluggable* _tmp0_ = NULL;
+ SpitPluggable* _tmp1_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->priv->_pluggable);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_pluggable = _tmp1_;
+#line 1404 "Plugins.c"
+}
+
+
+const gchar* plugins_pluggable_rep_get_id (PluginsPluggableRep* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), NULL);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_id;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1419 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_id (PluginsPluggableRep* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_id);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_id = _tmp1_;
+#line 1436 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_get_is_core (PluginsPluggableRep* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_is_core;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1451 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_is_core (PluginsPluggableRep* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_is_core = _tmp0_;
+#line 1463 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_get_activated (PluginsPluggableRep* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_activated;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1478 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_activated (PluginsPluggableRep* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_activated = _tmp0_;
+#line 1490 "Plugins.c"
+}
+
+
+static void plugins_value_pluggable_rep_init (GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1497 "Plugins.c"
+}
+
+
+static void plugins_value_pluggable_rep_free_value (GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_unref (value->data[0].v_pointer);
+#line 1506 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_pluggable_rep_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_pluggable_rep_ref (src_value->data[0].v_pointer);
+#line 1516 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1520 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_pluggable_rep_peek_pointer (const GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 1528 "Plugins.c"
+}
+
+
+static gchar* plugins_value_pluggable_rep_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 1535 "Plugins.c"
+ PluginsPluggableRep* object;
+ object = collect_values[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1542 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.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 1546 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_pluggable_rep_ref (object);
+#line 1550 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1554 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 1558 "Plugins.c"
+}
+
+
+static gchar* plugins_value_pluggable_rep_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsPluggableRep** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1569 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 1575 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1579 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_pluggable_rep_ref (value->data[0].v_pointer);
+#line 1583 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 1587 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_pluggable_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecPluggableRep* spec;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_PLUGGABLE_REP), NULL);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 1601 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_pluggable_rep (const GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP), NULL);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 1610 "Plugins.c"
+}
+
+
+void plugins_value_set_pluggable_rep (GValue* value, gpointer v_object) {
+ PluginsPluggableRep* old;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_ref (value->data[0].v_pointer);
+#line 1630 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1634 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_unref (old);
+#line 1640 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_pluggable_rep (GValue* value, gpointer v_object) {
+ PluginsPluggableRep* old;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 1659 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1663 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_unref (old);
+#line 1669 "Plugins.c"
+ }
+}
+
+
+static void plugins_pluggable_rep_class_init (PluginsPluggableRepClass * klass) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_parent_class = g_type_class_peek_parent (klass);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsPluggableRepClass *) klass)->finalize = plugins_pluggable_rep_finalize;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_class_add_private (klass, sizeof (PluginsPluggableRepPrivate));
+#line 1681 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_instance_init (PluginsPluggableRep * self) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv = PLUGINS_PLUGGABLE_REP_GET_PRIVATE (self);
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_is_core = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_activated = FALSE;
+#line 67 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->enabled = FALSE;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 1696 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_finalize (PluginsPluggableRep* obj) {
+ PluginsPluggableRep * self;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRep);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->priv->_pluggable);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_id);
+#line 1710 "Plugins.c"
+}
+
+
+GType plugins_pluggable_rep_get_type (void) {
+ static volatile gsize plugins_pluggable_rep_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_pluggable_rep_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_pluggable_rep_init, plugins_value_pluggable_rep_free_value, plugins_value_pluggable_rep_copy_value, plugins_value_pluggable_rep_peek_pointer, "p", plugins_value_pluggable_rep_collect_value, "p", plugins_value_pluggable_rep_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsPluggableRepClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_pluggable_rep_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsPluggableRep), 0, (GInstanceInitFunc) plugins_pluggable_rep_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 plugins_pluggable_rep_type_id;
+ plugins_pluggable_rep_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsPluggableRep", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_pluggable_rep_type_id__volatile, plugins_pluggable_rep_type_id);
+ }
+ return plugins_pluggable_rep_type_id__volatile;
+}
+
+
+gpointer plugins_pluggable_rep_ref (gpointer instance) {
+ PluginsPluggableRep* self;
+ self = instance;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 1735 "Plugins.c"
+}
+
+
+void plugins_pluggable_rep_unref (gpointer instance) {
+ PluginsPluggableRep* self;
+ self = instance;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_PLUGGABLE_REP_GET_CLASS (self)->finalize (self);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1748 "Plugins.c"
+ }
+}
+
+
+static void _vala_array_add47 (GFile*** array, int* length, int* size, GFile* value) {
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if ((*length) == (*size)) {
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 1760 "Plugins.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[(*length)++] = value;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[*length] = NULL;
+#line 1766 "Plugins.c"
+}
+
+
+static void _vala_array_add48 (GFile*** array, int* length, int* size, GFile* value) {
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if ((*length) == (*size)) {
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 1777 "Plugins.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[(*length)++] = value;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[*length] = NULL;
+#line 1783 "Plugins.c"
+}
+
+
+void plugins_init (GError** error) {
+ GFile** _tmp0_ = NULL;
+ GFile** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GFile* _tmp2_ = NULL;
+ GFile** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GFile* _tmp4_ = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ GeeHashSet* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GFile** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = g_new0 (GFile*, 0 + 1);
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = (_vala_array_free (plugins_search_dirs, plugins_search_dirs_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = _tmp0_;
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs_length1 = 0;
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_search_dirs_size_ = plugins_search_dirs_length1;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_search_dirs;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1__length1 = plugins_search_dirs_length1;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = app_dirs_get_user_plugins_dir ();
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_array_add47 (&plugins_search_dirs, &plugins_search_dirs_length1, &_plugins_search_dirs_size_, _tmp2_);
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = plugins_search_dirs;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__length1 = plugins_search_dirs_length1;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = app_dirs_get_system_plugins_dir ();
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_array_add48 (&plugins_search_dirs, &plugins_search_dirs_length1, &_plugins_search_dirs_size_, _tmp4_);
+#line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PLUGINS_TYPE_MODULE_REP, (GBoxedCopyFunc) plugins_module_rep_ref, plugins_module_rep_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_module_table);
+#line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_table = _tmp5_;
+#line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PLUGINS_TYPE_PLUGGABLE_REP, (GBoxedCopyFunc) plugins_pluggable_rep_ref, plugins_pluggable_rep_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_pluggable_table);
+#line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_table = _tmp6_;
+#line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = gee_hash_map_new (G_TYPE_GTYPE, NULL, NULL, PLUGINS_TYPE_EXTENSION_POINT, (GBoxedCopyFunc) plugins_extension_point_ref, plugins_extension_point_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_extension_points);
+#line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_points = _tmp7_;
+#line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_core_ids);
+#line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_core_ids = _tmp8_;
+#line 125 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = g_module_supported ();
+#line 125 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp9_) {
+#line 126 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_warning ("Plugins.vala:126: Plugins not support: GModule not supported on this p" \
+"latform.");
+#line 128 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 1861 "Plugins.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = plugins_search_dirs;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10__length1 = plugins_search_dirs_length1;
+#line 1867 "Plugins.c"
+ {
+ GFile** dir_collection = NULL;
+ gint dir_collection_length1 = 0;
+ gint _dir_collection_size_ = 0;
+ gint dir_it = 0;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dir_collection = _tmp10_;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dir_collection_length1 = _tmp10__length1;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (dir_it = 0; dir_it < _tmp10__length1; dir_it = dir_it + 1) {
+#line 1879 "Plugins.c"
+ GFile* _tmp11_ = NULL;
+ GFile* dir = NULL;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _g_object_ref0 (dir_collection[dir_it]);
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dir = _tmp11_;
+#line 1886 "Plugins.c"
+ {
+ {
+ GFile* _tmp12_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = dir;
+#line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_for_plugins (_tmp12_, &_inner_error_);
+#line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1896 "Plugins.c"
+ goto __catch31_g_error;
+ }
+ }
+ goto __finally31;
+ __catch31_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ err = _inner_error_;
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = dir;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp14_;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = err;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = _tmp16_->message;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_debug ("Plugins.vala:135: Unable to search directory %s for plugins: %s", _tmp15_, _tmp17_);
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp15_);
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_error_free0 (err);
+#line 1929 "Plugins.c"
+ }
+ __finally31:
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (dir);
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 1940 "Plugins.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (dir);
+#line 1944 "Plugins.c"
+ }
+ }
+ }
+}
+
+
+void plugins_terminate (void) {
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = (_vala_array_free (plugins_search_dirs, plugins_search_dirs_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = NULL;
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs_length1 = 0;
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_search_dirs_size_ = plugins_search_dirs_length1;
+#line 142 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_pluggable_table);
+#line 142 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_table = NULL;
+#line 143 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_module_table);
+#line 143 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_table = NULL;
+#line 144 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_extension_points);
+#line 144 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_points = NULL;
+#line 145 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_core_ids);
+#line 145 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_core_ids = NULL;
+#line 1976 "Plugins.c"
+}
+
+
+static PluginsNotifier* plugins_notifier_construct (GType object_type) {
+ PluginsNotifier* self = NULL;
+#line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsNotifier*) g_type_create_instance (object_type);
+#line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 1986 "Plugins.c"
+}
+
+
+static PluginsNotifier* plugins_notifier_new (void) {
+#line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_notifier_construct (PLUGINS_TYPE_NOTIFIER);
+#line 1993 "Plugins.c"
+}
+
+
+static gpointer _plugins_notifier_ref0 (gpointer self) {
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self ? plugins_notifier_ref (self) : NULL;
+#line 2000 "Plugins.c"
+}
+
+
+PluginsNotifier* plugins_notifier_get_instance (void) {
+ PluginsNotifier* result = NULL;
+ PluginsNotifier* _tmp0_ = NULL;
+ PluginsNotifier* _tmp2_ = NULL;
+ PluginsNotifier* _tmp3_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_notifier_instance;
+#line 157 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp0_ == NULL) {
+#line 2013 "Plugins.c"
+ PluginsNotifier* _tmp1_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_notifier_new ();
+#line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_notifier_unref0 (plugins_notifier_instance);
+#line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_instance = _tmp1_;
+#line 2021 "Plugins.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = plugins_notifier_instance;
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _plugins_notifier_ref0 (_tmp2_);
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp3_;
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2031 "Plugins.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gboolean arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data1 = closure->data;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2050 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data2 = closure->data;
+#line 2056 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_boolean (param_values + 2), data2);
+#line 2062 "Plugins.c"
+}
+
+
+static void plugins_value_notifier_init (GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2069 "Plugins.c"
+}
+
+
+static void plugins_value_notifier_free_value (GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_unref (value->data[0].v_pointer);
+#line 2078 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_notifier_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_notifier_ref (src_value->data[0].v_pointer);
+#line 2088 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2092 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_notifier_peek_pointer (const GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 2100 "Plugins.c"
+}
+
+
+static gchar* plugins_value_notifier_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 2107 "Plugins.c"
+ PluginsNotifier* object;
+ object = collect_values[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2114 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.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 2118 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_notifier_ref (object);
+#line 2122 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2126 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 2130 "Plugins.c"
+}
+
+
+static gchar* plugins_value_notifier_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsNotifier** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2141 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 2147 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2151 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_notifier_ref (value->data[0].v_pointer);
+#line 2155 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 2159 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecNotifier* spec;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_NOTIFIER), NULL);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 2173 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_notifier (const GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER), NULL);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 2182 "Plugins.c"
+}
+
+
+void plugins_value_set_notifier (GValue* value, gpointer v_object) {
+ PluginsNotifier* old;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_ref (value->data[0].v_pointer);
+#line 2202 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2206 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_unref (old);
+#line 2212 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_notifier (GValue* value, gpointer v_object) {
+ PluginsNotifier* old;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 2231 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2235 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_unref (old);
+#line 2241 "Plugins.c"
+ }
+}
+
+
+static void plugins_notifier_class_init (PluginsNotifierClass * klass) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_parent_class = g_type_class_peek_parent (klass);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsNotifierClass *) klass)->finalize = plugins_notifier_finalize;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_new ("pluggable_activation", PLUGINS_TYPE_NOTIFIER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 2, SPIT_TYPE_PLUGGABLE, G_TYPE_BOOLEAN);
+#line 2253 "Plugins.c"
+}
+
+
+static void plugins_notifier_instance_init (PluginsNotifier * self) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 2260 "Plugins.c"
+}
+
+
+static void plugins_notifier_finalize (PluginsNotifier* obj) {
+ PluginsNotifier * self;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_NOTIFIER, PluginsNotifier);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 2270 "Plugins.c"
+}
+
+
+GType plugins_notifier_get_type (void) {
+ static volatile gsize plugins_notifier_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_notifier_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_notifier_init, plugins_value_notifier_free_value, plugins_value_notifier_copy_value, plugins_value_notifier_peek_pointer, "p", plugins_value_notifier_collect_value, "p", plugins_value_notifier_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsNotifierClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_notifier_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsNotifier), 0, (GInstanceInitFunc) plugins_notifier_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 plugins_notifier_type_id;
+ plugins_notifier_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsNotifier", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_notifier_type_id__volatile, plugins_notifier_type_id);
+ }
+ return plugins_notifier_type_id__volatile;
+}
+
+
+gpointer plugins_notifier_ref (gpointer instance) {
+ PluginsNotifier* self;
+ self = instance;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 2295 "Plugins.c"
+}
+
+
+void plugins_notifier_unref (gpointer instance) {
+ PluginsNotifier* self;
+ self = instance;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_NOTIFIER_GET_CLASS (self)->finalize (self);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2308 "Plugins.c"
+ }
+}
+
+
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) {
+ GeeHashMap* _tmp0_ = NULL;
+ GType _tmp1_ = 0UL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ GType _tmp4_ = 0UL;
+ GType _tmp5_ = 0UL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ PluginsExtensionPoint* _tmp9_ = NULL;
+ PluginsExtensionPoint* _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 164 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (name != NULL);
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_extension_points;
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = type;
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_));
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_assert (!_tmp2_, "!extension_points.has_key(type)");
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = plugins_extension_points;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = type;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = type;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = name;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = icon_name;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = core_ids;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8__length1 = core_ids_length1;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = plugins_extension_point_new (_tmp5_, _tmp6_, _tmp7_, _tmp8_, _tmp8__length1);
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = _tmp9_;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp4_), _tmp10_);
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_extension_point_unref0 (_tmp10_);
+#line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = core_ids;
+#line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11__length1 = core_ids_length1;
+#line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp11_ != NULL) {
+#line 2366 "Plugins.c"
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = core_ids;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12__length1 = core_ids_length1;
+#line 2373 "Plugins.c"
+ {
+ gchar** core_id_collection = NULL;
+ gint core_id_collection_length1 = 0;
+ gint _core_id_collection_size_ = 0;
+ gint core_id_it = 0;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ core_id_collection = _tmp12_;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ core_id_collection_length1 = _tmp12__length1;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (core_id_it = 0; core_id_it < _tmp12__length1; core_id_it = core_id_it + 1) {
+#line 2385 "Plugins.c"
+ gchar* _tmp13_ = NULL;
+ gchar* core_id = NULL;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = g_strdup (core_id_collection[core_id_it]);
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ core_id = _tmp13_;
+#line 2392 "Plugins.c"
+ {
+ GeeHashSet* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = plugins_core_ids;
+#line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = core_id;
+#line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (core_id);
+#line 2404 "Plugins.c"
+ }
+ }
+ }
+ }
+ {
+ GeeIterator* _pluggable_rep_it = NULL;
+ GeeHashMap* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = plugins_pluggable_table;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_MAP, GeeMap));
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = _tmp17_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = _tmp18_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = _tmp20_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp19_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggable_rep_it = _tmp21_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 2435 "Plugins.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ PluginsPluggableRep* _tmp26_ = NULL;
+ SpitPluggable* _tmp27_ = NULL;
+ SpitPluggable* _tmp28_ = NULL;
+ GType _tmp29_ = 0UL;
+ GType _tmp30_ = 0UL;
+ gboolean _tmp31_ = FALSE;
+ PluginsPluggableRep* _tmp32_ = NULL;
+ PluginsNotifier* _tmp33_ = NULL;
+ PluginsNotifier* _tmp34_ = NULL;
+ PluginsPluggableRep* _tmp35_ = NULL;
+ SpitPluggable* _tmp36_ = NULL;
+ SpitPluggable* _tmp37_ = NULL;
+ PluginsPluggableRep* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _pluggable_rep_it;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp23_) {
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 2463 "Plugins.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = _pluggable_rep_it;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp25_;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = pluggable_rep;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp27_ = plugins_pluggable_rep_get_pluggable (_tmp26_);
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp28_ = _tmp27_;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp29_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, G_TYPE_OBJECT, GObject));
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp30_ = type;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp31_ = g_type_is_a (_tmp29_, _tmp30_);
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp31_) {
+#line 179 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 179 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ continue;
+#line 2489 "Plugins.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp32_ = pluggable_rep;
+#line 181 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_activate (_tmp32_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp33_ = plugins_notifier_get_instance ();
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp34_ = _tmp33_;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp35_ = pluggable_rep;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp36_ = plugins_pluggable_rep_get_pluggable (_tmp35_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp37_ = _tmp36_;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp38_ = pluggable_rep;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp39_ = plugins_pluggable_rep_is_enabled (_tmp38_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_emit_by_name (_tmp34_, "pluggable-activation", _tmp37_, _tmp39_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_notifier_unref0 (_tmp34_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 2515 "Plugins.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_pluggable_rep_it);
+#line 2519 "Plugins.c"
+ }
+}
+
+
+GeeCollection* plugins_get_pluggables (gboolean include_disabled) {
+ GeeCollection* result = NULL;
+ GeeCollection* all = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = gee_hash_set_new (SPIT_TYPE_PLUGGABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 187 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ all = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2532 "Plugins.c"
+ {
+ GeeIterator* _pluggable_rep_it = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_pluggable_table;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MAP, GeeMap));
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _tmp5_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp4_);
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggable_rep_it = _tmp6_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 2559 "Plugins.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ PluginsPluggableRep* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _pluggable_rep_it;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp8_) {
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 2577 "Plugins.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = _pluggable_rep_it;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp10_;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = pluggable_rep;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = plugins_pluggable_rep_get_activated (_tmp12_);
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = _tmp13_;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp14_) {
+#line 2593 "Plugins.c"
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = include_disabled;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp16_) {
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = TRUE;
+#line 2602 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = pluggable_rep;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = plugins_pluggable_rep_is_enabled (_tmp17_);
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp18_;
+#line 2612 "Plugins.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp15_;
+#line 2616 "Plugins.c"
+ } else {
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = FALSE;
+#line 2620 "Plugins.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp11_) {
+#line 2624 "Plugins.c"
+ GeeCollection* _tmp19_ = NULL;
+ PluginsPluggableRep* _tmp20_ = NULL;
+ SpitPluggable* _tmp21_ = NULL;
+ SpitPluggable* _tmp22_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = all;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = pluggable_rep;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = plugins_pluggable_rep_get_pluggable (_tmp20_);
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_collection_add (_tmp19_, _tmp22_);
+#line 2639 "Plugins.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 2643 "Plugins.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_pluggable_rep_it);
+#line 2647 "Plugins.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = all;
+#line 193 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2653 "Plugins.c"
+}
+
+
+gboolean plugins_is_core_pluggable (SpitPluggable* pluggable) {
+ gboolean result = FALSE;
+ GeeHashSet* _tmp0_ = NULL;
+ SpitPluggable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), FALSE);
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_core_ids;
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = pluggable;
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = spit_pluggable_get_id (_tmp1_);
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp3_;
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2677 "Plugins.c"
+}
+
+
+static SpitPluggable** _vala_array_dup19 (SpitPluggable** self, int length) {
+ SpitPluggable** result;
+ int i;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = g_new0 (SpitPluggable*, length + 1);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (i = 0; i < length; i++) {
+#line 2688 "Plugins.c"
+ SpitPluggable* _tmp0_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result[i] = _tmp0_;
+#line 2694 "Plugins.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2698 "Plugins.c"
+}
+
+
+PluginsModuleRep* plugins_get_module_for_pluggable (SpitPluggable* needle) {
+ PluginsModuleRep* result = NULL;
+#line 200 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (needle), NULL);
+#line 2706 "Plugins.c"
+ {
+ GeeIterator* _module_rep_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_module_table;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp1_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp3_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _module_rep_it = _tmp5_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 2733 "Plugins.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PluginsModuleRep* module_rep = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ SpitPluggable** pluggables = NULL;
+ PluginsModuleRep* _tmp10_ = NULL;
+ SpitModule* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ SpitPluggable** _tmp13_ = NULL;
+ SpitPluggable** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint pluggables_length1 = 0;
+ gint _pluggables_size_ = 0;
+ SpitPluggable** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _module_rep_it;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp7_) {
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 2758 "Plugins.c"
+ }
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _module_rep_it;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = (PluginsModuleRep*) _tmp9_;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = module_rep;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp10_->spit_module;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = spit_module_get_pluggables (_tmp11_, &_tmp12_);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = (_tmp13_ != NULL) ? _vala_array_dup19 (_tmp13_, _tmp12_) : ((gpointer) _tmp13_);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14__length1 = _tmp12_;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables = _tmp14_;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables_length1 = _tmp14__length1;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggables_size_ = pluggables_length1;
+#line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = pluggables;
+#line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15__length1 = pluggables_length1;
+#line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp15_ != NULL) {
+#line 2788 "Plugins.c"
+ SpitPluggable** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = pluggables;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16__length1 = pluggables_length1;
+#line 2795 "Plugins.c"
+ {
+ SpitPluggable** pluggable_collection = NULL;
+ gint pluggable_collection_length1 = 0;
+ gint _pluggable_collection_size_ = 0;
+ gint pluggable_it = 0;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection = _tmp16_;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection_length1 = _tmp16__length1;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (pluggable_it = 0; pluggable_it < _tmp16__length1; pluggable_it = pluggable_it + 1) {
+#line 2807 "Plugins.c"
+ SpitPluggable* _tmp17_ = NULL;
+ SpitPluggable* pluggable = NULL;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = _g_object_ref0 (pluggable_collection[pluggable_it]);
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable = _tmp17_;
+#line 2814 "Plugins.c"
+ {
+ SpitPluggable* _tmp18_ = NULL;
+ SpitPluggable* _tmp19_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = pluggable;
+#line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = needle;
+#line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp18_ == _tmp19_) {
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = module_rep;
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (pluggable);
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables = (_vala_array_free (pluggables, pluggables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_module_rep_it);
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2834 "Plugins.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (pluggable);
+#line 2838 "Plugins.c"
+ }
+ }
+ }
+ }
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables = (_vala_array_free (pluggables, pluggables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 2847 "Plugins.c"
+ }
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_module_rep_it);
+#line 2851 "Plugins.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = NULL;
+#line 211 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2857 "Plugins.c"
+}
+
+
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle) {
+ gchar* result = NULL;
+ PluginsModuleRep* module_rep = NULL;
+ SpitPluggable* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PluginsModuleRep* _tmp3_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 214 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (needle), NULL);
+#line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = needle;
+#line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_get_module_for_pluggable (_tmp0_);
+#line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = module_rep;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_ != NULL) {
+#line 2881 "Plugins.c"
+ PluginsModuleRep* _tmp4_ = NULL;
+ SpitModule* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = module_rep;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_->spit_module;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = spit_module_get_id (_tmp5_);
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp6_;
+#line 2893 "Plugins.c"
+ } else {
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = NULL;
+#line 2897 "Plugins.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = g_strdup (_tmp2_);
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp7_;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2907 "Plugins.c"
+}
+
+
+GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) {
+ GeeCollection* result = NULL;
+ GeeCollection* sorted = NULL;
+ GCompareDataFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GDestroyNotify _tmp0__target_destroy_notify = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = compare_func;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__target = compare_func_target;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__target_destroy_notify = compare_func_target_destroy_notify;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = gee_tree_set_new (PLUGINS_TYPE_EXTENSION_POINT, (GBoxedCopyFunc) plugins_extension_point_ref, plugins_extension_point_unref, _tmp0_, _tmp0__target, _tmp0__target_destroy_notify);
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ sorted = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = plugins_extension_points;
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_collection_add_all (sorted, _tmp5_);
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp5_);
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = sorted;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func = NULL;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target = NULL;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2958 "Plugins.c"
+}
+
+
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GType _tmp1_ = 0UL;
+ gboolean _tmp2_ = FALSE;
+ GeeCollection* for_type = NULL;
+ GCompareDataFunc _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ GDestroyNotify _tmp3__target_destroy_notify = NULL;
+ GeeTreeSet* _tmp4_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_extension_points;
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = type;
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_));
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_assert (_tmp2_, "extension_points.has_key(type)");
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = compare_func;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__target = compare_func_target;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__target_destroy_notify = compare_func_target_destroy_notify;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = gee_tree_set_new (SPIT_TYPE_PLUGGABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tmp3_, _tmp3__target, _tmp3__target_destroy_notify);
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for_type = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2992 "Plugins.c"
+ {
+ GeeIterator* _pluggable_rep_it = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = plugins_pluggable_table;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_MAP, GeeMap));
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp7_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = _tmp9_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp8_);
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggable_rep_it = _tmp10_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 3019 "Plugins.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ PluginsPluggableRep* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _pluggable_rep_it;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp12_) {
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3038 "Plugins.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = _pluggable_rep_it;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp14_;
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = pluggable_rep;
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = plugins_pluggable_rep_get_activated (_tmp17_);
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = _tmp18_;
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp19_) {
+#line 3054 "Plugins.c"
+ PluginsPluggableRep* _tmp20_ = NULL;
+ SpitPluggable* _tmp21_ = NULL;
+ SpitPluggable* _tmp22_ = NULL;
+ GType _tmp23_ = 0UL;
+ GType _tmp24_ = 0UL;
+ gboolean _tmp25_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = pluggable_rep;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = plugins_pluggable_rep_get_pluggable (_tmp20_);
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, G_TYPE_OBJECT, GObject));
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = type;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = g_type_is_a (_tmp23_, _tmp24_);
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = _tmp25_;
+#line 3075 "Plugins.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = FALSE;
+#line 3079 "Plugins.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp16_) {
+#line 3083 "Plugins.c"
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp27_ = include_disabled;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp27_) {
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = TRUE;
+#line 3092 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp28_ = pluggable_rep;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp29_ = plugins_pluggable_rep_is_enabled (_tmp28_);
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = _tmp29_;
+#line 3102 "Plugins.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp26_;
+#line 3106 "Plugins.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = FALSE;
+#line 3110 "Plugins.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp15_) {
+#line 3114 "Plugins.c"
+ GeeCollection* _tmp30_ = NULL;
+ PluginsPluggableRep* _tmp31_ = NULL;
+ SpitPluggable* _tmp32_ = NULL;
+ SpitPluggable* _tmp33_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp30_ = for_type;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp31_ = pluggable_rep;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp32_ = plugins_pluggable_rep_get_pluggable (_tmp31_);
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp33_ = _tmp32_;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_collection_add (_tmp30_, _tmp33_);
+#line 3129 "Plugins.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 3133 "Plugins.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_pluggable_rep_it);
+#line 3137 "Plugins.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = for_type;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func = NULL;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target = NULL;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3151 "Plugins.c"
+}
+
+
+gchar* plugins_get_pluggable_name (const gchar* id) {
+ gchar* result = NULL;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp5_ != NULL) {
+#line 3179 "Plugins.c"
+ PluginsPluggableRep* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = pluggable_rep;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = plugins_pluggable_rep_get_activated (_tmp6_);
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp7_;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp8_;
+#line 3191 "Plugins.c"
+ } else {
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = FALSE;
+#line 3195 "Plugins.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_) {
+#line 3199 "Plugins.c"
+ PluginsPluggableRep* _tmp9_ = NULL;
+ SpitPluggable* _tmp10_ = NULL;
+ SpitPluggable* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = pluggable_rep;
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = plugins_pluggable_rep_get_pluggable (_tmp9_);
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp10_;
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = spit_pluggable_get_pluggable_name (_tmp11_);
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp12_;
+#line 3214 "Plugins.c"
+ } else {
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = NULL;
+#line 3218 "Plugins.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = g_strdup (_tmp3_);
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp13_;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3228 "Plugins.c"
+}
+
+
+gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info) {
+ gboolean result = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PluginsPluggableRep* _tmp4_ = NULL;
+ PluginsPluggableRep* _tmp8_ = NULL;
+ SpitPluggable* _tmp9_ = NULL;
+ SpitPluggable* _tmp10_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (id != NULL, FALSE);
+#line 251 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (info != NULL, FALSE);
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = pluggable_rep;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ == NULL) {
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = TRUE;
+#line 3261 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_);
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = !_tmp7_;
+#line 3274 "Plugins.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3284 "Plugins.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = pluggable_rep;
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = plugins_pluggable_rep_get_pluggable (_tmp8_);
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = _tmp9_;
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_pluggable_get_info (_tmp10_, info);
+#line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3300 "Plugins.c"
+}
+
+
+gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled) {
+ gboolean _vala_enabled = FALSE;
+ gboolean result = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PluginsPluggableRep* _tmp4_ = NULL;
+ PluginsPluggableRep* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 261 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (id != NULL, FALSE);
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = pluggable_rep;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ == NULL) {
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = TRUE;
+#line 3331 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_);
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = !_tmp7_;
+#line 3344 "Plugins.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_) {
+#line 264 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_enabled = FALSE;
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (enabled) {
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *enabled = _vala_enabled;
+#line 3358 "Plugins.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3362 "Plugins.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = pluggable_rep;
+#line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = plugins_pluggable_rep_is_enabled (_tmp8_);
+#line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_enabled = _tmp9_;
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (enabled) {
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *enabled = _vala_enabled;
+#line 3378 "Plugins.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3382 "Plugins.c"
+}
+
+
+void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled) {
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PluginsPluggableRep* _tmp4_ = NULL;
+ PluginsPluggableRep* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 274 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (id != NULL);
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = pluggable_rep;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ == NULL) {
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = TRUE;
+#line 3412 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_);
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = !_tmp7_;
+#line 3425 "Plugins.c"
+ }
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_) {
+#line 277 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 277 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3433 "Plugins.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = pluggable_rep;
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = enabled;
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = plugins_pluggable_rep_set_enabled (_tmp8_, _tmp9_);
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp10_) {
+#line 3443 "Plugins.c"
+ PluginsNotifier* _tmp11_ = NULL;
+ PluginsNotifier* _tmp12_ = NULL;
+ PluginsPluggableRep* _tmp13_ = NULL;
+ SpitPluggable* _tmp14_ = NULL;
+ SpitPluggable* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = plugins_notifier_get_instance ();
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = _tmp11_;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = pluggable_rep;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = plugins_pluggable_rep_get_pluggable (_tmp13_);
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp14_;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = enabled;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_emit_by_name (_tmp12_, "pluggable-activation", _tmp15_, _tmp16_);
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_notifier_unref0 (_tmp12_);
+#line 3466 "Plugins.c"
+ }
+#line 274 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 3470 "Plugins.c"
+}
+
+
+GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable) {
+ GFile* result = NULL;
+ PluginsModuleRep* module_rep = NULL;
+ SpitPluggable* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ PluginsModuleRep* _tmp3_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL);
+#line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = pluggable;
+#line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_get_module_for_pluggable (_tmp0_);
+#line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = module_rep;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_ != NULL) {
+#line 3494 "Plugins.c"
+ PluginsModuleRep* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = module_rep;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_->file;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp5_;
+#line 3503 "Plugins.c"
+ } else {
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = NULL;
+#line 3507 "Plugins.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _g_object_ref0 (_tmp2_);
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp6_;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3517 "Plugins.c"
+}
+
+
+gint plugins_compare_pluggable_names (void* a, void* b) {
+ gint result = 0;
+ SpitPluggable* apluggable = NULL;
+ void* _tmp0_ = NULL;
+ SpitPluggable* bpluggable = NULL;
+ void* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 290 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = a;
+#line 290 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ apluggable = (SpitPluggable*) _tmp0_;
+#line 291 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = b;
+#line 291 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ bpluggable = (SpitPluggable*) _tmp1_;
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (apluggable, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (bpluggable, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = g_utf8_collate (_tmp2_, _tmp3_);
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp4_;
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3548 "Plugins.c"
+}
+
+
+gint plugins_compare_extension_point_names (void* a, void* b) {
+ gint result = 0;
+ PluginsExtensionPoint* apoint = NULL;
+ void* _tmp0_ = NULL;
+ PluginsExtensionPoint* bpoint = NULL;
+ void* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = a;
+#line 297 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ apoint = (PluginsExtensionPoint*) _tmp0_;
+#line 298 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = b;
+#line 298 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ bpoint = (PluginsExtensionPoint*) _tmp1_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = plugins_extension_point_get_name (G_TYPE_CHECK_INSTANCE_CAST (apoint, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint));
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = plugins_extension_point_get_name (G_TYPE_CHECK_INSTANCE_CAST (bpoint, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint));
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = g_utf8_collate (_tmp3_, _tmp5_);
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp6_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3585 "Plugins.c"
+}
+
+
+gboolean plugins_is_shared_library (GFile* file) {
+ gboolean result = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp1_;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ disassemble_filename (_tmp2_, &_tmp3_, &_tmp4_);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (name);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ name = _tmp3_;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (ext);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ext = _tmp4_;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp2_);
+#line 3618 "Plugins.c"
+ {
+ const gchar** shared_ext_collection = NULL;
+ gint shared_ext_collection_length1 = 0;
+ gint _shared_ext_collection_size_ = 0;
+ gint shared_ext_it = 0;
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ shared_ext_collection = PLUGINS_SHARED_LIB_EXTS;
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ shared_ext_collection_length1 = G_N_ELEMENTS (PLUGINS_SHARED_LIB_EXTS);
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (shared_ext_it = 0; shared_ext_it < G_N_ELEMENTS (PLUGINS_SHARED_LIB_EXTS); shared_ext_it = shared_ext_it + 1) {
+#line 3630 "Plugins.c"
+ gchar* _tmp5_ = NULL;
+ gchar* shared_ext = NULL;
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = g_strdup (shared_ext_collection[shared_ext_it]);
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ shared_ext = _tmp5_;
+#line 3637 "Plugins.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = ext;
+#line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = shared_ext;
+#line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_strcmp0 (_tmp6_, _tmp7_) == 0) {
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (shared_ext);
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (ext);
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (name);
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3657 "Plugins.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (shared_ext);
+#line 3661 "Plugins.c"
+ }
+ }
+ }
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (ext);
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (name);
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3673 "Plugins.c"
+}
+
+
+void plugins_search_for_plugins (GFile* dir, GError** error) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GFileEnumerator* enumerator = NULL;
+ GFile* _tmp3_ = NULL;
+ GFileEnumerator* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = dir;
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp1_;
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_debug ("Plugins.vala:316: Searching %s for plugins ...", _tmp2_);
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp2_);
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = dir;
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = g_file_enumerate_children (_tmp3_, UTIL_FILE_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ enumerator = _tmp4_;
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3709 "Plugins.c"
+ }
+ {
+ gboolean _tmp5_ = FALSE;
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = TRUE;
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 3717 "Plugins.c"
+ GFileInfo* info = NULL;
+ GFileEnumerator* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GFile* file = NULL;
+ GFile* _tmp11_ = NULL;
+ GFileInfo* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFileInfo* _tmp15_ = NULL;
+ GFileType _tmp16_ = 0;
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp5_) {
+#line 3733 "Plugins.c"
+ }
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = FALSE;
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = enumerator;
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = g_file_enumerator_next_file (_tmp6_, NULL, &_inner_error_);
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ info = _tmp7_;
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (enumerator);
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3751 "Plugins.c"
+ }
+#line 324 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = info;
+#line 324 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp8_ == NULL) {
+#line 325 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 325 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3761 "Plugins.c"
+ }
+#line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = info;
+#line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = g_file_info_get_is_hidden (_tmp9_);
+#line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp10_) {
+#line 328 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 328 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ continue;
+#line 3773 "Plugins.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = dir;
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = info;
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = g_file_info_get_name (_tmp12_);
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = g_file_get_child (_tmp11_, _tmp13_);
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ file = _tmp14_;
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = info;
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = g_file_info_get_file_type (_tmp15_);
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ switch (_tmp16_) {
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ case G_FILE_TYPE_DIRECTORY:
+#line 3793 "Plugins.c"
+ {
+ {
+ GFile* _tmp17_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = file;
+#line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_for_plugins (_tmp17_, &_inner_error_);
+#line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3803 "Plugins.c"
+ goto __catch32_g_error;
+ }
+ }
+ goto __finally32;
+ __catch32_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GError* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ err = _inner_error_;
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _inner_error_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = file;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = _tmp19_;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = err;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_->message;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_warning ("Plugins.vala:337: Unable to search directory %s for plugins: %s", _tmp20_, _tmp22_);
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp20_);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_error_free0 (err);
+#line 3836 "Plugins.c"
+ }
+ __finally32:
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (file);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (enumerator);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3851 "Plugins.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3855 "Plugins.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ case G_FILE_TYPE_REGULAR:
+#line 3859 "Plugins.c"
+ {
+ GFile* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = file;
+#line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = plugins_is_shared_library (_tmp23_);
+#line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp24_) {
+#line 3869 "Plugins.c"
+ GFile* _tmp25_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = file;
+#line 343 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_load_module (_tmp25_);
+#line 3875 "Plugins.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3879 "Plugins.c"
+ }
+ default:
+ {
+#line 348 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3885 "Plugins.c"
+ }
+ }
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (file);
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 3892 "Plugins.c"
+ }
+ }
+#line 315 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (enumerator);
+#line 3897 "Plugins.c"
+}
+
+
+void plugins_load_module (GFile* file) {
+ PluginsModuleRep* module_rep = NULL;
+ GFile* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ PluginsModuleRep* _tmp2_ = NULL;
+ void* entry = NULL;
+ PluginsModuleRep* _tmp7_ = NULL;
+ GModule* _tmp8_ = NULL;
+ void* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ SpitEntryPoint spit_entry_point = NULL;
+ void* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ SpitEntryPointParams params = {0};
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ PluginsModuleRep* _tmp18_ = NULL;
+ SpitEntryPoint _tmp19_ = NULL;
+ SpitModule* _tmp20_ = NULL;
+ SpitEntryPointParams _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gboolean _tmp26_ = FALSE;
+ SpitEntryPointParams _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ PluginsModuleRep* _tmp36_ = NULL;
+ SpitEntryPointParams _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ PluginsModuleRep* _tmp39_ = NULL;
+ SpitModule* _tmp40_ = NULL;
+ PluginsModuleRep* _tmp42_ = NULL;
+ SpitModule* _tmp43_ = NULL;
+ PluginsModuleRep* _tmp49_ = NULL;
+ PluginsModuleRep* _tmp50_ = NULL;
+ SpitModule* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ PluginsModuleRep* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ GeeHashMap* _tmp61_ = NULL;
+ PluginsModuleRep* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+ gboolean _tmp64_ = FALSE;
+ PluginsModuleRep* _tmp72_ = NULL;
+ SpitModule* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ PluginsModuleRep* _tmp75_ = NULL;
+ SpitModule* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ PluginsModuleRep* _tmp78_ = NULL;
+ const gchar* _tmp79_ = NULL;
+ GFile* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ GeeHashMap* _tmp83_ = NULL;
+ PluginsModuleRep* _tmp84_ = NULL;
+ const gchar* _tmp85_ = NULL;
+ PluginsModuleRep* _tmp86_ = NULL;
+ PluginsModuleRep* _tmp87_ = NULL;
+ SpitModule* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ SpitPluggable** _tmp90_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_module_rep_open (_tmp0_);
+#line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 355 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = module_rep;
+#line 355 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp2_ == NULL) {
+#line 3974 "Plugins.c"
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = file;
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = g_module_error ();
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:356: Unable to load module %s: %s", _tmp5_, _tmp6_);
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp5_);
+#line 358 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 358 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3995 "Plugins.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = module_rep;
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp7_->module;
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = g_module_symbol (_tmp8_, SPIT_ENTRY_POINT_NAME, &_tmp9_);
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ entry = _tmp9_;
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp10_) {
+#line 4007 "Plugins.c"
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = file;
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = _tmp12_;
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:364: Unable to load module %s: well-known entry point %s " \
+"not found", _tmp13_, SPIT_ENTRY_POINT_NAME);
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp13_);
+#line 367 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 367 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4025 "Plugins.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = entry;
+#line 370 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point = (SpitEntryPoint) _tmp14_;
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (PLUGINS_MIN_SPIT_INTERFACE <= SPIT_CURRENT_INTERFACE) {
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = SPIT_CURRENT_INTERFACE <= PLUGINS_MAX_SPIT_INTERFACE;
+#line 4035 "Plugins.c"
+ } else {
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = FALSE;
+#line 4039 "Plugins.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_assert (_tmp15_, "MIN_SPIT_INTERFACE <= Spit.CURRENT_INTERFACE && Spit.CURRENT_INTERFACE <= MAX_SPIT_INTERFACE");
+#line 373 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ memset (&params, 0, sizeof (SpitEntryPointParams));
+#line 374 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.host_min_spit_interface = PLUGINS_MIN_SPIT_INTERFACE;
+#line 375 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.host_max_spit_interface = PLUGINS_MAX_SPIT_INTERFACE;
+#line 376 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.module_spit_interface = SPIT_UNSUPPORTED_INTERFACE;
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = file;
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (params.module_file);
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.module_file = _tmp17_;
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = module_rep;
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = spit_entry_point;
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = _tmp19_ (&params);
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp18_->spit_module);
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_->spit_module = _tmp20_;
+#line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = params;
+#line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_.module_spit_interface;
+#line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp22_ == SPIT_UNSUPPORTED_INTERFACE) {
+#line 4075 "Plugins.c"
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = file;
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = _tmp24_;
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:381: Unable to load module %s: module reports no support " \
+"for SPIT interfaces %d to %d", _tmp25_, PLUGINS_MIN_SPIT_INTERFACE, PLUGINS_MAX_SPIT_INTERFACE);
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp25_);
+#line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4095 "Plugins.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp27_ = params;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp28_ = _tmp27_.module_spit_interface;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp28_ < PLUGINS_MIN_SPIT_INTERFACE) {
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = TRUE;
+#line 4105 "Plugins.c"
+ } else {
+ SpitEntryPointParams _tmp29_ = {0};
+ gint _tmp30_ = 0;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp29_ = params;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp30_ = _tmp29_.module_spit_interface;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = _tmp30_ > PLUGINS_MAX_SPIT_INTERFACE;
+#line 4115 "Plugins.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp26_) {
+#line 4119 "Plugins.c"
+ GFile* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ PluginsModuleRep* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp31_ = file;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp32_ = g_file_get_path (_tmp31_);
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp33_ = _tmp32_;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp34_ = module_rep;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp35_ = _tmp34_->spit_interface;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:388: Unable to load module %s: module reports unsupported" \
+" SPIT version %d (out of range %d to %d)", _tmp33_, _tmp35_, PLUGINS_MIN_SPIT_INTERFACE, PLUGINS_MAX_SPIT_INTERFACE);
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp33_);
+#line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4145 "Plugins.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp36_ = module_rep;
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp37_ = params;
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp38_ = _tmp37_.module_spit_interface;
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp36_->spit_interface = _tmp38_;
+#line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp39_ = module_rep;
+#line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp40_ = _tmp39_->spit_module;
+#line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp40_, SPIT_TYPE_MODULE)) {
+#line 4161 "Plugins.c"
+ PluginsModuleRep* _tmp41_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp41_ = module_rep;
+#line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp41_->spit_module);
+#line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp41_->spit_module = NULL;
+#line 4169 "Plugins.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp42_ = module_rep;
+#line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp43_ = _tmp42_->spit_module;
+#line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp43_ == NULL) {
+#line 4177 "Plugins.c"
+ GFile* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ PluginsModuleRep* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp44_ = file;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp45_ = g_file_get_path (_tmp44_);
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp46_ = _tmp45_;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp47_ = module_rep;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp48_ = _tmp47_->spit_interface;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:401: Unable to load module %s (SPIT %d): no spit module r" \
+"eturned", _tmp46_, _tmp48_);
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp46_);
+#line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4203 "Plugins.c"
+ }
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp49_ = module_rep;
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp50_ = module_rep;
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp51_ = _tmp50_->spit_module;
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp52_ = spit_module_get_id (_tmp51_);
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp53_ = prepare_input_text (_tmp52_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT, -1);
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp49_->id);
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp49_->id = _tmp53_;
+#line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp54_ = module_rep;
+#line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp55_ = _tmp54_->id;
+#line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp55_ == NULL) {
+#line 4225 "Plugins.c"
+ GFile* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ PluginsModuleRep* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp56_ = file;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp57_ = g_file_get_path (_tmp56_);
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp58_ = _tmp57_;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp59_ = module_rep;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp60_ = _tmp59_->spit_interface;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:411: Unable to load module %s (SPIT %d): invalid or empty" \
+" module name", _tmp58_, _tmp60_);
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp58_);
+#line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4251 "Plugins.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp61_ = plugins_module_table;
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp62_ = module_rep;
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp63_ = _tmp62_->id;
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp64_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp63_);
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp64_) {
+#line 4263 "Plugins.c"
+ GFile* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ PluginsModuleRep* _tmp68_ = NULL;
+ gint _tmp69_ = 0;
+ PluginsModuleRep* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp65_ = file;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp66_ = g_file_get_path (_tmp65_);
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp67_ = _tmp66_;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp68_ = module_rep;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp69_ = _tmp68_->spit_interface;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp70_ = module_rep;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp71_ = _tmp70_->id;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:418: Not loading module %s (SPIT %d): module with name \"" \
+"%s\" already loaded", _tmp67_, _tmp69_, _tmp71_);
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp67_);
+#line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4295 "Plugins.c"
+ }
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp72_ = module_rep;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp73_ = _tmp72_->spit_module;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp74_ = spit_module_get_module_name (_tmp73_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp75_ = module_rep;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp76_ = _tmp75_->spit_module;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp77_ = spit_module_get_version (_tmp76_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp78_ = module_rep;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp79_ = _tmp78_->id;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp80_ = file;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp81_ = g_file_get_path (_tmp80_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp82_ = _tmp81_;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_debug ("Plugins.vala:424: Loaded SPIT module \"%s %s\" (%s) [%s]", _tmp74_, _tmp77_, _tmp79_, _tmp82_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp82_);
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp83_ = plugins_module_table;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp84_ = module_rep;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp85_ = _tmp84_->id;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp86_ = module_rep;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp85_, _tmp86_);
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp87_ = module_rep;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp88_ = _tmp87_->spit_module;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp90_ = spit_module_get_pluggables (_tmp88_, &_tmp89_);
+#line 4339 "Plugins.c"
+ {
+ SpitPluggable** pluggable_collection = NULL;
+ gint pluggable_collection_length1 = 0;
+ gint _pluggable_collection_size_ = 0;
+ gint pluggable_it = 0;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection = _tmp90_;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection_length1 = _tmp89_;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (pluggable_it = 0; pluggable_it < _tmp89_; pluggable_it = pluggable_it + 1) {
+#line 4351 "Plugins.c"
+ SpitPluggable* _tmp91_ = NULL;
+ SpitPluggable* pluggable = NULL;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp91_ = _g_object_ref0 (pluggable_collection[pluggable_it]);
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable = _tmp91_;
+#line 4358 "Plugins.c"
+ {
+ GeeHashMap* _tmp92_ = NULL;
+ SpitPluggable* _tmp93_ = NULL;
+ const gchar* _tmp94_ = NULL;
+ SpitPluggable* _tmp95_ = NULL;
+ PluginsPluggableRep* _tmp96_ = NULL;
+ PluginsPluggableRep* _tmp97_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp92_ = plugins_pluggable_table;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp93_ = pluggable;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp94_ = spit_pluggable_get_id (_tmp93_);
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp95_ = pluggable;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp96_ = plugins_pluggable_rep_new (_tmp95_);
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp97_ = _tmp96_;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp92_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp94_, _tmp97_);
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (_tmp97_);
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (pluggable);
+#line 4384 "Plugins.c"
+ }
+ }
+ }
+#line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 4392 "Plugins.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/plugins/PublishingInterfaces.c b/src/plugins/PublishingInterfaces.c
new file mode 100644
index 0000000..e2e22cb
--- /dev/null
+++ b/src/plugins/PublishingInterfaces.c
@@ -0,0 +1,1760 @@
+/* PublishingInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from PublishingInterfaces.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+#include <gtk/gtk.h>
+
+
+#define SPIT_PUBLISHING_TYPE_PUBLISHER (spit_publishing_publisher_get_type ())
+#define SPIT_PUBLISHING_PUBLISHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_PUBLISHER, SpitPublishingPublisher))
+#define SPIT_PUBLISHING_IS_PUBLISHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHER))
+#define SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHER, SpitPublishingPublisherIface))
+
+typedef struct _SpitPublishingPublisher SpitPublishingPublisher;
+typedef struct _SpitPublishingPublisherIface SpitPublishingPublisherIface;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+
+#define SPIT_PUBLISHING_TYPE_SERVICE (spit_publishing_service_get_type ())
+#define SPIT_PUBLISHING_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_SERVICE, SpitPublishingService))
+#define SPIT_PUBLISHING_IS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_SERVICE))
+#define SPIT_PUBLISHING_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_SERVICE, SpitPublishingServiceIface))
+
+typedef struct _SpitPublishingService SpitPublishingService;
+typedef struct _SpitPublishingServiceIface SpitPublishingServiceIface;
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+#define SPIT_PUBLISHING_TYPE_PLUGIN_HOST (spit_publishing_plugin_host_get_type ())
+#define SPIT_PUBLISHING_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost))
+#define SPIT_PUBLISHING_IS_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_PLUGIN_HOST))
+#define SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHostIface))
+
+typedef struct _SpitPublishingPluginHost SpitPublishingPluginHost;
+typedef struct _SpitPublishingPluginHostIface SpitPublishingPluginHostIface;
+
+#define SPIT_PUBLISHING_TYPE_DIALOG_PANE (spit_publishing_dialog_pane_get_type ())
+#define SPIT_PUBLISHING_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane))
+#define SPIT_PUBLISHING_IS_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_DIALOG_PANE))
+#define SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPaneIface))
+
+typedef struct _SpitPublishingDialogPane SpitPublishingDialogPane;
+typedef struct _SpitPublishingDialogPaneIface SpitPublishingDialogPaneIface;
+
+#define SPIT_PUBLISHING_DIALOG_PANE_TYPE_GEOMETRY_OPTIONS (spit_publishing_dialog_pane_geometry_options_get_type ())
+
+#define SPIT_PUBLISHING_PLUGIN_HOST_TYPE_BUTTON_MODE (spit_publishing_plugin_host_button_mode_get_type ())
+
+#define SPIT_PUBLISHING_TYPE_PUBLISHABLE (spit_publishing_publishable_get_type ())
+#define SPIT_PUBLISHING_PUBLISHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_PUBLISHABLE, SpitPublishingPublishable))
+#define SPIT_PUBLISHING_IS_PUBLISHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHABLE))
+#define SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHABLE, SpitPublishingPublishableIface))
+
+typedef struct _SpitPublishingPublishable SpitPublishingPublishable;
+typedef struct _SpitPublishingPublishableIface SpitPublishingPublishableIface;
+
+#define SPIT_PUBLISHING_PUBLISHER_TYPE_MEDIA_TYPE (spit_publishing_publisher_media_type_get_type ())
+
+/**
+ * Defines different kinds of errors that can occur during publishing.
+ */
+typedef enum {
+ SPIT_PUBLISHING_PUBLISHING_ERROR_NO_ANSWER,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_COMMUNICATION_FAILED,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_PROTOCOL_ERROR,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_SERVICE_ERROR,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_MALFORMED_RESPONSE,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_LOCAL_FILE_ERROR,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_EXPIRED_SESSION,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_SSL_FAILED
+} SpitPublishingPublishingError;
+#define SPIT_PUBLISHING_PUBLISHING_ERROR spit_publishing_publishing_error_quark ()
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+typedef enum {
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE = 0,
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE = 1 << 0,
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE = 1 << 1,
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE = 1 << 2
+} SpitPublishingDialogPaneGeometryOptions;
+
+struct _SpitPublishingDialogPaneIface {
+ GTypeInterface parent_iface;
+ GtkWidget* (*get_widget) (SpitPublishingDialogPane* self);
+ SpitPublishingDialogPaneGeometryOptions (*get_preferred_geometry) (SpitPublishingDialogPane* self);
+ void (*on_pane_installed) (SpitPublishingDialogPane* self);
+ void (*on_pane_uninstalled) (SpitPublishingDialogPane* self);
+ void (*reserved0) (SpitPublishingDialogPane* self);
+ void (*reserved1) (SpitPublishingDialogPane* self);
+ void (*reserved2) (SpitPublishingDialogPane* self);
+ void (*reserved3) (SpitPublishingDialogPane* self);
+ void (*reserved4) (SpitPublishingDialogPane* self);
+ void (*reserved5) (SpitPublishingDialogPane* self);
+ void (*reserved6) (SpitPublishingDialogPane* self);
+ void (*reserved7) (SpitPublishingDialogPane* self);
+};
+
+typedef enum {
+ SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE = 0,
+ SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL = 1
+} SpitPublishingPluginHostButtonMode;
+
+typedef void (*SpitPublishingLoginCallback) (void* user_data);
+typedef enum {
+ SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE = 0,
+ SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO = 1 << 0,
+ SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO = 1 << 1
+} SpitPublishingPublisherMediaType;
+
+struct _SpitPublishingPublishableIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_serialized_file) (SpitPublishingPublishable* self);
+ gchar* (*get_publishing_name) (SpitPublishingPublishable* self);
+ gchar* (*get_param_string) (SpitPublishingPublishable* self, const gchar* name);
+ gchar** (*get_publishing_keywords) (SpitPublishingPublishable* self, int* result_length1);
+ SpitPublishingPublisherMediaType (*get_media_type) (SpitPublishingPublishable* self);
+ GDateTime* (*get_exposure_date_time) (SpitPublishingPublishable* self);
+ void (*reserved0) (SpitPublishingPublishable* self);
+ void (*reserved1) (SpitPublishingPublishable* self);
+ void (*reserved2) (SpitPublishingPublishable* self);
+ void (*reserved3) (SpitPublishingPublishable* self);
+ void (*reserved4) (SpitPublishingPublishable* self);
+ void (*reserved5) (SpitPublishingPublishable* self);
+ void (*reserved6) (SpitPublishingPublishable* self);
+ void (*reserved7) (SpitPublishingPublishable* self);
+};
+
+typedef void (*SpitPublishingProgressCallback) (gint file_number, gdouble fraction_complete, void* user_data);
+struct _SpitPublishingPluginHostIface {
+ GTypeInterface parent_iface;
+ void (*post_error) (SpitPublishingPluginHost* self, GError* err);
+ void (*stop_publishing) (SpitPublishingPluginHost* self);
+ SpitPublishingPublisher* (*get_publisher) (SpitPublishingPluginHost* self);
+ void (*install_dialog_pane) (SpitPublishingPluginHost* self, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode mode);
+ void (*install_static_message_pane) (SpitPublishingPluginHost* self, const gchar* message, SpitPublishingPluginHostButtonMode mode);
+ void (*install_pango_message_pane) (SpitPublishingPluginHost* self, const gchar* markup, SpitPublishingPluginHostButtonMode mode);
+ void (*install_success_pane) (SpitPublishingPluginHost* self);
+ void (*install_account_fetch_wait_pane) (SpitPublishingPluginHost* self);
+ void (*install_login_wait_pane) (SpitPublishingPluginHost* self);
+ void (*install_welcome_pane) (SpitPublishingPluginHost* self, const gchar* welcome_message, SpitPublishingLoginCallback on_login_clicked, void* on_login_clicked_target);
+ void (*set_service_locked) (SpitPublishingPluginHost* self, gboolean is_locked);
+ void (*set_dialog_default_widget) (SpitPublishingPluginHost* self, GtkWidget* widget);
+ SpitPublishingPublishable** (*get_publishables) (SpitPublishingPluginHost* self, int* result_length1);
+ SpitPublishingProgressCallback (*serialize_publishables) (SpitPublishingPluginHost* self, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify);
+ SpitPublishingPublisherMediaType (*get_publishable_media_type) (SpitPublishingPluginHost* self);
+ void (*reserved0) (SpitPublishingPluginHost* self);
+ void (*reserved1) (SpitPublishingPluginHost* self);
+ void (*reserved2) (SpitPublishingPluginHost* self);
+ void (*reserved3) (SpitPublishingPluginHost* self);
+ void (*reserved4) (SpitPublishingPluginHost* self);
+ void (*reserved5) (SpitPublishingPluginHost* self);
+ void (*reserved6) (SpitPublishingPluginHost* self);
+ void (*reserved7) (SpitPublishingPluginHost* self);
+};
+
+struct _SpitPublishingServiceIface {
+ GTypeInterface parent_iface;
+ SpitPublishingPublisher* (*create_publisher) (SpitPublishingService* self, SpitPublishingPluginHost* host);
+ SpitPublishingPublisherMediaType (*get_supported_media) (SpitPublishingService* self);
+ void (*reserved0) (SpitPublishingService* self);
+ void (*reserved1) (SpitPublishingService* self);
+ void (*reserved2) (SpitPublishingService* self);
+ void (*reserved3) (SpitPublishingService* self);
+ void (*reserved4) (SpitPublishingService* self);
+ void (*reserved5) (SpitPublishingService* self);
+ void (*reserved6) (SpitPublishingService* self);
+ void (*reserved7) (SpitPublishingService* self);
+};
+
+struct _SpitPublishingPublisherIface {
+ GTypeInterface parent_iface;
+ SpitPublishingService* (*get_service) (SpitPublishingPublisher* self);
+ void (*start) (SpitPublishingPublisher* self);
+ gboolean (*is_running) (SpitPublishingPublisher* self);
+ void (*stop) (SpitPublishingPublisher* self);
+ void (*reserved0) (SpitPublishingPublisher* self);
+ void (*reserved1) (SpitPublishingPublisher* self);
+ void (*reserved2) (SpitPublishingPublisher* self);
+ void (*reserved3) (SpitPublishingPublisher* self);
+ void (*reserved4) (SpitPublishingPublisher* self);
+ void (*reserved5) (SpitPublishingPublisher* self);
+ void (*reserved6) (SpitPublishingPublisher* self);
+ void (*reserved7) (SpitPublishingPublisher* self);
+};
+
+
+
+#define SPIT_PUBLISHING_CURRENT_INTERFACE 0
+GQuark spit_publishing_publishing_error_quark (void);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_publishing_dialog_pane_geometry_options_get_type (void) G_GNUC_CONST;
+GType spit_publishing_dialog_pane_get_type (void) G_GNUC_CONST;
+GType spit_publishing_plugin_host_button_mode_get_type (void) G_GNUC_CONST;
+GType spit_publishing_publisher_media_type_get_type (void) G_GNUC_CONST;
+GType spit_publishing_publishable_get_type (void) G_GNUC_CONST;
+GType spit_publishing_plugin_host_get_type (void) G_GNUC_CONST;
+GType spit_publishing_service_get_type (void) G_GNUC_CONST;
+GType spit_publishing_publisher_get_type (void) G_GNUC_CONST;
+SpitPublishingService* spit_publishing_publisher_get_service (SpitPublishingPublisher* self);
+void spit_publishing_publisher_start (SpitPublishingPublisher* self);
+gboolean spit_publishing_publisher_is_running (SpitPublishingPublisher* self);
+void spit_publishing_publisher_stop (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved0 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved0 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved1 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved1 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved2 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved2 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved3 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved3 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved4 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved4 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved5 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved5 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved6 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved6 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved7 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved7 (SpitPublishingPublisher* self);
+GtkWidget* spit_publishing_dialog_pane_get_widget (SpitPublishingDialogPane* self);
+SpitPublishingDialogPaneGeometryOptions spit_publishing_dialog_pane_get_preferred_geometry (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_on_pane_installed (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_on_pane_uninstalled (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved0 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved0 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved1 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved1 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved2 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved2 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved3 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved3 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved4 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved4 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved5 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved5 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved6 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved6 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved7 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved7 (SpitPublishingDialogPane* self);
+void spit_publishing_plugin_host_post_error (SpitPublishingPluginHost* self, GError* err);
+void spit_publishing_plugin_host_stop_publishing (SpitPublishingPluginHost* self);
+SpitPublishingPublisher* spit_publishing_plugin_host_get_publisher (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_dialog_pane (SpitPublishingPluginHost* self, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode mode);
+void spit_publishing_plugin_host_install_static_message_pane (SpitPublishingPluginHost* self, const gchar* message, SpitPublishingPluginHostButtonMode mode);
+void spit_publishing_plugin_host_install_pango_message_pane (SpitPublishingPluginHost* self, const gchar* markup, SpitPublishingPluginHostButtonMode mode);
+void spit_publishing_plugin_host_install_success_pane (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_account_fetch_wait_pane (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_login_wait_pane (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_welcome_pane (SpitPublishingPluginHost* self, const gchar* welcome_message, SpitPublishingLoginCallback on_login_clicked, void* on_login_clicked_target);
+void spit_publishing_plugin_host_set_service_locked (SpitPublishingPluginHost* self, gboolean is_locked);
+void spit_publishing_plugin_host_set_dialog_default_widget (SpitPublishingPluginHost* self, GtkWidget* widget);
+SpitPublishingPublishable** spit_publishing_plugin_host_get_publishables (SpitPublishingPluginHost* self, int* result_length1);
+SpitPublishingProgressCallback spit_publishing_plugin_host_serialize_publishables (SpitPublishingPluginHost* self, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify);
+SpitPublishingPublisherMediaType spit_publishing_plugin_host_get_publishable_media_type (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved0 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved0 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved1 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved1 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved2 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved2 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved3 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved3 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved4 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved4 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved5 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved5 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved6 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved6 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved7 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved7 (SpitPublishingPluginHost* self);
+GFile* spit_publishing_publishable_get_serialized_file (SpitPublishingPublishable* self);
+gchar* spit_publishing_publishable_get_publishing_name (SpitPublishingPublishable* self);
+gchar* spit_publishing_publishable_get_param_string (SpitPublishingPublishable* self, const gchar* name);
+gchar** spit_publishing_publishable_get_publishing_keywords (SpitPublishingPublishable* self, int* result_length1);
+SpitPublishingPublisherMediaType spit_publishing_publishable_get_media_type (SpitPublishingPublishable* self);
+GDateTime* spit_publishing_publishable_get_exposure_date_time (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved0 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved0 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved1 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved1 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved2 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved2 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved3 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved3 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved4 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved4 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved5 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved5 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved6 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved6 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved7 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved7 (SpitPublishingPublishable* self);
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_BASENAME "basename"
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_TITLE "title"
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_COMMENT "comment"
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_EVENTCOMMENT "eventcomment"
+SpitPublishingPublisher* spit_publishing_service_create_publisher (SpitPublishingService* self, SpitPublishingPluginHost* host);
+SpitPublishingPublisherMediaType spit_publishing_service_get_supported_media (SpitPublishingService* self);
+void spit_publishing_service_reserved0 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved0 (SpitPublishingService* self);
+void spit_publishing_service_reserved1 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved1 (SpitPublishingService* self);
+void spit_publishing_service_reserved2 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved2 (SpitPublishingService* self);
+void spit_publishing_service_reserved3 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved3 (SpitPublishingService* self);
+void spit_publishing_service_reserved4 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved4 (SpitPublishingService* self);
+void spit_publishing_service_reserved5 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved5 (SpitPublishingService* self);
+void spit_publishing_service_reserved6 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved6 (SpitPublishingService* self);
+void spit_publishing_service_reserved7 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved7 (SpitPublishingService* self);
+
+
+GQuark spit_publishing_publishing_error_quark (void) {
+ return g_quark_from_static_string ("spit_publishing_publishing_error-quark");
+}
+
+
+/**
+ * Describes the kinds of media a publishing service supports.
+ *
+ * Values can be masked together, for example: {{{(MediaType.PHOTO | MediaType.VIDEO)}}}
+ * indicates that a publishing service supports the upload of both photos and videos.
+ */
+GType spit_publishing_publisher_media_type_get_type (void) {
+ static volatile gsize spit_publishing_publisher_media_type_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_publisher_media_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE, "SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE", "none"}, {SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO, "SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO", "photo"}, {SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO, "SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO", "video"}, {0, NULL, NULL}};
+ GType spit_publishing_publisher_media_type_type_id;
+ spit_publishing_publisher_media_type_type_id = g_enum_register_static ("SpitPublishingPublisherMediaType", values);
+ g_once_init_leave (&spit_publishing_publisher_media_type_type_id__volatile, spit_publishing_publisher_media_type_type_id);
+ }
+ return spit_publishing_publisher_media_type_type_id__volatile;
+}
+
+
+/**
+ * Returns a {@link Service} object describing the service to which this connects.
+ */
+SpitPublishingService* spit_publishing_publisher_get_service (SpitPublishingPublisher* self) {
+#line 121 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self), NULL);
+#line 121 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->get_service (self);
+#line 432 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Makes this publisher enter the running state and endows it with exclusive access
+ * to the shared services provided by the {@link PluginHost}. Through the host’s interface,
+ * this publisher can install user interface panes and query configuration information.
+ * Only running services should perform network operations.
+ */
+void spit_publishing_publisher_start (SpitPublishingPublisher* self) {
+#line 129 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 129 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->start (self);
+#line 447 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns true if this publisher is in the running state; false otherwise.
+ */
+gboolean spit_publishing_publisher_is_running (SpitPublishingPublisher* self) {
+#line 134 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self), FALSE);
+#line 134 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->is_running (self);
+#line 459 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Causes this publisher to enter a non-running state. This publisher should stop all
+ * network operations and cease use of the shared services provided by the {@link PluginHost}.
+ */
+void spit_publishing_publisher_stop (SpitPublishingPublisher* self) {
+#line 140 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 140 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->stop (self);
+#line 472 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved0 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved0 (SpitPublishingPublisher* self) {
+#line 145 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 145 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved0 (self);
+#line 485 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved1 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved1 (SpitPublishingPublisher* self) {
+#line 146 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 146 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved1 (self);
+#line 498 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved2 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved2 (SpitPublishingPublisher* self) {
+#line 147 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 147 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved2 (self);
+#line 511 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved3 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved3 (SpitPublishingPublisher* self) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 148 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved3 (self);
+#line 524 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved4 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved4 (SpitPublishingPublisher* self) {
+#line 149 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 149 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved4 (self);
+#line 537 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved5 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved5 (SpitPublishingPublisher* self) {
+#line 150 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 150 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved5 (self);
+#line 550 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved6 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved6 (SpitPublishingPublisher* self) {
+#line 151 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 151 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved6 (self);
+#line 563 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved7 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved7 (SpitPublishingPublisher* self) {
+#line 152 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 152 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved7 (self);
+#line 576 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_base_init (SpitPublishingPublisherIface * iface) {
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_publisher_real_reserved0;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_publisher_real_reserved1;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_publisher_real_reserved2;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_publisher_real_reserved3;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_publisher_real_reserved4;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_publisher_real_reserved5;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_publisher_real_reserved6;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_publisher_real_reserved7;
+#line 603 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents a connection to a publishing service.
+ *
+ * Developers of publishing plugins provide a class that implements this interface. At
+ * any given time, only one Publisher can be running. When a publisher is running, it is
+ * allowed to access the network and has exclusive use of the shared user-interface and
+ * configuration services provided by the {@link PluginHost}. Publishers are created in
+ * a non-running state and do not begin running until start( ) is invoked. Publishers
+ * run until stop( ) is invoked.
+ */
+GType spit_publishing_publisher_get_type (void) {
+ static volatile gsize spit_publishing_publisher_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_publisher_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingPublisherIface), (GBaseInitFunc) spit_publishing_publisher_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_publisher_type_id;
+ spit_publishing_publisher_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingPublisher", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_publisher_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_publishing_publisher_type_id__volatile, spit_publishing_publisher_type_id);
+ }
+ return spit_publishing_publisher_type_id__volatile;
+}
+
+
+/**
+ * Describes how the on-screen publishing dialog box should look and behave when an associated
+ * pane is installed in the on-screen publishing dialog box.
+ */
+GType spit_publishing_dialog_pane_geometry_options_get_type (void) {
+ static volatile gsize spit_publishing_dialog_pane_geometry_options_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_dialog_pane_geometry_options_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE", "none"}, {SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE", "extended-size"}, {SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE", "resizable"}, {SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE", "colossal-size"}, {0, NULL, NULL}};
+ GType spit_publishing_dialog_pane_geometry_options_type_id;
+ spit_publishing_dialog_pane_geometry_options_type_id = g_enum_register_static ("SpitPublishingDialogPaneGeometryOptions", values);
+ g_once_init_leave (&spit_publishing_dialog_pane_geometry_options_type_id__volatile, spit_publishing_dialog_pane_geometry_options_type_id);
+ }
+ return spit_publishing_dialog_pane_geometry_options_type_id__volatile;
+}
+
+
+/**
+ * Returns the Gtk.Widget that is this pane's on-screen representation.
+ */
+GtkWidget* spit_publishing_dialog_pane_get_widget (SpitPublishingDialogPane* self) {
+#line 197 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self), NULL);
+#line 197 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->get_widget (self);
+#line 655 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a {@link GeometryOptions} bitfield describing how the on-screen publishing dialog
+ * box should look and behave when this pane is installed.
+ */
+SpitPublishingDialogPaneGeometryOptions spit_publishing_dialog_pane_get_preferred_geometry (SpitPublishingDialogPane* self) {
+#line 203 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self), 0);
+#line 203 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->get_preferred_geometry (self);
+#line 668 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been installed into the on-screen
+ * publishing dialog box and become visible to the user.
+ */
+void spit_publishing_dialog_pane_on_pane_installed (SpitPublishingDialogPane* self) {
+#line 209 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 209 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->on_pane_installed (self);
+#line 681 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been removed from the on-screen
+ * publishing dialog box and is no longer visible to the user.
+ */
+void spit_publishing_dialog_pane_on_pane_uninstalled (SpitPublishingDialogPane* self) {
+#line 215 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 215 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->on_pane_uninstalled (self);
+#line 694 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved0 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved0 (SpitPublishingDialogPane* self) {
+#line 220 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 220 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved0 (self);
+#line 707 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved1 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved1 (SpitPublishingDialogPane* self) {
+#line 221 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 221 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved1 (self);
+#line 720 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved2 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved2 (SpitPublishingDialogPane* self) {
+#line 222 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 222 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved2 (self);
+#line 733 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved3 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved3 (SpitPublishingDialogPane* self) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 223 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved3 (self);
+#line 746 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved4 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved4 (SpitPublishingDialogPane* self) {
+#line 224 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 224 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved4 (self);
+#line 759 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved5 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved5 (SpitPublishingDialogPane* self) {
+#line 225 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 225 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved5 (self);
+#line 772 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved6 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved6 (SpitPublishingDialogPane* self) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 226 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved6 (self);
+#line 785 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved7 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved7 (SpitPublishingDialogPane* self) {
+#line 227 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 227 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved7 (self);
+#line 798 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_base_init (SpitPublishingDialogPaneIface * iface) {
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_dialog_pane_real_reserved0;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_dialog_pane_real_reserved1;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_dialog_pane_real_reserved2;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_dialog_pane_real_reserved3;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_dialog_pane_real_reserved4;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_dialog_pane_real_reserved5;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_dialog_pane_real_reserved6;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_dialog_pane_real_reserved7;
+#line 825 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Encapsulates a pane that can be installed in the on-screen publishing dialog box to
+ * communicate status to and to get information from the user.
+ *
+ */
+GType spit_publishing_dialog_pane_get_type (void) {
+ static volatile gsize spit_publishing_dialog_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_dialog_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingDialogPaneIface), (GBaseInitFunc) spit_publishing_dialog_pane_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_dialog_pane_type_id;
+ spit_publishing_dialog_pane_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingDialogPane", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_dialog_pane_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_publishing_dialog_pane_type_id__volatile, spit_publishing_dialog_pane_type_id);
+ }
+ return spit_publishing_dialog_pane_type_id__volatile;
+}
+
+
+/**
+ * Specifies the label text on the push button control that appears in the
+ * lower-right-hand corner of the on-screen publishing dialog box.
+ */
+GType spit_publishing_plugin_host_button_mode_get_type (void) {
+ static volatile gsize spit_publishing_plugin_host_button_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_plugin_host_button_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE, "SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE", "close"}, {SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL, "SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL", "cancel"}, {0, NULL, NULL}};
+ GType spit_publishing_plugin_host_button_mode_type_id;
+ spit_publishing_plugin_host_button_mode_type_id = g_enum_register_static ("SpitPublishingPluginHostButtonMode", values);
+ g_once_init_leave (&spit_publishing_plugin_host_button_mode_type_id__volatile, spit_publishing_plugin_host_button_mode_type_id);
+ }
+ return spit_publishing_plugin_host_button_mode_type_id__volatile;
+}
+
+
+/**
+ * Notifies the user that an unrecoverable publishing error has occurred and halts
+ * the publishing process.
+ *
+ * @param err An error object that describes the kind of error that occurred.
+ */
+void spit_publishing_plugin_host_post_error (SpitPublishingPluginHost* self, GError* err) {
+#line 277 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 277 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->post_error (self, err);
+#line 875 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Halts the publishing process.
+ *
+ * Calling this method stops all network activity and hides the on-screen publishing
+ * dialog box.
+ */
+void spit_publishing_plugin_host_stop_publishing (SpitPublishingPluginHost* self) {
+#line 285 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 285 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->stop_publishing (self);
+#line 890 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a reference to the {@link Publisher} object that this is currently hosting.
+ */
+SpitPublishingPublisher* spit_publishing_plugin_host_get_publisher (SpitPublishingPluginHost* self) {
+#line 290 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), NULL);
+#line 290 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->get_publisher (self);
+#line 902 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen publishing dialog box, making the pane visible
+ * and allowing it to interact with the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param pane the pane to install
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen publishing dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your publisher is in the
+ * middle of uploading 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the publishing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable publishing actions have already
+ * occurred.
+ */
+void spit_publishing_plugin_host_install_dialog_pane (SpitPublishingPluginHost* self, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode mode) {
+#line 310 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 310 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_dialog_pane (self, pane, mode);
+#line 929 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen publishing dialog box that contains
+ * static text.
+ *
+ * The text appears centered in the publishing dialog box and is drawn in
+ * the system font. This is a convenience method only; similar results could be
+ * achieved by manually constructing a Gtk.Label widget, wrapping it inside a
+ * {@link DialogPane}, and installing it manually with a call to
+ * install_dialog_pane( ). To provide visual consistency across publishing services,
+ * however, always use this convenience method instead of constructing label panes when
+ * you need to display static text to the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param message the text to show in the pane
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen publishing dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your publisher is in the
+ * middle of uploading 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the publishing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable publishing actions have already
+ * occurred.
+ */
+void spit_publishing_plugin_host_install_static_message_pane (SpitPublishingPluginHost* self, const gchar* message, SpitPublishingPluginHostButtonMode mode) {
+#line 339 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 339 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_static_message_pane (self, message, mode);
+#line 964 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Works just like {@link install_static_message_pane} but allows markup to contain
+ * Pango text formatting tags as well as unstyled text.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param markup the text to show in the pane, marked up with Pango formatting tags.
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen publishing dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your publisher is in the
+ * middle of uploading 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the publishing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable publishing actions have already
+ * occurred.
+ */
+void spit_publishing_plugin_host_install_pango_message_pane (SpitPublishingPluginHost* self, const gchar* markup, SpitPublishingPluginHostButtonMode mode) {
+#line 360 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 360 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_pango_message_pane (self, markup, mode);
+#line 991 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen publishing dialog box notifying the user
+ * that his or her publishing operation completed successfully.
+ *
+ * The text displayed depends on the type of media the current publishing service
+ * supports. To provide visual consistency across publishing services and to allow
+ * Shotwell to handle internationalization, always use this convenience method; don’t
+ * contruct and install success panes manually.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor
+ * this request.
+ */
+void spit_publishing_plugin_host_install_success_pane (SpitPublishingPluginHost* self) {
+#line 375 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 375 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_success_pane (self);
+#line 1012 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane displaying the static text “Fetching account information...”
+ * in the on-screen publishing dialog box, making it visible to the user.
+ *
+ * This is a convenience method only; similar results could be achieved by calling
+ * {@link install_static_message_pane} with an appropriate text argument. To provide
+ * visual consistency across publishing services and to allow Shotwell to handle
+ * internationalization, however, you should always use this convenience method whenever
+ * you need to tell the user that you’re querying account information over the network.
+ * Queries such as this are almost always performed immediately after the user has logged
+ * in to the remote service.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ */
+void spit_publishing_plugin_host_install_account_fetch_wait_pane (SpitPublishingPluginHost* self) {
+#line 391 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 391 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_account_fetch_wait_pane (self);
+#line 1035 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Works just like {@link install_account_fetch_wait_pane} but displays the static text
+ * “Logging in...“
+ *
+ * As with {@link install_account_fetch_wait_pane}, this is a convenience method, but
+ * you should you use it provide to visual consistency and to let Shotwell handle
+ * internationalization. See the description of {@link install_account_fetch_wait_pane}
+ * for more information.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ */
+void spit_publishing_plugin_host_install_login_wait_pane (SpitPublishingPluginHost* self) {
+#line 405 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 405 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_login_wait_pane (self);
+#line 1055 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane displaying the text 'welcome_message' above a push
+ * button labeled “Login” in the on-screen publishing dialog box, making it visible to the
+ * user.
+ *
+ * When the user clicks the “Login” button, you’ll be notified of the user’s action through
+ * the callback 'on_login_clicked'. Every Publisher should provide a welcome pane to
+ * introduce the service and explain service-specific features or restrictions. To provide
+ * visual consistency across publishing services and to allow Shotwell to handle
+ * internationalization, always use this convenience method; don’t contruct and install
+ * welcome panes manually.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param welcome_message the text to be displayed above a push button labeled “Login”
+ * in the on-screen publishing dialog box.
+ *
+ * @param on_login_clicked specifies the callback that is invoked when the user clicks
+ * the “Login” button.
+ */
+void spit_publishing_plugin_host_install_welcome_pane (SpitPublishingPluginHost* self, const gchar* welcome_message, SpitPublishingLoginCallback on_login_clicked, void* on_login_clicked_target) {
+#line 427 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 427 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_welcome_pane (self, welcome_message, on_login_clicked, on_login_clicked_target);
+#line 1084 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Toggles whether the service selector combo box in the upper-right-hand corner of the
+ * on-screen publishing dialog box is sensitive to input.
+ *
+ * Publishers should make the service selector box insensitive to input when they are performing
+ * non-interruptible file or network operations, since switching to another publishing
+ * service will halt whatever service is currently running. Under certain circumstances,
+ * the {@link PluginHost} may not honor this request.
+ *
+ * @param is_locked when is_locked is true, the service selector combo box is made insensitive.
+ * It appears greyed out and the user is prevented from switching to another publishing service.
+ * When is_locked is false, the combo box is sensitive, allowing the user to freely switch
+ * from the current service to another service.
+ */
+void spit_publishing_plugin_host_set_service_locked (SpitPublishingPluginHost* self, gboolean is_locked) {
+#line 444 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 444 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->set_service_locked (self, is_locked);
+#line 1107 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Makes the designated widget the default widget for the publishing dialog.
+ *
+ * After a call to this method, the designated widget will be activated whenever the user
+ * presses the [ENTER] key anywhere in the on-screen publishing dialog box. Under certain
+ * circumstances, the {@link PluginHost} may not honor this request.
+ *
+ * @param widget a reference to the widget to designate as the default widget for the
+ * publishing dialog.
+ */
+void spit_publishing_plugin_host_set_dialog_default_widget (SpitPublishingPluginHost* self, GtkWidget* widget) {
+#line 456 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 456 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->set_dialog_default_widget (self, widget);
+#line 1126 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns an array of the publishable media items that the user has selected for upload to the
+ * remote service.
+ */
+SpitPublishingPublishable** spit_publishing_plugin_host_get_publishables (SpitPublishingPluginHost* self, int* result_length1) {
+#line 462 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), NULL);
+#line 462 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->get_publishables (self, result_length1);
+#line 1139 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Writes all of the publishable media items that the user has selected for upload to the
+ * remote service to a temporary directory on a local disk.
+ *
+ * You should call this method immediately before sending the publishable media items to the
+ * remote service over the network. Because serializing several megabytes of data is a
+ * potentially lengthy operation, calling this method installs an activity status pane in
+ * the on-screen publishing dialog box. The activity status pane displays a progress bar along
+ * with a string of informational text.
+ *
+ * Because sending items over the network to the remote service is also a potentially lengthy
+ * operation, you should leave the activity status pane installed in the on-screen publishing
+ * dialog box until this task is finished. Periodically during the sending process, you should
+ * report to the user on the progress of his or her upload. You can do this by invoking the
+ * returned {@link ProgressCallback} delegate.
+ *
+ * After calling this method, the activity status pane that this method installs remains
+ * displayed in the on-screen publishing dialog box until you install a new pane.
+ *
+ * @param content_major_axis when serializing publishable media items that are photos,
+ * ensure that neither the width nor the height of the serialized
+ * photo is greater than content_major_axis pixels. The value of
+ * this parameter has no effect on video publishables.
+ *
+ * @param strip_metadata when serializing publishable media items that are photos, if
+ * strip_metadata is true, all EXIF, IPTC, and XMP metadata will be
+ * removed from the serialized file. If strip_metadata is false, all
+ * metadata will be left intact. The value of this parameter has no
+ * effect on video publishables.
+ */
+SpitPublishingProgressCallback spit_publishing_plugin_host_serialize_publishables (SpitPublishingPluginHost* self, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify) {
+#line 494 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), NULL);
+#line 494 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->serialize_publishables (self, content_major_axis, strip_metadata, result_target, result_target_destroy_notify);
+#line 1178 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a {@link Publisher.MediaType} bitfield describing which kinds of media are present
+ * in the set of publishable media items that the user has selected for upload to the remote
+ * service.
+ */
+SpitPublishingPublisherMediaType spit_publishing_plugin_host_get_publishable_media_type (SpitPublishingPluginHost* self) {
+#line 502 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), 0);
+#line 502 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->get_publishable_media_type (self);
+#line 1192 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved0 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved0 (SpitPublishingPluginHost* self) {
+#line 507 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 507 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved0 (self);
+#line 1205 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved1 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved1 (SpitPublishingPluginHost* self) {
+#line 508 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 508 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved1 (self);
+#line 1218 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved2 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved2 (SpitPublishingPluginHost* self) {
+#line 509 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 509 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved2 (self);
+#line 1231 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved3 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved3 (SpitPublishingPluginHost* self) {
+#line 510 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 510 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved3 (self);
+#line 1244 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved4 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved4 (SpitPublishingPluginHost* self) {
+#line 511 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 511 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved4 (self);
+#line 1257 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved5 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved5 (SpitPublishingPluginHost* self) {
+#line 512 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 512 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved5 (self);
+#line 1270 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved6 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved6 (SpitPublishingPluginHost* self) {
+#line 513 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 513 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved6 (self);
+#line 1283 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved7 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved7 (SpitPublishingPluginHost* self) {
+#line 514 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 514 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved7 (self);
+#line 1296 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_base_init (SpitPublishingPluginHostIface * iface) {
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_plugin_host_real_reserved0;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_plugin_host_real_reserved1;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_plugin_host_real_reserved2;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_plugin_host_real_reserved3;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_plugin_host_real_reserved4;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_plugin_host_real_reserved5;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_plugin_host_real_reserved6;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_plugin_host_real_reserved7;
+#line 1323 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Manages and provides services for publishing plugins.
+ *
+ * Implemented inside Shotwell, the PluginHost provides an interface through which the
+ * developers of publishing plugins can query and make changes to the publishing
+ * environment. For example, through the PluginHost, plugins can get a list of the photos
+ * and videos to be published, install and remove user-interface panes in the publishing
+ * dialog box, and request that the items to be uploaded be serialized to a temporary
+ * directory on disk. Plugins can use the services of the PluginHost only when their
+ * {@link Publisher} is in the running state. This ensures that non-running publishers
+ * don’t destructively interfere with the actively running publisher.
+ */
+GType spit_publishing_plugin_host_get_type (void) {
+ static volatile gsize spit_publishing_plugin_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_plugin_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingPluginHostIface), (GBaseInitFunc) spit_publishing_plugin_host_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_plugin_host_type_id;
+ spit_publishing_plugin_host_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingPluginHost", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_plugin_host_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_publishing_plugin_host_type_id, SPIT_TYPE_HOST_INTERFACE);
+ g_once_init_leave (&spit_publishing_plugin_host_type_id__volatile, spit_publishing_plugin_host_type_id);
+ }
+ return spit_publishing_plugin_host_type_id__volatile;
+}
+
+
+/**
+ * Returns a handle to the file on disk to which this publishable's data has been
+ * serialized.
+ *
+ * You should use this file handle to read into memory the binary data you will send over
+ * the network to the remote publishing service when this publishable is uploaded.
+ */
+GFile* spit_publishing_publishable_get_serialized_file (SpitPublishingPublishable* self) {
+#line 535 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 535 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_serialized_file (self);
+#line 1366 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a name that can be used to identify this publishable to the remote service.
+ * If the publishing host cannot derive a sensible name, this method will
+ * return an empty string. Plugins should be able to handle that situation
+ * and provide a fallback value. One possible option for a fallback is:
+ * get_param_string(Spit.Publishing.Publishable.PARAM_STRING_BASENAME)
+ */
+gchar* spit_publishing_publishable_get_publishing_name (SpitPublishingPublishable* self) {
+#line 544 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 544 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_publishing_name (self);
+#line 1382 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a string value from the publishable corresponding with the parameter name
+ * provided, or null if there is no value for this name.
+ */
+gchar* spit_publishing_publishable_get_param_string (SpitPublishingPublishable* self, const gchar* name) {
+#line 550 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 550 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_param_string (self, name);
+#line 1395 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns an array of strings that should be used to tag or mark this publishable on the
+ * remote service, or null if this publishable has no tags or markings.
+ */
+gchar** spit_publishing_publishable_get_publishing_keywords (SpitPublishingPublishable* self, int* result_length1) {
+#line 556 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 556 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_publishing_keywords (self, result_length1);
+#line 1408 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns the kind of media item this publishable encapsulates.
+ */
+SpitPublishingPublisherMediaType spit_publishing_publishable_get_media_type (SpitPublishingPublishable* self) {
+#line 561 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), 0);
+#line 561 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_media_type (self);
+#line 1420 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns the creation timestamp on the file.
+ */
+GDateTime* spit_publishing_publishable_get_exposure_date_time (SpitPublishingPublishable* self) {
+#line 566 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 566 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_exposure_date_time (self);
+#line 1432 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved0 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved0 (SpitPublishingPublishable* self) {
+#line 571 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 571 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved0 (self);
+#line 1445 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved1 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved1 (SpitPublishingPublishable* self) {
+#line 572 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 572 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved1 (self);
+#line 1458 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved2 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved2 (SpitPublishingPublishable* self) {
+#line 573 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 573 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved2 (self);
+#line 1471 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved3 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved3 (SpitPublishingPublishable* self) {
+#line 574 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 574 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved3 (self);
+#line 1484 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved4 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved4 (SpitPublishingPublishable* self) {
+#line 575 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 575 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved4 (self);
+#line 1497 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved5 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved5 (SpitPublishingPublishable* self) {
+#line 576 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 576 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved5 (self);
+#line 1510 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved6 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved6 (SpitPublishingPublishable* self) {
+#line 577 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 577 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved6 (self);
+#line 1523 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved7 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved7 (SpitPublishingPublishable* self) {
+#line 578 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 578 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved7 (self);
+#line 1536 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_base_init (SpitPublishingPublishableIface * iface) {
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_publishable_real_reserved0;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_publishable_real_reserved1;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_publishable_real_reserved2;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_publishable_real_reserved3;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_publishable_real_reserved4;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_publishable_real_reserved5;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_publishable_real_reserved6;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_publishable_real_reserved7;
+#line 1563 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Describes an underlying media item (such as a photo or a video) that your plugin
+ * uploads to a remote publishing service.
+ */
+GType spit_publishing_publishable_get_type (void) {
+ static volatile gsize spit_publishing_publishable_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_publishable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingPublishableIface), (GBaseInitFunc) spit_publishing_publishable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_publishable_type_id;
+ spit_publishing_publishable_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingPublishable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_publishable_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_publishing_publishable_type_id__volatile, spit_publishing_publishable_type_id);
+ }
+ return spit_publishing_publishable_type_id__volatile;
+}
+
+
+/**
+ * A factory method that instantiates and returns a new {@link Publisher} object that
+ * encapsulates a connection to the remote publishing service that this Service describes.
+ */
+SpitPublishingPublisher* spit_publishing_service_create_publisher (SpitPublishingService* self, SpitPublishingPluginHost* host) {
+#line 591 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_SERVICE (self), NULL);
+#line 591 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->create_publisher (self, host);
+#line 1594 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns the kinds of media that this service can work with.
+ */
+SpitPublishingPublisherMediaType spit_publishing_service_get_supported_media (SpitPublishingService* self) {
+#line 596 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_SERVICE (self), 0);
+#line 596 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->get_supported_media (self);
+#line 1606 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved0 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved0 (SpitPublishingService* self) {
+#line 601 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 601 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved0 (self);
+#line 1619 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved1 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved1 (SpitPublishingService* self) {
+#line 602 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 602 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved1 (self);
+#line 1632 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved2 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved2 (SpitPublishingService* self) {
+#line 603 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 603 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved2 (self);
+#line 1645 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved3 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved3 (SpitPublishingService* self) {
+#line 604 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 604 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved3 (self);
+#line 1658 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved4 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved4 (SpitPublishingService* self) {
+#line 605 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 605 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved4 (self);
+#line 1671 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved5 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved5 (SpitPublishingService* self) {
+#line 606 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 606 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved5 (self);
+#line 1684 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved6 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved6 (SpitPublishingService* self) {
+#line 607 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 607 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved6 (self);
+#line 1697 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved7 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved7 (SpitPublishingService* self) {
+#line 608 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 608 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved7 (self);
+#line 1710 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_base_init (SpitPublishingServiceIface * iface) {
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_service_real_reserved0;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_service_real_reserved1;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_service_real_reserved2;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_service_real_reserved3;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_service_real_reserved4;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_service_real_reserved5;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_service_real_reserved6;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_service_real_reserved7;
+#line 1737 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Describes the features and capabilities of a remote publishing service.
+ *
+ * Developers of publishing plugins provide a class that implements this interface.
+ */
+GType spit_publishing_service_get_type (void) {
+ static volatile gsize spit_publishing_service_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_service_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingServiceIface), (GBaseInitFunc) spit_publishing_service_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_service_type_id;
+ spit_publishing_service_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingService", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_service_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_publishing_service_type_id, SPIT_TYPE_PLUGGABLE);
+ g_once_init_leave (&spit_publishing_service_type_id__volatile, spit_publishing_service_type_id);
+ }
+ return spit_publishing_service_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/PublishingInterfaces.vala b/src/plugins/PublishingInterfaces.vala
index 6f06cba..7a8ac40 100644
--- a/src/plugins/PublishingInterfaces.vala
+++ b/src/plugins/PublishingInterfaces.vala
@@ -82,7 +82,14 @@ public errordomain PublishingError {
* Indicates that the remote host has rejected the session identifier used by the local
* client as out-of-date. The local client should acquire a new session identifier.
*/
- EXPIRED_SESSION
+ EXPIRED_SESSION,
+
+ /**
+ * Indicates that a secure connection to the remote host cannot be
+ * established. This might have various reasons such as expired
+ * certificats, invalid certificates, self-signed certificates...
+ */
+ SSL_FAILED
}
/**
@@ -513,10 +520,10 @@ public interface PluginHost : GLib.Object, Spit.HostInterface {
*/
public interface Publishable : GLib.Object {
- public static const string PARAM_STRING_BASENAME = "basename";
- public static const string PARAM_STRING_TITLE = "title";
- public static const string PARAM_STRING_COMMENT = "comment";
- public static const string PARAM_STRING_EVENTCOMMENT= "eventcomment";
+ public const string PARAM_STRING_BASENAME = "basename";
+ public const string PARAM_STRING_TITLE = "title";
+ public const string PARAM_STRING_COMMENT = "comment";
+ public const string PARAM_STRING_EVENTCOMMENT= "eventcomment";
/**
* Returns a handle to the file on disk to which this publishable's data has been
diff --git a/src/plugins/SpitInterfaces.c b/src/plugins/SpitInterfaces.c
new file mode 100644
index 0000000..9357a68
--- /dev/null
+++ b/src/plugins/SpitInterfaces.c
@@ -0,0 +1,1324 @@
+/* SpitInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from SpitInterfaces.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+
+
+#define SPIT_TYPE_ENTRY_POINT_PARAMS (spit_entry_point_params_get_type ())
+typedef struct _SpitEntryPointParams SpitEntryPointParams;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SPIT_TYPE_MODULE (spit_module_get_type ())
+#define SPIT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_MODULE, SpitModule))
+#define SPIT_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_MODULE))
+#define SPIT_MODULE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_MODULE, SpitModuleIface))
+
+typedef struct _SpitModule SpitModule;
+typedef struct _SpitModuleIface SpitModuleIface;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+struct _SpitEntryPointParams {
+ gint host_min_spit_interface;
+ gint host_max_spit_interface;
+ gint module_spit_interface;
+ GFile* module_file;
+};
+
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitModuleIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_module_name) (SpitModule* self);
+ const gchar* (*get_version) (SpitModule* self);
+ const gchar* (*get_id) (SpitModule* self);
+ SpitPluggable** (*get_pluggables) (SpitModule* self, int* result_length1);
+ void (*reserved0) (SpitModule* self);
+ void (*reserved1) (SpitModule* self);
+ void (*reserved2) (SpitModule* self);
+ void (*reserved3) (SpitModule* self);
+ void (*reserved4) (SpitModule* self);
+ void (*reserved5) (SpitModule* self);
+ void (*reserved6) (SpitModule* self);
+ void (*reserved7) (SpitModule* self);
+};
+
+typedef SpitModule* (*SpitEntryPoint) (SpitEntryPointParams* params);
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+
+
+#define SPIT_UNSUPPORTED_INTERFACE -1
+#define SPIT_CURRENT_INTERFACE 0
+gint spit_negotiate_interfaces (gint min_host_interface, gint max_host_interface, gint plugin_interface);
+GType spit_entry_point_params_get_type (void) G_GNUC_CONST;
+SpitEntryPointParams* spit_entry_point_params_dup (const SpitEntryPointParams* self);
+void spit_entry_point_params_free (SpitEntryPointParams* self);
+void spit_entry_point_params_copy (const SpitEntryPointParams* self, SpitEntryPointParams* dest);
+void spit_entry_point_params_destroy (SpitEntryPointParams* self);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_module_get_type (void) G_GNUC_CONST;
+#define SPIT_ENTRY_POINT_NAME "spit_entry_point"
+const gchar* spit_module_get_module_name (SpitModule* self);
+const gchar* spit_module_get_version (SpitModule* self);
+const gchar* spit_module_get_id (SpitModule* self);
+SpitPluggable** spit_module_get_pluggables (SpitModule* self, int* result_length1);
+void spit_module_reserved0 (SpitModule* self);
+static void spit_module_real_reserved0 (SpitModule* self);
+void spit_module_reserved1 (SpitModule* self);
+static void spit_module_real_reserved1 (SpitModule* self);
+void spit_module_reserved2 (SpitModule* self);
+static void spit_module_real_reserved2 (SpitModule* self);
+void spit_module_reserved3 (SpitModule* self);
+static void spit_module_real_reserved3 (SpitModule* self);
+void spit_module_reserved4 (SpitModule* self);
+static void spit_module_real_reserved4 (SpitModule* self);
+void spit_module_reserved5 (SpitModule* self);
+static void spit_module_real_reserved5 (SpitModule* self);
+void spit_module_reserved6 (SpitModule* self);
+static void spit_module_real_reserved6 (SpitModule* self);
+void spit_module_reserved7 (SpitModule* self);
+static void spit_module_real_reserved7 (SpitModule* self);
+static GdkPixbuf** _vala_array_dup1 (GdkPixbuf** self, int length);
+gint spit_pluggable_get_pluggable_interface (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+const gchar* spit_pluggable_get_id (SpitPluggable* self);
+const gchar* spit_pluggable_get_pluggable_name (SpitPluggable* self);
+void spit_pluggable_get_info (SpitPluggable* self, SpitPluggableInfo* info);
+void spit_pluggable_activation (SpitPluggable* self, gboolean enabled);
+void spit_pluggable_reserved0 (SpitPluggable* self);
+static void spit_pluggable_real_reserved0 (SpitPluggable* self);
+void spit_pluggable_reserved1 (SpitPluggable* self);
+static void spit_pluggable_real_reserved1 (SpitPluggable* self);
+void spit_pluggable_reserved2 (SpitPluggable* self);
+static void spit_pluggable_real_reserved2 (SpitPluggable* self);
+void spit_pluggable_reserved3 (SpitPluggable* self);
+static void spit_pluggable_real_reserved3 (SpitPluggable* self);
+void spit_pluggable_reserved4 (SpitPluggable* self);
+static void spit_pluggable_real_reserved4 (SpitPluggable* self);
+void spit_pluggable_reserved5 (SpitPluggable* self);
+static void spit_pluggable_real_reserved5 (SpitPluggable* self);
+void spit_pluggable_reserved6 (SpitPluggable* self);
+static void spit_pluggable_real_reserved6 (SpitPluggable* self);
+void spit_pluggable_reserved7 (SpitPluggable* self);
+static void spit_pluggable_real_reserved7 (SpitPluggable* self);
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GFile* spit_host_interface_get_module_file (SpitHostInterface* self);
+gboolean spit_host_interface_get_config_bool (SpitHostInterface* self, const gchar* key, gboolean def);
+void spit_host_interface_set_config_bool (SpitHostInterface* self, const gchar* key, gboolean val);
+gint spit_host_interface_get_config_int (SpitHostInterface* self, const gchar* key, gint def);
+void spit_host_interface_set_config_int (SpitHostInterface* self, const gchar* key, gint val);
+gchar* spit_host_interface_get_config_string (SpitHostInterface* self, const gchar* key, const gchar* def);
+void spit_host_interface_set_config_string (SpitHostInterface* self, const gchar* key, const gchar* val);
+gdouble spit_host_interface_get_config_double (SpitHostInterface* self, const gchar* key, gdouble def);
+void spit_host_interface_set_config_double (SpitHostInterface* self, const gchar* key, gdouble val);
+void spit_host_interface_unset_config_key (SpitHostInterface* self, const gchar* key);
+void spit_host_interface_reserved0 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved0 (SpitHostInterface* self);
+void spit_host_interface_reserved1 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved1 (SpitHostInterface* self);
+void spit_host_interface_reserved2 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved2 (SpitHostInterface* self);
+void spit_host_interface_reserved3 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved3 (SpitHostInterface* self);
+void spit_host_interface_reserved4 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved4 (SpitHostInterface* self);
+void spit_host_interface_reserved5 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved5 (SpitHostInterface* self);
+void spit_host_interface_reserved6 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved6 (SpitHostInterface* self);
+void spit_host_interface_reserved7 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved7 (SpitHostInterface* self);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+/**
+ * A utility function for checking host interfaces against one's own and returning the right value.
+ *
+ * Note that this only works if the caller operates on only one interface version (and cannot mutate
+ * between multiple ones).
+ *
+ * @param min_host_interface The minimum supported host interface version.
+ * @param max_host_interface The maximum supported host interface version.
+ * @param plugin_interface The interface version supported by the Pluggable.
+ *
+ * @return The plugin's interface version if supported, {@link UNSUPPORTED_INTERFACE} otherwise.
+ */
+gint spit_negotiate_interfaces (gint min_host_interface, gint max_host_interface, gint plugin_interface) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp2_ = min_host_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp3_ = plugin_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (_tmp2_ > _tmp3_) {
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = TRUE;
+#line 247 "SpitInterfaces.c"
+ } else {
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp4_ = max_host_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp5_ = plugin_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = _tmp4_ < _tmp5_;
+#line 257 "SpitInterfaces.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (_tmp1_) {
+#line 48 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = SPIT_UNSUPPORTED_INTERFACE;
+#line 263 "SpitInterfaces.c"
+ } else {
+ gint _tmp6_ = 0;
+#line 48 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp6_ = plugin_interface;
+#line 48 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = _tmp6_;
+#line 270 "SpitInterfaces.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ result = _tmp0_;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return result;
+#line 276 "SpitInterfaces.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 283 "SpitInterfaces.c"
+}
+
+
+void spit_entry_point_params_copy (const SpitEntryPointParams* self, SpitEntryPointParams* dest) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = (*self).host_min_spit_interface;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).host_min_spit_interface = _tmp0_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = (*self).host_max_spit_interface;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).host_max_spit_interface = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp2_ = (*self).module_spit_interface;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).module_spit_interface = _tmp2_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp3_ = (*self).module_file;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_object_unref0 ((*dest).module_file);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).module_file = _tmp4_;
+#line 313 "SpitInterfaces.c"
+}
+
+
+void spit_entry_point_params_destroy (SpitEntryPointParams* self) {
+#line 79 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_object_unref0 ((*self).module_file);
+#line 320 "SpitInterfaces.c"
+}
+
+
+SpitEntryPointParams* spit_entry_point_params_dup (const SpitEntryPointParams* self) {
+ SpitEntryPointParams* dup;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ dup = g_new0 (SpitEntryPointParams, 1);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_entry_point_params_copy (self, dup);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return dup;
+#line 332 "SpitInterfaces.c"
+}
+
+
+void spit_entry_point_params_free (SpitEntryPointParams* self) {
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_entry_point_params_destroy (self);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_free (self);
+#line 341 "SpitInterfaces.c"
+}
+
+
+GType spit_entry_point_params_get_type (void) {
+ static volatile gsize spit_entry_point_params_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_entry_point_params_type_id__volatile)) {
+ GType spit_entry_point_params_type_id;
+ spit_entry_point_params_type_id = g_boxed_type_register_static ("SpitEntryPointParams", (GBoxedCopyFunc) spit_entry_point_params_dup, (GBoxedFreeFunc) spit_entry_point_params_free);
+ g_once_init_leave (&spit_entry_point_params_type_id__volatile, spit_entry_point_params_type_id);
+ }
+ return spit_entry_point_params_type_id__volatile;
+}
+
+
+/**
+ * Returns a user-visible string describing the module.
+ */
+const gchar* spit_module_get_module_name (SpitModule* self) {
+#line 117 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 117 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_module_name (self);
+#line 364 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a user-visible string describing the module version.
+ *
+ * Note that this may be programmatically interpreted at some point, so use a widespread
+ * versioning scheme.
+ */
+const gchar* spit_module_get_version (SpitModule* self) {
+#line 125 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 125 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_version (self);
+#line 379 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a unique identifier for this module.
+ *
+ * This is used to differentiate between multiple
+ * installed versions and to determine which one should be used (i.e. if a module is available
+ * in a system directory and a user directory). This name is case-sensitive.
+ *
+ * Best practice: use a reverse-DNS-order scheme, a la Java's packages
+ * (i.e. "org.yorba.shotwell.frotz").
+ */
+const gchar* spit_module_get_id (SpitModule* self) {
+#line 137 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 137 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_id (self);
+#line 398 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns an array of {@link Pluggable} that represent each plugin available in the module.
+ *
+ * May return NULL or an empty array.
+ */
+SpitPluggable** spit_module_get_pluggables (SpitModule* self, int* result_length1) {
+#line 144 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 144 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_pluggables (self, result_length1);
+#line 412 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved0 (SpitModule* self) {
+}
+
+
+void spit_module_reserved0 (SpitModule* self) {
+#line 149 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 149 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved0 (self);
+#line 425 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved1 (SpitModule* self) {
+}
+
+
+void spit_module_reserved1 (SpitModule* self) {
+#line 150 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 150 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved1 (self);
+#line 438 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved2 (SpitModule* self) {
+}
+
+
+void spit_module_reserved2 (SpitModule* self) {
+#line 151 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 151 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved2 (self);
+#line 451 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved3 (SpitModule* self) {
+}
+
+
+void spit_module_reserved3 (SpitModule* self) {
+#line 152 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 152 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved3 (self);
+#line 464 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved4 (SpitModule* self) {
+}
+
+
+void spit_module_reserved4 (SpitModule* self) {
+#line 153 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 153 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved4 (self);
+#line 477 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved5 (SpitModule* self) {
+}
+
+
+void spit_module_reserved5 (SpitModule* self) {
+#line 154 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 154 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved5 (self);
+#line 490 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved6 (SpitModule* self) {
+}
+
+
+void spit_module_reserved6 (SpitModule* self) {
+#line 155 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 155 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved6 (self);
+#line 503 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved7 (SpitModule* self) {
+}
+
+
+void spit_module_reserved7 (SpitModule* self) {
+#line 156 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 156 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved7 (self);
+#line 516 "SpitInterfaces.c"
+}
+
+
+static void spit_module_base_init (SpitModuleIface * iface) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (!initialized) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ initialized = TRUE;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved0 = spit_module_real_reserved0;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved1 = spit_module_real_reserved1;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved2 = spit_module_real_reserved2;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved3 = spit_module_real_reserved3;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved4 = spit_module_real_reserved4;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved5 = spit_module_real_reserved5;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved6 = spit_module_real_reserved6;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved7 = spit_module_real_reserved7;
+#line 543 "SpitInterfaces.c"
+ }
+}
+
+
+/**
+ * A Module represents the resources of an entire dynamically-linked module (i.e. a .so/.la).
+ *
+ * A module holds zero or more Shotwell plugins ({@link Pluggable}). Once the module has been
+ * loaded into process space this object is retrieved by Shotwell. All calls to the module and
+ * its plugins are resolved through this interface.
+ *
+ * Note: The module is responsible for holding the reference to the Module object, of which there
+ * should be only one in the library file. The module should implement a g_module_unload method
+ * and drop the reference there.
+ */
+GType spit_module_get_type (void) {
+ static volatile gsize spit_module_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_module_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitModuleIface), (GBaseInitFunc) spit_module_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_module_type_id;
+ spit_module_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitModule", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_module_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_module_type_id__volatile, spit_module_type_id);
+ }
+ return spit_module_type_id__volatile;
+}
+
+
+static GdkPixbuf** _vala_array_dup1 (GdkPixbuf** self, int length) {
+ GdkPixbuf** result;
+ int i;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ result = g_new0 (GdkPixbuf*, length + 1);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ for (i = 0; i < length; i++) {
+#line 579 "SpitInterfaces.c"
+ GdkPixbuf* _tmp0_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ result[i] = _tmp0_;
+#line 585 "SpitInterfaces.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return result;
+#line 589 "SpitInterfaces.c"
+}
+
+
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GdkPixbuf** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GdkPixbuf** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = (*self).version;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).version);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).version = _tmp1_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp2_ = (*self).brief_description;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).brief_description);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).brief_description = _tmp3_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp4_ = (*self).authors;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).authors);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).authors = _tmp5_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp6_ = (*self).copyright;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).copyright);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).copyright = _tmp7_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp8_ = (*self).license;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).license);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).license = _tmp9_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp10_ = (*self).is_license_wordwrapped;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).is_license_wordwrapped = _tmp10_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp11_ = (*self).website_url;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).website_url);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).website_url = _tmp12_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp13_ = (*self).website_name;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp14_ = g_strdup (_tmp13_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).website_name);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).website_name = _tmp14_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp15_ = (*self).translators;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).translators);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).translators = _tmp16_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp17_ = (*self).icons;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp17__length1 = (*self).icons_length1;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp18_ = (_tmp17_ != NULL) ? _vala_array_dup1 (_tmp17_, _tmp17__length1) : ((gpointer) _tmp17_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp18__length1 = _tmp17__length1;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).icons = (_vala_array_free ((*dest).icons, (*dest).icons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).icons = _tmp18_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).icons_length1 = _tmp18__length1;
+#line 697 "SpitInterfaces.c"
+}
+
+
+void spit_pluggable_info_destroy (SpitPluggableInfo* self) {
+#line 163 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).version);
+#line 164 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).brief_description);
+#line 168 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).authors);
+#line 169 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).copyright);
+#line 170 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).license);
+#line 172 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).website_url);
+#line 173 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).website_name);
+#line 174 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).translators);
+#line 179 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*self).icons = (_vala_array_free ((*self).icons, (*self).icons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 720 "SpitInterfaces.c"
+}
+
+
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self) {
+ SpitPluggableInfo* dup;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ dup = g_new0 (SpitPluggableInfo, 1);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_pluggable_info_copy (self, dup);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return dup;
+#line 732 "SpitInterfaces.c"
+}
+
+
+void spit_pluggable_info_free (SpitPluggableInfo* self) {
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_pluggable_info_destroy (self);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_free (self);
+#line 741 "SpitInterfaces.c"
+}
+
+
+GType spit_pluggable_info_get_type (void) {
+ static volatile gsize spit_pluggable_info_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_pluggable_info_type_id__volatile)) {
+ GType spit_pluggable_info_type_id;
+ spit_pluggable_info_type_id = g_boxed_type_register_static ("SpitPluggableInfo", (GBoxedCopyFunc) spit_pluggable_info_dup, (GBoxedFreeFunc) spit_pluggable_info_free);
+ g_once_init_leave (&spit_pluggable_info_type_id__volatile, spit_pluggable_info_type_id);
+ }
+ return spit_pluggable_info_type_id__volatile;
+}
+
+
+/**
+ * Pluggable interface version negotiation.
+ *
+ * Like the {@link EntryPoint}, this mechanism allows for the host to negotiate with the Pluggable
+ * for its interface version. If the pluggable does not support an interface between the
+ * two ranges (inclusive), it should return {@link UNSUPPORTED_INTERFACE}.
+ *
+ * Note that this is ''not'' a negotiation of the SPIT interface versions (which is the
+ * responsibility of {@link EntryPoint}. Rather, each extension point is expected to version
+ * its own cluster of interfaces. It is that interface version that is being negotiated here.
+ *
+ * {@link negotiate_interfaces} can be used to implement this method.
+ *
+ * @param min_host_interface The host's minimum supported interface version number
+ * //for this Pluggable's intended extension point//.
+ * @param max_host_interface The host's maximum supported interface version number
+ * //for this Pluggable's intended extension point//.
+ *
+ * @return The version number supported by the host and the Pluggable or
+ * {@link UNSUPPORTED_INTERFACE}.
+ */
+gint spit_pluggable_get_pluggable_interface (SpitPluggable* self, gint min_host_interface, gint max_host_interface) {
+#line 210 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (self), 0);
+#line 210 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_PLUGGABLE_GET_INTERFACE (self)->get_pluggable_interface (self, min_host_interface, max_host_interface);
+#line 782 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a unique identifier for this Pluggable.
+ *
+ * Like {@link Module.get_id}, best practice is to use a reverse-DNS-order scheme to avoid
+ * conflicts.
+ */
+const gchar* spit_pluggable_get_id (SpitPluggable* self) {
+#line 218 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (self), NULL);
+#line 218 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_PLUGGABLE_GET_INTERFACE (self)->get_id (self);
+#line 797 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a user-visible name for the Pluggable.
+ */
+const gchar* spit_pluggable_get_pluggable_name (SpitPluggable* self) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (self), NULL);
+#line 223 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_PLUGGABLE_GET_INTERFACE (self)->get_pluggable_name (self);
+#line 809 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns extra information about the Pluggable that is used to identify it to the user.
+ */
+void spit_pluggable_get_info (SpitPluggable* self, SpitPluggableInfo* info) {
+#line 228 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 228 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->get_info (self, info);
+#line 821 "SpitInterfaces.c"
+}
+
+
+/**
+ * Called when the Pluggable is enabled (activated) or disabled (deactivated).
+ *
+ * activation will be called at the start of the program if the user previously
+ * enabled/disabled it as well as during program execution if the user changes its state. Note
+ * that disabling a Pluggable does not require destroying existing resources or objects
+ * the Pluggable has previously handed off to the host.
+ *
+ * This is purely informational. The Pluggable should acquire any long-term resources
+ * it may be holding onto here, or wait until an extension-specific call is made to it.
+ *
+ * @param enabled ``true`` if the Pluggable has been enabled, ``false`` otherwise.
+ */
+void spit_pluggable_activation (SpitPluggable* self, gboolean enabled) {
+#line 243 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 243 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->activation (self, enabled);
+#line 843 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved0 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved0 (SpitPluggable* self) {
+#line 248 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 248 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved0 (self);
+#line 856 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved1 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved1 (SpitPluggable* self) {
+#line 249 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 249 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved1 (self);
+#line 869 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved2 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved2 (SpitPluggable* self) {
+#line 250 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 250 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved2 (self);
+#line 882 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved3 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved3 (SpitPluggable* self) {
+#line 251 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 251 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved3 (self);
+#line 895 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved4 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved4 (SpitPluggable* self) {
+#line 252 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 252 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved4 (self);
+#line 908 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved5 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved5 (SpitPluggable* self) {
+#line 253 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 253 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved5 (self);
+#line 921 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved6 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved6 (SpitPluggable* self) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 254 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved6 (self);
+#line 934 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved7 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved7 (SpitPluggable* self) {
+#line 255 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 255 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved7 (self);
+#line 947 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_base_init (SpitPluggableIface * iface) {
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (!initialized) {
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ initialized = TRUE;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved0 = spit_pluggable_real_reserved0;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved1 = spit_pluggable_real_reserved1;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved2 = spit_pluggable_real_reserved2;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved3 = spit_pluggable_real_reserved3;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved4 = spit_pluggable_real_reserved4;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved5 = spit_pluggable_real_reserved5;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved6 = spit_pluggable_real_reserved6;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved7 = spit_pluggable_real_reserved7;
+#line 974 "SpitInterfaces.c"
+ }
+}
+
+
+/**
+ * A generic interface to all Shotwell plugins.
+ *
+ * Each plugin in a module needs to implement this interface at a minimum. Extension
+ * points may have (and probably will have) specific interface requirements as well.
+ */
+GType spit_pluggable_get_type (void) {
+ static volatile gsize spit_pluggable_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_pluggable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPluggableIface), (GBaseInitFunc) spit_pluggable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_pluggable_type_id;
+ spit_pluggable_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPluggable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_pluggable_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_pluggable_type_id__volatile, spit_pluggable_type_id);
+ }
+ return spit_pluggable_type_id__volatile;
+}
+
+
+/**
+ * Returns a File object representing the library file (.so/la.) that the plugin was loaded
+ * from.
+ */
+GFile* spit_host_interface_get_module_file (SpitHostInterface* self) {
+#line 274 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), NULL);
+#line 274 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_module_file (self);
+#line 1007 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get a boolean from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gboolean spit_host_interface_get_config_bool (SpitHostInterface* self, const gchar* key, gboolean def) {
+#line 284 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), FALSE);
+#line 284 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_bool (self, key, def);
+#line 1024 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store a boolean in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_bool (SpitHostInterface* self, const gchar* key, gboolean val) {
+#line 292 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 292 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_bool (self, key, val);
+#line 1039 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get an integer from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gint spit_host_interface_get_config_int (SpitHostInterface* self, const gchar* key, gint def) {
+#line 302 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), 0);
+#line 302 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_int (self, key, def);
+#line 1056 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store an integer in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_int (SpitHostInterface* self, const gchar* key, gint val) {
+#line 310 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 310 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_int (self, key, val);
+#line 1071 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get a string from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gchar* spit_host_interface_get_config_string (SpitHostInterface* self, const gchar* key, const gchar* def) {
+#line 320 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), NULL);
+#line 320 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_string (self, key, def);
+#line 1088 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store a string in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_string (SpitHostInterface* self, const gchar* key, const gchar* val) {
+#line 328 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 328 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_string (self, key, val);
+#line 1103 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get a double from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gdouble spit_host_interface_get_config_double (SpitHostInterface* self, const gchar* key, gdouble def) {
+#line 338 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), 0.0);
+#line 338 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_double (self, key, def);
+#line 1120 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store a double in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_double (SpitHostInterface* self, const gchar* key, gdouble val) {
+#line 346 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 346 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_double (self, key, val);
+#line 1135 "SpitInterfaces.c"
+}
+
+
+/**
+ * Delete the value from the persistent configuration store.
+ */
+void spit_host_interface_unset_config_key (SpitHostInterface* self, const gchar* key) {
+#line 351 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 351 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->unset_config_key (self, key);
+#line 1147 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved0 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved0 (SpitHostInterface* self) {
+#line 356 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 356 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved0 (self);
+#line 1160 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved1 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved1 (SpitHostInterface* self) {
+#line 357 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 357 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved1 (self);
+#line 1173 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved2 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved2 (SpitHostInterface* self) {
+#line 358 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 358 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved2 (self);
+#line 1186 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved3 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved3 (SpitHostInterface* self) {
+#line 359 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 359 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved3 (self);
+#line 1199 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved4 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved4 (SpitHostInterface* self) {
+#line 360 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 360 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved4 (self);
+#line 1212 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved5 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved5 (SpitHostInterface* self) {
+#line 361 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 361 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved5 (self);
+#line 1225 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved6 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved6 (SpitHostInterface* self) {
+#line 362 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 362 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved6 (self);
+#line 1238 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved7 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved7 (SpitHostInterface* self) {
+#line 363 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 363 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved7 (self);
+#line 1251 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_base_init (SpitHostInterfaceIface * iface) {
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (!initialized) {
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ initialized = TRUE;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved0 = spit_host_interface_real_reserved0;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved1 = spit_host_interface_real_reserved1;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved2 = spit_host_interface_real_reserved2;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved3 = spit_host_interface_real_reserved3;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved4 = spit_host_interface_real_reserved4;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved5 = spit_host_interface_real_reserved5;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved6 = spit_host_interface_real_reserved6;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved7 = spit_host_interface_real_reserved7;
+#line 1278 "SpitInterfaces.c"
+ }
+}
+
+
+/**
+ * An interface to common services supplied by the host (Shotwell).
+ *
+ * Each {@link Pluggable} is offered a HostInterface for needs common to most plugins.
+ *
+ * Note that
+ * a HostInterface is not explicitly handed to the Pluggable through the SPIT interface, but is expected
+ * to be offered to the Pluggable through an interface applicable to the extension point. This
+ * also allows the extension point to extend HostInterface to offer other services applicable to the
+ * type of plugin.
+ */
+GType spit_host_interface_get_type (void) {
+ static volatile gsize spit_host_interface_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_host_interface_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitHostInterfaceIface), (GBaseInitFunc) spit_host_interface_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_host_interface_type_id;
+ spit_host_interface_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitHostInterface", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_host_interface_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_host_interface_type_id__volatile, spit_host_interface_type_id);
+ }
+ return spit_host_interface_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/plugins/StandardHostInterface.c b/src/plugins/StandardHostInterface.c
new file mode 100644
index 0000000..3465427
--- /dev/null
+++ b/src/plugins/StandardHostInterface.c
@@ -0,0 +1,699 @@
+/* StandardHostInterface.c generated by valac 0.32.1, the Vala compiler
+ * generated from StandardHostInterface.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+typedef struct _PluginsStandardHostInterfacePrivate PluginsStandardHostInterfacePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+struct _PluginsStandardHostInterface {
+ GObject parent_instance;
+ PluginsStandardHostInterfacePrivate * priv;
+};
+
+struct _PluginsStandardHostInterfaceClass {
+ GObjectClass parent_class;
+};
+
+struct _PluginsStandardHostInterfacePrivate {
+ gchar* config_domain;
+ gchar* config_id;
+ GFile* module_file;
+ SpitPluggableInfo info;
+};
+
+
+static gpointer plugins_standard_host_interface_parent_class = NULL;
+static SpitHostInterfaceIface* plugins_standard_host_interface_spit_host_interface_parent_iface = NULL;
+
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfacePrivate))
+enum {
+ PLUGINS_STANDARD_HOST_INTERFACE_DUMMY_PROPERTY
+};
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain);
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain);
+static gchar* plugins_standard_host_interface_parse_key (const gchar* id);
+GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable);
+static GFile* plugins_standard_host_interface_real_get_module_file (SpitHostInterface* base);
+static gboolean plugins_standard_host_interface_real_get_config_bool (SpitHostInterface* base, const gchar* key, gboolean def);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+static void plugins_standard_host_interface_real_set_config_bool (SpitHostInterface* base, const gchar* key, gboolean val);
+void configuration_facade_set_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+static gint plugins_standard_host_interface_real_get_config_int (SpitHostInterface* base, const gchar* key, gint def);
+gint configuration_facade_get_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+static void plugins_standard_host_interface_real_set_config_int (SpitHostInterface* base, const gchar* key, gint val);
+void configuration_facade_set_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+static gchar* plugins_standard_host_interface_real_get_config_string (SpitHostInterface* base, const gchar* key, const gchar* def);
+gchar* configuration_facade_get_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+static void plugins_standard_host_interface_real_set_config_string (SpitHostInterface* base, const gchar* key, const gchar* val);
+void configuration_facade_set_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+static gdouble plugins_standard_host_interface_real_get_config_double (SpitHostInterface* base, const gchar* key, gdouble def);
+gdouble configuration_facade_get_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+static void plugins_standard_host_interface_real_set_config_double (SpitHostInterface* base, const gchar* key, gdouble val);
+void configuration_facade_set_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+static void plugins_standard_host_interface_real_unset_config_key (SpitHostInterface* base, const gchar* key);
+void configuration_facade_unset_plugin_key (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key);
+static void plugins_standard_host_interface_finalize (GObject* obj);
+
+
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain) {
+ PluginsStandardHostInterface * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ SpitPluggable* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SpitPluggable* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ SpitPluggable* _tmp7_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL);
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (config_domain != NULL, NULL);
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = (PluginsStandardHostInterface*) g_object_new (object_type, NULL);
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_domain;
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_domain);
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv->config_domain = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = pluggable;
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = spit_pluggable_get_id (_tmp2_);
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = plugins_standard_host_interface_parse_key (_tmp3_);
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_id);
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv->config_id = _tmp4_;
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = pluggable;
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = plugins_get_pluggable_module_file (_tmp5_);
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (self->priv->module_file);
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv->module_file = _tmp6_;
+#line 19 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = pluggable;
+#line 19 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ spit_pluggable_get_info (_tmp7_, &self->priv->info);
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return self;
+#line 156 "StandardHostInterface.c"
+}
+
+
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain) {
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return plugins_standard_host_interface_construct (PLUGINS_TYPE_STANDARD_HOST_INTERFACE, pluggable, config_domain);
+#line 163 "StandardHostInterface.c"
+}
+
+
+static gchar* plugins_standard_host_interface_parse_key (const gchar* id) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label0 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label1 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label2 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label3 = 0;
+#line 22 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = id;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("org.yorba.shotwell.publishing.facebook")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 192 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp4_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = g_strdup ("facebook");
+#line 27 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp4_;
+#line 27 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 202 "StandardHostInterface.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("org.yorba.shotwell.publishing.picasa")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 208 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp5_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = g_strdup ("picasa");
+#line 30 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp5_;
+#line 30 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 218 "StandardHostInterface.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("org.yorba.shotwell.publishing.flickr")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 224 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp6_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = g_strdup ("flickr");
+#line 33 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp6_;
+#line 33 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 234 "StandardHostInterface.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("org.yorba.shotwell.publishing.youtube")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 240 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp7_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = g_strdup ("youtube");
+#line 36 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 36 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 250 "StandardHostInterface.c"
+ }
+ }
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 256 "StandardHostInterface.c"
+ default:
+ {
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp8_ = id;
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp9_;
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 269 "StandardHostInterface.c"
+ }
+ }
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 279 "StandardHostInterface.c"
+}
+
+
+static GFile* plugins_standard_host_interface_real_get_module_file (SpitHostInterface* base) {
+ PluginsStandardHostInterface * self;
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = self->priv->module_file;
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 298 "StandardHostInterface.c"
+}
+
+
+static gboolean plugins_standard_host_interface_real_get_config_bool (SpitHostInterface* base, const gchar* key, gboolean def) {
+ PluginsStandardHostInterface * self;
+ gboolean result = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 47 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 47 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_bool (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 339 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_bool (SpitHostInterface* base, const gchar* key, gboolean val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 51 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 51 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_bool (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 371 "StandardHostInterface.c"
+}
+
+
+static gint plugins_standard_host_interface_real_get_config_int (SpitHostInterface* base, const gchar* key, gint def) {
+ PluginsStandardHostInterface * self;
+ gint result = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 55 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 55 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_int (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 412 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_int (SpitHostInterface* base, const gchar* key, gint val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 59 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 59 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_int (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 444 "StandardHostInterface.c"
+}
+
+
+static gchar* plugins_standard_host_interface_real_get_config_string (SpitHostInterface* base, const gchar* key, const gchar* def) {
+ PluginsStandardHostInterface * self;
+ gchar* result = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 63 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 485 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_string (SpitHostInterface* base, const gchar* key, const gchar* val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 67 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 517 "StandardHostInterface.c"
+}
+
+
+static gdouble plugins_standard_host_interface_real_get_config_double (SpitHostInterface* base, const gchar* key, gdouble def) {
+ PluginsStandardHostInterface * self;
+ gdouble result = 0.0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+#line 71 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 71 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, 0.0);
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_double (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 558 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_double (SpitHostInterface* base, const gchar* key, gdouble val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+#line 75 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 75 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_double (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 590 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_unset_config_key (SpitHostInterface* base, const gchar* key) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 79 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_unset_plugin_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 619 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_class_init (PluginsStandardHostInterfaceClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ plugins_standard_host_interface_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_type_class_add_private (klass, sizeof (PluginsStandardHostInterfacePrivate));
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ G_OBJECT_CLASS (klass)->finalize = plugins_standard_host_interface_finalize;
+#line 630 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_spit_host_interface_interface_init (SpitHostInterfaceIface * iface) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ plugins_standard_host_interface_spit_host_interface_parent_iface = g_type_interface_peek_parent (iface);
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_module_file = (GFile* (*)(SpitHostInterface*)) plugins_standard_host_interface_real_get_module_file;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_bool = (gboolean (*)(SpitHostInterface*, const gchar*, gboolean)) plugins_standard_host_interface_real_get_config_bool;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_bool = (void (*)(SpitHostInterface*, const gchar*, gboolean)) plugins_standard_host_interface_real_set_config_bool;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_int = (gint (*)(SpitHostInterface*, const gchar*, gint)) plugins_standard_host_interface_real_get_config_int;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_int = (void (*)(SpitHostInterface*, const gchar*, gint)) plugins_standard_host_interface_real_set_config_int;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_string = (gchar* (*)(SpitHostInterface*, const gchar*, const gchar*)) plugins_standard_host_interface_real_get_config_string;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_string = (void (*)(SpitHostInterface*, const gchar*, const gchar*)) plugins_standard_host_interface_real_set_config_string;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_double = (gdouble (*)(SpitHostInterface*, const gchar*, gdouble)) plugins_standard_host_interface_real_get_config_double;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_double = (void (*)(SpitHostInterface*, const gchar*, gdouble)) plugins_standard_host_interface_real_set_config_double;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->unset_config_key = (void (*)(SpitHostInterface*, const gchar*)) plugins_standard_host_interface_real_unset_config_key;
+#line 657 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_instance_init (PluginsStandardHostInterface * self) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv = PLUGINS_STANDARD_HOST_INTERFACE_GET_PRIVATE (self);
+#line 664 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_finalize (GObject* obj) {
+ PluginsStandardHostInterface * self;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 10 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_domain);
+#line 11 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_id);
+#line 12 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (self->priv->module_file);
+#line 13 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ spit_pluggable_info_destroy (&self->priv->info);
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ G_OBJECT_CLASS (plugins_standard_host_interface_parent_class)->finalize (obj);
+#line 682 "StandardHostInterface.c"
+}
+
+
+GType plugins_standard_host_interface_get_type (void) {
+ static volatile gsize plugins_standard_host_interface_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_standard_host_interface_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsStandardHostInterfaceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_standard_host_interface_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsStandardHostInterface), 0, (GInstanceInitFunc) plugins_standard_host_interface_instance_init, NULL };
+ static const GInterfaceInfo spit_host_interface_info = { (GInterfaceInitFunc) plugins_standard_host_interface_spit_host_interface_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType plugins_standard_host_interface_type_id;
+ plugins_standard_host_interface_type_id = g_type_register_static (G_TYPE_OBJECT, "PluginsStandardHostInterface", &g_define_type_info, 0);
+ g_type_add_interface_static (plugins_standard_host_interface_type_id, SPIT_TYPE_HOST_INTERFACE, &spit_host_interface_info);
+ g_once_init_leave (&plugins_standard_host_interface_type_id__volatile, plugins_standard_host_interface_type_id);
+ }
+ return plugins_standard_host_interface_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/TransitionsInterfaces.c b/src/plugins/TransitionsInterfaces.c
new file mode 100644
index 0000000..aedb555
--- /dev/null
+++ b/src/plugins/TransitionsInterfaces.c
@@ -0,0 +1,1808 @@
+/* TransitionsInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from TransitionsInterfaces.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.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <cairo.h>
+
+
+#define SPIT_TRANSITIONS_TYPE_DIRECTION (spit_transitions_direction_get_type ())
+
+#define SPIT_TRANSITIONS_TYPE_VISUALS (spit_transitions_visuals_get_type ())
+#define SPIT_TRANSITIONS_VISUALS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals))
+#define SPIT_TRANSITIONS_VISUALS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisualsClass))
+#define SPIT_TRANSITIONS_IS_VISUALS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_VISUALS))
+#define SPIT_TRANSITIONS_IS_VISUALS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_TRANSITIONS_TYPE_VISUALS))
+#define SPIT_TRANSITIONS_VISUALS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisualsClass))
+
+typedef struct _SpitTransitionsVisuals SpitTransitionsVisuals;
+typedef struct _SpitTransitionsVisualsClass SpitTransitionsVisualsClass;
+typedef struct _SpitTransitionsVisualsPrivate SpitTransitionsVisualsPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SPIT_TRANSITIONS_TYPE_MOTION (spit_transitions_motion_get_type ())
+#define SPIT_TRANSITIONS_MOTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion))
+#define SPIT_TRANSITIONS_MOTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotionClass))
+#define SPIT_TRANSITIONS_IS_MOTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_MOTION))
+#define SPIT_TRANSITIONS_IS_MOTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_TRANSITIONS_TYPE_MOTION))
+#define SPIT_TRANSITIONS_MOTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotionClass))
+
+typedef struct _SpitTransitionsMotion SpitTransitionsMotion;
+typedef struct _SpitTransitionsMotionClass SpitTransitionsMotionClass;
+typedef struct _SpitTransitionsMotionPrivate SpitTransitionsMotionPrivate;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+
+#define SPIT_TRANSITIONS_TYPE_DESCRIPTOR (spit_transitions_descriptor_get_type ())
+#define SPIT_TRANSITIONS_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptor))
+#define SPIT_TRANSITIONS_IS_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_DESCRIPTOR))
+#define SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptorIface))
+
+typedef struct _SpitTransitionsDescriptor SpitTransitionsDescriptor;
+typedef struct _SpitTransitionsDescriptorIface SpitTransitionsDescriptorIface;
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+#define SPIT_TRANSITIONS_TYPE_EFFECT (spit_transitions_effect_get_type ())
+#define SPIT_TRANSITIONS_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_EFFECT, SpitTransitionsEffect))
+#define SPIT_TRANSITIONS_IS_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_EFFECT))
+#define SPIT_TRANSITIONS_EFFECT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TRANSITIONS_TYPE_EFFECT, SpitTransitionsEffectIface))
+
+typedef struct _SpitTransitionsEffect SpitTransitionsEffect;
+typedef struct _SpitTransitionsEffectIface SpitTransitionsEffectIface;
+
+typedef enum {
+ SPIT_TRANSITIONS_DIRECTION_LEFT = 0,
+ SPIT_TRANSITIONS_DIRECTION_RIGHT = 1,
+ SPIT_TRANSITIONS_DIRECTION_FORWARD = SPIT_TRANSITIONS_DIRECTION_LEFT,
+ SPIT_TRANSITIONS_DIRECTION_BACKWARD = SPIT_TRANSITIONS_DIRECTION_RIGHT
+} SpitTransitionsDirection;
+
+struct _SpitTransitionsVisuals {
+ GObject parent_instance;
+ SpitTransitionsVisualsPrivate * priv;
+};
+
+struct _SpitTransitionsVisualsClass {
+ GObjectClass parent_class;
+ void (*reserved0) (SpitTransitionsVisuals* self);
+ void (*reserved1) (SpitTransitionsVisuals* self);
+ void (*reserved2) (SpitTransitionsVisuals* self);
+ void (*reserved3) (SpitTransitionsVisuals* self);
+ void (*reserved4) (SpitTransitionsVisuals* self);
+ void (*reserved5) (SpitTransitionsVisuals* self);
+ void (*reserved6) (SpitTransitionsVisuals* self);
+ void (*reserved7) (SpitTransitionsVisuals* self);
+};
+
+struct _SpitTransitionsVisualsPrivate {
+ GdkPixbuf* _from_pixbuf;
+ GdkRectangle _from_pos;
+ GdkPixbuf* _to_pixbuf;
+ GdkRectangle _to_pos;
+ GdkRGBA _bg_color;
+};
+
+struct _SpitTransitionsMotion {
+ GObject parent_instance;
+ SpitTransitionsMotionPrivate * priv;
+};
+
+struct _SpitTransitionsMotionClass {
+ GObjectClass parent_class;
+ void (*reserved0) (SpitTransitionsMotion* self);
+ void (*reserved1) (SpitTransitionsMotion* self);
+ void (*reserved2) (SpitTransitionsMotion* self);
+ void (*reserved3) (SpitTransitionsMotion* self);
+ void (*reserved4) (SpitTransitionsMotion* self);
+ void (*reserved5) (SpitTransitionsMotion* self);
+ void (*reserved6) (SpitTransitionsMotion* self);
+ void (*reserved7) (SpitTransitionsMotion* self);
+};
+
+struct _SpitTransitionsMotionPrivate {
+ SpitTransitionsDirection _direction;
+ gint _fps;
+ gint _duration_msec;
+};
+
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+struct _SpitTransitionsEffectIface {
+ GTypeInterface parent_iface;
+ void (*get_fps) (SpitTransitionsEffect* self, gint* desired_fps, gint* min_fps);
+ void (*start) (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion);
+ gboolean (*needs_clear_background) (SpitTransitionsEffect* self);
+ void (*paint) (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number);
+ void (*advance) (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number);
+ void (*cancel) (SpitTransitionsEffect* self);
+ void (*reserved0) (SpitTransitionsEffect* self);
+ void (*reserved1) (SpitTransitionsEffect* self);
+ void (*reserved2) (SpitTransitionsEffect* self);
+ void (*reserved3) (SpitTransitionsEffect* self);
+ void (*reserved4) (SpitTransitionsEffect* self);
+ void (*reserved5) (SpitTransitionsEffect* self);
+ void (*reserved6) (SpitTransitionsEffect* self);
+ void (*reserved7) (SpitTransitionsEffect* self);
+};
+
+struct _SpitTransitionsDescriptorIface {
+ GTypeInterface parent_iface;
+ SpitTransitionsEffect* (*create) (SpitTransitionsDescriptor* self, SpitHostInterface* host);
+ void (*reserved0) (SpitTransitionsDescriptor* self);
+ void (*reserved1) (SpitTransitionsDescriptor* self);
+ void (*reserved2) (SpitTransitionsDescriptor* self);
+ void (*reserved3) (SpitTransitionsDescriptor* self);
+ void (*reserved4) (SpitTransitionsDescriptor* self);
+ void (*reserved5) (SpitTransitionsDescriptor* self);
+ void (*reserved6) (SpitTransitionsDescriptor* self);
+ void (*reserved7) (SpitTransitionsDescriptor* self);
+};
+
+
+static gpointer spit_transitions_visuals_parent_class = NULL;
+static gpointer spit_transitions_motion_parent_class = NULL;
+
+#define SPIT_TRANSITIONS_CURRENT_INTERFACE 0
+GType spit_transitions_direction_get_type (void) G_GNUC_CONST;
+GType spit_transitions_visuals_get_type (void) G_GNUC_CONST;
+#define SPIT_TRANSITIONS_VISUALS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisualsPrivate))
+enum {
+ SPIT_TRANSITIONS_VISUALS_DUMMY_PROPERTY,
+ SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF,
+ SPIT_TRANSITIONS_VISUALS_FROM_POS,
+ SPIT_TRANSITIONS_VISUALS_TO_PIXBUF,
+ SPIT_TRANSITIONS_VISUALS_TO_POS,
+ SPIT_TRANSITIONS_VISUALS_BG_COLOR
+};
+SpitTransitionsVisuals* spit_transitions_visuals_new (GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color);
+SpitTransitionsVisuals* spit_transitions_visuals_construct (GType object_type, GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color);
+static void spit_transitions_visuals_set_from_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value);
+static void spit_transitions_visuals_set_from_pos (SpitTransitionsVisuals* self, GdkRectangle* value);
+static void spit_transitions_visuals_set_to_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value);
+static void spit_transitions_visuals_set_to_pos (SpitTransitionsVisuals* self, GdkRectangle* value);
+static void spit_transitions_visuals_set_bg_color (SpitTransitionsVisuals* self, GdkRGBA* value);
+void spit_transitions_visuals_reserved0 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved0 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved1 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved1 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved2 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved2 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved3 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved3 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved4 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved4 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved5 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved5 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved6 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved6 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved7 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved7 (SpitTransitionsVisuals* self);
+GdkPixbuf* spit_transitions_visuals_get_from_pixbuf (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_get_from_pos (SpitTransitionsVisuals* self, GdkRectangle* result);
+GdkPixbuf* spit_transitions_visuals_get_to_pixbuf (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_get_to_pos (SpitTransitionsVisuals* self, GdkRectangle* result);
+void spit_transitions_visuals_get_bg_color (SpitTransitionsVisuals* self, GdkRGBA* result);
+static void spit_transitions_visuals_finalize (GObject* obj);
+static void _vala_spit_transitions_visuals_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_spit_transitions_visuals_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType spit_transitions_motion_get_type (void) G_GNUC_CONST;
+#define SPIT_TRANSITIONS_MOTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotionPrivate))
+enum {
+ SPIT_TRANSITIONS_MOTION_DUMMY_PROPERTY,
+ SPIT_TRANSITIONS_MOTION_DIRECTION,
+ SPIT_TRANSITIONS_MOTION_FPS,
+ SPIT_TRANSITIONS_MOTION_DURATION_MSEC,
+ SPIT_TRANSITIONS_MOTION_TOTAL_FRAMES,
+ SPIT_TRANSITIONS_MOTION_TICK_MSEC
+};
+SpitTransitionsMotion* spit_transitions_motion_new (SpitTransitionsDirection direction, gint fps, gint duration_msec);
+SpitTransitionsMotion* spit_transitions_motion_construct (GType object_type, SpitTransitionsDirection direction, gint fps, gint duration_msec);
+static void spit_transitions_motion_set_direction (SpitTransitionsMotion* self, SpitTransitionsDirection value);
+static void spit_transitions_motion_set_fps (SpitTransitionsMotion* self, gint value);
+static void spit_transitions_motion_set_duration_msec (SpitTransitionsMotion* self, gint value);
+gdouble spit_transitions_motion_get_alpha (SpitTransitionsMotion* self, gint frame_number);
+gint spit_transitions_motion_get_total_frames (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved0 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved0 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved1 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved1 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved2 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved2 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved3 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved3 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved4 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved4 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved5 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved5 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved6 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved6 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved7 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved7 (SpitTransitionsMotion* self);
+SpitTransitionsDirection spit_transitions_motion_get_direction (SpitTransitionsMotion* self);
+gint spit_transitions_motion_get_fps (SpitTransitionsMotion* self);
+gint spit_transitions_motion_get_duration_msec (SpitTransitionsMotion* self);
+gint spit_transitions_motion_get_tick_msec (SpitTransitionsMotion* self);
+static void spit_transitions_motion_finalize (GObject* obj);
+static void _vala_spit_transitions_motion_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_spit_transitions_motion_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_transitions_effect_get_type (void) G_GNUC_CONST;
+GType spit_transitions_descriptor_get_type (void) G_GNUC_CONST;
+SpitTransitionsEffect* spit_transitions_descriptor_create (SpitTransitionsDescriptor* self, SpitHostInterface* host);
+void spit_transitions_descriptor_reserved0 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved0 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved1 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved1 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved2 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved2 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved3 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved3 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved4 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved4 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved5 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved5 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved6 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved6 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved7 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved7 (SpitTransitionsDescriptor* self);
+void spit_transitions_effect_get_fps (SpitTransitionsEffect* self, gint* desired_fps, gint* min_fps);
+void spit_transitions_effect_start (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion);
+gboolean spit_transitions_effect_needs_clear_background (SpitTransitionsEffect* self);
+void spit_transitions_effect_paint (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number);
+void spit_transitions_effect_advance (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number);
+void spit_transitions_effect_cancel (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved0 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved0 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved1 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved1 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved2 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved2 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved3 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved3 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved4 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved4 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved5 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved5 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved6 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved6 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved7 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved7 (SpitTransitionsEffect* self);
+
+
+/**
+ * Direction indicates what direction (animated motion) the {@link Effect} should simulate the
+ * images are moving, if appropriate.
+ *
+ * The direction indicates from what side or corner of the screen the new image should come in from.
+ * Thus, a LEFT slide means the current image exits via the left-hand edge of the screen and the
+ * new image moves into place from the right-hand edge.
+ *
+ * UP, DOWN, and diagonals may be added at some point.
+ */
+GType spit_transitions_direction_get_type (void) {
+ static volatile gsize spit_transitions_direction_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_direction_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_TRANSITIONS_DIRECTION_LEFT, "SPIT_TRANSITIONS_DIRECTION_LEFT", "left"}, {SPIT_TRANSITIONS_DIRECTION_RIGHT, "SPIT_TRANSITIONS_DIRECTION_RIGHT", "right"}, {SPIT_TRANSITIONS_DIRECTION_FORWARD, "SPIT_TRANSITIONS_DIRECTION_FORWARD", "forward"}, {SPIT_TRANSITIONS_DIRECTION_BACKWARD, "SPIT_TRANSITIONS_DIRECTION_BACKWARD", "backward"}, {0, NULL, NULL}};
+ GType spit_transitions_direction_type_id;
+ spit_transitions_direction_type_id = g_enum_register_static ("SpitTransitionsDirection", values);
+ g_once_init_leave (&spit_transitions_direction_type_id__volatile, spit_transitions_direction_type_id);
+ }
+ return spit_transitions_direction_type_id__volatile;
+}
+
+
+SpitTransitionsVisuals* spit_transitions_visuals_construct (GType object_type, GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color) {
+ SpitTransitionsVisuals * self = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkRectangle _tmp3_ = {0};
+ GdkRGBA _tmp4_ = {0};
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail ((from_pixbuf == NULL) || GDK_IS_PIXBUF (from_pixbuf), NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (from_pos != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail ((to_pixbuf == NULL) || GDK_IS_PIXBUF (to_pixbuf), NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (to_pos != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (bg_color != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = (SpitTransitionsVisuals*) g_object_new (object_type, NULL);
+#line 96 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = from_pixbuf;
+#line 96 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pixbuf (self, _tmp0_);
+#line 97 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = *from_pos;
+#line 97 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pos (self, &_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp2_ = to_pixbuf;
+#line 98 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pixbuf (self, _tmp2_);
+#line 99 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp3_ = *to_pos;
+#line 99 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pos (self, &_tmp3_);
+#line 100 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp4_ = *bg_color;
+#line 100 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_bg_color (self, &_tmp4_);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return self;
+#line 422 "TransitionsInterfaces.c"
+}
+
+
+SpitTransitionsVisuals* spit_transitions_visuals_new (GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color) {
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return spit_transitions_visuals_construct (SPIT_TRANSITIONS_TYPE_VISUALS, from_pixbuf, from_pos, to_pixbuf, to_pos, bg_color);
+#line 429 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved0 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved0 (SpitTransitionsVisuals* self) {
+#line 106 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 106 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved0 (self);
+#line 442 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved1 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved1 (SpitTransitionsVisuals* self) {
+#line 107 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 107 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved1 (self);
+#line 455 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved2 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved2 (SpitTransitionsVisuals* self) {
+#line 108 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 108 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved2 (self);
+#line 468 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved3 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved3 (SpitTransitionsVisuals* self) {
+#line 109 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 109 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved3 (self);
+#line 481 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved4 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved4 (SpitTransitionsVisuals* self) {
+#line 110 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 110 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved4 (self);
+#line 494 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved5 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved5 (SpitTransitionsVisuals* self) {
+#line 111 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 111 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved5 (self);
+#line 507 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved6 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved6 (SpitTransitionsVisuals* self) {
+#line 112 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 112 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved6 (self);
+#line 520 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved7 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved7 (SpitTransitionsVisuals* self) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 113 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved7 (self);
+#line 533 "TransitionsInterfaces.c"
+}
+
+
+GdkPixbuf* spit_transitions_visuals_get_from_pixbuf (SpitTransitionsVisuals* self) {
+ GdkPixbuf* result;
+ GdkPixbuf* _tmp0_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self), NULL);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_from_pixbuf;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 548 "TransitionsInterfaces.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 555 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_from_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_from_pixbuf);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_from_pixbuf = _tmp1_;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "from-pixbuf");
+#line 574 "TransitionsInterfaces.c"
+}
+
+
+void spit_transitions_visuals_get_from_pos (SpitTransitionsVisuals* self, GdkRectangle* result) {
+ GdkRectangle _tmp0_ = {0};
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_from_pos;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ *result = _tmp0_;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return;
+#line 588 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_from_pos (SpitTransitionsVisuals* self, GdkRectangle* value) {
+ GdkRectangle _tmp0_ = {0};
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = *value;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_from_pos = _tmp0_;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "from-pos");
+#line 602 "TransitionsInterfaces.c"
+}
+
+
+GdkPixbuf* spit_transitions_visuals_get_to_pixbuf (SpitTransitionsVisuals* self) {
+ GdkPixbuf* result;
+ GdkPixbuf* _tmp0_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self), NULL);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_to_pixbuf;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 617 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_to_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_to_pixbuf);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_to_pixbuf = _tmp1_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "to-pixbuf");
+#line 636 "TransitionsInterfaces.c"
+}
+
+
+void spit_transitions_visuals_get_to_pos (SpitTransitionsVisuals* self, GdkRectangle* result) {
+ GdkRectangle _tmp0_ = {0};
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_to_pos;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ *result = _tmp0_;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return;
+#line 650 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_to_pos (SpitTransitionsVisuals* self, GdkRectangle* value) {
+ GdkRectangle _tmp0_ = {0};
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = *value;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_to_pos = _tmp0_;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "to-pos");
+#line 664 "TransitionsInterfaces.c"
+}
+
+
+void spit_transitions_visuals_get_bg_color (SpitTransitionsVisuals* self, GdkRGBA* result) {
+ GdkRGBA _tmp0_ = {0};
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_bg_color;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ *result = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return;
+#line 678 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_bg_color (SpitTransitionsVisuals* self, GdkRGBA* value) {
+ GdkRGBA _tmp0_ = {0};
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = *value;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_bg_color = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "bg-color");
+#line 692 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_class_init (SpitTransitionsVisualsClass * klass) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_parent_class = g_type_class_peek_parent (klass);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_type_class_add_private (klass, sizeof (SpitTransitionsVisualsPrivate));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved0 = spit_transitions_visuals_real_reserved0;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved1 = spit_transitions_visuals_real_reserved1;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved2 = spit_transitions_visuals_real_reserved2;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved3 = spit_transitions_visuals_real_reserved3;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved4 = spit_transitions_visuals_real_reserved4;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved5 = spit_transitions_visuals_real_reserved5;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved6 = spit_transitions_visuals_real_reserved6;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved7 = spit_transitions_visuals_real_reserved7;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_spit_transitions_visuals_get_property;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_spit_transitions_visuals_set_property;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_transitions_visuals_finalize;
+#line 723 "TransitionsInterfaces.c"
+ /**
+ * Returns the starting pixbuf (the pixbuf currently on the display).
+ *
+ * If transitioning from a blank screen, this will return null.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF, g_param_spec_object ("from-pixbuf", "from-pixbuf", "from-pixbuf", GDK_TYPE_PIXBUF, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 731 "TransitionsInterfaces.c"
+ /**
+ * Returns the position of the starting pixbuf on the display.
+ *
+ * If transitioning from a blank screen, this will be zeroed.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_FROM_POS, g_param_spec_boxed ("from-pos", "from-pos", "from-pos", GDK_TYPE_RECTANGLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 739 "TransitionsInterfaces.c"
+ /**
+ * Returns the ending pixbuf (the pixbuf that the transition should result in).
+ *
+ * If transitioning to a blank screen, this will return null.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_TO_PIXBUF, g_param_spec_object ("to-pixbuf", "to-pixbuf", "to-pixbuf", GDK_TYPE_PIXBUF, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 747 "TransitionsInterfaces.c"
+ /**
+ * Returns the position of the ending pixbuf on the display.
+ *
+ * If transitioning to a blank screen, this will be zeroed.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_TO_POS, g_param_spec_boxed ("to-pos", "to-pos", "to-pos", GDK_TYPE_RECTANGLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 755 "TransitionsInterfaces.c"
+ /**
+ * Returns the background color of the viewport.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_BG_COLOR, g_param_spec_boxed ("bg-color", "bg-color", "bg-color", gdk_rgba_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 761 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_instance_init (SpitTransitionsVisuals * self) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv = SPIT_TRANSITIONS_VISUALS_GET_PRIVATE (self);
+#line 768 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_finalize (GObject* obj) {
+ SpitTransitionsVisuals * self;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_from_pixbuf);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_to_pixbuf);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (spit_transitions_visuals_parent_class)->finalize (obj);
+#line 782 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Visuals contains the pertinent drawing information for the transition that must occur.
+ *
+ * A Visuals object is supplied to {@link Effect} at the start of the transition and during each
+ * call to paint to the screen.
+ *
+ * Note that if starting with a blank screen, from_pixbuf will be null and from_pos will be
+ * zeroed. The transition should be considered to start from a blank screen of the supplied
+ * background color.
+ *
+ * Also note that if transitioning to a blank screen, to_pixbuf will be null and to_pos will be
+ * zeroed. Like the prior case, the transition should move toward a blank screen of the background
+ * color.
+ */
+GType spit_transitions_visuals_get_type (void) {
+ static volatile gsize spit_transitions_visuals_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_visuals_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsVisualsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_transitions_visuals_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitTransitionsVisuals), 0, (GInstanceInitFunc) spit_transitions_visuals_instance_init, NULL };
+ GType spit_transitions_visuals_type_id;
+ spit_transitions_visuals_type_id = g_type_register_static (G_TYPE_OBJECT, "SpitTransitionsVisuals", &g_define_type_info, 0);
+ g_once_init_leave (&spit_transitions_visuals_type_id__volatile, spit_transitions_visuals_type_id);
+ }
+ return spit_transitions_visuals_type_id__volatile;
+}
+
+
+static void _vala_spit_transitions_visuals_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SpitTransitionsVisuals * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_object (value, spit_transitions_visuals_get_from_pixbuf (self));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_POS:
+#line 825 "TransitionsInterfaces.c"
+ {
+ GdkRectangle boxed;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_get_from_pos (self, &boxed);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_boxed (value, &boxed);
+#line 832 "TransitionsInterfaces.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_object (value, spit_transitions_visuals_get_to_pixbuf (self));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_POS:
+#line 844 "TransitionsInterfaces.c"
+ {
+ GdkRectangle boxed;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_get_to_pos (self, &boxed);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_boxed (value, &boxed);
+#line 851 "TransitionsInterfaces.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_BG_COLOR:
+#line 857 "TransitionsInterfaces.c"
+ {
+ GdkRGBA boxed;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_get_bg_color (self, &boxed);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_boxed (value, &boxed);
+#line 864 "TransitionsInterfaces.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 868 "TransitionsInterfaces.c"
+ default:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 874 "TransitionsInterfaces.c"
+ }
+}
+
+
+static void _vala_spit_transitions_visuals_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SpitTransitionsVisuals * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pixbuf (self, g_value_get_object (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_POS:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pos (self, g_value_get_boxed (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pixbuf (self, g_value_get_object (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_POS:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pos (self, g_value_get_boxed (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_BG_COLOR:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_bg_color (self, g_value_get_boxed (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 914 "TransitionsInterfaces.c"
+ default:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 920 "TransitionsInterfaces.c"
+ }
+}
+
+
+SpitTransitionsMotion* spit_transitions_motion_construct (GType object_type, SpitTransitionsDirection direction, gint fps, gint duration_msec) {
+ SpitTransitionsMotion * self = NULL;
+ SpitTransitionsDirection _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 157 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = (SpitTransitionsMotion*) g_object_new (object_type, NULL);
+#line 158 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = direction;
+#line 158 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_direction (self, _tmp0_);
+#line 159 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = fps;
+#line 159 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_fps (self, _tmp1_);
+#line 160 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp2_ = duration_msec;
+#line 160 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_duration_msec (self, _tmp2_);
+#line 157 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return self;
+#line 946 "TransitionsInterfaces.c"
+}
+
+
+SpitTransitionsMotion* spit_transitions_motion_new (SpitTransitionsDirection direction, gint fps, gint duration_msec) {
+#line 157 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return spit_transitions_motion_construct (SPIT_TRANSITIONS_TYPE_MOTION, direction, fps, duration_msec);
+#line 953 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Returns a value from 0.0 to 1.0 that represents the percentage of the transition's completion
+ * for the specified frame.
+ */
+gdouble spit_transitions_motion_get_alpha (SpitTransitionsMotion* self, gint frame_number) {
+ gdouble result = 0.0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 167 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0.0);
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = frame_number;
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = spit_transitions_motion_get_total_frames (self);
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = ((gdouble) _tmp0_) / ((gdouble) _tmp2_);
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 978 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved0 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved0 (SpitTransitionsMotion* self) {
+#line 174 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 174 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved0 (self);
+#line 991 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved1 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved1 (SpitTransitionsMotion* self) {
+#line 175 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 175 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved1 (self);
+#line 1004 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved2 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved2 (SpitTransitionsMotion* self) {
+#line 176 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 176 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved2 (self);
+#line 1017 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved3 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved3 (SpitTransitionsMotion* self) {
+#line 177 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 177 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved3 (self);
+#line 1030 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved4 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved4 (SpitTransitionsMotion* self) {
+#line 178 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 178 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved4 (self);
+#line 1043 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved5 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved5 (SpitTransitionsMotion* self) {
+#line 179 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 179 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved5 (self);
+#line 1056 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved6 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved6 (SpitTransitionsMotion* self) {
+#line 180 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 180 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved6 (self);
+#line 1069 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved7 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved7 (SpitTransitionsMotion* self) {
+#line 181 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 181 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved7 (self);
+#line 1082 "TransitionsInterfaces.c"
+}
+
+
+SpitTransitionsDirection spit_transitions_motion_get_direction (SpitTransitionsMotion* self) {
+ SpitTransitionsDirection result;
+ SpitTransitionsDirection _tmp0_ = 0;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_direction;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1097 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_set_direction (SpitTransitionsMotion* self, SpitTransitionsDirection value) {
+ SpitTransitionsDirection _tmp0_ = 0;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_direction = _tmp0_;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "direction");
+#line 1111 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_fps (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_fps;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1126 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_set_fps (SpitTransitionsMotion* self, gint value) {
+ gint _tmp0_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_fps = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "fps");
+#line 1140 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_duration_msec (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_duration_msec;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1155 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_set_duration_msec (SpitTransitionsMotion* self, gint value) {
+ gint _tmp0_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_duration_msec = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "duration-msec");
+#line 1169 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_total_frames (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 143 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_fps;
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = self->priv->_duration_msec;
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = (gint) (((gdouble) _tmp0_) * (((gdouble) _tmp1_) / 1000.0));
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1187 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_tick_msec (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 152 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 153 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_fps;
+#line 153 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = (gint) (1000.0 / ((gdouble) _tmp0_));
+#line 153 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1202 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_class_init (SpitTransitionsMotionClass * klass) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_parent_class = g_type_class_peek_parent (klass);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_type_class_add_private (klass, sizeof (SpitTransitionsMotionPrivate));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved0 = spit_transitions_motion_real_reserved0;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved1 = spit_transitions_motion_real_reserved1;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved2 = spit_transitions_motion_real_reserved2;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved3 = spit_transitions_motion_real_reserved3;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved4 = spit_transitions_motion_real_reserved4;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved5 = spit_transitions_motion_real_reserved5;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved6 = spit_transitions_motion_real_reserved6;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved7 = spit_transitions_motion_real_reserved7;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_spit_transitions_motion_get_property;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_spit_transitions_motion_set_property;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_transitions_motion_finalize;
+#line 1233 "TransitionsInterfaces.c"
+ /**
+ * Returns the direction the transition should occur in (if pertinent to the {@link Effect}.
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_DIRECTION, g_param_spec_enum ("direction", "direction", "direction", SPIT_TRANSITIONS_TYPE_DIRECTION, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1239 "TransitionsInterfaces.c"
+ /**
+ * Returns the frames per second of the {@link Effect}.
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_FPS, g_param_spec_int ("fps", "fps", "fps", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1245 "TransitionsInterfaces.c"
+ /**
+ * Returns the amount of time the transition should take (in milliseconds).
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_DURATION_MSEC, g_param_spec_int ("duration-msec", "duration-msec", "duration-msec", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1251 "TransitionsInterfaces.c"
+ /**
+ * Returns the number of frames that should be required to perform the transition in the
+ * expected {@link duration_msec}.
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_TOTAL_FRAMES, g_param_spec_int ("total-frames", "total-frames", "total-frames", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1258 "TransitionsInterfaces.c"
+ /**
+ * Returns the approximate time between each frame draw (in milliseconds).
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_TICK_MSEC, g_param_spec_int ("tick-msec", "tick-msec", "tick-msec", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1264 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_instance_init (SpitTransitionsMotion * self) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv = SPIT_TRANSITIONS_MOTION_GET_PRIVATE (self);
+#line 1271 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_finalize (GObject* obj) {
+ SpitTransitionsMotion * self;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (spit_transitions_motion_parent_class)->finalize (obj);
+#line 1281 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Motion contains all the pertinent information regarding the animation of the transition.
+ *
+ * Some of Motion's information may not apply to a transition effect (such as Direction for a
+ * fade effect).
+ */
+GType spit_transitions_motion_get_type (void) {
+ static volatile gsize spit_transitions_motion_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_motion_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsMotionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_transitions_motion_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitTransitionsMotion), 0, (GInstanceInitFunc) spit_transitions_motion_instance_init, NULL };
+ GType spit_transitions_motion_type_id;
+ spit_transitions_motion_type_id = g_type_register_static (G_TYPE_OBJECT, "SpitTransitionsMotion", &g_define_type_info, 0);
+ g_once_init_leave (&spit_transitions_motion_type_id__volatile, spit_transitions_motion_type_id);
+ }
+ return spit_transitions_motion_type_id__volatile;
+}
+
+
+static void _vala_spit_transitions_motion_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SpitTransitionsMotion * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DIRECTION:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_enum (value, spit_transitions_motion_get_direction (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_FPS:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_fps (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DURATION_MSEC:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_duration_msec (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_TOTAL_FRAMES:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_total_frames (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_TICK_MSEC:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_tick_msec (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1338 "TransitionsInterfaces.c"
+ default:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1344 "TransitionsInterfaces.c"
+ }
+}
+
+
+static void _vala_spit_transitions_motion_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SpitTransitionsMotion * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DIRECTION:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_direction (self, g_value_get_enum (value));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_FPS:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_fps (self, g_value_get_int (value));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DURATION_MSEC:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_duration_msec (self, g_value_get_int (value));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1372 "TransitionsInterfaces.c"
+ default:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1378 "TransitionsInterfaces.c"
+ }
+}
+
+
+/**
+ * Returns an instance of the {@link Effect} this descriptor represents.
+ */
+SpitTransitionsEffect* spit_transitions_descriptor_create (SpitTransitionsDescriptor* self, SpitHostInterface* host) {
+#line 191 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self), NULL);
+#line 191 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->create (self, host);
+#line 1391 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved0 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved0 (SpitTransitionsDescriptor* self) {
+#line 196 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 196 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved0 (self);
+#line 1404 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved1 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved1 (SpitTransitionsDescriptor* self) {
+#line 197 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 197 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved1 (self);
+#line 1417 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved2 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved2 (SpitTransitionsDescriptor* self) {
+#line 198 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 198 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved2 (self);
+#line 1430 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved3 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved3 (SpitTransitionsDescriptor* self) {
+#line 199 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 199 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved3 (self);
+#line 1443 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved4 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved4 (SpitTransitionsDescriptor* self) {
+#line 200 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 200 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved4 (self);
+#line 1456 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved5 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved5 (SpitTransitionsDescriptor* self) {
+#line 201 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 201 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved5 (self);
+#line 1469 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved6 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved6 (SpitTransitionsDescriptor* self) {
+#line 202 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 202 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved6 (self);
+#line 1482 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved7 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved7 (SpitTransitionsDescriptor* self) {
+#line 203 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 203 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved7 (self);
+#line 1495 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_base_init (SpitTransitionsDescriptorIface * iface) {
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ if (!initialized) {
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ initialized = TRUE;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved0 = spit_transitions_descriptor_real_reserved0;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved1 = spit_transitions_descriptor_real_reserved1;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved2 = spit_transitions_descriptor_real_reserved2;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved3 = spit_transitions_descriptor_real_reserved3;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved4 = spit_transitions_descriptor_real_reserved4;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved5 = spit_transitions_descriptor_real_reserved5;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved6 = spit_transitions_descriptor_real_reserved6;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved7 = spit_transitions_descriptor_real_reserved7;
+#line 1522 "TransitionsInterfaces.c"
+ }
+}
+
+
+/**
+ * A Descriptor offers a factory method for creating {@link Effect} instances.
+ */
+GType spit_transitions_descriptor_get_type (void) {
+ static volatile gsize spit_transitions_descriptor_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_descriptor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsDescriptorIface), (GBaseInitFunc) spit_transitions_descriptor_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_transitions_descriptor_type_id;
+ spit_transitions_descriptor_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitTransitionsDescriptor", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_transitions_descriptor_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_transitions_descriptor_type_id, SPIT_TYPE_PLUGGABLE);
+ g_once_init_leave (&spit_transitions_descriptor_type_id__volatile, spit_transitions_descriptor_type_id);
+ }
+ return spit_transitions_descriptor_type_id__volatile;
+}
+
+
+/**
+ * Returns frames per second (FPS) information for this effect.
+ *
+ * If the min_fps is not met, the Effect may be cancelled or the host will skip ahead.
+ *
+ * @param desired_fps The desired FPS of the transition. Return zero if no
+ * transition is to occur (instantaneous or null transition).
+ * @param min_fps The minimum FPS before the effect is consider "ruined".
+ * Return zero if any FPS is acceptable.
+ */
+void spit_transitions_effect_get_fps (SpitTransitionsEffect* self, gint* desired_fps, gint* min_fps) {
+#line 240 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 240 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->get_fps (self, desired_fps, min_fps);
+#line 1559 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called when the effect is starting.
+ *
+ * All state should be reset. The frame number, which is not supplied, is one.
+ */
+void spit_transitions_effect_start (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion) {
+#line 247 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 247 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->start (self, visuals, motion);
+#line 1573 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Return true if the Effect needs the background cleared prior to calling {@link paint}.
+ */
+gboolean spit_transitions_effect_needs_clear_background (SpitTransitionsEffect* self) {
+#line 252 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self), FALSE);
+#line 252 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->needs_clear_background (self);
+#line 1585 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called when the effect needs to paint (i.e. an expose or draw event has occurred).
+ *
+ * This call should ''not'' advance the state of the effect (i.e. it may be called more than
+ * once for the same frame).
+ *
+ * @param ctx The Cairo context the Effect should use to paint the transition.
+ * @param width The width (in pixels) of the Cairo surface.
+ * @param height The height (in pixels) of the Cairo surface.
+ * @param frame_number The ''one-based'' frame being drawn.
+ */
+void spit_transitions_effect_paint (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number) {
+#line 265 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 265 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->paint (self, visuals, motion, ctx, width, height, frame_number);
+#line 1605 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called to notify the effect that the state of the transition should advance to the specified
+ * frame number.
+ *
+ * Note: There is no guarantee frame numbers will be consecutive between calls
+ * to next, especially if the transition clock is attempting to catch up.
+ *
+ * @param frame_number The ''one-based'' frame being advanced to.
+ */
+void spit_transitions_effect_advance (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number) {
+#line 277 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 277 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->advance (self, visuals, motion, frame_number);
+#line 1623 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called if the Effect should halt the transition.
+ *
+ * It only needs to reset state if {@link start} is called again.
+ */
+void spit_transitions_effect_cancel (SpitTransitionsEffect* self) {
+#line 284 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 284 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->cancel (self);
+#line 1637 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved0 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved0 (SpitTransitionsEffect* self) {
+#line 289 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 289 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved0 (self);
+#line 1650 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved1 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved1 (SpitTransitionsEffect* self) {
+#line 290 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 290 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved1 (self);
+#line 1663 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved2 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved2 (SpitTransitionsEffect* self) {
+#line 291 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 291 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved2 (self);
+#line 1676 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved3 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved3 (SpitTransitionsEffect* self) {
+#line 292 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 292 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved3 (self);
+#line 1689 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved4 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved4 (SpitTransitionsEffect* self) {
+#line 293 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 293 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved4 (self);
+#line 1702 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved5 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved5 (SpitTransitionsEffect* self) {
+#line 294 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 294 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved5 (self);
+#line 1715 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved6 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved6 (SpitTransitionsEffect* self) {
+#line 295 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 295 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved6 (self);
+#line 1728 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved7 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved7 (SpitTransitionsEffect* self) {
+#line 296 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 296 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved7 (self);
+#line 1741 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_base_init (SpitTransitionsEffectIface * iface) {
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ if (!initialized) {
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ initialized = TRUE;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved0 = spit_transitions_effect_real_reserved0;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved1 = spit_transitions_effect_real_reserved1;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved2 = spit_transitions_effect_real_reserved2;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved3 = spit_transitions_effect_real_reserved3;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved4 = spit_transitions_effect_real_reserved4;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved5 = spit_transitions_effect_real_reserved5;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved6 = spit_transitions_effect_real_reserved6;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved7 = spit_transitions_effect_real_reserved7;
+#line 1768 "TransitionsInterfaces.c"
+ }
+}
+
+
+/**
+ * An Effect represents an interstitial effect that is used to transition the display from one
+ * image to another.
+ *
+ * An Effect must hold state so that it knows what it should be drawn at any call to {@link paint}
+ * (which is called regularly during a transition). That is, it should be able to draw any frame of
+ * the transition at any time. The same frame may need to be drawn multiple times, or the host
+ * may skip ahead and ask for a frame well ahead of the last requested one.
+ *
+ * ''Frame numbers are one-based throughout this interface''. This is because the initial state (the
+ * blank viewport or the starting pixbuf) is frame zero. The Effect is never called to paint this
+ * frame. The Effect is also not called to paint the final frame (a blank viewport or the ending
+ * pixbuf).
+ *
+ * If the Effect uses background threads for its work, it should use the appropriate primitives
+ * for critical sections. All calls to this interface will be from the context of the main UI
+ * thread. ''None of these calls should block.''
+ *
+ * If the Details object needs to be held by the Effect, its reference to it should be dropped at
+ * the end of the cycle (or shortly thereafter).
+ *
+ * An instance may be reused and should be prepared for restarts.
+ */
+GType spit_transitions_effect_get_type (void) {
+ static volatile gsize spit_transitions_effect_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_effect_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsEffectIface), (GBaseInitFunc) spit_transitions_effect_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_transitions_effect_type_id;
+ spit_transitions_effect_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitTransitionsEffect", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_transitions_effect_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_transitions_effect_type_id__volatile, spit_transitions_effect_type_id);
+ }
+ return spit_transitions_effect_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/mk/interfaces.mk b/src/plugins/mk/interfaces.mk
deleted file mode 100644
index 34be1eb..0000000
--- a/src/plugins/mk/interfaces.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-
-PLUGIN_INTERFACES := \
- src/plugins/SpitInterfaces.vala \
- src/plugins/TransitionsInterfaces.vala \
- src/plugins/PublishingInterfaces.vala \
- src/plugins/DataImportsInterfaces.vala
-
-PLUGIN_PKG_REQS := \
- gobject-2.0 \
- glib-2.0 \
- gdk-3.0 \
- gtk+-3.0 \
- gee-0.8
-
-PLUGIN_VAPI := plugins/shotwell-plugin-dev-1.0.vapi
-PLUGIN_HEADER := $(PLUGIN_VAPI:.vapi=.h)
-PLUGIN_DEPS := $(PLUGIN_VAPI:.vapi=.deps)
-
-$(PLUGIN_DEPS): src/plugins/mk/interfaces.mk
- rm -f $@
- $(foreach pkg,$(PLUGIN_PKG_REQS),`echo $(pkg) >> $@`)
-
-$(PLUGIN_HEADER): $(PLUGIN_VAPI)
-
-$(PLUGIN_VAPI): $(PLUGIN_INTERFACES) src/plugins/mk/interfaces.mk
- $(call check_valac_version)
- $(VALAC) -c $(VALAFLAGS) -X -DGETTEXT_PACKAGE='"shotwell"' -X -I. $(foreach pkg,$(PLUGIN_PKG_REQS),--pkg=$(pkg)) --includedir=plugins --vapi=$@ --header=$(basename $@).h $(PLUGIN_INTERFACES)
- $(foreach src,$(PLUGIN_INTERFACES),`rm $(notdir $(src)).o`)
-
diff --git a/src/plugins/mk/plugins.mk b/src/plugins/mk/plugins.mk
deleted file mode 100644
index 903dd8e..0000000
--- a/src/plugins/mk/plugins.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Plugins
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := plugins
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- PublishingInterfaces.vala \
- SpitInterfaces.vala \
- TransitionsInterfaces.vala \
- StandardHostInterface.vala \
- ManifestWidget.vala \
- DataImportsInterfaces.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Util
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC := \
- mk/interfaces.mk
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-