From 143bfc9f801c84428074312d661f8e08803df83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 20 Aug 2016 15:09:31 +0200 Subject: Imported Upstream version 0.23.5 --- src/plugins/Plugins.c | 4420 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4420 insertions(+) create mode 100644 src/plugins/Plugins.c (limited to 'src/plugins/Plugins.c') 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 +#include +#include +#include +#include +#include +#include "shotwell-plugin-dev-1.0.h" +#include +#include + + +#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 (¶ms, 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_ (¶ms); +#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 (¶ms); +#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 (¶ms); +#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 (¶ms); +#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 (¶ms); +#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 (¶ms); +#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 (¶ms); +#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); +} + + + -- cgit v1.2.3