/* DirectView.c generated by valac 0.34.4, the Vala compiler
 * generated from DirectView.vala, do not modify */

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <gee.h>


#define TYPE_DATA_OBJECT (data_object_get_type ())
#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))

typedef struct _DataObject DataObject;
typedef struct _DataObjectClass DataObjectClass;
typedef struct _DataObjectPrivate DataObjectPrivate;

#define TYPE_ALTERATION (alteration_get_type ())
#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))

typedef struct _Alteration Alteration;
typedef struct _AlterationClass AlterationClass;

#define TYPE_DATA_COLLECTION (data_collection_get_type ())
#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))

typedef struct _DataCollection DataCollection;
typedef struct _DataCollectionClass DataCollectionClass;

#define TYPE_DATA_VIEW (data_view_get_type ())
#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))

typedef struct _DataView DataView;
typedef struct _DataViewClass DataViewClass;
typedef struct _DataViewPrivate DataViewPrivate;

#define TYPE_DATA_SOURCE (data_source_get_type ())
#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))

typedef struct _DataSource DataSource;
typedef struct _DataSourceClass DataSourceClass;

#define TYPE_DIRECT_VIEW (direct_view_get_type ())
#define DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW, DirectView))
#define DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW, DirectViewClass))
#define IS_DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW))
#define IS_DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW))
#define DIRECT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW, DirectViewClass))

typedef struct _DirectView DirectView;
typedef struct _DirectViewClass DirectViewClass;
typedef struct _DirectViewPrivate DirectViewPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))

typedef struct _ThumbnailSource ThumbnailSource;
typedef struct _ThumbnailSourceClass ThumbnailSourceClass;

#define TYPE_MEDIA_SOURCE (media_source_get_type ())
#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))

typedef struct _MediaSource MediaSource;
typedef struct _MediaSourceClass MediaSourceClass;

#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))

typedef struct _PhotoSource PhotoSource;
typedef struct _PhotoSourceClass PhotoSourceClass;

#define TYPE_PHOTO (photo_get_type ())
#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))

typedef struct _Photo Photo;
typedef struct _PhotoClass PhotoClass;

#define TYPE_DIRECT_PHOTO (direct_photo_get_type ())
#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto))
#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass))
#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO))
#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO))
#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass))

typedef struct _DirectPhoto DirectPhoto;
typedef struct _DirectPhotoClass DirectPhotoClass;
typedef struct _DataCollectionPrivate DataCollectionPrivate;

#define TYPE_MARKER (marker_get_type ())
#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))

typedef struct _Marker Marker;
typedef struct _MarkerIface MarkerIface;

#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))

typedef struct _ViewCollection ViewCollection;
typedef struct _ViewCollectionClass ViewCollectionClass;
typedef struct _ViewCollectionPrivate ViewCollectionPrivate;

#define TYPE_VIEW_FILTER (view_filter_get_type ())
#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))

typedef struct _ViewFilter ViewFilter;
typedef struct _ViewFilterClass ViewFilterClass;

#define TYPE_DIRECT_VIEW_COLLECTION (direct_view_collection_get_type ())
#define DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollection))
#define DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass))
#define IS_DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW_COLLECTION))
#define IS_DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW_COLLECTION))
#define DIRECT_VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass))

typedef struct _DirectViewCollection DirectViewCollection;
typedef struct _DirectViewCollectionClass DirectViewCollectionClass;
typedef struct _DirectViewCollectionPrivate DirectViewCollectionPrivate;

#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))

typedef struct _SourceCollection SourceCollection;
typedef struct _SourceCollectionClass SourceCollectionClass;

#define TYPE_VIEW_MANAGER (view_manager_get_type ())
#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))

typedef struct _ViewManager ViewManager;
typedef struct _ViewManagerClass ViewManagerClass;

#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))

typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;

#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))

typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;

#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ())
#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection))
#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))

typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection;
typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass;

#define DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER (direct_view_collection_direct_view_manager_get_type ())
#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManager))
#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManagerClass))
#define DIRECT_VIEW_COLLECTION_IS_DIRECT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER))
#define DIRECT_VIEW_COLLECTION_IS_DIRECT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER))
#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManagerClass))

typedef struct _DirectViewCollectionDirectViewManager DirectViewCollectionDirectViewManager;
typedef struct _DirectViewCollectionDirectViewManagerClass DirectViewCollectionDirectViewManagerClass;
#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
typedef struct _ViewManagerPrivate ViewManagerPrivate;
typedef struct _DirectViewCollectionDirectViewManagerPrivate DirectViewCollectionDirectViewManagerPrivate;

struct _DataObject {
	GObject parent_instance;
	DataObjectPrivate * priv;
};

struct _DataObjectClass {
	GObjectClass parent_class;
	void (*notify_altered) (DataObject* self, Alteration* alteration);
	void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
	void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
	void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
	gchar* (*get_name) (DataObject* self);
	gchar* (*to_string) (DataObject* self);
};

struct _DataView {
	DataObject parent_instance;
	DataViewPrivate * priv;
};

struct _DataViewClass {
	DataObjectClass parent_class;
	void (*notify_view_altered) (DataView* self);
	void (*notify_geometry_altered) (DataView* self);
	void (*notify_unsubscribed) (DataView* self, DataSource* source);
	void (*state_changed) (DataView* self, gboolean selected);
	void (*visibility_changed) (DataView* self, gboolean visible);
	void (*view_altered) (DataView* self);
	void (*geometry_altered) (DataView* self);
	void (*unsubscribed) (DataView* self, DataSource* source);
};

struct _DirectView {
	DataView parent_instance;
	DirectViewPrivate * priv;
};

struct _DirectViewClass {
	DataViewClass parent_class;
};

struct _DirectViewPrivate {
	GFile* file;
	gchar* collate_key;
};

typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
struct _MarkerIface {
	GTypeInterface parent_iface;
	void (*mark) (Marker* self, DataObject* object);
	void (*unmark) (Marker* self, DataObject* object);
	gboolean (*toggle) (Marker* self, DataObject* object);
	void (*mark_many) (Marker* self, GeeCollection* list);
	void (*unmark_many) (Marker* self, GeeCollection* list);
	void (*mark_all) (Marker* self);
	gint (*get_count) (Marker* self);
	GeeCollection* (*get_all) (Marker* self);
};

struct _DataCollection {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DataCollectionPrivate * priv;
};

struct _DataCollectionClass {
	GTypeClass parent_class;
	void (*finalize) (DataCollection *self);
	gchar* (*to_string) (DataCollection* self);
	void (*notify_items_added) (DataCollection* self, GeeIterable* added);
	void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
	void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
	void (*notify_items_altered) (DataCollection* self, GeeMap* items);
	void (*notify_ordering_changed) (DataCollection* self);
	void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
	void (*notify_property_cleared) (DataCollection* self, const gchar* name);
	gboolean (*valid_type) (DataCollection* self, DataObject* object);
	void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
	void (*reset_comparator) (DataCollection* self);
	GeeCollection* (*get_all) (DataCollection* self);
	gint (*get_count) (DataCollection* self);
	DataObject* (*get_at) (DataCollection* self, gint index);
	gint (*index_of) (DataCollection* self, DataObject* object);
	gboolean (*contains) (DataCollection* self, DataObject* object);
	gboolean (*add) (DataCollection* self, DataObject* object);
	GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
	void (*remove_marked) (DataCollection* self, Marker* m);
	void (*clear) (DataCollection* self);
	void (*close) (DataCollection* self);
	void (*notify_frozen) (DataCollection* self);
	void (*notify_thawed) (DataCollection* self);
	void (*items_added) (DataCollection* self, GeeIterable* added);
	void (*items_removed) (DataCollection* self, GeeIterable* removed);
	void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
	void (*items_altered) (DataCollection* self, GeeMap* items);
	void (*ordering_changed) (DataCollection* self);
	void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
	void (*property_cleared) (DataCollection* self, const gchar* name);
	void (*frozen) (DataCollection* self);
	void (*thawed) (DataCollection* self);
};

struct _ViewCollection {
	DataCollection parent_instance;
	ViewCollectionPrivate * priv;
};

struct _ViewCollectionClass {
	DataCollectionClass parent_class;
	void (*notify_items_selected_unselected) (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected);
	void (*notify_selection_group_altered) (ViewCollection* self);
	void (*notify_item_view_altered) (ViewCollection* self, DataView* view);
	void (*notify_views_altered) (ViewCollection* self, GeeCollection* views);
	void (*notify_item_geometry_altered) (ViewCollection* self, DataView* view);
	void (*notify_geometries_altered) (ViewCollection* self, GeeCollection* views);
	void (*notify_items_shown) (ViewCollection* self, GeeCollection* shown);
	void (*notify_items_hidden) (ViewCollection* self, GeeCollection* hidden);
	void (*notify_items_visibility_changed) (ViewCollection* self, GeeCollection* changed);
	void (*notify_view_filter_installed) (ViewCollection* self, ViewFilter* filter);
	void (*notify_view_filter_removed) (ViewCollection* self, ViewFilter* filter);
	DataView* (*get_first) (ViewCollection* self);
	DataView* (*get_first_unrejected) (ViewCollection* self);
	DataView* (*get_last) (ViewCollection* self);
	DataView* (*get_next) (ViewCollection* self, DataView* view);
	DataView* (*get_previous) (ViewCollection* self, DataView* view);
	void (*items_selected) (ViewCollection* self, GeeIterable* selected);
	void (*items_unselected) (ViewCollection* self, GeeIterable* unselected);
	void (*items_state_changed) (ViewCollection* self, GeeIterable* changed);
	void (*selection_group_altered) (ViewCollection* self);
	void (*items_shown) (ViewCollection* self, GeeCollection* visible);
	void (*items_hidden) (ViewCollection* self, GeeCollection* hidden);
	void (*items_visibility_changed) (ViewCollection* self, GeeCollection* changed);
	void (*item_view_altered) (ViewCollection* self, DataView* view);
	void (*item_geometry_altered) (ViewCollection* self, DataView* view);
	void (*views_altered) (ViewCollection* self, GeeCollection* views);
	void (*geometries_altered) (ViewCollection* self, GeeCollection* views);
	void (*view_filter_installed) (ViewCollection* self, ViewFilter* filer);
	void (*view_filter_removed) (ViewCollection* self, ViewFilter* filer);
};

struct _DirectViewCollection {
	ViewCollection parent_instance;
	DirectViewCollectionPrivate * priv;
};

struct _DirectViewCollectionClass {
	ViewCollectionClass parent_class;
};

struct _ViewManager {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ViewManagerPrivate * priv;
};

struct _ViewManagerClass {
	GTypeClass parent_class;
	void (*finalize) (ViewManager *self);
	gboolean (*include_in_view) (ViewManager* self, DataSource* source);
	DataView* (*create_view) (ViewManager* self, DataSource* source);
};

struct _DirectViewCollectionDirectViewManager {
	ViewManager parent_instance;
	DirectViewCollectionDirectViewManagerPrivate * priv;
};

struct _DirectViewCollectionDirectViewManagerClass {
	ViewManagerClass parent_class;
};


static gpointer direct_view_parent_class = NULL;
static gpointer direct_view_collection_parent_class = NULL;
extern DirectPhotoSourceCollection* direct_photo_global;
static gpointer direct_view_collection_direct_view_manager_parent_class = NULL;

GType data_object_get_type (void) G_GNUC_CONST;
gpointer alteration_ref (gpointer instance);
void alteration_unref (gpointer instance);
GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_alteration (GValue* value, gpointer v_object);
void value_take_alteration (GValue* value, gpointer v_object);
gpointer value_get_alteration (const GValue* value);
GType alteration_get_type (void) G_GNUC_CONST;
gpointer data_collection_ref (gpointer instance);
void data_collection_unref (gpointer instance);
GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_data_collection (GValue* value, gpointer v_object);
void value_take_data_collection (GValue* value, gpointer v_object);
gpointer value_get_data_collection (const GValue* value);
GType data_collection_get_type (void) G_GNUC_CONST;
GType data_view_get_type (void) G_GNUC_CONST;
GType data_source_get_type (void) G_GNUC_CONST;
GType direct_view_get_type (void) G_GNUC_CONST;
#define DIRECT_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_VIEW, DirectViewPrivate))
enum  {
	DIRECT_VIEW_DUMMY_PROPERTY
};
GType thumbnail_source_get_type (void) G_GNUC_CONST;
GType media_source_get_type (void) G_GNUC_CONST;
GType photo_source_get_type (void) G_GNUC_CONST;
GType photo_get_type (void) G_GNUC_CONST;
GType direct_photo_get_type (void) G_GNUC_CONST;
DirectView* direct_view_new (DirectPhoto* source);
DirectView* direct_view_construct (GType object_type, DirectPhoto* source);
DataView* data_view_new (DataSource* source);
DataView* data_view_construct (GType object_type, DataSource* source);
GFile* media_source_get_file (MediaSource* self);
GFile* direct_view_get_file (DirectView* self);
gchar* direct_view_get_collate_key (DirectView* self);
static void direct_view_finalize (GObject* obj);
GType marker_get_type (void) G_GNUC_CONST;
GType view_collection_get_type (void) G_GNUC_CONST;
gpointer view_filter_ref (gpointer instance);
void view_filter_unref (gpointer instance);
GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_view_filter (GValue* value, gpointer v_object);
void value_take_view_filter (GValue* value, gpointer v_object);
gpointer value_get_view_filter (const GValue* value);
GType view_filter_get_type (void) G_GNUC_CONST;
GType direct_view_collection_get_type (void) G_GNUC_CONST;
enum  {
	DIRECT_VIEW_COLLECTION_DUMMY_PROPERTY
};
DirectViewCollection* direct_view_collection_new (void);
DirectViewCollection* direct_view_collection_construct (GType object_type);
ViewCollection* view_collection_new (const gchar* name);
ViewCollection* view_collection_construct (GType object_type, const gchar* name);
void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
static gint64 direct_view_collection_filename_comparator (void* a, void* b);
static gint64 _direct_view_collection_filename_comparator_comparator (void* a, void* b, gpointer self);
GType source_collection_get_type (void) G_GNUC_CONST;
gpointer view_manager_ref (gpointer instance);
void view_manager_unref (gpointer instance);
GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_view_manager (GValue* value, gpointer v_object);
void value_take_view_manager (GValue* value, gpointer v_object);
gpointer value_get_view_manager (const GValue* value);
GType view_manager_get_type (void) G_GNUC_CONST;
gpointer view_collection_monitor_ref (gpointer instance);
void view_collection_monitor_unref (gpointer instance);
GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void view_collection_value_set_monitor (GValue* value, gpointer v_object);
void view_collection_value_take_monitor (GValue* value, gpointer v_object);
gpointer view_collection_value_get_monitor (const GValue* value);
GType view_collection_monitor_get_type (void) G_GNUC_CONST;
ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
GType database_source_collection_get_type (void) G_GNUC_CONST;
GType direct_photo_source_collection_get_type (void) G_GNUC_CONST;
static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_new (void);
static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_construct (GType object_type);
static GType direct_view_collection_direct_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
enum  {
	DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_DUMMY_PROPERTY
};
static DataView* direct_view_collection_direct_view_manager_real_create_view (ViewManager* base, DataSource* source);
ViewManager* view_manager_construct (GType object_type);


DirectView* direct_view_construct (GType object_type, DirectPhoto* source) {
	DirectView * self = NULL;
	DirectPhoto* _tmp0_ = NULL;
	DirectPhoto* _tmp1_ = NULL;
	GFile* _tmp2_ = NULL;
#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	g_return_val_if_fail (IS_DIRECT_PHOTO (source), NULL);
#line 12 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp0_ = source;
#line 12 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self = (DirectView*) data_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp1_ = source;
#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), TYPE_MEDIA_SOURCE, MediaSource));
#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_g_object_unref0 (self->priv->file);
#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self->priv->file = _tmp2_;
#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return self;
#line 522 "DirectView.c"
}


DirectView* direct_view_new (DirectPhoto* source) {
#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return direct_view_construct (TYPE_DIRECT_VIEW, source);
#line 529 "DirectView.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return self ? g_object_ref (self) : NULL;
#line 536 "DirectView.c"
}


GFile* direct_view_get_file (DirectView* self) {
	GFile* result = NULL;
	GFile* _tmp0_ = NULL;
	GFile* _tmp1_ = NULL;
#line 17 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	g_return_val_if_fail (IS_DIRECT_VIEW (self), NULL);
#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp0_ = self->priv->file;
#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	result = _tmp1_;
#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return result;
#line 554 "DirectView.c"
}


gchar* direct_view_get_collate_key (DirectView* self) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
#line 21 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	g_return_val_if_fail (IS_DIRECT_VIEW (self), NULL);
#line 22 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp0_ = self->priv->collate_key;
#line 22 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	if (_tmp0_ == NULL) {
#line 569 "DirectView.c"
		GFile* _tmp1_ = NULL;
		gchar* _tmp2_ = NULL;
		gchar* _tmp3_ = NULL;
		gchar* _tmp4_ = NULL;
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		_tmp1_ = self->priv->file;
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		_tmp2_ = g_file_get_basename (_tmp1_);
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		_tmp3_ = _tmp2_;
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		_tmp4_ = g_utf8_collate_key_for_filename (_tmp3_, (gssize) -1);
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		_g_free0 (self->priv->collate_key);
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		self->priv->collate_key = _tmp4_;
#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
		_g_free0 (_tmp3_);
#line 588 "DirectView.c"
	}
#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp5_ = self->priv->collate_key;
#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp6_ = g_strdup (_tmp5_);
#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	result = _tmp6_;
#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return result;
#line 598 "DirectView.c"
}


static void direct_view_class_init (DirectViewClass * klass) {
#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	direct_view_parent_class = g_type_class_peek_parent (klass);
#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	g_type_class_add_private (klass, sizeof (DirectViewPrivate));
#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	G_OBJECT_CLASS (klass)->finalize = direct_view_finalize;
#line 609 "DirectView.c"
}


static void direct_view_instance_init (DirectView * self) {
#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self->priv = DIRECT_VIEW_GET_PRIVATE (self);
#line 9 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self->priv->collate_key = NULL;
#line 618 "DirectView.c"
}


static void direct_view_finalize (GObject* obj) {
	DirectView * self;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_VIEW, DirectView);
#line 8 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_g_object_unref0 (self->priv->file);
#line 9 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_g_free0 (self->priv->collate_key);
#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	G_OBJECT_CLASS (direct_view_parent_class)->finalize (obj);
#line 632 "DirectView.c"
}


GType direct_view_get_type (void) {
	static volatile gsize direct_view_type_id__volatile = 0;
	if (g_once_init_enter (&direct_view_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DirectViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectView), 0, (GInstanceInitFunc) direct_view_instance_init, NULL };
		GType direct_view_type_id;
		direct_view_type_id = g_type_register_static (TYPE_DATA_VIEW, "DirectView", &g_define_type_info, 0);
		g_once_init_leave (&direct_view_type_id__volatile, direct_view_type_id);
	}
	return direct_view_type_id__volatile;
}


static gint64 _direct_view_collection_filename_comparator_comparator (void* a, void* b, gpointer self) {
	gint64 result;
	result = direct_view_collection_filename_comparator (a, b);
#line 39 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return result;
#line 653 "DirectView.c"
}


DirectViewCollection* direct_view_collection_construct (GType object_type) {
	DirectViewCollection* self = NULL;
	DirectPhotoSourceCollection* _tmp0_ = NULL;
	DirectViewCollectionDirectViewManager* _tmp1_ = NULL;
	DirectViewCollectionDirectViewManager* _tmp2_ = NULL;
	ViewCollectionMonitor* _tmp3_ = NULL;
	ViewCollectionMonitor* _tmp4_ = NULL;
#line 37 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self = (DirectViewCollection*) view_collection_construct (object_type, "DirectViewCollection");
#line 39 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _direct_view_collection_filename_comparator_comparator, NULL, NULL, NULL);
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp0_ = direct_photo_global;
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp1_ = direct_view_collection_direct_view_manager_new ();
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp2_ = _tmp1_;
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp3_ = view_collection_monitor_source_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, NULL, NULL);
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp4_ = _tmp3_;
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_view_collection_monitor_unref0 (_tmp4_);
#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_view_manager_unref0 (_tmp2_);
#line 36 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return self;
#line 684 "DirectView.c"
}


DirectViewCollection* direct_view_collection_new (void) {
#line 36 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return direct_view_collection_construct (TYPE_DIRECT_VIEW_COLLECTION);
#line 691 "DirectView.c"
}


static gint64 direct_view_collection_filename_comparator (void* a, void* b) {
	gint64 result = 0LL;
	DirectView* aview = NULL;
	void* _tmp0_ = NULL;
	DirectView* bview = NULL;
	void* _tmp1_ = NULL;
	GCompareFunc _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gint _tmp7_ = 0;
	gint64 _tmp8_ = 0LL;
#line 44 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp0_ = a;
#line 44 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	aview = (DirectView*) _tmp0_;
#line 45 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp1_ = b;
#line 45 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	bview = (DirectView*) _tmp1_;
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp2_ = g_strcmp0;
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp3_ = direct_view_get_collate_key (G_TYPE_CHECK_INSTANCE_CAST (aview, TYPE_DIRECT_VIEW, DirectView));
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp4_ = _tmp3_;
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp5_ = direct_view_get_collate_key (G_TYPE_CHECK_INSTANCE_CAST (bview, TYPE_DIRECT_VIEW, DirectView));
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp6_ = _tmp5_;
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp7_ = _tmp2_ (_tmp4_, _tmp6_);
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp8_ = (gint64) _tmp7_;
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_g_free0 (_tmp6_);
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_g_free0 (_tmp4_);
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	result = _tmp8_;
#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return result;
#line 738 "DirectView.c"
}


static DataView* direct_view_collection_direct_view_manager_real_create_view (ViewManager* base, DataSource* source) {
	DirectViewCollectionDirectViewManager * self;
	DataView* result = NULL;
	DataSource* _tmp0_ = NULL;
	DirectView* _tmp1_ = NULL;
#line 31 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManager);
#line 31 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp0_ = source;
#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	_tmp1_ = direct_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto));
#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return result;
#line 759 "DirectView.c"
}


static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_construct (GType object_type) {
	DirectViewCollectionDirectViewManager* self = NULL;
#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	self = (DirectViewCollectionDirectViewManager*) view_manager_construct (object_type);
#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return self;
#line 769 "DirectView.c"
}


static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_new (void) {
#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	return direct_view_collection_direct_view_manager_construct (DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER);
#line 776 "DirectView.c"
}


static void direct_view_collection_direct_view_manager_class_init (DirectViewCollectionDirectViewManagerClass * klass) {
#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	direct_view_collection_direct_view_manager_parent_class = g_type_class_peek_parent (klass);
#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	((ViewManagerClass *) klass)->create_view = direct_view_collection_direct_view_manager_real_create_view;
#line 785 "DirectView.c"
}


static void direct_view_collection_direct_view_manager_instance_init (DirectViewCollectionDirectViewManager * self) {
}


static GType direct_view_collection_direct_view_manager_get_type (void) {
	static volatile gsize direct_view_collection_direct_view_manager_type_id__volatile = 0;
	if (g_once_init_enter (&direct_view_collection_direct_view_manager_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DirectViewCollectionDirectViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_collection_direct_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectViewCollectionDirectViewManager), 0, (GInstanceInitFunc) direct_view_collection_direct_view_manager_instance_init, NULL };
		GType direct_view_collection_direct_view_manager_type_id;
		direct_view_collection_direct_view_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "DirectViewCollectionDirectViewManager", &g_define_type_info, 0);
		g_once_init_leave (&direct_view_collection_direct_view_manager_type_id__volatile, direct_view_collection_direct_view_manager_type_id);
	}
	return direct_view_collection_direct_view_manager_type_id__volatile;
}


static void direct_view_collection_class_init (DirectViewCollectionClass * klass) {
#line 29 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
	direct_view_collection_parent_class = g_type_class_peek_parent (klass);
#line 808 "DirectView.c"
}


static void direct_view_collection_instance_init (DirectViewCollection * self) {
}


GType direct_view_collection_get_type (void) {
	static volatile gsize direct_view_collection_type_id__volatile = 0;
	if (g_once_init_enter (&direct_view_collection_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DirectViewCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectViewCollection), 0, (GInstanceInitFunc) direct_view_collection_instance_init, NULL };
		GType direct_view_collection_type_id;
		direct_view_collection_type_id = g_type_register_static (TYPE_VIEW_COLLECTION, "DirectViewCollection", &g_define_type_info, 0);
		g_once_init_leave (&direct_view_collection_type_id__volatile, direct_view_collection_type_id);
	}
	return direct_view_collection_type_id__volatile;
}



