[rygel-gst-0-10-plugins] Partial cleanup of RygelMediaExportMediaCache.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel-gst-0-10-plugins] Partial cleanup of RygelMediaExportMediaCache.
- Date: Fri, 1 Feb 2013 13:40:03 +0000 (UTC)
commit 34316dfeb12caa4ec0a2f2cf47593e3d4d10125c
Author: Krzesimir Nowak <krnowak openismus com>
Date: Fri Feb 1 14:37:43 2013 +0100
Partial cleanup of RygelMediaExportMediaCache.
src/media-export/rygel-media-export-media-cache.c | 6410 +++++++++------------
1 files changed, 2766 insertions(+), 3644 deletions(-)
---
diff --git a/src/media-export/rygel-media-export-media-cache.c b/src/media-export/rygel-media-export-media-cache.c
index fc3996f..21af856 100644
--- a/src/media-export/rygel-media-export-media-cache.c
+++ b/src/media-export/rygel-media-export-media-cache.c
@@ -55,21 +55,21 @@ typedef struct _RygelMediaExportExistsCacheEntry RygelMediaExportExistsCacheEntr
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
typedef enum {
- RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER,
- RYGEL_MEDIA_EXPORT_OBJECT_TYPE_ITEM
+ RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER,
+ RYGEL_MEDIA_EXPORT_OBJECT_TYPE_ITEM
} RygelMediaExportObjectType;
struct _RygelMediaExportExistsCacheEntry {
- gint64 mtime;
- gint64 size;
+ gint64 mtime;
+ gint64 size;
};
struct _RygelMediaExportMediaCachePrivate {
- RygelMediaExportDatabase* db;
- RygelMediaExportObjectFactory* factory;
- RygelMediaExportSQLFactory* sql;
- GeeHashMap* exists_cache;
+ RygelMediaExportDatabase* db;
+ RygelMediaExportObjectFactory* factory;
+ RygelMediaExportSQLFactory* sql;
+ GeeHashMap* exists_cache;
};
static RygelMediaExportMediaCache* rygel_media_export_media_cache_instance = NULL;
@@ -79,10 +79,9 @@ RygelMediaExportExistsCacheEntry* rygel_media_export_exists_cache_entry_dup (con
void rygel_media_export_exists_cache_entry_free (RygelMediaExportExistsCacheEntry* self);
#define RYGEL_MEDIA_EXPORT_MEDIA_CACHE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE, RygelMediaExportMediaCachePrivate))
enum {
- RYGEL_MEDIA_EXPORT_MEDIA_CACHE_DUMMY_PROPERTY
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_DUMMY_PROPERTY
};
-static RygelMediaExportMediaCache* rygel_media_export_media_cache_construct (GType object_type, GError** error);
static void rygel_media_export_media_cache_open_db (RygelMediaExportMediaCache* self, const gchar* name, GError** error);
static void rygel_media_export_media_cache_get_exists_cache (RygelMediaExportMediaCache* self, GError** error);
static void _vala_GValue_array_free (GValue* array, gint array_length);
@@ -93,8 +92,7 @@ static RygelMediaObject* rygel_media_export_media_cache_get_object_from_statemen
static gint rygel_media_export_media_cache_query_value (RygelMediaExportMediaCache* self, RygelMediaExportSQLString id, GValue* values, int values_length1, GError** error);
static gchar* rygel_media_export_media_cache_translate_sort_criteria (RygelMediaExportMediaCache* self, const gchar* sort_criteria);
static gchar* rygel_media_export_media_cache_translate_search_expression (RygelMediaExportMediaCache* self, RygelSearchExpression* expression, GArray* args, const gchar* prefix, GError** error);
-static guint rygel_media_export_media_cache_modify_limit (RygelMediaExportMediaCache* self, guint max_count);
-static GValue* _g_value_dup (GValue* self);
+static guint rygel_media_export_media_cache_modify_limit (guint max_count);
static void _vala_GValue_free (GValue* self);
static gchar* rygel_media_export_media_cache_map_operand_to_column (RygelMediaExportMediaCache* self, const gchar* operand, gchar** collate, GError** error);
static gboolean rygel_media_export_media_cache_create_schema (RygelMediaExportMediaCache* self);
@@ -117,7 +115,7 @@ our_g_value_array_new (void)
return array;
}
-#define our_g_array_index(a, i) (g_array_index ((a), GValue, (i)))
+#define our_g_value_array_index(a, i) (g_array_index ((a), GValue, (i)))
static void
our_g_value_clear (GValue *value) {
@@ -128,3776 +126,2900 @@ our_g_value_clear (GValue *value) {
}
}
-GType rygel_media_export_object_type_get_type (void) {
- static volatile gsize rygel_media_export_object_type_type_id__volatile = 0;
- if (g_once_init_enter (&rygel_media_export_object_type_type_id__volatile)) {
- static const GEnumValue values[] = {{RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER, "RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER", "container"}, {RYGEL_MEDIA_EXPORT_OBJECT_TYPE_ITEM, "RYGEL_MEDIA_EXPORT_OBJECT_TYPE_ITEM", "item"}, {0, NULL, NULL}};
- GType rygel_media_export_object_type_type_id;
- rygel_media_export_object_type_type_id = g_enum_register_static ("RygelMediaExportObjectType", values);
- g_once_init_leave (&rygel_media_export_object_type_type_id__volatile, rygel_media_export_object_type_type_id);
- }
- return rygel_media_export_object_type_type_id__volatile;
-}
+RygelMediaExportExistsCacheEntry *
+rygel_media_export_exists_cache_entry_dup (const RygelMediaExportExistsCacheEntry* self) {
+ RygelMediaExportExistsCacheEntry *dup;
+ dup = g_new0 (RygelMediaExportExistsCacheEntry, 1);
+ memcpy (dup, self, sizeof (RygelMediaExportExistsCacheEntry));
+ return dup;
+}
-RygelMediaExportExistsCacheEntry* rygel_media_export_exists_cache_entry_dup (const RygelMediaExportExistsCacheEntry* self) {
- RygelMediaExportExistsCacheEntry* dup;
- dup = g_new0 (RygelMediaExportExistsCacheEntry, 1);
- memcpy (dup, self, sizeof (RygelMediaExportExistsCacheEntry));
- return dup;
+void
+rygel_media_export_exists_cache_entry_free (RygelMediaExportExistsCacheEntry *self) {
+ g_free (self);
}
+GType
+rygel_media_export_exists_cache_entry_get_type (void) {
+ static volatile gsize rygel_media_export_exists_cache_entry_type_id__volatile = 0;
+
+ if (g_once_init_enter (&rygel_media_export_exists_cache_entry_type_id__volatile)) {
+ GType rygel_media_export_exists_cache_entry_type_id = g_boxed_type_register_static ("RygelMediaExportExistsCacheEntry",
+ (GBoxedCopyFunc) rygel_media_export_exists_cache_entry_dup,
+ (GBoxedFreeFunc) rygel_media_export_exists_cache_entry_free);
+ g_once_init_leave (&rygel_media_export_exists_cache_entry_type_id__volatile, rygel_media_export_exists_cache_entry_type_id);
+ }
-void rygel_media_export_exists_cache_entry_free (RygelMediaExportExistsCacheEntry* self) {
- g_free (self);
+ return rygel_media_export_exists_cache_entry_type_id__volatile;
}
+RygelMediaExportMediaCache*
+rygel_media_export_media_cache_new (GError **error) {
+ RygelMediaExportMediaCache *self;
+ RygelMediaExportMediaCachePrivate *priv;
+ GError *inner_error;
+
+ self = RYGEL_MEDIA_EXPORT_MEDIA_CACHE (g_object_new (RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE, NULL));
+ priv = self->priv;
+
+ priv->sql = rygel_media_export_sql_factory_new ();
+ inner_error = NULL;
+ rygel_media_export_media_cache_open_db (self, "media-export-gst-0-10", &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (self);
+ return NULL;
+ }
+ priv->factory = rygel_media_export_object_factory_new ();
+ g_object_unref (self->priv->factory);
+ rygel_media_export_media_cache_get_exists_cache (self, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (self);
+ return NULL;
+ }
-GType rygel_media_export_exists_cache_entry_get_type (void) {
- static volatile gsize rygel_media_export_exists_cache_entry_type_id__volatile = 0;
- if (g_once_init_enter (&rygel_media_export_exists_cache_entry_type_id__volatile)) {
- GType rygel_media_export_exists_cache_entry_type_id;
- rygel_media_export_exists_cache_entry_type_id = g_boxed_type_register_static ("RygelMediaExportExistsCacheEntry", (GBoxedCopyFunc) rygel_media_export_exists_cache_entry_dup, (GBoxedFreeFunc) rygel_media_export_exists_cache_entry_free);
- g_once_init_leave (&rygel_media_export_exists_cache_entry_type_id__volatile, rygel_media_export_exists_cache_entry_type_id);
- }
- return rygel_media_export_exists_cache_entry_type_id__volatile;
+ return self;
}
+gchar *
+rygel_media_export_media_cache_get_id (GFile *file) {
+ gchar* result = NULL;
+ gchar* uri;
-static RygelMediaExportMediaCache* rygel_media_export_media_cache_construct (GType object_type, GError** error) {
- RygelMediaExportMediaCache * self = NULL;
- RygelMediaExportSQLFactory* _tmp0_;
- RygelMediaExportObjectFactory* _tmp1_;
- GError * _inner_error_ = NULL;
- self = (RygelMediaExportMediaCache*) g_object_new (object_type, NULL);
- _tmp0_ = rygel_media_export_sql_factory_new ();
- self->priv->sql = _tmp0_;
- rygel_media_export_media_cache_open_db (self, "media-export", &_inner_error_);
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (self);
- return NULL;
- }
- _tmp1_ = rygel_media_export_object_factory_new ();
- g_object_unref (self->priv->factory);
- self->priv->factory = _tmp1_;
- rygel_media_export_media_cache_get_exists_cache (self, &_inner_error_);
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (self);
- return NULL;
- }
- return self;
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+
+ uri = g_file_get_uri (file);
+ result = g_compute_checksum_for_string (G_CHECKSUM_MD5, uri, -1);
+ g_free (uri);
+ return result;
}
+RygelMediaExportMediaCache *
+rygel_media_export_media_cache_get_default (GError **error) {
+ if (!rygel_media_export_media_cache_instance) {
+ GError *inner_error = NULL;
+ RygelMediaExportMediaCache* cache = rygel_media_export_media_cache_new (&inner_error);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ rygel_media_export_media_cache_instance = cache;
+ }
-RygelMediaExportMediaCache*
-rygel_media_export_media_cache_new (GError** error) {
- return rygel_media_export_media_cache_construct (RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE, error);
+ return g_object_ref (rygel_media_export_media_cache_instance);
}
+static void _vala_GValue_array_free (GValue* array, gint array_length) {
+ if (array != NULL) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ g_value_unset (&array[i]);
+ }
+ }
+ g_free (array);
+}
-gchar* rygel_media_export_media_cache_get_id (GFile* file) {
- gchar* result = NULL;
- GFile* _tmp0_;
- gchar* _tmp1_ = NULL;
- gchar* _tmp2_;
- gchar* _tmp3_ = NULL;
- gchar* _tmp4_;
- g_return_val_if_fail (file != NULL, NULL);
- _tmp0_ = file;
- _tmp1_ = g_file_get_uri (_tmp0_);
- _tmp2_ = _tmp1_;
- _tmp3_ = g_compute_checksum_for_string (G_CHECKSUM_MD5, _tmp2_, (gsize) (-1));
- _tmp4_ = _tmp3_;
- g_free (_tmp2_);
- result = _tmp4_;
- return result;
+void
+rygel_media_export_media_cache_remove_by_id (RygelMediaExportMediaCache *self,
+ const gchar *id,
+ GError **error) {
+ GValue value = G_VALUE_INIT;
+ RygelMediaExportMediaCachePrivate *priv;
+ GError *inner_error;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (id != NULL);
+
+ priv = self->priv;
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, id);
+
+ inner_error = NULL;
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql,
+ RYGEL_MEDIA_EXPORT_SQL_STRING_DELETE),
+ &value,
+ 1,
+ &inner_error);
+ g_value_unset (&value);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ }
}
+void
+rygel_media_export_media_cache_remove_object (RygelMediaExportMediaCache *self,
+ RygelMediaObject *object,
+ GError **error) {
+ GError *inner_error;
-RygelMediaExportMediaCache* rygel_media_export_media_cache_get_default (GError** error) {
- RygelMediaExportMediaCache* result = NULL;
- RygelMediaExportMediaCache* _tmp0_;
- RygelMediaExportMediaCache* _tmp3_;
- RygelMediaExportMediaCache* _tmp4_;
- GError * _inner_error_ = NULL;
- _tmp0_ = rygel_media_export_media_cache_instance;
- if (_tmp0_ == NULL) {
- RygelMediaExportMediaCache* _tmp1_;
- RygelMediaExportMediaCache* _tmp2_;
- _tmp1_ = rygel_media_export_media_cache_new (&_inner_error_);
- _tmp2_ = _tmp1_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- }
- g_object_unref (rygel_media_export_media_cache_instance);
- rygel_media_export_media_cache_instance = _tmp2_;
- }
- _tmp3_ = rygel_media_export_media_cache_instance;
- _tmp4_ = g_object_ref (_tmp3_);
- result = _tmp4_;
- return result;
-}
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (RYGEL_IS_MEDIA_OBJECT (object));
+ inner_error = NULL;
+ rygel_media_export_media_cache_remove_by_id (self, rygel_media_object_get_id (object), &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ }
+}
-static void _vala_GValue_array_free (GValue* array, gint array_length) {
- if (array != NULL) {
- int i;
- for (i = 0; i < array_length; i = i + 1) {
- g_value_unset (&array[i]);
- }
- }
- g_free (array);
+void
+rygel_media_export_media_cache_save_container (RygelMediaExportMediaCache *self,
+ RygelMediaContainer *container,
+ GError **error) {
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (RYGEL_IS_MEDIA_CONTAINER (container));
+
+ priv = self->priv;
+ inner_error = NULL;
+ rygel_media_export_database_begin (priv->db, &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+ rygel_media_export_media_cache_create_object (self, RYGEL_MEDIA_OBJECT (container), &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+ rygel_media_export_database_commit (priv->db, &inner_error);
+ out:
+ if (inner_error) {
+ rygel_media_export_database_rollback (priv->db);
+ g_propagate_error (error, inner_error);
+ }
}
+void
+rygel_media_export_media_cache_save_item (RygelMediaExportMediaCache *self,
+ RygelMediaItem *item,
+ GError **error) {
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (RYGEL_IS_MEDIA_ITEM (item));
+
+ priv = self->priv;
+ inner_error = NULL;
+ rygel_media_export_database_begin (priv->db, &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+ rygel_media_export_media_cache_save_metadata (self, item, &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+ rygel_media_export_media_cache_create_object (self, RYGEL_MEDIA_OBJECT (item), &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+ rygel_media_export_database_commit (priv->db, &inner_error);
+ out:
+ if (inner_error) {
+ g_warning (_("Failed to add item with ID %s: %s"),
+ rygel_media_object_get_id (RYGEL_MEDIA_OBJECT (item)),
+ inner_error->message);
+ rygel_media_export_database_rollback (priv->db);
+ g_propagate_error (error, inner_error);
+ }
+}
-void rygel_media_export_media_cache_remove_by_id (RygelMediaExportMediaCache* self, const gchar* id, GError** error) {
- const gchar* _tmp0_;
- GValue _tmp1_ = {0};
- GValue* _tmp2_ = NULL;
- GValue* values;
- gint values_length1;
- RygelMediaExportDatabase* _tmp3_;
- RygelMediaExportSQLFactory* _tmp4_;
- const gchar* _tmp5_ = NULL;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (id != NULL);
- _tmp0_ = id;
- g_value_init (&_tmp1_, G_TYPE_STRING);
- g_value_set_string (&_tmp1_, _tmp0_);
- _tmp2_ = g_new0 (GValue, 1);
- _tmp2_[0] = _tmp1_;
- values = _tmp2_;
- values_length1 = 1;
- _tmp3_ = self->priv->db;
- _tmp4_ = self->priv->sql;
- _tmp5_ = rygel_media_export_sql_factory_make (_tmp4_, RYGEL_MEDIA_EXPORT_SQL_STRING_DELETE);
- rygel_media_export_database_exec (_tmp3_, _tmp5_, values, values_length1, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return;
- } else {
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- }
- values = (_vala_GValue_array_free (values, values_length1), NULL);
+RygelMediaObject *
+rygel_media_export_media_cache_get_object (RygelMediaExportMediaCache *self,
+ const gchar *object_id,
+ GError **error) {
+ RygelMediaObject *parent;
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ GValue value = G_VALUE_INIT;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (object_id != NULL, NULL);
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, object_id);
+ inner_error = NULL;
+ cursor = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT, &value, 1, &inner_error);
+ g_value_unset (&value);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ parent = NULL;
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt* statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+ RygelMediaContainer *parent_container;
+ RygelMediaObject *object;
+
+ if (inner_error) {
+ g_object_unref (cursor);
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ if (parent) {
+ parent_container = RYGEL_MEDIA_CONTAINER (parent);
+ } else {
+ parent_container = NULL;
+ }
+ object = rygel_media_export_media_cache_get_object_from_statement (self, parent_container, statement);
+ rygel_media_object_set_parent_ref (object, parent_container);
+ if (parent) {
+ g_object_unref (parent);
+ }
+ object = parent;
+ }
+ g_object_unref (cursor);
+ return parent;
}
+RygelMediaContainer *
+rygel_media_export_media_cache_get_container (RygelMediaExportMediaCache *self,
+ const gchar *container_id,
+ GError **error) {
+ RygelMediaObject *object;
+ GError *inner_error;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (container_id != NULL, NULL);
+
+ inner_error = NULL;
+ object = rygel_media_export_media_cache_get_object (self, container_id, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ if (object) {
+ if (!RYGEL_IS_MEDIA_CONTAINER (object)) {
+ g_set_error (error,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_INVALID_TYPE,
+ "Object with id %s is not a MediaContainer",
+ container_id);
+ g_object_unref (object);
+ return NULL;
+ }
+ return RYGEL_MEDIA_CONTAINER (object);
+ }
-void rygel_media_export_media_cache_remove_object (RygelMediaExportMediaCache* self, RygelMediaObject* object, GError** error) {
- RygelMediaObject* _tmp0_;
- const gchar* _tmp1_;
- const gchar* _tmp2_;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (object != NULL);
- _tmp0_ = object;
- _tmp1_ = rygel_media_object_get_id (_tmp0_);
- _tmp2_ = _tmp1_;
- rygel_media_export_media_cache_remove_by_id (self, _tmp2_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if ((_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) || (_inner_error_->domain == RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR)) {
- g_propagate_error (error, _inner_error_);
- return;
- } else {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- }
+ g_object_unref (object);
+ return NULL;
}
-void rygel_media_export_media_cache_save_container (RygelMediaExportMediaCache* self, RygelMediaContainer* container, GError** error) {
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (container != NULL);
- {
- RygelMediaExportDatabase* _tmp0_;
- RygelMediaContainer* _tmp1_;
- RygelMediaExportDatabase* _tmp2_;
- _tmp0_ = self->priv->db;
- rygel_media_export_database_begin (_tmp0_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch5_rygel_media_export_database_error;
- }
- g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- _tmp1_ = container;
- rygel_media_export_media_cache_create_object (self, (RygelMediaObject*) _tmp1_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch5_rygel_media_export_database_error;
- }
- goto __finally5;
- }
- _tmp2_ = self->priv->db;
- rygel_media_export_database_commit (_tmp2_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch5_rygel_media_export_database_error;
- }
- g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- }
- goto __finally5;
- __catch5_rygel_media_export_database_error:
- {
- GError* _error_ = NULL;
- RygelMediaExportDatabase* _tmp3_;
- GError* _tmp4_;
- GError* _tmp5_;
- _error_ = _inner_error_;
- _inner_error_ = NULL;
- _tmp3_ = self->priv->db;
- rygel_media_export_database_rollback (_tmp3_);
- _tmp4_ = _error_;
- _tmp5_ = g_error_copy (_tmp4_);
- _inner_error_ = _tmp5_;
- g_error_free (_error_);
- goto __finally5;
- }
- __finally5:
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return;
- }
+gint
+rygel_media_export_media_cache_get_child_count (RygelMediaExportMediaCache *self,
+ const gchar *container_id,
+ GError **error) {
+ GValue value = G_VALUE_INIT;
+ GError *inner_error;
+ gint count;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), 0);
+ g_return_val_if_fail (container_id != NULL, 0);
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, container_id);
+ inner_error = NULL;
+ count = rygel_media_export_media_cache_query_value (self, RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_COUNT, &value, 1, &inner_error);
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return 0;
+ }
+ return count;
}
+gboolean
+rygel_media_export_media_cache_exists (RygelMediaExportMediaCache *self,
+ GFile *file,
+ gint64 *timestamp,
+ gint64 *size,
+ GError **error) {
+ gboolean result;
+ gchar *uri;
+ RygelMediaExportDatabaseCursor *cursor;
+ sqlite3_stmt *statement;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+ GeeAbstractMap *abstract_exists_cache;
+ GValue value = G_VALUE_INIT;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), FALSE);
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+
+ priv = self->priv;
+ uri = g_file_get_uri (file);
+ abstract_exists_cache = GEE_ABSTRACT_MAP (priv->exists_cache);
+ if (gee_abstract_map_has_key (abstract_exists_cache, uri)) {
+ RygelMediaExportExistsCacheEntry *entry = (RygelMediaExportExistsCacheEntry *) gee_abstract_map_get (abstract_exists_cache, uri);
+
+ gee_abstract_map_unset (abstract_exists_cache, uri, NULL);
+ rygel_media_export_exists_cache_entry_free (entry);
+ g_free (uri);
+ if (timestamp) {
+ *timestamp = entry->mtime;
+ }
+ if (size) {
+ *size = entry->size;
+ }
+ return TRUE;
+ }
-void rygel_media_export_media_cache_save_item (RygelMediaExportMediaCache* self, RygelMediaItem* item, GError** error) {
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (item != NULL);
- {
- RygelMediaExportDatabase* _tmp0_;
- RygelMediaItem* _tmp1_;
- RygelMediaItem* _tmp2_;
- RygelMediaExportDatabase* _tmp3_;
- _tmp0_ = self->priv->db;
- rygel_media_export_database_begin (_tmp0_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch6_rygel_media_export_database_error;
- }
- g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- _tmp1_ = item;
- rygel_media_export_media_cache_save_metadata (self, _tmp1_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch6_rygel_media_export_database_error;
- }
- goto __finally6;
- }
- _tmp2_ = item;
- rygel_media_export_media_cache_create_object (self, (RygelMediaObject*) _tmp2_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch6_rygel_media_export_database_error;
- }
- goto __finally6;
- }
- _tmp3_ = self->priv->db;
- rygel_media_export_database_commit (_tmp3_, &_inner_error_);
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch6_rygel_media_export_database_error;
- }
- g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- }
- goto __finally6;
- __catch6_rygel_media_export_database_error:
- {
- GError* _error_ = NULL;
- const gchar* _tmp4_ = NULL;
- RygelMediaItem* _tmp5_;
- const gchar* _tmp6_;
- const gchar* _tmp7_;
- GError* _tmp8_;
- const gchar* _tmp9_;
- RygelMediaExportDatabase* _tmp10_;
- GError* _tmp11_;
- GError* _tmp12_;
- _error_ = _inner_error_;
- _inner_error_ = NULL;
- _tmp4_ = _ ("Failed to add item with ID %s: %s");
- _tmp5_ = item;
- _tmp6_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp5_);
- _tmp7_ = _tmp6_;
- _tmp8_ = _error_;
- _tmp9_ = _tmp8_->message;
- g_warning (_tmp4_, _tmp7_, _tmp9_);
- _tmp10_ = self->priv->db;
- rygel_media_export_database_rollback (_tmp10_);
- _tmp11_ = _error_;
- _tmp12_ = g_error_copy (_tmp11_);
- _inner_error_ = _tmp12_;
- g_error_free (_error_);
- goto __finally6;
- }
- __finally6:
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return;
- }
-}
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_take_string (&value, uri);
+ inner_error = NULL;
+ cursor = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS, &value, 1, &inner_error);
+ g_value_unset (&value);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return FALSE;
+ }
+ statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (cursor);
+ return FALSE;
+ }
+ result = (sqlite3_column_int (statement, 0) == 1);
+ if (timestamp) {
+ *timestamp = sqlite3_column_int64 (statement , 1);
+ }
+ if (size) {
+ *size = sqlite3_column_int64 (statement, 2);
+ }
+ g_object_unref (cursor);
-RygelMediaObject* rygel_media_export_media_cache_get_object (RygelMediaExportMediaCache* self, const gchar* object_id, GError** error) {
- RygelMediaObject* result = NULL;
- const gchar* _tmp0_;
- GValue _tmp1_ = {0};
- GValue* _tmp2_ = NULL;
- GValue* values;
- gint values_length1;
- RygelMediaObject* parent;
- GValue* _tmp3_;
- gint _tmp3__length1;
- RygelMediaExportDatabaseCursor* _tmp4_ = NULL;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (object_id != NULL, NULL);
- _tmp0_ = object_id;
- g_value_init (&_tmp1_, G_TYPE_STRING);
- g_value_set_string (&_tmp1_, _tmp0_);
- _tmp2_ = g_new0 (GValue, 1);
- _tmp2_[0] = _tmp1_;
- values = _tmp2_;
- values_length1 = 1;
- parent = NULL;
- _tmp3_ = values;
- _tmp3__length1 = values_length1;
- _tmp4_ = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT, _tmp3_, _tmp3__length1, &_inner_error_);
- cursor = _tmp4_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (parent);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return NULL;
- } else {
- g_object_unref (parent);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- {
- while (TRUE) {
- gboolean _tmp8_ = FALSE;
- sqlite3_stmt* _tmp10_ = NULL;
- sqlite3_stmt* statement;
- RygelMediaObject* _tmp11_;
- RygelMediaContainer* _tmp12_;
- RygelMediaContainer* parent_container;
- RygelMediaContainer* _tmp13_;
- sqlite3_stmt* _tmp14_;
- RygelMediaObject* _tmp15_ = NULL;
- RygelMediaObject* object;
- RygelMediaObject* _tmp16_;
- RygelMediaContainer* _tmp17_;
- RygelMediaObject* _tmp18_;
- RygelMediaObject* _tmp19_;
- _tmp8_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp8_) {
- break;
- }
- _tmp10_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp10_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- g_object_unref (parent);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return NULL;
- } else {
- g_object_unref (cursor);
- g_object_unref (parent);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- _tmp11_ = parent;
- _tmp12_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, RYGEL_TYPE_MEDIA_CONTAINER) ? ((RygelMediaContainer*) _tmp11_) : NULL);
- parent_container = _tmp12_;
- _tmp13_ = parent_container;
- _tmp14_ = statement;
- _tmp15_ = rygel_media_export_media_cache_get_object_from_statement (self, _tmp13_, _tmp14_);
- object = _tmp15_;
- _tmp16_ = object;
- _tmp17_ = parent_container;
- rygel_media_object_set_parent_ref (_tmp16_, _tmp17_);
- _tmp18_ = object;
- _tmp19_ = g_object_ref (_tmp18_);
- g_object_unref (parent);
- parent = _tmp19_;
- g_object_unref (object);
- g_object_unref (parent_container);
- }
- }
- result = parent;
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return result;
+ return result;
}
+RygelMediaObjects *
+rygel_media_export_media_cache_get_children (RygelMediaExportMediaCache *self,
+ RygelMediaContainer *container,
+ const gchar *sort_criteria,
+ glong offset,
+ glong max_count,
+ GError **error) {
+ GeeAbstractCollection *abstract_children;
+ GValue values [] = {G_VALUE_INIT, G_VALUE_INIT, G_VALUE_INIT};
+ guint iter;
+ RygelMediaObjects *children;
+ gchar *sql;
+ gchar *sort_order;
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (RYGEL_IS_MEDIA_CONTAINER (container), NULL);
+ g_return_val_if_fail (sort_criteria != NULL, NULL);
+
+ g_value_init (&(values[0]), G_TYPE_STRING);
+ g_value_set_string (&(values[0]), rygel_media_object_get_id (RYGEL_MEDIA_OBJECT (container)));
+ g_value_init (&(values[1]), G_TYPE_LONG);
+ g_value_set_long (&(values[1]), offset);
+ g_value_init (&(values[2]), G_TYPE_LONG);
+ g_value_set_long (&(values[2]), max_count);
+
+ sort_order = rygel_media_export_media_cache_translate_sort_criteria (self, sort_criteria);
+ priv = self->priv;
+ sql = g_strdup_printf (rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_CHILDREN),
+ sort_order);
+ g_free (sort_order);
+ inner_error = NULL;
+ cursor = rygel_media_export_database_exec_cursor (priv->db, sql, values, G_N_ELEMENTS (values), &inner_error);
+ g_free (sql);
+
+ for (iter = 0; iter < G_N_ELEMENTS (values); ++iter) {
+ g_value_unset (&(values[iter]));
+ }
-RygelMediaContainer* rygel_media_export_media_cache_get_container (RygelMediaExportMediaCache* self, const gchar* container_id, GError** error) {
- RygelMediaContainer* result = NULL;
- const gchar* _tmp0_;
- RygelMediaObject* _tmp1_ = NULL;
- RygelMediaObject* object;
- gboolean _tmp2_ = FALSE;
- RygelMediaObject* _tmp3_;
- gboolean _tmp5_;
- RygelMediaObject* _tmp8_;
- RygelMediaContainer* _tmp9_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (container_id != NULL, NULL);
- _tmp0_ = container_id;
- _tmp1_ = rygel_media_export_media_cache_get_object (self, _tmp0_, &_inner_error_);
- object = _tmp1_;
- if (_inner_error_ != NULL) {
- if ((_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) || (_inner_error_->domain == RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR)) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- } else {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- _tmp3_ = object;
- if (_tmp3_ != NULL) {
- RygelMediaObject* _tmp4_;
- _tmp4_ = object;
- _tmp2_ = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, RYGEL_TYPE_MEDIA_CONTAINER);
- } else {
- _tmp2_ = FALSE;
- }
- _tmp5_ = _tmp2_;
- if (_tmp5_) {
- const gchar* _tmp6_;
- GError* _tmp7_;
- _tmp6_ = container_id;
- _tmp7_ = g_error_new (RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR, RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_INVALID_TYPE, "Object with id %s is " "not a MediaContainer", _tmp6_);
- _inner_error_ = _tmp7_;
- if ((_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) || (_inner_error_->domain == RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR)) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (object);
- return NULL;
- } else {
- g_object_unref (object);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- _tmp8_ = object;
- _tmp9_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, RYGEL_TYPE_MEDIA_CONTAINER) ? ((RygelMediaContainer*) _tmp8_) : NULL);
- result = _tmp9_;
- g_object_unref (object);
- return result;
-}
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ children = rygel_media_objects_new ();
+ abstract_children = GEE_ABSTRACT_COLLECTION (children);
+ {
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt *statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+ RygelMediaObject *object;
-gint rygel_media_export_media_cache_get_child_count (RygelMediaExportMediaCache* self, const gchar* container_id, GError** error) {
- gint result = 0;
- const gchar* _tmp0_;
- GValue _tmp1_ = {0};
- GValue* _tmp2_ = NULL;
- GValue* values;
- gint values_length1;
- gint _tmp3_ = 0;
- gint _tmp4_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, 0);
- g_return_val_if_fail (container_id != NULL, 0);
- _tmp0_ = container_id;
- g_value_init (&_tmp1_, G_TYPE_STRING);
- g_value_set_string (&_tmp1_, _tmp0_);
- _tmp2_ = g_new0 (GValue, 1);
- _tmp2_[0] = _tmp1_;
- values = _tmp2_;
- values_length1 = 1;
- _tmp3_ = rygel_media_export_media_cache_query_value (self, RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_COUNT, values, values_length1, &_inner_error_);
- _tmp4_ = _tmp3_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return 0;
- } else {
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return 0;
- }
- }
- result = _tmp4_;
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return result;
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (cursor);
+ g_object_unref (children);
+ return NULL;
+ }
+ object = rygel_media_export_media_cache_get_object_from_statement (self, container, statement);
+ gee_abstract_collection_add (abstract_children, object);
+ rygel_media_object_set_parent_ref (object, container);
+ g_object_unref (object);
+ }
+ }
+ g_object_unref (cursor);
+ return children;
}
+RygelMediaObjects *
+rygel_media_export_media_cache_get_objects_by_search_expression (RygelMediaExportMediaCache *self,
+ RygelSearchExpression *expression,
+ const gchar *container_id,
+ const gchar *sort_criteria,
+ guint offset,
+ guint max_count,
+ guint *total_matches,
+ GError **error) {
+ guint matches;
+ RygelMediaObjects *objects;
+ GArray *args;
+ gchar *filter;
+ guint max_objects;
+ GError *inner_error;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (sort_criteria != NULL, NULL);
+
+ args = our_g_value_array_new ();
+ inner_error = NULL;
+ filter = rygel_media_export_media_cache_translate_search_expression (self, expression, args, "WHERE", &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_array_unref (args);
+ return NULL;
+ }
+ if (expression) {
+ gchar *ex_str = rygel_search_expression_to_string (expression);
-gboolean rygel_media_export_media_cache_exists (RygelMediaExportMediaCache* self, GFile* file, gint64* timestamp, gint64* size, GError** error) {
- gint64 _vala_timestamp = 0LL;
- gint64 _vala_size = 0LL;
- gboolean result = FALSE;
- GFile* _tmp0_;
- gchar* _tmp1_ = NULL;
- gchar* uri;
- const gchar* _tmp2_;
- GValue _tmp3_ = {0};
- GValue* _tmp4_ = NULL;
- GValue* values;
- gint values_length1;
- GeeHashMap* _tmp5_;
- const gchar* _tmp6_;
- gboolean _tmp7_ = FALSE;
- GValue* _tmp17_;
- gint _tmp17__length1;
- RygelMediaExportDatabaseCursor* _tmp18_ = NULL;
- RygelMediaExportDatabaseCursor* cursor;
- RygelMediaExportDatabaseCursor* _tmp19_;
- sqlite3_stmt* _tmp20_ = NULL;
- sqlite3_stmt* statement;
- sqlite3_stmt* _tmp21_;
- gint64 _tmp22_ = 0LL;
- sqlite3_stmt* _tmp23_;
- gint64 _tmp24_ = 0LL;
- sqlite3_stmt* _tmp25_;
- gint _tmp26_ = 0;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, FALSE);
- g_return_val_if_fail (file != NULL, FALSE);
- _tmp0_ = file;
- _tmp1_ = g_file_get_uri (_tmp0_);
- uri = _tmp1_;
- _tmp2_ = uri;
- g_value_init (&_tmp3_, G_TYPE_STRING);
- g_value_set_string (&_tmp3_, _tmp2_);
- _tmp4_ = g_new0 (GValue, 1);
- _tmp4_[0] = _tmp3_;
- values = _tmp4_;
- values_length1 = 1;
- _tmp5_ = self->priv->exists_cache;
- _tmp6_ = uri;
- _tmp7_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp5_, _tmp6_);
- if (_tmp7_) {
- GeeHashMap* _tmp8_;
- const gchar* _tmp9_;
- gpointer _tmp10_ = NULL;
- RygelMediaExportExistsCacheEntry* entry;
- GeeHashMap* _tmp11_;
- const gchar* _tmp12_;
- RygelMediaExportExistsCacheEntry* _tmp13_;
- gint64 _tmp14_;
- RygelMediaExportExistsCacheEntry* _tmp15_;
- gint64 _tmp16_;
- _tmp8_ = self->priv->exists_cache;
- _tmp9_ = uri;
- _tmp10_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp8_, _tmp9_);
- entry = (RygelMediaExportExistsCacheEntry*) _tmp10_;
- _tmp11_ = self->priv->exists_cache;
- _tmp12_ = uri;
- gee_abstract_map_unset ((GeeAbstractMap*) _tmp11_, _tmp12_, NULL);
- _tmp13_ = entry;
- _tmp14_ = (*_tmp13_).mtime;
- _vala_timestamp = _tmp14_;
- _tmp15_ = entry;
- _tmp16_ = (*_tmp15_).size;
- _vala_size = _tmp16_;
- result = TRUE;
- _rygel_media_export_exists_cache_entry_free0 (entry);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (uri);
- if (timestamp) {
- *timestamp = _vala_timestamp;
- }
- if (size) {
- *size = _vala_size;
- }
- return result;
- }
- _tmp17_ = values;
- _tmp17__length1 = values_length1;
- _tmp18_ = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS, _tmp17_, _tmp17__length1, &_inner_error_);
- cursor = _tmp18_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (uri);
- return FALSE;
- } else {
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (uri);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return FALSE;
- }
- }
- _tmp19_ = cursor;
- _tmp20_ = rygel_media_export_database_cursor_next (_tmp19_, &_inner_error_);
- statement = _tmp20_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (uri);
- return FALSE;
- } else {
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (uri);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return FALSE;
- }
- }
- _tmp21_ = statement;
- _tmp22_ = sqlite3_column_int64 (_tmp21_, 1);
- _vala_timestamp = _tmp22_;
- _tmp23_ = statement;
- _tmp24_ = sqlite3_column_int64 (_tmp23_, 2);
- _vala_size = _tmp24_;
- _tmp25_ = statement;
- _tmp26_ = sqlite3_column_int (_tmp25_, 0);
- result = _tmp26_ == 1;
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (uri);
- if (timestamp) {
- *timestamp = _vala_timestamp;
- }
- if (size) {
- *size = _vala_size;
- }
- return result;
+ g_debug ("Original search: %s", ex_str);
+ g_free (ex_str);
+ g_debug ("Parsed search expression: %s", filter);
+ }
+ max_objects = rygel_media_export_media_cache_modify_limit (max_count);
+ matches = (guint) rygel_media_export_media_cache_get_object_count_by_filter (self, filter, args, container_id, &inner_error);
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ g_free (filter);
+ g_array_unref (args);
+ return NULL;
+ }
+ objects = rygel_media_export_media_cache_get_objects_by_filter (self,
+ filter,
+ args,
+ container_id,
+ sort_criteria,
+ (glong) offset,
+ (glong) max_objects,
+ &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_free (filter);
+ g_array_unref (args);
+ return NULL;
+ }
+ g_free (filter);
+ g_array_unref (args);
+ if (total_matches) {
+ *total_matches = matches;
+ }
+ return objects;
}
-
-RygelMediaObjects* rygel_media_export_media_cache_get_children (RygelMediaExportMediaCache* self, RygelMediaContainer* container, const gchar* sort_criteria, glong offset, glong max_count, GError** error) {
- RygelMediaObjects* result = NULL;
- RygelMediaObjects* _tmp0_;
- RygelMediaObjects* children;
- RygelMediaContainer* _tmp1_;
- const gchar* _tmp2_;
- const gchar* _tmp3_;
- GValue _tmp4_ = {0};
- glong _tmp5_;
- GValue _tmp6_ = {0};
- glong _tmp7_;
- GValue _tmp8_ = {0};
- GValue* _tmp9_ = NULL;
- GValue* values;
- gint values_length1;
- RygelMediaExportSQLFactory* _tmp10_;
- const gchar* _tmp11_ = NULL;
- gchar* _tmp12_;
- gchar* sql;
- const gchar* _tmp13_;
- gchar* _tmp14_ = NULL;
- gchar* sort_order;
- RygelMediaExportDatabase* _tmp15_;
- const gchar* _tmp16_;
- const gchar* _tmp17_;
- gchar* _tmp18_ = NULL;
- gchar* _tmp19_;
- GValue* _tmp20_;
- gint _tmp20__length1;
- RygelMediaExportDatabaseCursor* _tmp21_ = NULL;
- RygelMediaExportDatabaseCursor* _tmp22_;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (container != NULL, NULL);
- g_return_val_if_fail (sort_criteria != NULL, NULL);
- _tmp0_ = rygel_media_objects_new ();
- children = _tmp0_;
- _tmp1_ = container;
- _tmp2_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp1_);
- _tmp3_ = _tmp2_;
- g_value_init (&_tmp4_, G_TYPE_STRING);
- g_value_set_string (&_tmp4_, _tmp3_);
- _tmp5_ = offset;
- g_value_init (&_tmp6_, G_TYPE_LONG);
- g_value_set_long (&_tmp6_, _tmp5_);
- _tmp7_ = max_count;
- g_value_init (&_tmp8_, G_TYPE_LONG);
- g_value_set_long (&_tmp8_, _tmp7_);
- _tmp9_ = g_new0 (GValue, 3);
- _tmp9_[0] = _tmp4_;
- _tmp9_[1] = _tmp6_;
- _tmp9_[2] = _tmp8_;
- values = _tmp9_;
- values_length1 = 3;
- _tmp10_ = self->priv->sql;
- _tmp11_ = rygel_media_export_sql_factory_make (_tmp10_, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_CHILDREN);
- _tmp12_ = g_strdup (_tmp11_);
- sql = _tmp12_;
- _tmp13_ = sort_criteria;
- _tmp14_ = rygel_media_export_media_cache_translate_sort_criteria (self, _tmp13_);
- sort_order = _tmp14_;
- _tmp15_ = self->priv->db;
- _tmp16_ = sql;
- _tmp17_ = sort_order;
- _tmp18_ = g_strdup_printf (_tmp16_, _tmp17_);
- _tmp19_ = _tmp18_;
- _tmp20_ = values;
- _tmp20__length1 = values_length1;
- _tmp21_ = rygel_media_export_database_exec_cursor (_tmp15_, _tmp19_, _tmp20_, _tmp20__length1, &_inner_error_);
- _tmp22_ = _tmp21_;
- g_free (_tmp19_);
- cursor = _tmp22_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (sort_order);
- g_free (sql);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_object_unref (children);
- return NULL;
- }
- {
- while (TRUE) {
- gboolean _tmp26_ = FALSE;
- sqlite3_stmt* _tmp28_ = NULL;
- sqlite3_stmt* statement;
- RygelMediaObjects* _tmp29_;
- RygelMediaContainer* _tmp30_;
- sqlite3_stmt* _tmp31_;
- RygelMediaObject* _tmp32_ = NULL;
- RygelMediaObject* _tmp33_;
- RygelMediaObjects* _tmp34_;
- gpointer _tmp35_ = NULL;
- RygelMediaObject* _tmp36_;
- RygelMediaContainer* _tmp37_;
- _tmp26_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp26_) {
- break;
- }
- _tmp28_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp28_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- g_free (sort_order);
- g_free (sql);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_object_unref (children);
- return NULL;
- }
- _tmp29_ = children;
- _tmp30_ = container;
- _tmp31_ = statement;
- _tmp32_ = rygel_media_export_media_cache_get_object_from_statement (self, _tmp30_, _tmp31_);
- _tmp33_ = _tmp32_;
- gee_abstract_collection_add ((GeeAbstractCollection*) _tmp29_, _tmp33_);
- g_object_unref (_tmp33_);
- _tmp34_ = children;
- _tmp35_ = gee_list_last ((GeeList*) _tmp34_);
- _tmp36_ = (RygelMediaObject*) _tmp35_;
- _tmp37_ = container;
- rygel_media_object_set_parent_ref (_tmp36_, _tmp37_);
- g_object_unref (_tmp36_);
- }
- }
- result = children;
- g_object_unref (cursor);
- g_free (sort_order);
- g_free (sql);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return result;
+static void _vala_GValue_free (GValue* self) {
+ g_value_unset (self);
+ g_free (self);
}
+glong
+rygel_media_export_media_cache_get_object_count_by_search_expression (RygelMediaExportMediaCache *self,
+ RygelSearchExpression *expression,
+ const gchar *container_id,
+ GError **error) {
+ glong count;
+ GArray *args;
+ gchar *filter;
+ GError *inner_error;
+ guint iter;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), 0);
+
+ args = our_g_value_array_new ();
+ inner_error = NULL;
+ filter = rygel_media_export_media_cache_translate_search_expression (self, expression, args, "WHERE", &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_array_unref (args);
+ return 0;
+ }
+ if (expression) {
+ gchar* ex_str = rygel_search_expression_to_string (expression);
-RygelMediaObjects* rygel_media_export_media_cache_get_objects_by_search_expression (RygelMediaExportMediaCache* self, RygelSearchExpression* expression, const gchar* container_id, const gchar* sort_criteria, guint offset, guint max_count, guint* total_matches, GError** error) {
- guint _vala_total_matches = 0U;
- RygelMediaObjects* result = NULL;
- GArray *args;
- RygelSearchExpression* _tmp1_;
- gchar* _tmp3_ = NULL;
- gchar* filter;
- RygelSearchExpression* _tmp4_;
- guint _tmp9_;
- guint _tmp10_ = 0U;
- guint max_objects;
- const gchar* _tmp11_;
- const gchar* _tmp13_;
- glong _tmp14_ = 0L;
- glong _tmp15_;
- const gchar* _tmp16_;
- const gchar* _tmp18_;
- const gchar* _tmp19_;
- guint _tmp20_;
- guint _tmp21_;
- RygelMediaObjects* _tmp22_ = NULL;
- RygelMediaObjects* _tmp23_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (sort_criteria != NULL, NULL);
- args = our_g_value_array_new ();
- _tmp1_ = expression;
- _tmp3_ = rygel_media_export_media_cache_translate_search_expression (self, _tmp1_, args, "WHERE", &_inner_error_);
- filter = _tmp3_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_array_unref (args);
- return NULL;
- }
- _tmp4_ = expression;
- if (_tmp4_ != NULL) {
- RygelSearchExpression* _tmp5_;
- gchar* _tmp6_ = NULL;
- gchar* _tmp7_;
- const gchar* _tmp8_;
- _tmp5_ = expression;
- _tmp6_ = rygel_search_expression_to_string (_tmp5_);
- _tmp7_ = _tmp6_;
- g_debug ("rygel-media-export-media-cache.vala:218: Original search: %s", _tmp7_);
- g_free (_tmp7_);
- _tmp8_ = filter;
- g_debug ("rygel-media-export-media-cache.vala:219: Parsed search expression: %s", _tmp8_);
- }
- _tmp9_ = max_count;
- _tmp10_ = rygel_media_export_media_cache_modify_limit (self, _tmp9_);
- max_objects = _tmp10_;
- _tmp11_ = filter;
- _tmp13_ = container_id;
- _tmp14_ = rygel_media_export_media_cache_get_object_count_by_filter (self, _tmp11_, args, _tmp13_, &_inner_error_);
- _tmp15_ = _tmp14_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (filter);
- g_array_unref (args);
- return NULL;
- }
- _vala_total_matches = (guint) _tmp15_;
- _tmp16_ = filter;
- _tmp18_ = container_id;
- _tmp19_ = sort_criteria;
- _tmp20_ = offset;
- _tmp21_ = max_objects;
- _tmp22_ = rygel_media_export_media_cache_get_objects_by_filter (self, _tmp16_, args, _tmp18_, _tmp19_, (glong) _tmp20_, (glong) _tmp21_, &_inner_error_);
- _tmp23_ = _tmp22_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (filter);
- g_array_unref (args);
- return NULL;
- }
- result = _tmp23_;
- g_free (filter);
- g_array_unref (args);
- if (total_matches) {
- *total_matches = _vala_total_matches;
- }
- return result;
+ g_debug ("Original search: %s", ex_str);
+ g_free (ex_str);
+ g_debug ("Parsed search expression: %s", filter);
+ }
+ for (iter = 0; iter < args->len; ++iter) {
+ GValue *value = &our_g_value_array_index (args, iter);
+ gchar *to_free;
+ const gchar *contents;
+
+ if (G_VALUE_HOLDS (value, G_TYPE_STRING)) {
+ contents = g_value_get_string (value);
+ to_free = NULL;
+ } else {
+ to_free = g_strdup_value_contents (value);
+ contents = to_free;
+ }
+
+ g_debug ("Arg %d: %s", iter, contents);
+ g_free (to_free);
+ }
+ count = rygel_media_export_media_cache_get_object_count_by_filter (self, filter, args, container_id, &inner_error);
+ g_free (filter);
+ g_array_unref (args);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return 0;
+ }
+ return count;
}
-static GValue* _g_value_dup (GValue* self) {
- return g_boxed_copy (G_TYPE_VALUE, self);
-}
+glong
+rygel_media_export_media_cache_get_object_count_by_filter (RygelMediaExportMediaCache *self,
+ const gchar *filter,
+ GArray *args,
+ const gchar *container_id,
+ GError **error) {
+ glong count;
+ gchar *sql;
+ RygelMediaExportSQLString string_id;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), 0);
+ g_return_val_if_fail (filter != NULL, 0);
+ g_return_val_if_fail (args != NULL, 0);
-static gpointer __g_value_dup0 (gpointer self) {
- return self ? _g_value_dup (self) : NULL;
+ if (container_id) {
+ GValue v = G_VALUE_INIT;
+
+ g_value_init (&v, G_TYPE_STRING);
+ g_value_set_string (&v, container_id);
+ g_array_prepend_val (args, v);
+ }
+ g_debug ("Parameters to bind: %u", args->len);
+ if (container_id) {
+ string_id = RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER_WITH_ANCESTOR;
+ } else {
+ string_id = RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER;
+ }
+ priv = self->priv;
+ sql = g_strdup_printf (rygel_media_export_sql_factory_make (priv->sql, string_id), filter);
+ inner_error = NULL;
+ count = rygel_media_export_database_query_value (priv->db, sql, (GValue *) args->data, (gint) args->len, &inner_error);
+ g_free (sql);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return 0;
+ }
+ return count;
}
+RygelMediaObjects *
+rygel_media_export_media_cache_get_objects_by_filter (RygelMediaExportMediaCache *self,
+ const gchar *filter,
+ GArray *args,
+ const gchar *container_id,
+ const gchar *sort_criteria,
+ glong offset,
+ glong max_count,
+ GError **error) {
+ RygelMediaExportSQLString string_id;
+ RygelMediaObjects *children;
+ GValue v;
+ RygelMediaContainer *parent;
+ gchar *sql;
+ gchar *sort_order;
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ guint iter;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (filter != NULL, NULL);
+ g_return_val_if_fail (args != NULL, NULL);
+ g_return_val_if_fail (sort_criteria != NULL, NULL);
+
+ g_value_init (&v, G_TYPE_LONG);
+ g_value_set_long (&v, offset);
+ g_array_append_val (args, v);
+ our_g_value_clear (&v);
+ g_value_init (&v, G_TYPE_LONG);
+ g_value_set_long (&v, max_count);
+ g_array_append_val (args, v);
+ our_g_value_clear (&v);
+ parent = NULL;
+
+ g_debug ("Parameters to bind: %u", args->len);
+ for (iter = 0; iter < args->len; ++iter) {
+ GValue *value = &our_g_value_array_index (args, iter);
+ gchar *to_free;
+ const gchar *contents;
+
+ if (G_VALUE_HOLDS (value, G_TYPE_STRING)) {
+ contents = g_value_get_string (value);
+ to_free = NULL;
+ } else {
+ to_free = g_strdup_value_contents (value);
+ contents = to_free;
+ }
+
+ g_debug ("Arg %d: %s", iter, contents);
+ g_free (to_free);
+ }
-static void _vala_GValue_free (GValue* self) {
- g_value_unset (self);
- g_free (self);
-}
+ if (container_id) {
+ string_id = RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER_WITH_ANCESTOR;
+ } else {
+ string_id = RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER;
+ }
+ sort_order = rygel_media_export_media_cache_translate_sort_criteria (self, sort_criteria);
+ priv = self->priv;
+ sql = g_strdup_printf (rygel_media_export_sql_factory_make (priv->sql, string_id), filter, sort_order);
+ g_free (sort_order);
+ inner_error = NULL;
+ cursor = rygel_media_export_database_exec_cursor (priv->db, sql, (GValue *) args->data, (gint) args->len, &inner_error);
+ g_free (sql);
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ parent = NULL;
+ children = rygel_media_objects_new ();
+
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt* statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+ const gchar *parent_id;
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (cursor);
+ g_object_unref (children);
+ return NULL;
+ }
+
+ parent_id = (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_PARENT);
+ if (!parent || g_strcmp0 (parent_id, rygel_media_object_get_id (RYGEL_MEDIA_OBJECT (parent)))) {
+ parent = RYGEL_MEDIA_CONTAINER (rygel_media_export_null_container_new ());
+ rygel_media_object_set_id (RYGEL_MEDIA_OBJECT (parent), parent_id);
+ }
+ if (parent) {
+ RygelMediaObject *object = rygel_media_export_media_cache_get_object_from_statement (self, parent, statement);
+
+ gee_abstract_collection_add (GEE_ABSTRACT_COLLECTION (children), object);
+ rygel_media_object_set_parent_ref (object, parent);
+ g_object_unref (object);
+ } else {
+ g_warning ("Inconsistent database: item %s has no parent %s",
+ sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ID),
+ parent_id);
+ }
+ }
-glong rygel_media_export_media_cache_get_object_count_by_search_expression (RygelMediaExportMediaCache* self, RygelSearchExpression* expression, const gchar* container_id, GError** error) {
- glong result = 0L;
- GArray *args;
- RygelSearchExpression* _tmp1_;
- gchar* _tmp3_ = NULL;
- gchar* filter;
- RygelSearchExpression* _tmp4_;
- const gchar* _tmp29_;
- const gchar* _tmp31_;
- glong _tmp32_ = 0L;
- glong _tmp33_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, 0L);
- args = our_g_value_array_new ();
- _tmp1_ = expression;
- _tmp3_ = rygel_media_export_media_cache_translate_search_expression (self, _tmp1_, args, "WHERE", &_inner_error_);
- filter = _tmp3_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_array_unref (args);
- return 0L;
- }
- _tmp4_ = expression;
- if (_tmp4_ != NULL) {
- RygelSearchExpression* _tmp5_;
- gchar* _tmp6_ = NULL;
- gchar* _tmp7_;
- const gchar* _tmp8_;
- _tmp5_ = expression;
- _tmp6_ = rygel_search_expression_to_string (_tmp5_);
- _tmp7_ = _tmp6_;
- g_debug ("rygel-media-export-media-cache.vala:243: Original search: %s", _tmp7_);
- g_free (_tmp7_);
- _tmp8_ = filter;
- g_debug ("rygel-media-export-media-cache.vala:244: Parsed search expression: %s", _tmp8_);
- }
- {
- gint i;
- i = 0;
- {
- gboolean _tmp9_;
- _tmp9_ = TRUE;
- while (TRUE) {
- gboolean _tmp10_;
- gint _tmp12_;
- guint _tmp14_;
- gint _tmp16_;
- GValue* _tmp17_ = NULL;
- GValue* _tmp18_;
- GValue* arg;
- gchar* _tmp19_ = NULL;
- GValue* _tmp20_;
- gboolean _tmp21_ = FALSE;
- gint _tmp27_;
- const gchar* _tmp28_;
- _tmp10_ = _tmp9_;
- if (!_tmp10_) {
- gint _tmp11_;
- _tmp11_ = i;
- i = _tmp11_ + 1;
- }
- _tmp9_ = FALSE;
- _tmp12_ = i;
- _tmp14_ = args->len;
- if (!(((guint) _tmp12_) < _tmp14_)) {
- break;
- }
- _tmp16_ = i;
- _tmp17_ = &our_g_array_index (args, (guint) _tmp16_);
- _tmp18_ = __g_value_dup0 (_tmp17_);
- arg = _tmp18_;
- _tmp20_ = arg;
- _tmp21_ = G_VALUE_HOLDS (_tmp20_, G_TYPE_STRING);
- if (_tmp21_) {
- GValue* _tmp22_;
- const gchar* _tmp23_ = NULL;
- gchar* _tmp24_;
- _tmp22_ = arg;
- _tmp23_ = g_value_get_string (_tmp22_);
- _tmp24_ = g_strdup (_tmp23_);
- g_free (_tmp19_);
- _tmp19_ = _tmp24_;
- } else {
- GValue* _tmp25_;
- gchar* _tmp26_ = NULL;
- _tmp25_ = arg;
- _tmp26_ = g_strdup_value_contents (_tmp25_);
- g_free (_tmp19_);
- _tmp19_ = _tmp26_;
- }
- _tmp27_ = i;
- _tmp28_ = _tmp19_;
- g_debug ("rygel-media-export-media-cache.vala:249: Arg %d: %s", _tmp27_, _tmp28_);
- g_free (_tmp19_);
- __vala_GValue_free0 (arg);
- }
- }
- }
- _tmp29_ = filter;
- _tmp31_ = container_id;
- _tmp32_ = rygel_media_export_media_cache_get_object_count_by_filter (self, _tmp29_, args, _tmp31_, &_inner_error_);
- _tmp33_ = _tmp32_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (filter);
- g_array_unref (args);
- return 0L;
- }
- result = _tmp33_;
- g_free (filter);
- g_array_unref (args);
- return result;
+ g_object_unref (cursor);
+ return children;
}
+void
+rygel_media_export_media_cache_debug_statistics (RygelMediaExportMediaCache *self) {
+ GError *inner_error;
+ RygelMediaExportDatabaseCursor *cursor;
-glong rygel_media_export_media_cache_get_object_count_by_filter (RygelMediaExportMediaCache* self, const gchar* filter, GArray* args, const gchar* container_id, GError** error) {
- glong result = 0L;
- guint _tmp6_;
- const gchar* pattern = NULL;
- RygelMediaExportSQLString string_id = 0;
- const gchar* _tmp7_;
- RygelMediaExportSQLFactory* _tmp8_;
- RygelMediaExportSQLString _tmp9_;
- const gchar* _tmp10_ = NULL;
- RygelMediaExportDatabase* _tmp11_;
- const gchar* _tmp12_;
- gchar* _tmp13_ = NULL;
- gchar* _tmp14_;
- GValue* _tmp16_;
- gint _tmp16__length1;
- gint _tmp17_ = 0;
- gint _tmp18_;
- gint _tmp19_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, 0L);
- g_return_val_if_fail (filter != NULL, 0L);
- g_return_val_if_fail (args != NULL, 0L);
- if (container_id != NULL) {
- GValue v = G_VALUE_INIT;
-
- g_value_init (&v, G_TYPE_STRING);
- g_value_set_string (&v, container_id);
- g_array_prepend_val (args, v);
- }
- _tmp6_ = args->len;
- g_debug ("rygel-media-export-media-cache.vala:269: Parameters to bind: %u", _tmp6_);
- _tmp7_ = container_id;
- if (_tmp7_ != NULL) {
- string_id = RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER_WITH_ANCESTOR;
- } else {
- string_id = RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER;
- }
- _tmp8_ = self->priv->sql;
- _tmp9_ = string_id;
- _tmp10_ = rygel_media_export_sql_factory_make (_tmp8_, _tmp9_);
- pattern = _tmp10_;
- _tmp11_ = self->priv->db;
- _tmp12_ = filter;
- _tmp13_ = g_strdup_printf (pattern, _tmp12_);
- _tmp14_ = _tmp13_;
- _tmp16_ = (GValue *) args->data;
- _tmp16__length1 = (gint) args->len;
- _tmp17_ = rygel_media_export_database_query_value (_tmp11_, _tmp14_, _tmp16_, _tmp16__length1, &_inner_error_);
- _tmp18_ = _tmp17_;
- g_free (_tmp14_);
- _tmp19_ = _tmp18_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return 0L;
- }
- result = (glong) _tmp19_;
- return result;
-}
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_debug ("Database statistics:");
+ inner_error = NULL;
+ cursor = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_STATISTICS, NULL, 0, &inner_error);
+ if (inner_error != NULL) {
+ goto out;
+ }
-RygelMediaObjects* rygel_media_export_media_cache_get_objects_by_filter (RygelMediaExportMediaCache* self, const gchar* filter, GArray* args, const gchar* container_id, const gchar* sort_criteria, glong offset, glong max_count, GError** error) {
- RygelMediaObjects* result = NULL;
- RygelMediaObjects* _tmp0_;
- RygelMediaObjects* children;
- glong _tmp1_;
- GValue v;
- RygelMediaContainer* parent;
- guint _tmp10_;
- const gchar* sql = NULL;
- const gchar* _tmp31_;
- const gchar* _tmp36_;
- gchar* _tmp37_ = NULL;
- gchar* sort_order;
- RygelMediaExportDatabase* _tmp38_;
- const gchar* _tmp39_;
- const gchar* _tmp40_;
- const gchar* _tmp41_;
- gchar* _tmp42_ = NULL;
- gchar* _tmp43_;
- GValue* _tmp45_;
- gint _tmp45__length1;
- RygelMediaExportDatabaseCursor* _tmp46_ = NULL;
- RygelMediaExportDatabaseCursor* _tmp47_;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (filter != NULL, NULL);
- g_return_val_if_fail (args != NULL, NULL);
- g_return_val_if_fail (sort_criteria != NULL, NULL);
- _tmp0_ = rygel_media_objects_new ();
- children = _tmp0_;
- _tmp1_ = offset;
- g_value_init (&v, G_TYPE_LONG);
- g_value_set_long (&v, _tmp1_);
- g_array_append_val (args, v);
- our_g_value_clear (&v);
- g_value_init (&v, G_TYPE_LONG);
- g_value_set_long (&v, max_count);
- g_array_append_val (args, v);
- our_g_value_clear (&v);
- parent = NULL;
- _tmp10_ = args->len;
- g_debug ("rygel-media-export-media-cache.vala:296: Parameters to bind: %u", _tmp10_);
- {
- gint i;
- i = 0;
- {
- gboolean _tmp11_;
- _tmp11_ = TRUE;
- while (TRUE) {
- gboolean _tmp12_;
- gint _tmp14_;
- guint _tmp16_;
- gint _tmp18_;
- GValue* _tmp19_ = NULL;
- GValue* _tmp20_;
- GValue* arg;
- gchar* _tmp21_ = NULL;
- GValue* _tmp22_;
- gboolean _tmp23_ = FALSE;
- gint _tmp29_;
- const gchar* _tmp30_;
- _tmp12_ = _tmp11_;
- if (!_tmp12_) {
- gint _tmp13_;
- _tmp13_ = i;
- i = _tmp13_ + 1;
- }
- _tmp11_ = FALSE;
- _tmp14_ = i;
- _tmp16_ = args->len;
- if (!(((guint) _tmp14_) < _tmp16_)) {
- break;
- }
- _tmp18_ = i;
- _tmp19_ = &our_g_array_index (args, (guint) _tmp18_);
- _tmp20_ = __g_value_dup0 (_tmp19_);
- arg = _tmp20_;
- _tmp22_ = arg;
- _tmp23_ = G_VALUE_HOLDS (_tmp22_, G_TYPE_STRING);
- if (_tmp23_) {
- GValue* _tmp24_;
- const gchar* _tmp25_ = NULL;
- gchar* _tmp26_;
- _tmp24_ = arg;
- _tmp25_ = g_value_get_string (_tmp24_);
- _tmp26_ = g_strdup (_tmp25_);
- g_free (_tmp21_);
- _tmp21_ = _tmp26_;
- } else {
- GValue* _tmp27_;
- gchar* _tmp28_ = NULL;
- _tmp27_ = arg;
- _tmp28_ = g_strdup_value_contents (_tmp27_);
- g_free (_tmp21_);
- _tmp21_ = _tmp28_;
- }
- _tmp29_ = i;
- _tmp30_ = _tmp21_;
- g_debug ("rygel-media-export-media-cache.vala:299: Arg %d: %s", _tmp29_, _tmp30_);
- g_free (_tmp21_);
- __vala_GValue_free0 (arg);
- }
- }
- }
- _tmp31_ = container_id;
- if (_tmp31_ != NULL) {
- RygelMediaExportSQLFactory* _tmp32_;
- const gchar* _tmp33_ = NULL;
- _tmp32_ = self->priv->sql;
- _tmp33_ = rygel_media_export_sql_factory_make (_tmp32_, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER_WITH_ANCESTOR);
- sql = _tmp33_;
- } else {
- RygelMediaExportSQLFactory* _tmp34_;
- const gchar* _tmp35_ = NULL;
- _tmp34_ = self->priv->sql;
- _tmp35_ = rygel_media_export_sql_factory_make (_tmp34_, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER);
- sql = _tmp35_;
- }
- _tmp36_ = sort_criteria;
- _tmp37_ = rygel_media_export_media_cache_translate_sort_criteria (self, _tmp36_);
- sort_order = _tmp37_;
- _tmp38_ = self->priv->db;
- _tmp39_ = sql;
- _tmp40_ = filter;
- _tmp41_ = sort_order;
- _tmp42_ = g_strdup_printf (_tmp39_, _tmp40_, _tmp41_);
- _tmp43_ = _tmp42_;
- _tmp45_ = (GValue *) args->data;
- _tmp45__length1 = (gint) args->len;
- _tmp46_ = rygel_media_export_database_exec_cursor (_tmp38_, _tmp43_, _tmp45_, _tmp45__length1, &_inner_error_);
- _tmp47_ = _tmp46_;
- g_free (_tmp43_);
- cursor = _tmp47_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (sort_order);
- g_object_unref (parent);
- g_object_unref (children);
- return NULL;
- }
- {
- while (TRUE) {
- gboolean _tmp51_ = FALSE;
- sqlite3_stmt* _tmp53_ = NULL;
- sqlite3_stmt* statement;
- sqlite3_stmt* _tmp54_;
- const gchar* _tmp55_ = NULL;
- const gchar* parent_id;
- gboolean _tmp56_ = FALSE;
- RygelMediaContainer* _tmp57_;
- gboolean _tmp62_;
- RygelMediaContainer* _tmp66_;
- _tmp51_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp51_) {
- break;
- }
- _tmp53_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp53_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- g_free (sort_order);
- g_object_unref (parent);
- g_object_unref (children);
- return NULL;
- }
- _tmp54_ = statement;
- _tmp55_ = (const gchar *) sqlite3_column_text (_tmp54_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_PARENT);
- parent_id = _tmp55_;
- _tmp57_ = parent;
- if (_tmp57_ == NULL) {
- _tmp56_ = TRUE;
- } else {
- const gchar* _tmp58_;
- RygelMediaContainer* _tmp59_;
- const gchar* _tmp60_;
- const gchar* _tmp61_;
- _tmp58_ = parent_id;
- _tmp59_ = parent;
- _tmp60_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp59_);
- _tmp61_ = _tmp60_;
- _tmp56_ = g_strcmp0 (_tmp58_, _tmp61_) != 0;
- }
- _tmp62_ = _tmp56_;
- if (_tmp62_) {
- RygelMediaExportNullContainer* _tmp63_;
- RygelMediaContainer* _tmp64_;
- const gchar* _tmp65_;
- _tmp63_ = rygel_media_export_null_container_new ();
- g_object_unref (parent);
- parent = (RygelMediaContainer*) _tmp63_;
- _tmp64_ = parent;
- _tmp65_ = parent_id;
- rygel_media_object_set_id ((RygelMediaObject*) _tmp64_, _tmp65_);
- }
- _tmp66_ = parent;
- if (_tmp66_ != NULL) {
- RygelMediaObjects* _tmp67_;
- RygelMediaContainer* _tmp68_;
- sqlite3_stmt* _tmp69_;
- RygelMediaObject* _tmp70_ = NULL;
- RygelMediaObject* _tmp71_;
- RygelMediaObjects* _tmp72_;
- gpointer _tmp73_ = NULL;
- RygelMediaObject* _tmp74_;
- RygelMediaContainer* _tmp75_;
- _tmp67_ = children;
- _tmp68_ = parent;
- _tmp69_ = statement;
- _tmp70_ = rygel_media_export_media_cache_get_object_from_statement (self, _tmp68_, _tmp69_);
- _tmp71_ = _tmp70_;
- gee_abstract_collection_add ((GeeAbstractCollection*) _tmp67_, _tmp71_);
- g_object_unref (_tmp71_);
- _tmp72_ = children;
- _tmp73_ = gee_list_last ((GeeList*) _tmp72_);
- _tmp74_ = (RygelMediaObject*) _tmp73_;
- _tmp75_ = parent;
- rygel_media_object_set_parent_ref (_tmp74_, _tmp75_);
- g_object_unref (_tmp74_);
- } else {
- sqlite3_stmt* _tmp76_;
- const gchar* _tmp77_ = NULL;
- const gchar* _tmp78_;
- _tmp76_ = statement;
- _tmp77_ = (const gchar *) sqlite3_column_text (_tmp76_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ID);
- _tmp78_ = parent_id;
- g_warning ("Inconsistent database: item %s " "has no parent %s", _tmp77_, _tmp78_);
- }
- }
- }
- result = children;
- g_object_unref (cursor);
- g_free (sort_order);
- g_object_unref (parent);
- return result;
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt *statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+
+ if (inner_error) {
+ g_object_unref (cursor);
+ goto out;
+ }
+ g_debug ("%s: %d",
+ (const gchar *) sqlite3_column_text (statement, 0),
+ sqlite3_column_int (statement, 1));
+ }
+ g_object_unref (cursor);
+ out:
+ if (inner_error) {
+ g_error_free (inner_error);
+ }
}
-void rygel_media_export_media_cache_debug_statistics (RygelMediaExportMediaCache* self) {
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- {
- RygelMediaExportDatabaseCursor* _tmp0_ = NULL;
- RygelMediaExportDatabaseCursor* cursor;
- g_debug ("rygel-media-export-media-cache.vala:339: Database statistics:");
- _tmp0_ = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_STATISTICS, NULL, 0, &_inner_error_);
- cursor = _tmp0_;
- if (_inner_error_ != NULL) {
- goto __catch7_g_error;
- }
- {
- while (TRUE) {
- gboolean _tmp4_ = FALSE;
- sqlite3_stmt* _tmp6_ = NULL;
- sqlite3_stmt* statement;
- sqlite3_stmt* _tmp7_;
- const gchar* _tmp8_ = NULL;
- sqlite3_stmt* _tmp9_;
- gint _tmp10_ = 0;
- _tmp4_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp4_) {
- break;
- }
- _tmp6_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp6_;
- if (_inner_error_ != NULL) {
- g_object_unref (cursor);
- goto __catch7_g_error;
- }
- _tmp7_ = statement;
- _tmp8_ = (const gchar *) sqlite3_column_text (_tmp7_, 0);
- _tmp9_ = statement;
- _tmp10_ = sqlite3_column_int (_tmp9_, 1);
- g_debug ("rygel-media-export-media-cache.vala:342: %s: %d", _tmp8_, _tmp10_);
- }
- }
- g_object_unref (cursor);
- }
- goto __finally7;
- __catch7_g_error:
- {
- GError* _error_ = NULL;
- _error_ = _inner_error_;
- _inner_error_ = NULL;
- g_error_free (_error_);
- }
- __finally7:
- if (_inner_error_ != NULL) {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
-}
+GeeArrayList *
+rygel_media_export_media_cache_get_child_ids (RygelMediaExportMediaCache *self,
+ const gchar *container_id,
+ GError **error) {
+ GeeArrayList *children;
+ GeeAbstractCollection *abstract_children;
+ GValue value = G_VALUE_INIT;
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (container_id != NULL, NULL);
-GeeArrayList* rygel_media_export_media_cache_get_child_ids (RygelMediaExportMediaCache* self, const gchar* container_id, GError** error) {
- GeeArrayList* result = NULL;
- GeeArrayList* _tmp0_;
- GeeArrayList* children;
- const gchar* _tmp1_;
- GValue _tmp2_ = {0};
- GValue* _tmp3_ = NULL;
- GValue* values;
- gint values_length1;
- GValue* _tmp4_;
- gint _tmp4__length1;
- RygelMediaExportDatabaseCursor* _tmp5_ = NULL;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (container_id != NULL, NULL);
- _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
- children = _tmp0_;
- _tmp1_ = container_id;
- g_value_init (&_tmp2_, G_TYPE_STRING);
- g_value_set_string (&_tmp2_, _tmp1_);
- _tmp3_ = g_new0 (GValue, 1);
- _tmp3_[0] = _tmp2_;
- values = _tmp3_;
- values_length1 = 1;
- _tmp4_ = values;
- _tmp4__length1 = values_length1;
- _tmp5_ = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_IDS, _tmp4_, _tmp4__length1, &_inner_error_);
- cursor = _tmp5_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_object_unref (children);
- return NULL;
- } else {
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_object_unref (children);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- {
- while (TRUE) {
- gboolean _tmp9_ = FALSE;
- sqlite3_stmt* _tmp11_ = NULL;
- sqlite3_stmt* statement;
- GeeArrayList* _tmp12_;
- sqlite3_stmt* _tmp13_;
- const gchar* _tmp14_ = NULL;
- _tmp9_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp9_) {
- break;
- }
- _tmp11_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp11_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_object_unref (children);
- return NULL;
- } else {
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_object_unref (children);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- _tmp12_ = children;
- _tmp13_ = statement;
- _tmp14_ = (const gchar *) sqlite3_column_text (_tmp13_, 0);
- gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp14_);
- }
- }
- result = children;
- g_object_unref (cursor);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return result;
-}
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, container_id);
+ inner_error = NULL;
+ cursor = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_IDS, &value, 1, &inner_error);
+ g_value_unset (&value);
-GeeList* rygel_media_export_media_cache_get_meta_data_column_by_filter (RygelMediaExportMediaCache* self, const gchar* column, const gchar* filter, GArray* args, glong offset, glong max_count, GError** error) {
- GeeList* result = NULL;
- glong _tmp0_;
- GValue v;
- GeeArrayList* _tmp8_;
- GeeArrayList* data;
- RygelMediaExportSQLFactory* _tmp9_;
- const gchar* _tmp10_ = NULL;
- const gchar* sql;
- RygelMediaExportDatabase* _tmp11_;
- const gchar* _tmp12_;
- const gchar* _tmp13_;
- const gchar* _tmp14_;
- gchar* _tmp15_ = NULL;
- gchar* _tmp16_;
- GValue* _tmp18_;
- gint _tmp18__length1;
- RygelMediaExportDatabaseCursor* _tmp19_ = NULL;
- RygelMediaExportDatabaseCursor* _tmp20_;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (column != NULL, NULL);
- g_return_val_if_fail (filter != NULL, NULL);
- g_return_val_if_fail (args != NULL, NULL);
- _tmp0_ = offset;
- g_value_init (&v, G_TYPE_LONG);
- g_value_set_long (&v, _tmp0_);
- g_array_append_val (args, v);
- our_g_value_clear (&v);
- g_value_init (&v, G_TYPE_LONG);
- g_value_set_long (&v, max_count);
- g_array_append_val (args, v);
- our_g_value_clear (&v);
- _tmp8_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
- data = _tmp8_;
- _tmp9_ = self->priv->sql;
- _tmp10_ = rygel_media_export_sql_factory_make (_tmp9_, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_META_DATA_COLUMN);
- sql = _tmp10_;
- _tmp11_ = self->priv->db;
- _tmp12_ = sql;
- _tmp13_ = column;
- _tmp14_ = filter;
- _tmp15_ = g_strdup_printf (_tmp12_, _tmp13_, _tmp14_);
- _tmp16_ = _tmp15_;
- _tmp18_ = (GValue *) args->data;
- _tmp18__length1 = (gint) args->len;
- _tmp19_ = rygel_media_export_database_exec_cursor (_tmp11_, _tmp16_, _tmp18_, _tmp18__length1, &_inner_error_);
- _tmp20_ = _tmp19_;
- g_free (_tmp16_);
- cursor = _tmp20_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (data);
- return NULL;
- }
- {
- while (TRUE) {
- gboolean _tmp24_ = FALSE;
- sqlite3_stmt* _tmp26_ = NULL;
- sqlite3_stmt* statement;
- GeeArrayList* _tmp27_;
- sqlite3_stmt* _tmp28_;
- const gchar* _tmp29_ = NULL;
- _tmp24_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp24_) {
- break;
- }
- _tmp26_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp26_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- g_object_unref (data);
- return NULL;
- }
- _tmp27_ = data;
- _tmp28_ = statement;
- _tmp29_ = (const gchar *) sqlite3_column_text (_tmp28_, 0);
- gee_abstract_collection_add ((GeeAbstractCollection*) _tmp27_, _tmp29_);
- }
- }
- result = (GeeList*) data;
- g_object_unref (cursor);
- return result;
-}
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ children = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ abstract_children = GEE_ABSTRACT_COLLECTION (children);
-GeeList* rygel_media_export_media_cache_get_object_attribute_by_search_expression (RygelMediaExportMediaCache* self, const gchar* attribute, RygelSearchExpression* expression, glong offset, guint max_count, GError** error) {
- GeeList* result = NULL;
- GArray* args;
- RygelSearchExpression* _tmp1_;
- gchar* _tmp3_ = NULL;
- gchar* filter;
- const gchar* _tmp4_;
- const gchar* _tmp5_;
- gchar* _tmp6_ = NULL;
- gchar* column;
- guint _tmp7_;
- guint _tmp8_ = 0U;
- guint max_objects;
- const gchar* _tmp9_;
- const gchar* _tmp10_;
- glong _tmp12_;
- guint _tmp13_;
- GeeList* _tmp14_ = NULL;
- GeeList* _tmp15_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (attribute != NULL, NULL);
- args = our_g_value_array_new ();
- _tmp1_ = expression;
- _tmp3_ = rygel_media_export_media_cache_translate_search_expression (self, _tmp1_, args, "AND", &_inner_error_);
- filter = _tmp3_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_array_unref (args);
- return NULL;
- }
- _tmp4_ = filter;
- g_debug ("rygel-media-export-media-cache.vala:397: Parsed filter: %s", _tmp4_);
- _tmp5_ = attribute;
- _tmp6_ = rygel_media_export_media_cache_map_operand_to_column (self, _tmp5_, NULL, &_inner_error_);
- column = _tmp6_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (filter);
- g_array_unref (args);
- return NULL;
- }
- _tmp7_ = max_count;
- _tmp8_ = rygel_media_export_media_cache_modify_limit (self, _tmp7_);
- max_objects = _tmp8_;
- _tmp9_ = column;
- _tmp10_ = filter;
- _tmp12_ = offset;
- _tmp13_ = max_objects;
- _tmp14_ = rygel_media_export_media_cache_get_meta_data_column_by_filter (self, _tmp9_, _tmp10_, args, _tmp12_, (glong) _tmp13_, &_inner_error_);
- _tmp15_ = _tmp14_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (column);
- g_free (filter);
- g_array_unref (args);
- return NULL;
- }
- result = _tmp15_;
- g_free (column);
- g_free (filter);
- g_array_unref (args);
- return result;
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt* statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (children);
+ g_object_unref (cursor);
+ return NULL;
+ }
+ gee_abstract_collection_add (abstract_children, sqlite3_column_text (statement, 0));
+ }
+ g_object_unref (cursor);
+ return children;
}
+GeeList *
+rygel_media_export_media_cache_get_meta_data_column_by_filter (RygelMediaExportMediaCache *self,
+ const gchar *column,
+ const gchar *filter,
+ GArray *args,
+ glong offset,
+ glong max_count,
+ GError **error) {
+ GValue v = G_VALUE_INIT;
+ GeeArrayList *data;
+ GeeAbstractCollection *abstract_data;
+ gchar *sql;
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (column != NULL, NULL);
+ g_return_val_if_fail (filter != NULL, NULL);
+ g_return_val_if_fail (args != NULL, NULL);
+
+ g_value_init (&v, G_TYPE_LONG);
+ g_value_set_long (&v, offset);
+ g_array_append_val (args, v);
+ our_g_value_clear (&v);
+ g_value_init (&v, G_TYPE_LONG);
+ g_value_set_long (&v, max_count);
+ g_array_append_val (args, v);
+ our_g_value_clear (&v);
+
+ priv = self->priv;
+ sql = g_strdup_printf (rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_GET_META_DATA_COLUMN),
+ column,
+ filter);
+ inner_error = NULL;
+ cursor = rygel_media_export_database_exec_cursor (priv->db, sql, (GValue *) args->data, (gint) args->len, &inner_error);
+ g_free (sql);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
-void rygel_media_export_media_cache_flag_object (RygelMediaExportMediaCache* self, GFile* file, const gchar* flag, GError** error) {
- const gchar* _tmp0_;
- GValue _tmp1_ = {0};
- GFile* _tmp2_;
- gchar* _tmp3_ = NULL;
- GValue _tmp4_ = {0};
- GValue* _tmp5_ = NULL;
- GValue* args;
- gint args_length1;
- RygelMediaExportDatabase* _tmp6_;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (file != NULL);
- g_return_if_fail (flag != NULL);
- _tmp0_ = flag;
- g_value_init (&_tmp1_, G_TYPE_STRING);
- g_value_set_string (&_tmp1_, _tmp0_);
- _tmp2_ = file;
- _tmp3_ = g_file_get_uri (_tmp2_);
- g_value_init (&_tmp4_, G_TYPE_STRING);
- g_value_take_string (&_tmp4_, _tmp3_);
- _tmp5_ = g_new0 (GValue, 2);
- _tmp5_[0] = _tmp1_;
- _tmp5_[1] = _tmp4_;
- args = _tmp5_;
- args_length1 = 2;
- _tmp6_ = self->priv->db;
- rygel_media_export_database_exec (_tmp6_, "UPDATE Object SET flags = ? WHERE uri = ?", args, args_length1, &_inner_error_);
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- args = (_vala_GValue_array_free (args, args_length1), NULL);
- return;
- }
- args = (_vala_GValue_array_free (args, args_length1), NULL);
+ data = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ abstract_data = GEE_ABSTRACT_COLLECTION (data);
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt *statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (cursor);
+ g_object_unref (data);
+ return NULL;
+ }
+ gee_abstract_collection_add (abstract_data, sqlite3_column_text (statement, 0));
+ }
+ g_object_unref (cursor);
+
+ return GEE_LIST (data);
}
+GeeList *
+rygel_media_export_media_cache_get_object_attribute_by_search_expression (RygelMediaExportMediaCache *self,
+ const gchar *attribute,
+ RygelSearchExpression *expression,
+ glong offset,
+ guint max_count,
+ GError **error) {
+ GeeList *attributes;
+ GArray *args;
+ gchar *filter;
+ gchar *column;
+ guint max_objects;
+ GError *inner_error;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (attribute != NULL, NULL);
+
+ args = our_g_value_array_new ();
+ inner_error = NULL;
+ filter = rygel_media_export_media_cache_translate_search_expression (self, expression, args, "AND", &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_array_unref (args);
+ return NULL;
+ }
+ g_debug ("Parsed filter: %s", filter);
+ column = rygel_media_export_media_cache_map_operand_to_column (self, attribute, NULL, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_free (filter);
+ g_array_unref (args);
+ return NULL;
+ }
+ max_objects = rygel_media_export_media_cache_modify_limit (max_count);
+ attributes = rygel_media_export_media_cache_get_meta_data_column_by_filter (self, column, filter, args, offset, (glong) max_objects, &inner_error);
+ g_free (column);
+ g_free (filter);
+ g_array_unref (args);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ return attributes;
+}
-GeeList* rygel_media_export_media_cache_get_flagged_uris (RygelMediaExportMediaCache* self, const gchar* flag, GError** error) {
- GeeList* result = NULL;
- GeeArrayList* _tmp0_;
- GeeArrayList* uris;
- static const char query[] = "SELECT uri FROM object WHERE flags = ?";
- const gchar* _tmp1_;
- GValue _tmp2_ = {0};
- GValue* _tmp3_ = NULL;
- GValue* args;
- gint args_length1;
- RygelMediaExportDatabase* _tmp4_;
- GValue* _tmp5_;
- gint _tmp5__length1;
- RygelMediaExportDatabaseCursor* _tmp6_ = NULL;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (flag != NULL, NULL);
- _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
- uris = _tmp0_;
- _tmp1_ = flag;
- g_value_init (&_tmp2_, G_TYPE_STRING);
- g_value_set_string (&_tmp2_, _tmp1_);
- _tmp3_ = g_new0 (GValue, 1);
- _tmp3_[0] = _tmp2_;
- args = _tmp3_;
- args_length1 = 1;
- _tmp4_ = self->priv->db;
- _tmp5_ = args;
- _tmp5__length1 = args_length1;
- _tmp6_ = rygel_media_export_database_exec_cursor (_tmp4_, query, _tmp5_, _tmp5__length1, &_inner_error_);
- cursor = _tmp6_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- args = (_vala_GValue_array_free (args, args_length1), NULL);
- g_object_unref (uris);
- return NULL;
- }
- {
- while (TRUE) {
- gboolean _tmp10_ = FALSE;
- sqlite3_stmt* _tmp12_ = NULL;
- sqlite3_stmt* statement;
- GeeArrayList* _tmp13_;
- sqlite3_stmt* _tmp14_;
- const gchar* _tmp15_ = NULL;
- _tmp10_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp10_) {
- break;
- }
- _tmp12_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp12_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- args = (_vala_GValue_array_free (args, args_length1), NULL);
- g_object_unref (uris);
- return NULL;
- }
- _tmp13_ = uris;
- _tmp14_ = statement;
- _tmp15_ = (const gchar *) sqlite3_column_text (_tmp14_, 0);
- gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, _tmp15_);
- }
- }
- result = (GeeList*) uris;
- g_object_unref (cursor);
- args = (_vala_GValue_array_free (args, args_length1), NULL);
- return result;
+void
+rygel_media_export_media_cache_flag_object (RygelMediaExportMediaCache *self,
+ GFile *file,
+ const gchar *flag,
+ GError **error) {
+ GValue values[] = {G_VALUE_INIT, G_VALUE_INIT};
+ guint iter;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (G_IS_FILE (file));
+ g_return_if_fail (flag != NULL);
+
+ g_value_init (&(values[0]), G_TYPE_STRING);
+ g_value_set_string (&(values[0]), flag);
+ g_value_init (&(values[1]), G_TYPE_STRING);
+ g_value_take_string (&(values[1]), g_file_get_uri (file));
+
+ inner_error = NULL;
+ priv = self->priv;
+ rygel_media_export_database_exec (priv->db, "UPDATE Object SET flags = ? WHERE uri = ?", values, G_N_ELEMENTS(values), &inner_error);
+ for (iter = 0; iter < G_N_ELEMENTS (values); ++iter) {
+ g_value_unset (&(values[iter]));
+ }
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ }
}
+GeeList *
+rygel_media_export_media_cache_get_flagged_uris (RygelMediaExportMediaCache *self,
+ const gchar *flag,
+ GError **error) {
+ GValue value = G_VALUE_INIT;
+ GeeArrayList *uris;
+ GeeAbstractCollection *abstract_uris;
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+ g_return_val_if_fail (flag != NULL, NULL);
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, flag);
+
+ inner_error = NULL;
+ priv = self->priv;
+ cursor = rygel_media_export_database_exec_cursor (priv->db, "SELECT uri FROM object WHERE flags = ?", &value, 1, &inner_error);
+ g_value_unset (&value);
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
-static void rygel_media_export_media_cache_get_exists_cache (RygelMediaExportMediaCache* self, GError** error) {
- GeeHashMap* _tmp0_;
- RygelMediaExportDatabaseCursor* _tmp1_ = NULL;
- RygelMediaExportDatabaseCursor* cursor;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, RYGEL_MEDIA_EXPORT_TYPE_EXISTS_CACHE_ENTRY, (GBoxedCopyFunc) rygel_media_export_exists_cache_entry_dup, (GDestroyNotify) rygel_media_export_exists_cache_entry_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
- g_object_unref (self->priv->exists_cache);
- self->priv->exists_cache = _tmp0_;
- _tmp1_ = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS_CACHE, NULL, 0, &_inner_error_);
- cursor = _tmp1_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- return;
- } else {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- }
- {
- while (TRUE) {
- gboolean _tmp5_ = FALSE;
- sqlite3_stmt* _tmp7_ = NULL;
- sqlite3_stmt* statement;
- RygelMediaExportExistsCacheEntry entry = {0};
- sqlite3_stmt* _tmp8_;
- gint64 _tmp9_ = 0LL;
- sqlite3_stmt* _tmp10_;
- gint64 _tmp11_ = 0LL;
- GeeHashMap* _tmp12_;
- sqlite3_stmt* _tmp13_;
- const gchar* _tmp14_ = NULL;
- RygelMediaExportExistsCacheEntry _tmp15_;
- _tmp5_ = rygel_media_export_database_cursor_has_next (cursor);
- if (!_tmp5_) {
- break;
- }
- _tmp7_ = rygel_media_export_database_cursor_next (cursor, &_inner_error_);
- statement = _tmp7_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- g_object_unref (cursor);
- return;
- } else {
- g_object_unref (cursor);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- }
- memset (&entry, 0, sizeof (RygelMediaExportExistsCacheEntry));
- _tmp8_ = statement;
- _tmp9_ = sqlite3_column_int64 (_tmp8_, 1);
- entry.mtime = _tmp9_;
- _tmp10_ = statement;
- _tmp11_ = sqlite3_column_int64 (_tmp10_, 0);
- entry.size = _tmp11_;
- _tmp12_ = self->priv->exists_cache;
- _tmp13_ = statement;
- _tmp14_ = (const gchar *) sqlite3_column_text (_tmp13_, 2);
- _tmp15_ = entry;
- gee_abstract_map_set ((GeeAbstractMap*) _tmp12_, _tmp14_, &_tmp15_);
- }
- }
- g_object_unref (cursor);
+ uris = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+ abstract_uris = GEE_ABSTRACT_COLLECTION (uris);
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt *statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (cursor);
+ g_object_unref (uris);
+ return NULL;
+ }
+ gee_abstract_collection_add (abstract_uris, sqlite3_column_text (statement, 0));
+ }
+ g_object_unref (cursor);
+ return GEE_LIST (uris);
}
+static void
+rygel_media_export_media_cache_get_exists_cache (RygelMediaExportMediaCache *self,
+ GError **error) {
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+ GeeAbstractMap *abstract_cache;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+
+ inner_error = NULL;
+ cursor = rygel_media_export_media_cache_exec_cursor (self, RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS_CACHE, NULL, 0, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return;
+ }
+ priv = self->priv;
+ priv->exists_cache = gee_hash_map_new (G_TYPE_STRING,
+ (GBoxedCopyFunc) g_strdup,
+ g_free,
+ RYGEL_MEDIA_EXPORT_TYPE_EXISTS_CACHE_ENTRY,
+ (GBoxedCopyFunc) rygel_media_export_exists_cache_entry_dup,
+ (GDestroyNotify) rygel_media_export_exists_cache_entry_free,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ abstract_cache = GEE_ABSTRACT_MAP (priv->exists_cache);
+ while (rygel_media_export_database_cursor_has_next (cursor)) {
+ sqlite3_stmt *statement = rygel_media_export_database_cursor_next (cursor, &inner_error);
+ RygelMediaExportExistsCacheEntry entry;
+
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ g_object_unref (cursor);
+ return;
+ }
+ entry.mtime = sqlite3_column_int64 (statement, 1);
+ entry.size = sqlite3_column_int64 (statement, 0);
+ gee_abstract_map_set (abstract_cache, sqlite3_column_text (statement, 2), &entry);
+ }
+ g_object_unref (cursor);
+}
-static guint rygel_media_export_media_cache_modify_limit (RygelMediaExportMediaCache* self, guint max_count) {
- guint result = 0U;
- guint _tmp0_;
- g_return_val_if_fail (self != NULL, 0U);
- _tmp0_ = max_count;
- if (_tmp0_ == ((guint) 0)) {
- result = (guint) (-1);
- return result;
- } else {
- guint _tmp1_;
- _tmp1_ = max_count;
- result = _tmp1_;
- return result;
- }
+static guint
+rygel_media_export_media_cache_modify_limit (guint max_count) {
+ if (max_count) {
+ return max_count;
+ } else {
+ return (guint) -1;
+ }
}
+static void
+rygel_media_export_media_cache_open_db (RygelMediaExportMediaCache *self,
+ const gchar *name,
+ GError **error) {
+ RygelMediaExportMediaCacheUpgrader *upgrader;
+ gboolean needs_update;
+ gint old_version;
+ gint current_version;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (name != NULL);
+
+ inner_error = NULL;
+ priv = self->priv;
+ priv->db = rygel_media_export_database_new (name, &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return;
+ }
-static void rygel_media_export_media_cache_open_db (RygelMediaExportMediaCache* self, const gchar* name, GError** error) {
- const gchar* _tmp0_;
- RygelMediaExportDatabase* _tmp1_;
- RygelMediaExportDatabase* _tmp2_;
- gint old_version;
- gint _tmp3_ = 0;
- gint current_version;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (name != NULL);
- _tmp0_ = name;
- _tmp1_ = rygel_media_export_database_new (_tmp0_, &_inner_error_);
- _tmp2_ = _tmp1_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return;
- }
- if (self->priv->db) {
- g_object_unref (self->priv->db);
- }
- self->priv->db = _tmp2_;
- old_version = -1;
- _tmp3_ = atoi (RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION);
- current_version = _tmp3_;
- {
- RygelMediaExportDatabase* _tmp4_;
- RygelMediaExportSQLFactory* _tmp5_;
- RygelMediaExportMediaCacheUpgrader* _tmp6_;
- RygelMediaExportMediaCacheUpgrader* upgrader;
- RygelMediaExportMediaCacheUpgrader* _tmp7_;
- gint _tmp8_ = 0;
- gboolean _tmp9_ = FALSE;
- gboolean _tmp10_;
- RygelMediaExportMediaCacheUpgrader* _tmp19_;
- _tmp4_ = self->priv->db;
- _tmp5_ = self->priv->sql;
- _tmp6_ = rygel_media_export_media_cache_upgrader_new (_tmp4_, _tmp5_);
- upgrader = _tmp6_;
- _tmp7_ = upgrader;
- _tmp9_ = rygel_media_export_media_cache_upgrader_needs_upgrade (_tmp7_, &_tmp8_, &_inner_error_);
- old_version = _tmp8_;
- _tmp10_ = _tmp9_;
- if (_inner_error_ != NULL) {
- g_object_unref (upgrader);
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch8_rygel_media_export_database_error;
- }
- goto __finally8;
- }
- if (_tmp10_) {
- RygelMediaExportMediaCacheUpgrader* _tmp11_;
- gint _tmp12_;
- _tmp11_ = upgrader;
- _tmp12_ = old_version;
- rygel_media_export_media_cache_upgrader_upgrade (_tmp11_, _tmp12_);
- } else {
- gint _tmp13_;
- gint _tmp14_;
- _tmp13_ = old_version;
- _tmp14_ = current_version;
- if (_tmp13_ == _tmp14_) {
- RygelMediaExportMediaCacheUpgrader* _tmp15_;
- _tmp15_ = upgrader;
- rygel_media_export_media_cache_upgrader_fix_schema (_tmp15_, &_inner_error_);
- if (_inner_error_ != NULL) {
- g_object_unref (upgrader);
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch8_rygel_media_export_database_error;
- }
- goto __finally8;
- }
- } else {
- gint _tmp16_;
- gint _tmp17_;
- GError* _tmp18_;
- _tmp16_ = old_version;
- _tmp17_ = current_version;
- g_warning ("The version \"%d\" of the detected database" " is newer than our supported version \"%d\"", _tmp16_, _tmp17_);
- g_object_unref (self->priv->db);
- self->priv->db = NULL;
- _tmp18_ = g_error_new_literal (RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR, RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_GENERAL_ERROR, "Database format" " not supported");
- _inner_error_ = _tmp18_;
- g_object_unref (upgrader);
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch8_rygel_media_export_database_error;
- }
- goto __finally8;
- }
- }
- _tmp19_ = upgrader;
- rygel_media_export_media_cache_upgrader_ensure_indices (_tmp19_);
- g_object_unref (upgrader);
- }
- goto __finally8;
- __catch8_rygel_media_export_database_error:
- {
- GError* _error_ = NULL;
- _error_ = _inner_error_;
- _inner_error_ = NULL;
- g_debug ("rygel-media-export-media-cache.vala:471: %s", "Could not find schema version;" " checking for empty database...");
- {
- RygelMediaExportDatabase* _tmp20_;
- gint _tmp21_ = 0;
- gint rows;
- gint _tmp22_;
- _tmp20_ = self->priv->db;
- _tmp21_ = rygel_media_export_database_query_value (_tmp20_, "SELECT count(type) FROM " "sqlite_master WHERE rowid=1", NULL, 0, &_inner_error_);
- rows = _tmp21_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- goto __catch9_rygel_media_export_database_error;
- }
- g_error_free (_error_);
- g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return;
- }
- _tmp22_ = rows;
- if (_tmp22_ == 0) {
- gboolean _tmp23_ = FALSE;
- g_debug ("rygel-media-export-media-cache.vala:477: Empty database, creating new " \
-"schema version %s", RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION);
- _tmp23_ = rygel_media_export_media_cache_create_schema (self);
- if (!_tmp23_) {
- g_object_unref (self->priv->db);
- self->priv->db = NULL;
- g_error_free (_error_);
- return;
- }
- } else {
- g_warning ("rygel-media-export-media-cache.vala:485: Incompatible schema... cannot" \
-" proceed");
- g_object_unref (self->priv->db);
- self->priv->db = NULL;
- g_error_free (_error_);
- return;
- }
- }
- goto __finally9;
- __catch9_rygel_media_export_database_error:
- {
- GError* _error_ = NULL;
- GError* _tmp24_;
- const gchar* _tmp25_;
- GError* _tmp26_;
- _error_ = _inner_error_;
- _inner_error_ = NULL;
- _tmp24_ = _error_;
- _tmp25_ = _tmp24_->message;
- g_warning ("rygel-media-export-media-cache.vala:491: Something weird going on: %s", _tmp25_);
- g_object_unref (self->priv->db);
- self->priv->db = NULL;
- _tmp26_ = g_error_new_literal (RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR, RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_GENERAL_ERROR, "Invalid database");
- _inner_error_ = _tmp26_;
- g_error_free (_error_);
- goto __finally9;
- }
- __finally9:
- if (_inner_error_ != NULL) {
- g_error_free (_error_);
- goto __finally8;
- }
- g_error_free (_error_);
- }
- __finally8:
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return;
- }
+ old_version = -1;
+ current_version = atoi (RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION);
+
+ upgrader = rygel_media_export_media_cache_upgrader_new (priv->db, priv->sql);
+ needs_update = rygel_media_export_media_cache_upgrader_needs_upgrade (upgrader, &old_version, &inner_error);
+ if (inner_error) {
+ g_object_unref (upgrader);
+ goto out;
+ }
+
+ if (needs_update) {
+ rygel_media_export_media_cache_upgrader_upgrade (upgrader, old_version);
+ } else if (old_version == current_version) {
+ rygel_media_export_media_cache_upgrader_fix_schema (upgrader, &inner_error);
+ if (inner_error) {
+ g_object_unref (upgrader);
+ goto out;
+ }
+ } else {
+ g_warning ("The version \"%d\" of the detected database is newer than our supported version \"%d\"",
+ old_version,
+ current_version);
+ g_object_unref (priv->db);
+ priv->db = NULL;
+ g_set_error_literal (error,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_GENERAL_ERROR,
+ "Database format not supported");
+ g_object_unref (upgrader);
+ return;
+ }
+ rygel_media_export_media_cache_upgrader_ensure_indices (upgrader);
+ g_object_unref (upgrader);
+ out:
+ if (inner_error) {
+ gint rows;
+
+ if (inner_error->domain != RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
+ g_propagate_error (error, inner_error);
+ return;
+ }
+ g_debug ("Could not find schema version; checking for empty database...");
+ rows = rygel_media_export_database_query_value (priv->db, "SELECT count(type) FROM sqlite_master WHERE rowid=1", NULL, 0, &inner_error);
+ if (inner_error) {
+ if (inner_error->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
+ goto db_error;
+ }
+ g_propagate_error (error, inner_error);
+ return;
+ }
+ if (!rows) {
+ g_debug ("Empty database, creating new schema version %s", RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION);
+ if (!rygel_media_export_media_cache_create_schema (self)) {
+ g_object_unref (priv->db);
+ priv->db = NULL;
+ return;
+ }
+ } else {
+ g_warning ("Incompatible schema... cannot proceed");
+ g_object_unref (priv->db);
+ self->priv->db = NULL;
+ return;
+ }
+ db_error:
+ if (inner_error) {
+ g_warning ("Something weird going on: %s", inner_error->message);
+ g_error_free (inner_error);
+ g_object_unref (priv->db);
+ priv->db = NULL;
+ g_set_error_literal (error,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_GENERAL_ERROR,
+ "Invalid database");
+ }
+ }
}
static void rygel_media_export_media_cache_save_metadata (RygelMediaExportMediaCache* self, RygelMediaItem* item, GError** error) {
- RygelMediaItem* _tmp0_;
- gint64 _tmp1_;
- gint64 _tmp2_;
- GValue _tmp3_ = {0};
- RygelMediaItem* _tmp4_;
- const gchar* _tmp5_;
- const gchar* _tmp6_;
- GValue _tmp7_ = {0};
- GValue _tmp8_ = {0};
- GValue _tmp9_ = {0};
- RygelMediaItem* _tmp10_;
- const gchar* _tmp11_;
- const gchar* _tmp12_;
- GValue _tmp13_ = {0};
- GValue _tmp14_ = {0};
- GValue _tmp15_ = {0};
- RygelMediaItem* _tmp16_;
- const gchar* _tmp17_;
- const gchar* _tmp18_;
- GValue _tmp19_ = {0};
- GValue _tmp20_ = {0};
- GValue _tmp21_ = {0};
- GValue _tmp22_ = {0};
- GValue _tmp23_ = {0};
- GValue _tmp24_ = {0};
- GValue _tmp25_ = {0};
- GValue _tmp26_ = {0};
- RygelMediaItem* _tmp27_;
- const gchar* _tmp28_;
- const gchar* _tmp29_;
- GValue _tmp30_ = {0};
- RygelMediaItem* _tmp31_;
- const gchar* _tmp32_;
- const gchar* _tmp33_;
- GValue _tmp34_ = {0};
- GValue _tmp35_ = {0};
- GValue _tmp36_ = {0};
- GValue* _tmp37_ = NULL;
- GValue* values;
- gint values_length1;
- RygelMediaItem* _tmp38_;
- RygelMediaItem* _tmp103_;
- RygelMediaExportDatabase* _tmp133_;
- RygelMediaExportSQLFactory* _tmp134_;
- const gchar* _tmp135_ = NULL;
- GValue* _tmp136_;
- gint _tmp136__length1;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (item != NULL);
- _tmp0_ = item;
- _tmp1_ = rygel_media_item_get_size (_tmp0_);
- _tmp2_ = _tmp1_;
- g_value_init (&_tmp3_, G_TYPE_INT64);
- g_value_set_int64 (&_tmp3_, _tmp2_);
- _tmp4_ = item;
- _tmp5_ = rygel_media_item_get_mime_type (_tmp4_);
- _tmp6_ = _tmp5_;
- g_value_init (&_tmp7_, G_TYPE_STRING);
- g_value_set_string (&_tmp7_, _tmp6_);
- g_value_init (&_tmp8_, G_TYPE_INT);
- g_value_set_int (&_tmp8_, -1);
- g_value_init (&_tmp9_, G_TYPE_INT);
- g_value_set_int (&_tmp9_, -1);
- _tmp10_ = item;
- _tmp11_ = rygel_media_object_get_upnp_class ((RygelMediaObject*) _tmp10_);
- _tmp12_ = _tmp11_;
- g_value_init (&_tmp13_, G_TYPE_STRING);
- g_value_set_string (&_tmp13_, _tmp12_);
- rygel_media_export_database_null (&_tmp14_);
- rygel_media_export_database_null (&_tmp15_);
- _tmp16_ = item;
- _tmp17_ = rygel_media_item_get_date (_tmp16_);
- _tmp18_ = _tmp17_;
- g_value_init (&_tmp19_, G_TYPE_STRING);
- g_value_set_string (&_tmp19_, _tmp18_);
- g_value_init (&_tmp20_, G_TYPE_INT);
- g_value_set_int (&_tmp20_, -1);
- g_value_init (&_tmp21_, G_TYPE_INT);
- g_value_set_int (&_tmp21_, -1);
- g_value_init (&_tmp22_, G_TYPE_INT);
- g_value_set_int (&_tmp22_, -1);
- g_value_init (&_tmp23_, G_TYPE_INT);
- g_value_set_int (&_tmp23_, -1);
- g_value_init (&_tmp24_, G_TYPE_INT);
- g_value_set_int (&_tmp24_, -1);
- g_value_init (&_tmp25_, G_TYPE_INT);
- g_value_set_int (&_tmp25_, -1);
- g_value_init (&_tmp26_, G_TYPE_INT);
- g_value_set_int (&_tmp26_, -1);
- _tmp27_ = item;
- _tmp28_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp27_);
- _tmp29_ = _tmp28_;
- g_value_init (&_tmp30_, G_TYPE_STRING);
- g_value_set_string (&_tmp30_, _tmp29_);
- _tmp31_ = item;
- _tmp32_ = rygel_media_item_get_dlna_profile (_tmp31_);
- _tmp33_ = _tmp32_;
- g_value_init (&_tmp34_, G_TYPE_STRING);
- g_value_set_string (&_tmp34_, _tmp33_);
- rygel_media_export_database_null (&_tmp35_);
- g_value_init (&_tmp36_, G_TYPE_INT);
- g_value_set_int (&_tmp36_, -1);
- _tmp37_ = g_new0 (GValue, 19);
- _tmp37_[0] = _tmp3_;
- _tmp37_[1] = _tmp7_;
- _tmp37_[2] = _tmp8_;
- _tmp37_[3] = _tmp9_;
- _tmp37_[4] = _tmp13_;
- _tmp37_[5] = _tmp14_;
- _tmp37_[6] = _tmp15_;
- _tmp37_[7] = _tmp19_;
- _tmp37_[8] = _tmp20_;
- _tmp37_[9] = _tmp21_;
- _tmp37_[10] = _tmp22_;
- _tmp37_[11] = _tmp23_;
- _tmp37_[12] = _tmp24_;
- _tmp37_[13] = _tmp25_;
- _tmp37_[14] = _tmp26_;
- _tmp37_[15] = _tmp30_;
- _tmp37_[16] = _tmp34_;
- _tmp37_[17] = _tmp35_;
- _tmp37_[18] = _tmp36_;
- values = _tmp37_;
- values_length1 = 19;
- _tmp38_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp38_, RYGEL_TYPE_AUDIO_ITEM)) {
- RygelMediaItem* _tmp39_;
- RygelAudioItem* _tmp40_;
- RygelAudioItem* audio_item;
- GValue* _tmp41_;
- RygelAudioItem* _tmp42_;
- glong _tmp43_;
- glong _tmp44_;
- GValue _tmp45_ = {0};
- GValue* _tmp47_;
- RygelAudioItem* _tmp48_;
- gint _tmp49_;
- gint _tmp50_;
- GValue _tmp51_ = {0};
- GValue* _tmp53_;
- RygelAudioItem* _tmp54_;
- gint _tmp55_;
- gint _tmp56_;
- GValue _tmp57_ = {0};
- GValue* _tmp59_;
- RygelAudioItem* _tmp60_;
- gint _tmp61_;
- gint _tmp62_;
- GValue _tmp63_ = {0};
- GValue* _tmp65_;
- RygelAudioItem* _tmp66_;
- gint _tmp67_;
- gint _tmp68_;
- GValue _tmp69_ = {0};
- RygelMediaItem* _tmp71_;
- _tmp39_ = item;
- _tmp40_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp39_, RYGEL_TYPE_AUDIO_ITEM) ? ((RygelAudioItem*) _tmp39_) : NULL);
- audio_item = _tmp40_;
- _tmp41_ = values;
- _tmp42_ = audio_item;
- _tmp43_ = rygel_audio_item_get_duration (_tmp42_);
- _tmp44_ = _tmp43_;
- g_value_init (&_tmp45_, G_TYPE_LONG);
- g_value_set_long (&_tmp45_, _tmp44_);
- G_IS_VALUE (&_tmp41_[14]) ? (g_value_unset (&_tmp41_[14]), NULL) : NULL;
- _tmp41_[14] = _tmp45_;
- _tmp47_ = values;
- _tmp48_ = audio_item;
- _tmp49_ = rygel_audio_item_get_bitrate (_tmp48_);
- _tmp50_ = _tmp49_;
- g_value_init (&_tmp51_, G_TYPE_INT);
- g_value_set_int (&_tmp51_, _tmp50_);
- G_IS_VALUE (&_tmp47_[8]) ? (g_value_unset (&_tmp47_[8]), NULL) : NULL;
- _tmp47_[8] = _tmp51_;
- _tmp53_ = values;
- _tmp54_ = audio_item;
- _tmp55_ = rygel_audio_item_get_sample_freq (_tmp54_);
- _tmp56_ = _tmp55_;
- g_value_init (&_tmp57_, G_TYPE_INT);
- g_value_set_int (&_tmp57_, _tmp56_);
- G_IS_VALUE (&_tmp53_[9]) ? (g_value_unset (&_tmp53_[9]), NULL) : NULL;
- _tmp53_[9] = _tmp57_;
- _tmp59_ = values;
- _tmp60_ = audio_item;
- _tmp61_ = rygel_audio_item_get_bits_per_sample (_tmp60_);
- _tmp62_ = _tmp61_;
- g_value_init (&_tmp63_, G_TYPE_INT);
- g_value_set_int (&_tmp63_, _tmp62_);
- G_IS_VALUE (&_tmp59_[10]) ? (g_value_unset (&_tmp59_[10]), NULL) : NULL;
- _tmp59_[10] = _tmp63_;
- _tmp65_ = values;
- _tmp66_ = audio_item;
- _tmp67_ = rygel_audio_item_get_channels (_tmp66_);
- _tmp68_ = _tmp67_;
- g_value_init (&_tmp69_, G_TYPE_INT);
- g_value_set_int (&_tmp69_, _tmp68_);
- G_IS_VALUE (&_tmp65_[11]) ? (g_value_unset (&_tmp65_[11]), NULL) : NULL;
- _tmp65_[11] = _tmp69_;
- _tmp71_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp71_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM)) {
- RygelMediaItem* _tmp72_;
- RygelMediaExportMusicItem* _tmp73_;
- RygelMediaExportMusicItem* music_item;
- GValue* _tmp74_;
- RygelMediaExportMusicItem* _tmp75_;
- const gchar* _tmp76_;
- const gchar* _tmp77_;
- GValue _tmp78_ = {0};
- GValue* _tmp80_;
- RygelMediaExportMusicItem* _tmp81_;
- const gchar* _tmp82_;
- const gchar* _tmp83_;
- GValue _tmp84_ = {0};
- GValue* _tmp86_;
- RygelMediaExportMusicItem* _tmp87_;
- const gchar* _tmp88_;
- const gchar* _tmp89_;
- GValue _tmp90_ = {0};
- GValue* _tmp92_;
- RygelMediaExportMusicItem* _tmp93_;
- gint _tmp94_;
- gint _tmp95_;
- GValue _tmp96_ = {0};
- GValue* _tmp98_;
- RygelMediaExportMusicItem* _tmp99_;
- gint _tmp100_;
- GValue _tmp101_ = {0};
- _tmp72_ = item;
- _tmp73_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp72_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM) ? ((RygelMediaExportMusicItem*) _tmp72_) : NULL);
- music_item = _tmp73_;
- _tmp74_ = values;
- _tmp75_ = music_item;
- _tmp76_ = rygel_music_item_get_artist ((RygelMusicItem*) _tmp75_);
- _tmp77_ = _tmp76_;
- g_value_init (&_tmp78_, G_TYPE_STRING);
- g_value_set_string (&_tmp78_, _tmp77_);
- G_IS_VALUE (&_tmp74_[5]) ? (g_value_unset (&_tmp74_[5]), NULL) : NULL;
- _tmp74_[5] = _tmp78_;
- _tmp80_ = values;
- _tmp81_ = music_item;
- _tmp82_ = rygel_music_item_get_album ((RygelMusicItem*) _tmp81_);
- _tmp83_ = _tmp82_;
- g_value_init (&_tmp84_, G_TYPE_STRING);
- g_value_set_string (&_tmp84_, _tmp83_);
- G_IS_VALUE (&_tmp80_[6]) ? (g_value_unset (&_tmp80_[6]), NULL) : NULL;
- _tmp80_[6] = _tmp84_;
- _tmp86_ = values;
- _tmp87_ = music_item;
- _tmp88_ = rygel_music_item_get_genre ((RygelMusicItem*) _tmp87_);
- _tmp89_ = _tmp88_;
- g_value_init (&_tmp90_, G_TYPE_STRING);
- g_value_set_string (&_tmp90_, _tmp89_);
- G_IS_VALUE (&_tmp86_[17]) ? (g_value_unset (&_tmp86_[17]), NULL) : NULL;
- _tmp86_[17] = _tmp90_;
- _tmp92_ = values;
- _tmp93_ = music_item;
- _tmp94_ = rygel_music_item_get_track_number ((RygelMusicItem*) _tmp93_);
- _tmp95_ = _tmp94_;
- g_value_init (&_tmp96_, G_TYPE_INT);
- g_value_set_int (&_tmp96_, _tmp95_);
- G_IS_VALUE (&_tmp92_[12]) ? (g_value_unset (&_tmp92_[12]), NULL) : NULL;
- _tmp92_[12] = _tmp96_;
- _tmp98_ = values;
- _tmp99_ = music_item;
- _tmp100_ = _tmp99_->disc;
- g_value_init (&_tmp101_, G_TYPE_INT);
- g_value_set_int (&_tmp101_, _tmp100_);
- G_IS_VALUE (&_tmp98_[18]) ? (g_value_unset (&_tmp98_[18]), NULL) : NULL;
- _tmp98_[18] = _tmp101_;
- g_object_unref (music_item);
- }
- g_object_unref (audio_item);
- }
- _tmp103_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp103_, RYGEL_TYPE_VISUAL_ITEM)) {
- RygelMediaItem* _tmp104_;
- RygelVisualItem* _tmp105_;
- RygelVisualItem* visual_item;
- GValue* _tmp106_;
- RygelVisualItem* _tmp107_;
- gint _tmp108_;
- gint _tmp109_;
- GValue _tmp110_ = {0};
- GValue* _tmp112_;
- RygelVisualItem* _tmp113_;
- gint _tmp114_;
- gint _tmp115_;
- GValue _tmp116_ = {0};
- GValue* _tmp118_;
- RygelVisualItem* _tmp119_;
- gint _tmp120_;
- gint _tmp121_;
- GValue _tmp122_ = {0};
- RygelMediaItem* _tmp124_;
- _tmp104_ = item;
- _tmp105_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp104_, RYGEL_TYPE_VISUAL_ITEM) ? ((RygelVisualItem*) _tmp104_) : NULL);
- visual_item = _tmp105_;
- _tmp106_ = values;
- _tmp107_ = visual_item;
- _tmp108_ = rygel_visual_item_get_width (_tmp107_);
- _tmp109_ = _tmp108_;
- g_value_init (&_tmp110_, G_TYPE_INT);
- g_value_set_int (&_tmp110_, _tmp109_);
- G_IS_VALUE (&_tmp106_[2]) ? (g_value_unset (&_tmp106_[2]), NULL) : NULL;
- _tmp106_[2] = _tmp110_;
- _tmp112_ = values;
- _tmp113_ = visual_item;
- _tmp114_ = rygel_visual_item_get_height (_tmp113_);
- _tmp115_ = _tmp114_;
- g_value_init (&_tmp116_, G_TYPE_INT);
- g_value_set_int (&_tmp116_, _tmp115_);
- G_IS_VALUE (&_tmp112_[3]) ? (g_value_unset (&_tmp112_[3]), NULL) : NULL;
- _tmp112_[3] = _tmp116_;
- _tmp118_ = values;
- _tmp119_ = visual_item;
- _tmp120_ = rygel_visual_item_get_color_depth (_tmp119_);
- _tmp121_ = _tmp120_;
- g_value_init (&_tmp122_, G_TYPE_INT);
- g_value_set_int (&_tmp122_, _tmp121_);
- G_IS_VALUE (&_tmp118_[13]) ? (g_value_unset (&_tmp118_[13]), NULL) : NULL;
- _tmp118_[13] = _tmp122_;
- _tmp124_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp124_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM)) {
- RygelMediaItem* _tmp125_;
- RygelMediaExportVideoItem* _tmp126_;
- RygelMediaExportVideoItem* video_item;
- GValue* _tmp127_;
- RygelMediaExportVideoItem* _tmp128_;
- const gchar* _tmp129_;
- const gchar* _tmp130_;
- GValue _tmp131_ = {0};
- _tmp125_ = item;
- _tmp126_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp125_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM) ? ((RygelMediaExportVideoItem*) _tmp125_) : NULL);
- video_item = _tmp126_;
- _tmp127_ = values;
- _tmp128_ = video_item;
- _tmp129_ = rygel_video_item_get_author ((RygelVideoItem*) _tmp128_);
- _tmp130_ = _tmp129_;
- g_value_init (&_tmp131_, G_TYPE_STRING);
- g_value_set_string (&_tmp131_, _tmp130_);
- G_IS_VALUE (&_tmp127_[5]) ? (g_value_unset (&_tmp127_[5]), NULL) : NULL;
- _tmp127_[5] = _tmp131_;
- g_object_unref (video_item);
- }
- g_object_unref (visual_item);
- }
- _tmp133_ = self->priv->db;
- _tmp134_ = self->priv->sql;
- _tmp135_ = rygel_media_export_sql_factory_make (_tmp134_, RYGEL_MEDIA_EXPORT_SQL_STRING_SAVE_METADATA);
- _tmp136_ = values;
- _tmp136__length1 = values_length1;
- rygel_media_export_database_exec (_tmp133_, _tmp135_, _tmp136_, _tmp136__length1, &_inner_error_);
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- return;
- }
- values = (_vala_GValue_array_free (values, values_length1), NULL);
+ RygelMediaItem* _tmp0_;
+ gint64 _tmp1_;
+ gint64 _tmp2_;
+ GValue _tmp3_ = {0};
+ RygelMediaItem* _tmp4_;
+ const gchar* _tmp5_;
+ const gchar* _tmp6_;
+ GValue _tmp7_ = {0};
+ GValue _tmp8_ = {0};
+ GValue _tmp9_ = {0};
+ RygelMediaItem* _tmp10_;
+ const gchar* _tmp11_;
+ const gchar* _tmp12_;
+ GValue _tmp13_ = {0};
+ GValue _tmp14_ = {0};
+ GValue _tmp15_ = {0};
+ RygelMediaItem* _tmp16_;
+ const gchar* _tmp17_;
+ const gchar* _tmp18_;
+ GValue _tmp19_ = {0};
+ GValue _tmp20_ = {0};
+ GValue _tmp21_ = {0};
+ GValue _tmp22_ = {0};
+ GValue _tmp23_ = {0};
+ GValue _tmp24_ = {0};
+ GValue _tmp25_ = {0};
+ GValue _tmp26_ = {0};
+ RygelMediaItem* _tmp27_;
+ const gchar* _tmp28_;
+ const gchar* _tmp29_;
+ GValue _tmp30_ = {0};
+ RygelMediaItem* _tmp31_;
+ const gchar* _tmp32_;
+ const gchar* _tmp33_;
+ GValue _tmp34_ = {0};
+ GValue _tmp35_ = {0};
+ GValue _tmp36_ = {0};
+ GValue* _tmp37_ = NULL;
+ GValue* values;
+ gint values_length1;
+ RygelMediaItem* _tmp38_;
+ RygelMediaItem* _tmp103_;
+ RygelMediaExportDatabase* _tmp133_;
+ RygelMediaExportSQLFactory* _tmp134_;
+ const gchar* _tmp135_ = NULL;
+ GValue* _tmp136_;
+ gint _tmp136__length1;
+ GError * inner_error = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (item != NULL);
+ _tmp0_ = item;
+ _tmp1_ = rygel_media_item_get_size (_tmp0_);
+ _tmp2_ = _tmp1_;
+ g_value_init (&_tmp3_, G_TYPE_INT64);
+ g_value_set_int64 (&_tmp3_, _tmp2_);
+ _tmp4_ = item;
+ _tmp5_ = rygel_media_item_get_mime_type (_tmp4_);
+ _tmp6_ = _tmp5_;
+ g_value_init (&_tmp7_, G_TYPE_STRING);
+ g_value_set_string (&_tmp7_, _tmp6_);
+ g_value_init (&_tmp8_, G_TYPE_INT);
+ g_value_set_int (&_tmp8_, -1);
+ g_value_init (&_tmp9_, G_TYPE_INT);
+ g_value_set_int (&_tmp9_, -1);
+ _tmp10_ = item;
+ _tmp11_ = rygel_media_object_get_upnp_class ((RygelMediaObject*) _tmp10_);
+ _tmp12_ = _tmp11_;
+ g_value_init (&_tmp13_, G_TYPE_STRING);
+ g_value_set_string (&_tmp13_, _tmp12_);
+ rygel_media_export_database_null (&_tmp14_);
+ rygel_media_export_database_null (&_tmp15_);
+ _tmp16_ = item;
+ _tmp17_ = rygel_media_item_get_date (_tmp16_);
+ _tmp18_ = _tmp17_;
+ g_value_init (&_tmp19_, G_TYPE_STRING);
+ g_value_set_string (&_tmp19_, _tmp18_);
+ g_value_init (&_tmp20_, G_TYPE_INT);
+ g_value_set_int (&_tmp20_, -1);
+ g_value_init (&_tmp21_, G_TYPE_INT);
+ g_value_set_int (&_tmp21_, -1);
+ g_value_init (&_tmp22_, G_TYPE_INT);
+ g_value_set_int (&_tmp22_, -1);
+ g_value_init (&_tmp23_, G_TYPE_INT);
+ g_value_set_int (&_tmp23_, -1);
+ g_value_init (&_tmp24_, G_TYPE_INT);
+ g_value_set_int (&_tmp24_, -1);
+ g_value_init (&_tmp25_, G_TYPE_INT);
+ g_value_set_int (&_tmp25_, -1);
+ g_value_init (&_tmp26_, G_TYPE_INT);
+ g_value_set_int (&_tmp26_, -1);
+ _tmp27_ = item;
+ _tmp28_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp27_);
+ _tmp29_ = _tmp28_;
+ g_value_init (&_tmp30_, G_TYPE_STRING);
+ g_value_set_string (&_tmp30_, _tmp29_);
+ _tmp31_ = item;
+ _tmp32_ = rygel_media_item_get_dlna_profile (_tmp31_);
+ _tmp33_ = _tmp32_;
+ g_value_init (&_tmp34_, G_TYPE_STRING);
+ g_value_set_string (&_tmp34_, _tmp33_);
+ rygel_media_export_database_null (&_tmp35_);
+ g_value_init (&_tmp36_, G_TYPE_INT);
+ g_value_set_int (&_tmp36_, -1);
+ _tmp37_ = g_new0 (GValue, 19);
+ _tmp37_[0] = _tmp3_;
+ _tmp37_[1] = _tmp7_;
+ _tmp37_[2] = _tmp8_;
+ _tmp37_[3] = _tmp9_;
+ _tmp37_[4] = _tmp13_;
+ _tmp37_[5] = _tmp14_;
+ _tmp37_[6] = _tmp15_;
+ _tmp37_[7] = _tmp19_;
+ _tmp37_[8] = _tmp20_;
+ _tmp37_[9] = _tmp21_;
+ _tmp37_[10] = _tmp22_;
+ _tmp37_[11] = _tmp23_;
+ _tmp37_[12] = _tmp24_;
+ _tmp37_[13] = _tmp25_;
+ _tmp37_[14] = _tmp26_;
+ _tmp37_[15] = _tmp30_;
+ _tmp37_[16] = _tmp34_;
+ _tmp37_[17] = _tmp35_;
+ _tmp37_[18] = _tmp36_;
+ values = _tmp37_;
+ values_length1 = 19;
+ _tmp38_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp38_, RYGEL_TYPE_AUDIO_ITEM)) {
+ RygelMediaItem* _tmp39_;
+ RygelAudioItem* _tmp40_;
+ RygelAudioItem* audio_item;
+ GValue* _tmp41_;
+ RygelAudioItem* _tmp42_;
+ glong _tmp43_;
+ glong _tmp44_;
+ GValue _tmp45_ = {0};
+ GValue* _tmp47_;
+ RygelAudioItem* _tmp48_;
+ gint _tmp49_;
+ gint _tmp50_;
+ GValue _tmp51_ = {0};
+ GValue* _tmp53_;
+ RygelAudioItem* _tmp54_;
+ gint _tmp55_;
+ gint _tmp56_;
+ GValue _tmp57_ = {0};
+ GValue* _tmp59_;
+ RygelAudioItem* _tmp60_;
+ gint _tmp61_;
+ gint _tmp62_;
+ GValue _tmp63_ = {0};
+ GValue* _tmp65_;
+ RygelAudioItem* _tmp66_;
+ gint _tmp67_;
+ gint _tmp68_;
+ GValue _tmp69_ = {0};
+ RygelMediaItem* _tmp71_;
+ _tmp39_ = item;
+ _tmp40_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp39_, RYGEL_TYPE_AUDIO_ITEM) ? ((RygelAudioItem*) _tmp39_) : NULL);
+ audio_item = _tmp40_;
+ _tmp41_ = values;
+ _tmp42_ = audio_item;
+ _tmp43_ = rygel_audio_item_get_duration (_tmp42_);
+ _tmp44_ = _tmp43_;
+ g_value_init (&_tmp45_, G_TYPE_LONG);
+ g_value_set_long (&_tmp45_, _tmp44_);
+ G_IS_VALUE (&_tmp41_[14]) ? (g_value_unset (&_tmp41_[14]), NULL) : NULL;
+ _tmp41_[14] = _tmp45_;
+ _tmp47_ = values;
+ _tmp48_ = audio_item;
+ _tmp49_ = rygel_audio_item_get_bitrate (_tmp48_);
+ _tmp50_ = _tmp49_;
+ g_value_init (&_tmp51_, G_TYPE_INT);
+ g_value_set_int (&_tmp51_, _tmp50_);
+ G_IS_VALUE (&_tmp47_[8]) ? (g_value_unset (&_tmp47_[8]), NULL) : NULL;
+ _tmp47_[8] = _tmp51_;
+ _tmp53_ = values;
+ _tmp54_ = audio_item;
+ _tmp55_ = rygel_audio_item_get_sample_freq (_tmp54_);
+ _tmp56_ = _tmp55_;
+ g_value_init (&_tmp57_, G_TYPE_INT);
+ g_value_set_int (&_tmp57_, _tmp56_);
+ G_IS_VALUE (&_tmp53_[9]) ? (g_value_unset (&_tmp53_[9]), NULL) : NULL;
+ _tmp53_[9] = _tmp57_;
+ _tmp59_ = values;
+ _tmp60_ = audio_item;
+ _tmp61_ = rygel_audio_item_get_bits_per_sample (_tmp60_);
+ _tmp62_ = _tmp61_;
+ g_value_init (&_tmp63_, G_TYPE_INT);
+ g_value_set_int (&_tmp63_, _tmp62_);
+ G_IS_VALUE (&_tmp59_[10]) ? (g_value_unset (&_tmp59_[10]), NULL) : NULL;
+ _tmp59_[10] = _tmp63_;
+ _tmp65_ = values;
+ _tmp66_ = audio_item;
+ _tmp67_ = rygel_audio_item_get_channels (_tmp66_);
+ _tmp68_ = _tmp67_;
+ g_value_init (&_tmp69_, G_TYPE_INT);
+ g_value_set_int (&_tmp69_, _tmp68_);
+ G_IS_VALUE (&_tmp65_[11]) ? (g_value_unset (&_tmp65_[11]), NULL) : NULL;
+ _tmp65_[11] = _tmp69_;
+ _tmp71_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp71_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM)) {
+ RygelMediaItem* _tmp72_;
+ RygelMediaExportMusicItem* _tmp73_;
+ RygelMediaExportMusicItem* music_item;
+ GValue* _tmp74_;
+ RygelMediaExportMusicItem* _tmp75_;
+ const gchar* _tmp76_;
+ const gchar* _tmp77_;
+ GValue _tmp78_ = {0};
+ GValue* _tmp80_;
+ RygelMediaExportMusicItem* _tmp81_;
+ const gchar* _tmp82_;
+ const gchar* _tmp83_;
+ GValue _tmp84_ = {0};
+ GValue* _tmp86_;
+ RygelMediaExportMusicItem* _tmp87_;
+ const gchar* _tmp88_;
+ const gchar* _tmp89_;
+ GValue _tmp90_ = {0};
+ GValue* _tmp92_;
+ RygelMediaExportMusicItem* _tmp93_;
+ gint _tmp94_;
+ gint _tmp95_;
+ GValue _tmp96_ = {0};
+ GValue* _tmp98_;
+ RygelMediaExportMusicItem* _tmp99_;
+ gint _tmp100_;
+ GValue _tmp101_ = {0};
+ _tmp72_ = item;
+ _tmp73_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp72_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM) ? ((RygelMediaExportMusicItem*) _tmp72_) : NULL);
+ music_item = _tmp73_;
+ _tmp74_ = values;
+ _tmp75_ = music_item;
+ _tmp76_ = rygel_music_item_get_artist ((RygelMusicItem*) _tmp75_);
+ _tmp77_ = _tmp76_;
+ g_value_init (&_tmp78_, G_TYPE_STRING);
+ g_value_set_string (&_tmp78_, _tmp77_);
+ G_IS_VALUE (&_tmp74_[5]) ? (g_value_unset (&_tmp74_[5]), NULL) : NULL;
+ _tmp74_[5] = _tmp78_;
+ _tmp80_ = values;
+ _tmp81_ = music_item;
+ _tmp82_ = rygel_music_item_get_album ((RygelMusicItem*) _tmp81_);
+ _tmp83_ = _tmp82_;
+ g_value_init (&_tmp84_, G_TYPE_STRING);
+ g_value_set_string (&_tmp84_, _tmp83_);
+ G_IS_VALUE (&_tmp80_[6]) ? (g_value_unset (&_tmp80_[6]), NULL) : NULL;
+ _tmp80_[6] = _tmp84_;
+ _tmp86_ = values;
+ _tmp87_ = music_item;
+ _tmp88_ = rygel_music_item_get_genre ((RygelMusicItem*) _tmp87_);
+ _tmp89_ = _tmp88_;
+ g_value_init (&_tmp90_, G_TYPE_STRING);
+ g_value_set_string (&_tmp90_, _tmp89_);
+ G_IS_VALUE (&_tmp86_[17]) ? (g_value_unset (&_tmp86_[17]), NULL) : NULL;
+ _tmp86_[17] = _tmp90_;
+ _tmp92_ = values;
+ _tmp93_ = music_item;
+ _tmp94_ = rygel_music_item_get_track_number ((RygelMusicItem*) _tmp93_);
+ _tmp95_ = _tmp94_;
+ g_value_init (&_tmp96_, G_TYPE_INT);
+ g_value_set_int (&_tmp96_, _tmp95_);
+ G_IS_VALUE (&_tmp92_[12]) ? (g_value_unset (&_tmp92_[12]), NULL) : NULL;
+ _tmp92_[12] = _tmp96_;
+ _tmp98_ = values;
+ _tmp99_ = music_item;
+ _tmp100_ = _tmp99_->disc;
+ g_value_init (&_tmp101_, G_TYPE_INT);
+ g_value_set_int (&_tmp101_, _tmp100_);
+ G_IS_VALUE (&_tmp98_[18]) ? (g_value_unset (&_tmp98_[18]), NULL) : NULL;
+ _tmp98_[18] = _tmp101_;
+ g_object_unref (music_item);
+ }
+ g_object_unref (audio_item);
+ }
+ _tmp103_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp103_, RYGEL_TYPE_VISUAL_ITEM)) {
+ RygelMediaItem* _tmp104_;
+ RygelVisualItem* _tmp105_;
+ RygelVisualItem* visual_item;
+ GValue* _tmp106_;
+ RygelVisualItem* _tmp107_;
+ gint _tmp108_;
+ gint _tmp109_;
+ GValue _tmp110_ = {0};
+ GValue* _tmp112_;
+ RygelVisualItem* _tmp113_;
+ gint _tmp114_;
+ gint _tmp115_;
+ GValue _tmp116_ = {0};
+ GValue* _tmp118_;
+ RygelVisualItem* _tmp119_;
+ gint _tmp120_;
+ gint _tmp121_;
+ GValue _tmp122_ = {0};
+ RygelMediaItem* _tmp124_;
+ _tmp104_ = item;
+ _tmp105_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp104_, RYGEL_TYPE_VISUAL_ITEM) ? ((RygelVisualItem*) _tmp104_) : NULL);
+ visual_item = _tmp105_;
+ _tmp106_ = values;
+ _tmp107_ = visual_item;
+ _tmp108_ = rygel_visual_item_get_width (_tmp107_);
+ _tmp109_ = _tmp108_;
+ g_value_init (&_tmp110_, G_TYPE_INT);
+ g_value_set_int (&_tmp110_, _tmp109_);
+ G_IS_VALUE (&_tmp106_[2]) ? (g_value_unset (&_tmp106_[2]), NULL) : NULL;
+ _tmp106_[2] = _tmp110_;
+ _tmp112_ = values;
+ _tmp113_ = visual_item;
+ _tmp114_ = rygel_visual_item_get_height (_tmp113_);
+ _tmp115_ = _tmp114_;
+ g_value_init (&_tmp116_, G_TYPE_INT);
+ g_value_set_int (&_tmp116_, _tmp115_);
+ G_IS_VALUE (&_tmp112_[3]) ? (g_value_unset (&_tmp112_[3]), NULL) : NULL;
+ _tmp112_[3] = _tmp116_;
+ _tmp118_ = values;
+ _tmp119_ = visual_item;
+ _tmp120_ = rygel_visual_item_get_color_depth (_tmp119_);
+ _tmp121_ = _tmp120_;
+ g_value_init (&_tmp122_, G_TYPE_INT);
+ g_value_set_int (&_tmp122_, _tmp121_);
+ G_IS_VALUE (&_tmp118_[13]) ? (g_value_unset (&_tmp118_[13]), NULL) : NULL;
+ _tmp118_[13] = _tmp122_;
+ _tmp124_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp124_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM)) {
+ RygelMediaItem* _tmp125_;
+ RygelMediaExportVideoItem* _tmp126_;
+ RygelMediaExportVideoItem* video_item;
+ GValue* _tmp127_;
+ RygelMediaExportVideoItem* _tmp128_;
+ const gchar* _tmp129_;
+ const gchar* _tmp130_;
+ GValue _tmp131_ = {0};
+ _tmp125_ = item;
+ _tmp126_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp125_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM) ? ((RygelMediaExportVideoItem*) _tmp125_) : NULL);
+ video_item = _tmp126_;
+ _tmp127_ = values;
+ _tmp128_ = video_item;
+ _tmp129_ = rygel_video_item_get_author ((RygelVideoItem*) _tmp128_);
+ _tmp130_ = _tmp129_;
+ g_value_init (&_tmp131_, G_TYPE_STRING);
+ g_value_set_string (&_tmp131_, _tmp130_);
+ G_IS_VALUE (&_tmp127_[5]) ? (g_value_unset (&_tmp127_[5]), NULL) : NULL;
+ _tmp127_[5] = _tmp131_;
+ g_object_unref (video_item);
+ }
+ g_object_unref (visual_item);
+ }
+ _tmp133_ = self->priv->db;
+ _tmp134_ = self->priv->sql;
+ _tmp135_ = rygel_media_export_sql_factory_make (_tmp134_, RYGEL_MEDIA_EXPORT_SQL_STRING_SAVE_METADATA);
+ _tmp136_ = values;
+ _tmp136__length1 = values_length1;
+ rygel_media_export_database_exec (_tmp133_, _tmp135_, _tmp136_, _tmp136__length1, &inner_error);
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ values = (_vala_GValue_array_free (values, values_length1), NULL);
+ return;
+ }
+ values = (_vala_GValue_array_free (values, values_length1), NULL);
}
static void rygel_media_export_media_cache_create_object (RygelMediaExportMediaCache* self, RygelMediaObject* item, GError** error) {
- gint type;
- GValue parent = {0};
- RygelMediaObject* _tmp0_;
- RygelMediaObject* _tmp1_;
- RygelMediaContainer* _tmp2_;
- gchar* _tmp9_ = NULL;
- RygelMediaObject* _tmp10_;
- GeeArrayList* _tmp11_;
- gint _tmp12_;
- gint _tmp13_;
- RygelMediaObject* _tmp17_;
- const gchar* _tmp18_;
- const gchar* _tmp19_;
- GValue _tmp20_ = {0};
- RygelMediaObject* _tmp21_;
- const gchar* _tmp22_;
- const gchar* _tmp23_;
- GValue _tmp24_ = {0};
- gint _tmp25_;
- GValue _tmp26_ = {0};
- GValue _tmp27_;
- GValue _tmp28_ = {0};
- RygelMediaObject* _tmp29_;
- guint64 _tmp30_;
- guint64 _tmp31_;
- GValue _tmp32_ = {0};
- const gchar* _tmp33_;
- GValue _tmp34_ = {0};
- GValue* _tmp35_ = NULL;
- GValue* values;
- gint values_length1;
- RygelMediaExportDatabase* _tmp36_;
- RygelMediaExportSQLFactory* _tmp37_;
- const gchar* _tmp38_ = NULL;
- GError * _inner_error_ = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (item != NULL);
- type = (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER;
- _tmp0_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, RYGEL_TYPE_MEDIA_ITEM)) {
- type = (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_ITEM;
- }
- _tmp1_ = item;
- _tmp2_ = rygel_media_object_get_parent (_tmp1_);
- if (_tmp2_ == NULL) {
- GValue _tmp3_ = {0};
- rygel_media_export_database_null (&_tmp3_);
- G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
- parent = _tmp3_;
- } else {
- RygelMediaObject* _tmp4_;
- RygelMediaContainer* _tmp5_;
- const gchar* _tmp6_;
- const gchar* _tmp7_;
- GValue _tmp8_ = {0};
- _tmp4_ = item;
- _tmp5_ = rygel_media_object_get_parent (_tmp4_);
- _tmp6_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp5_);
- _tmp7_ = _tmp6_;
- g_value_init (&_tmp8_, G_TYPE_STRING);
- g_value_set_string (&_tmp8_, _tmp7_);
- G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
- parent = _tmp8_;
- }
- _tmp10_ = item;
- _tmp11_ = _tmp10_->uris;
- _tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
- _tmp13_ = _tmp12_;
- if (_tmp13_ == 0) {
- g_free (_tmp9_);
- _tmp9_ = NULL;
- } else {
- RygelMediaObject* _tmp14_;
- GeeArrayList* _tmp15_;
- gpointer _tmp16_ = NULL;
- _tmp14_ = item;
- _tmp15_ = _tmp14_->uris;
- _tmp16_ = gee_abstract_list_get ((GeeAbstractList*) _tmp15_, 0);
- g_free (_tmp9_);
- _tmp9_ = (gchar*) _tmp16_;
- }
- _tmp17_ = item;
- _tmp18_ = rygel_media_object_get_id (_tmp17_);
- _tmp19_ = _tmp18_;
- g_value_init (&_tmp20_, G_TYPE_STRING);
- g_value_set_string (&_tmp20_, _tmp19_);
- _tmp21_ = item;
- _tmp22_ = rygel_media_object_get_title (_tmp21_);
- _tmp23_ = _tmp22_;
- g_value_init (&_tmp24_, G_TYPE_STRING);
- g_value_set_string (&_tmp24_, _tmp23_);
- _tmp25_ = type;
- g_value_init (&_tmp26_, G_TYPE_INT);
- g_value_set_int (&_tmp26_, _tmp25_);
- _tmp27_ = parent;
- if (G_IS_VALUE (&_tmp27_)) {
- g_value_init (&_tmp28_, G_VALUE_TYPE (&_tmp27_));
- g_value_copy (&_tmp27_, &_tmp28_);
- } else {
- _tmp28_ = _tmp27_;
- }
- _tmp29_ = item;
- _tmp30_ = rygel_media_object_get_modified (_tmp29_);
- _tmp31_ = _tmp30_;
- g_value_init (&_tmp32_, G_TYPE_UINT64);
- g_value_set_uint64 (&_tmp32_, _tmp31_);
- _tmp33_ = _tmp9_;
- g_value_init (&_tmp34_, G_TYPE_STRING);
- g_value_set_string (&_tmp34_, _tmp33_);
- _tmp35_ = g_new0 (GValue, 6);
- _tmp35_[0] = _tmp20_;
- _tmp35_[1] = _tmp24_;
- _tmp35_[2] = _tmp26_;
- _tmp35_[3] = _tmp28_;
- _tmp35_[4] = _tmp32_;
- _tmp35_[5] = _tmp34_;
- values = _tmp35_;
- values_length1 = 6;
- _tmp36_ = self->priv->db;
- _tmp37_ = self->priv->sql;
- _tmp38_ = rygel_media_export_sql_factory_make (_tmp37_, RYGEL_MEDIA_EXPORT_SQL_STRING_INSERT);
- rygel_media_export_database_exec (_tmp36_, _tmp38_, values, values_length1, &_inner_error_);
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (_tmp9_);
- G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
- return;
- }
- values = (_vala_GValue_array_free (values, values_length1), NULL);
- g_free (_tmp9_);
- G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
+ gint type;
+ GValue parent = {0};
+ RygelMediaObject* _tmp0_;
+ RygelMediaObject* _tmp1_;
+ RygelMediaContainer* _tmp2_;
+ gchar* _tmp9_ = NULL;
+ RygelMediaObject* _tmp10_;
+ GeeArrayList* _tmp11_;
+ gint _tmp12_;
+ gint _tmp13_;
+ RygelMediaObject* _tmp17_;
+ const gchar* _tmp18_;
+ const gchar* _tmp19_;
+ GValue _tmp20_ = {0};
+ RygelMediaObject* _tmp21_;
+ const gchar* _tmp22_;
+ const gchar* _tmp23_;
+ GValue _tmp24_ = {0};
+ gint _tmp25_;
+ GValue _tmp26_ = {0};
+ GValue _tmp27_;
+ GValue _tmp28_ = {0};
+ RygelMediaObject* _tmp29_;
+ guint64 _tmp30_;
+ guint64 _tmp31_;
+ GValue _tmp32_ = {0};
+ const gchar* _tmp33_;
+ GValue _tmp34_ = {0};
+ GValue* _tmp35_ = NULL;
+ GValue* values;
+ gint values_length1;
+ RygelMediaExportDatabase* _tmp36_;
+ RygelMediaExportSQLFactory* _tmp37_;
+ const gchar* _tmp38_ = NULL;
+ GError * inner_error = NULL;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (item != NULL);
+ type = (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER;
+ _tmp0_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, RYGEL_TYPE_MEDIA_ITEM)) {
+ type = (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_ITEM;
+ }
+ _tmp1_ = item;
+ _tmp2_ = rygel_media_object_get_parent (_tmp1_);
+ if (_tmp2_ == NULL) {
+ GValue _tmp3_ = {0};
+ rygel_media_export_database_null (&_tmp3_);
+ G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
+ parent = _tmp3_;
+ } else {
+ RygelMediaObject* _tmp4_;
+ RygelMediaContainer* _tmp5_;
+ const gchar* _tmp6_;
+ const gchar* _tmp7_;
+ GValue _tmp8_ = {0};
+ _tmp4_ = item;
+ _tmp5_ = rygel_media_object_get_parent (_tmp4_);
+ _tmp6_ = rygel_media_object_get_id ((RygelMediaObject*) _tmp5_);
+ _tmp7_ = _tmp6_;
+ g_value_init (&_tmp8_, G_TYPE_STRING);
+ g_value_set_string (&_tmp8_, _tmp7_);
+ G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
+ parent = _tmp8_;
+ }
+ _tmp10_ = item;
+ _tmp11_ = _tmp10_->uris;
+ _tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
+ _tmp13_ = _tmp12_;
+ if (_tmp13_ == 0) {
+ g_free (_tmp9_);
+ _tmp9_ = NULL;
+ } else {
+ RygelMediaObject* _tmp14_;
+ GeeArrayList* _tmp15_;
+ gpointer _tmp16_ = NULL;
+ _tmp14_ = item;
+ _tmp15_ = _tmp14_->uris;
+ _tmp16_ = gee_abstract_list_get ((GeeAbstractList*) _tmp15_, 0);
+ g_free (_tmp9_);
+ _tmp9_ = (gchar*) _tmp16_;
+ }
+ _tmp17_ = item;
+ _tmp18_ = rygel_media_object_get_id (_tmp17_);
+ _tmp19_ = _tmp18_;
+ g_value_init (&_tmp20_, G_TYPE_STRING);
+ g_value_set_string (&_tmp20_, _tmp19_);
+ _tmp21_ = item;
+ _tmp22_ = rygel_media_object_get_title (_tmp21_);
+ _tmp23_ = _tmp22_;
+ g_value_init (&_tmp24_, G_TYPE_STRING);
+ g_value_set_string (&_tmp24_, _tmp23_);
+ _tmp25_ = type;
+ g_value_init (&_tmp26_, G_TYPE_INT);
+ g_value_set_int (&_tmp26_, _tmp25_);
+ _tmp27_ = parent;
+ if (G_IS_VALUE (&_tmp27_)) {
+ g_value_init (&_tmp28_, G_VALUE_TYPE (&_tmp27_));
+ g_value_copy (&_tmp27_, &_tmp28_);
+ } else {
+ _tmp28_ = _tmp27_;
+ }
+ _tmp29_ = item;
+ _tmp30_ = rygel_media_object_get_modified (_tmp29_);
+ _tmp31_ = _tmp30_;
+ g_value_init (&_tmp32_, G_TYPE_UINT64);
+ g_value_set_uint64 (&_tmp32_, _tmp31_);
+ _tmp33_ = _tmp9_;
+ g_value_init (&_tmp34_, G_TYPE_STRING);
+ g_value_set_string (&_tmp34_, _tmp33_);
+ _tmp35_ = g_new0 (GValue, 6);
+ _tmp35_[0] = _tmp20_;
+ _tmp35_[1] = _tmp24_;
+ _tmp35_[2] = _tmp26_;
+ _tmp35_[3] = _tmp28_;
+ _tmp35_[4] = _tmp32_;
+ _tmp35_[5] = _tmp34_;
+ values = _tmp35_;
+ values_length1 = 6;
+ _tmp36_ = self->priv->db;
+ _tmp37_ = self->priv->sql;
+ _tmp38_ = rygel_media_export_sql_factory_make (_tmp37_, RYGEL_MEDIA_EXPORT_SQL_STRING_INSERT);
+ rygel_media_export_database_exec (_tmp36_, _tmp38_, values, values_length1, &inner_error);
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ values = (_vala_GValue_array_free (values, values_length1), NULL);
+ g_free (_tmp9_);
+ G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
+ return;
+ }
+ values = (_vala_GValue_array_free (values, values_length1), NULL);
+ g_free (_tmp9_);
+ G_IS_VALUE (&parent) ? (g_value_unset (&parent), NULL) : NULL;
}
/**
- * Create the current schema.
- *
- * If schema creation fails, schema will be rolled back
- * completely.
- *
- * @returns: true on success, false on failure
- */
+ * Create the current schema.
+ *
+ * If schema creation fails, schema will be rolled back
+ * completely.
+ *
+ * @returns: true on success, false on failure
+ */
static gboolean rygel_media_export_media_cache_create_schema (RygelMediaExportMediaCache* self) {
- gboolean result = FALSE;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, FALSE);
- {
- RygelMediaExportDatabase* _tmp0_;
- RygelMediaExportDatabase* _tmp1_;
- RygelMediaExportSQLFactory* _tmp2_;
- const gchar* _tmp3_ = NULL;
- RygelMediaExportDatabase* _tmp4_;
- RygelMediaExportSQLFactory* _tmp5_;
- const gchar* _tmp6_ = NULL;
- RygelMediaExportDatabase* _tmp7_;
- RygelMediaExportSQLFactory* _tmp8_;
- const gchar* _tmp9_ = NULL;
- RygelMediaExportDatabase* _tmp10_;
- RygelMediaExportSQLFactory* _tmp11_;
- const gchar* _tmp12_ = NULL;
- RygelMediaExportDatabase* _tmp13_;
- RygelMediaExportSQLFactory* _tmp14_;
- const gchar* _tmp15_ = NULL;
- RygelMediaExportDatabase* _tmp16_;
- RygelMediaExportDatabase* _tmp17_;
- _tmp0_ = self->priv->db;
- rygel_media_export_database_begin (_tmp0_, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp1_ = self->priv->db;
- _tmp2_ = self->priv->sql;
- _tmp3_ = rygel_media_export_sql_factory_make (_tmp2_, RYGEL_MEDIA_EXPORT_SQL_STRING_SCHEMA);
- rygel_media_export_database_exec (_tmp1_, _tmp3_, NULL, 0, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp4_ = self->priv->db;
- _tmp5_ = self->priv->sql;
- _tmp6_ = rygel_media_export_sql_factory_make (_tmp5_, RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_COMMON);
- rygel_media_export_database_exec (_tmp4_, _tmp6_, NULL, 0, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp7_ = self->priv->db;
- _tmp8_ = self->priv->sql;
- _tmp9_ = rygel_media_export_sql_factory_make (_tmp8_, RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_CLOSURE);
- rygel_media_export_database_exec (_tmp7_, _tmp9_, NULL, 0, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp10_ = self->priv->db;
- _tmp11_ = self->priv->sql;
- _tmp12_ = rygel_media_export_sql_factory_make (_tmp11_, RYGEL_MEDIA_EXPORT_SQL_STRING_INDEX_COMMON);
- rygel_media_export_database_exec (_tmp10_, _tmp12_, NULL, 0, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp13_ = self->priv->db;
- _tmp14_ = self->priv->sql;
- _tmp15_ = rygel_media_export_sql_factory_make (_tmp14_, RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_CLOSURE);
- rygel_media_export_database_exec (_tmp13_, _tmp15_, NULL, 0, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp16_ = self->priv->db;
- rygel_media_export_database_commit (_tmp16_, &_inner_error_);
- if (_inner_error_ != NULL) {
- goto __catch10_g_error;
- }
- _tmp17_ = self->priv->db;
- rygel_media_export_database_analyze (_tmp17_);
- result = TRUE;
- return result;
- }
- goto __finally10;
- __catch10_g_error:
- {
- GError* err = NULL;
- GError* _tmp18_;
- const gchar* _tmp19_;
- RygelMediaExportDatabase* _tmp20_;
- err = _inner_error_;
- _inner_error_ = NULL;
- _tmp18_ = err;
- _tmp19_ = _tmp18_->message;
- g_warning ("rygel-media-export-media-cache.vala:597: Failed to create schema: %s", _tmp19_);
- _tmp20_ = self->priv->db;
- rygel_media_export_database_rollback (_tmp20_);
- g_error_free (err);
- }
- __finally10:
- if (_inner_error_ != NULL) {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return FALSE;
- }
- result = FALSE;
- return result;
+ gboolean result = FALSE;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, FALSE);
+ {
+ RygelMediaExportDatabase* _tmp0_;
+ RygelMediaExportDatabase* _tmp1_;
+ RygelMediaExportSQLFactory* _tmp2_;
+ const gchar* _tmp3_ = NULL;
+ RygelMediaExportDatabase* _tmp4_;
+ RygelMediaExportSQLFactory* _tmp5_;
+ const gchar* _tmp6_ = NULL;
+ RygelMediaExportDatabase* _tmp7_;
+ RygelMediaExportSQLFactory* _tmp8_;
+ const gchar* _tmp9_ = NULL;
+ RygelMediaExportDatabase* _tmp10_;
+ RygelMediaExportSQLFactory* _tmp11_;
+ const gchar* _tmp12_ = NULL;
+ RygelMediaExportDatabase* _tmp13_;
+ RygelMediaExportSQLFactory* _tmp14_;
+ const gchar* _tmp15_ = NULL;
+ RygelMediaExportDatabase* _tmp16_;
+ RygelMediaExportDatabase* _tmp17_;
+ _tmp0_ = self->priv->db;
+ rygel_media_export_database_begin (_tmp0_, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp1_ = self->priv->db;
+ _tmp2_ = self->priv->sql;
+ _tmp3_ = rygel_media_export_sql_factory_make (_tmp2_, RYGEL_MEDIA_EXPORT_SQL_STRING_SCHEMA);
+ rygel_media_export_database_exec (_tmp1_, _tmp3_, NULL, 0, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp4_ = self->priv->db;
+ _tmp5_ = self->priv->sql;
+ _tmp6_ = rygel_media_export_sql_factory_make (_tmp5_, RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_COMMON);
+ rygel_media_export_database_exec (_tmp4_, _tmp6_, NULL, 0, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp7_ = self->priv->db;
+ _tmp8_ = self->priv->sql;
+ _tmp9_ = rygel_media_export_sql_factory_make (_tmp8_, RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_CLOSURE);
+ rygel_media_export_database_exec (_tmp7_, _tmp9_, NULL, 0, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp10_ = self->priv->db;
+ _tmp11_ = self->priv->sql;
+ _tmp12_ = rygel_media_export_sql_factory_make (_tmp11_, RYGEL_MEDIA_EXPORT_SQL_STRING_INDEX_COMMON);
+ rygel_media_export_database_exec (_tmp10_, _tmp12_, NULL, 0, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp13_ = self->priv->db;
+ _tmp14_ = self->priv->sql;
+ _tmp15_ = rygel_media_export_sql_factory_make (_tmp14_, RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_CLOSURE);
+ rygel_media_export_database_exec (_tmp13_, _tmp15_, NULL, 0, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp16_ = self->priv->db;
+ rygel_media_export_database_commit (_tmp16_, &inner_error);
+ if (inner_error != NULL) {
+ goto __catch10_g_error;
+ }
+ _tmp17_ = self->priv->db;
+ rygel_media_export_database_analyze (_tmp17_);
+ result = TRUE;
+ return result;
+ }
+ goto __finally10;
+ __catch10_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp18_;
+ const gchar* _tmp19_;
+ RygelMediaExportDatabase* _tmp20_;
+ err = inner_error;
+ inner_error = NULL;
+ _tmp18_ = err;
+ _tmp19_ = _tmp18_->message;
+ g_warning ("rygel-media-export-media-cache.vala:597: Failed to create schema: %s", _tmp19_);
+ _tmp20_ = self->priv->db;
+ rygel_media_export_database_rollback (_tmp20_);
+ g_error_free (err);
+ }
+ __finally10:
+ if (inner_error != NULL) {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, inner_error->message, g_quark_to_string (inner_error->domain), inner_error->code);
+ g_clear_error (&inner_error);
+ return FALSE;
+ }
+ result = FALSE;
+ return result;
}
static RygelMediaObject* rygel_media_export_media_cache_get_object_from_statement (RygelMediaExportMediaCache* self, RygelMediaContainer* parent, sqlite3_stmt* statement) {
- RygelMediaObject* result = NULL;
- RygelMediaObject* object;
- sqlite3_stmt* _tmp0_;
- const gchar* _tmp1_ = NULL;
- const gchar* title;
- sqlite3_stmt* _tmp2_;
- const gchar* _tmp3_ = NULL;
- const gchar* object_id;
- sqlite3_stmt* _tmp4_;
- const gchar* _tmp5_ = NULL;
- const gchar* uri;
- sqlite3_stmt* _tmp6_;
- gint _tmp7_ = 0;
- RygelMediaObject* _tmp32_;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (statement != NULL, NULL);
- object = NULL;
- _tmp0_ = statement;
- _tmp1_ = (const gchar *) sqlite3_column_text (_tmp0_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TITLE);
- title = _tmp1_;
- _tmp2_ = statement;
- _tmp3_ = (const gchar *) sqlite3_column_text (_tmp2_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ID);
- object_id = _tmp3_;
- _tmp4_ = statement;
- _tmp5_ = (const gchar *) sqlite3_column_text (_tmp4_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_URI);
- uri = _tmp5_;
- _tmp6_ = statement;
- _tmp7_ = sqlite3_column_int (_tmp6_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TYPE);
- switch (_tmp7_) {
- case 0:
- {
- RygelMediaExportObjectFactory* _tmp8_;
- const gchar* _tmp9_;
- const gchar* _tmp10_;
- const gchar* _tmp11_;
- RygelMediaExportDBContainer* _tmp12_ = NULL;
- RygelMediaObject* _tmp13_;
- RygelMediaContainer* _tmp14_;
- RygelMediaContainer* container;
- const gchar* _tmp15_;
- _tmp8_ = self->priv->factory;
- _tmp9_ = object_id;
- _tmp10_ = title;
- _tmp11_ = uri;
- _tmp12_ = rygel_media_export_object_factory_get_container (_tmp8_, self, _tmp9_, _tmp10_, (guint) 0, _tmp11_);
- g_object_unref (object);
- object = (RygelMediaObject*) _tmp12_;
- _tmp13_ = object;
- _tmp14_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, RYGEL_TYPE_MEDIA_CONTAINER) ? ((RygelMediaContainer*) _tmp13_) : NULL);
- container = _tmp14_;
- _tmp15_ = uri;
- if (_tmp15_ != NULL) {
- RygelMediaContainer* _tmp16_;
- GeeArrayList* _tmp17_;
- const gchar* _tmp18_;
- _tmp16_ = container;
- _tmp17_ = ((RygelMediaObject*) _tmp16_)->uris;
- _tmp18_ = uri;
- gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, _tmp18_);
- }
- g_object_unref (container);
- break;
- }
- case 1:
- {
- sqlite3_stmt* _tmp19_;
- const gchar* _tmp20_ = NULL;
- const gchar* upnp_class;
- RygelMediaExportObjectFactory* _tmp21_;
- RygelMediaContainer* _tmp22_;
- const gchar* _tmp23_;
- const gchar* _tmp24_;
- const gchar* _tmp25_;
- RygelMediaItem* _tmp26_ = NULL;
- sqlite3_stmt* _tmp27_;
- RygelMediaObject* _tmp28_;
- const gchar* _tmp29_;
- _tmp19_ = statement;
- _tmp20_ = (const gchar *) sqlite3_column_text (_tmp19_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CLASS);
- upnp_class = _tmp20_;
- _tmp21_ = self->priv->factory;
- _tmp22_ = parent;
- _tmp23_ = object_id;
- _tmp24_ = title;
- _tmp25_ = upnp_class;
- _tmp26_ = rygel_media_export_object_factory_get_item (_tmp21_, self, _tmp22_, _tmp23_, _tmp24_, _tmp25_);
- g_object_unref (object);
- object = (RygelMediaObject*) _tmp26_;
- _tmp27_ = statement;
- _tmp28_ = object;
- rygel_media_export_media_cache_fill_item (self, _tmp27_, G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, RYGEL_TYPE_MEDIA_ITEM) ? ((RygelMediaItem*) _tmp28_) : NULL);
- _tmp29_ = uri;
- if (_tmp29_ != NULL) {
- RygelMediaObject* _tmp30_;
- const gchar* _tmp31_;
- _tmp30_ = object;
- _tmp31_ = uri;
- rygel_media_item_add_uri (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, RYGEL_TYPE_MEDIA_ITEM) ? ((RygelMediaItem*) _tmp30_) : NULL, _tmp31_);
- }
- break;
- }
- default:
- {
- g_assert_not_reached ();
- }
- }
- _tmp32_ = object;
- if (_tmp32_ != NULL) {
- RygelMediaObject* _tmp33_;
- sqlite3_stmt* _tmp34_;
- gint64 _tmp35_ = 0LL;
- gboolean _tmp36_ = FALSE;
- RygelMediaObject* _tmp37_;
- guint64 _tmp38_;
- guint64 _tmp39_;
- gint64 _tmp40_;
- gboolean _tmp42_;
- _tmp33_ = object;
- _tmp34_ = statement;
- _tmp35_ = sqlite3_column_int64 (_tmp34_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TIMESTAMP);
- rygel_media_object_set_modified (_tmp33_, (guint64) _tmp35_);
- _tmp37_ = object;
- _tmp38_ = rygel_media_object_get_modified (_tmp37_);
- _tmp39_ = _tmp38_;
- _tmp40_ = G_MAXINT64;
- if (_tmp39_ == ((guint64) _tmp40_)) {
- RygelMediaObject* _tmp41_;
- _tmp41_ = object;
- _tmp36_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp41_, RYGEL_TYPE_MEDIA_ITEM);
- } else {
- _tmp36_ = FALSE;
- }
- _tmp42_ = _tmp36_;
- if (_tmp42_) {
- RygelMediaObject* _tmp43_;
- RygelMediaObject* _tmp44_;
- _tmp43_ = object;
- rygel_media_object_set_modified (_tmp43_, (guint64) 0);
- _tmp44_ = object;
- rygel_media_item_set_place_holder (G_TYPE_CHECK_INSTANCE_TYPE (_tmp44_, RYGEL_TYPE_MEDIA_ITEM) ? ((RygelMediaItem*) _tmp44_) : NULL, TRUE);
- }
- }
- result = object;
- return result;
+ RygelMediaObject* result = NULL;
+ RygelMediaObject* object;
+ sqlite3_stmt* _tmp0_;
+ const gchar* _tmp1_ = NULL;
+ const gchar* title;
+ sqlite3_stmt* _tmp2_;
+ const gchar* _tmp3_ = NULL;
+ const gchar* object_id;
+ sqlite3_stmt* _tmp4_;
+ const gchar* _tmp5_ = NULL;
+ const gchar* uri;
+ sqlite3_stmt* _tmp6_;
+ gint _tmp7_ = 0;
+ RygelMediaObject* _tmp32_;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (statement != NULL, NULL);
+ object = NULL;
+ _tmp0_ = statement;
+ _tmp1_ = (const gchar *) sqlite3_column_text (_tmp0_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TITLE);
+ title = _tmp1_;
+ _tmp2_ = statement;
+ _tmp3_ = (const gchar *) sqlite3_column_text (_tmp2_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ID);
+ object_id = _tmp3_;
+ _tmp4_ = statement;
+ _tmp5_ = (const gchar *) sqlite3_column_text (_tmp4_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_URI);
+ uri = _tmp5_;
+ _tmp6_ = statement;
+ _tmp7_ = sqlite3_column_int (_tmp6_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TYPE);
+ switch (_tmp7_) {
+ case 0:
+ {
+ RygelMediaExportObjectFactory* _tmp8_;
+ const gchar* _tmp9_;
+ const gchar* _tmp10_;
+ const gchar* _tmp11_;
+ RygelMediaExportDBContainer* _tmp12_ = NULL;
+ RygelMediaObject* _tmp13_;
+ RygelMediaContainer* _tmp14_;
+ RygelMediaContainer* container;
+ const gchar* _tmp15_;
+ _tmp8_ = self->priv->factory;
+ _tmp9_ = object_id;
+ _tmp10_ = title;
+ _tmp11_ = uri;
+ _tmp12_ = rygel_media_export_object_factory_get_container (_tmp8_, self, _tmp9_, _tmp10_, (guint) 0, _tmp11_);
+ g_object_unref (object);
+ object = (RygelMediaObject*) _tmp12_;
+ _tmp13_ = object;
+ _tmp14_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, RYGEL_TYPE_MEDIA_CONTAINER) ? ((RygelMediaContainer*) _tmp13_) : NULL);
+ container = _tmp14_;
+ _tmp15_ = uri;
+ if (_tmp15_ != NULL) {
+ RygelMediaContainer* _tmp16_;
+ GeeArrayList* _tmp17_;
+ const gchar* _tmp18_;
+ _tmp16_ = container;
+ _tmp17_ = ((RygelMediaObject*) _tmp16_)->uris;
+ _tmp18_ = uri;
+ gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, _tmp18_);
+ }
+ g_object_unref (container);
+ break;
+ }
+ case 1:
+ {
+ sqlite3_stmt* _tmp19_;
+ const gchar* _tmp20_ = NULL;
+ const gchar* upnp_class;
+ RygelMediaExportObjectFactory* _tmp21_;
+ RygelMediaContainer* _tmp22_;
+ const gchar* _tmp23_;
+ const gchar* _tmp24_;
+ const gchar* _tmp25_;
+ RygelMediaItem* _tmp26_ = NULL;
+ sqlite3_stmt* _tmp27_;
+ RygelMediaObject* _tmp28_;
+ const gchar* _tmp29_;
+ _tmp19_ = statement;
+ _tmp20_ = (const gchar *) sqlite3_column_text (_tmp19_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CLASS);
+ upnp_class = _tmp20_;
+ _tmp21_ = self->priv->factory;
+ _tmp22_ = parent;
+ _tmp23_ = object_id;
+ _tmp24_ = title;
+ _tmp25_ = upnp_class;
+ _tmp26_ = rygel_media_export_object_factory_get_item (_tmp21_, self, _tmp22_, _tmp23_, _tmp24_, _tmp25_);
+ g_object_unref (object);
+ object = (RygelMediaObject*) _tmp26_;
+ _tmp27_ = statement;
+ _tmp28_ = object;
+ rygel_media_export_media_cache_fill_item (self, _tmp27_, G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, RYGEL_TYPE_MEDIA_ITEM) ? ((RygelMediaItem*) _tmp28_) : NULL);
+ _tmp29_ = uri;
+ if (_tmp29_ != NULL) {
+ RygelMediaObject* _tmp30_;
+ const gchar* _tmp31_;
+ _tmp30_ = object;
+ _tmp31_ = uri;
+ rygel_media_item_add_uri (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, RYGEL_TYPE_MEDIA_ITEM) ? ((RygelMediaItem*) _tmp30_) : NULL, _tmp31_);
+ }
+ break;
+ }
+ default:
+ {
+ g_assert_not_reached ();
+ }
+ }
+ _tmp32_ = object;
+ if (_tmp32_ != NULL) {
+ RygelMediaObject* _tmp33_;
+ sqlite3_stmt* _tmp34_;
+ gint64 _tmp35_ = 0LL;
+ gboolean _tmp36_ = FALSE;
+ RygelMediaObject* _tmp37_;
+ guint64 _tmp38_;
+ guint64 _tmp39_;
+ gint64 _tmp40_;
+ gboolean _tmp42_;
+ _tmp33_ = object;
+ _tmp34_ = statement;
+ _tmp35_ = sqlite3_column_int64 (_tmp34_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TIMESTAMP);
+ rygel_media_object_set_modified (_tmp33_, (guint64) _tmp35_);
+ _tmp37_ = object;
+ _tmp38_ = rygel_media_object_get_modified (_tmp37_);
+ _tmp39_ = _tmp38_;
+ _tmp40_ = G_MAXINT64;
+ if (_tmp39_ == ((guint64) _tmp40_)) {
+ RygelMediaObject* _tmp41_;
+ _tmp41_ = object;
+ _tmp36_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp41_, RYGEL_TYPE_MEDIA_ITEM);
+ } else {
+ _tmp36_ = FALSE;
+ }
+ _tmp42_ = _tmp36_;
+ if (_tmp42_) {
+ RygelMediaObject* _tmp43_;
+ RygelMediaObject* _tmp44_;
+ _tmp43_ = object;
+ rygel_media_object_set_modified (_tmp43_, (guint64) 0);
+ _tmp44_ = object;
+ rygel_media_item_set_place_holder (G_TYPE_CHECK_INSTANCE_TYPE (_tmp44_, RYGEL_TYPE_MEDIA_ITEM) ? ((RygelMediaItem*) _tmp44_) : NULL, TRUE);
+ }
+ }
+ result = object;
+ return result;
}
static void rygel_media_export_media_cache_fill_item (RygelMediaExportMediaCache* self, sqlite3_stmt* statement, RygelMediaItem* item) {
- RygelMediaItem* _tmp0_;
- sqlite3_stmt* _tmp1_;
- const gchar* _tmp2_ = NULL;
- RygelMediaItem* _tmp3_;
- sqlite3_stmt* _tmp4_;
- const gchar* _tmp5_ = NULL;
- RygelMediaItem* _tmp6_;
- sqlite3_stmt* _tmp7_;
- const gchar* _tmp8_ = NULL;
- RygelMediaItem* _tmp9_;
- sqlite3_stmt* _tmp10_;
- gint64 _tmp11_ = 0LL;
- RygelMediaItem* _tmp12_;
- RygelMediaItem* _tmp46_;
- g_return_if_fail (self != NULL);
- g_return_if_fail (statement != NULL);
- g_return_if_fail (item != NULL);
- _tmp0_ = item;
- _tmp1_ = statement;
- _tmp2_ = (const gchar *) sqlite3_column_text (_tmp1_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DATE);
- rygel_media_item_set_date (_tmp0_, _tmp2_);
- _tmp3_ = item;
- _tmp4_ = statement;
- _tmp5_ = (const gchar *) sqlite3_column_text (_tmp4_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_MIME_TYPE);
- rygel_media_item_set_mime_type (_tmp3_, _tmp5_);
- _tmp6_ = item;
- _tmp7_ = statement;
- _tmp8_ = (const gchar *) sqlite3_column_text (_tmp7_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DLNA_PROFILE);
- rygel_media_item_set_dlna_profile (_tmp6_, _tmp8_);
- _tmp9_ = item;
- _tmp10_ = statement;
- _tmp11_ = sqlite3_column_int64 (_tmp10_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_SIZE);
- rygel_media_item_set_size (_tmp9_, _tmp11_);
- _tmp12_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, RYGEL_TYPE_AUDIO_ITEM)) {
- RygelMediaItem* _tmp13_;
- RygelAudioItem* _tmp14_;
- RygelAudioItem* audio_item;
- RygelAudioItem* _tmp15_;
- sqlite3_stmt* _tmp16_;
- gint64 _tmp17_ = 0LL;
- RygelAudioItem* _tmp18_;
- sqlite3_stmt* _tmp19_;
- gint _tmp20_ = 0;
- RygelAudioItem* _tmp21_;
- sqlite3_stmt* _tmp22_;
- gint _tmp23_ = 0;
- RygelAudioItem* _tmp24_;
- sqlite3_stmt* _tmp25_;
- gint _tmp26_ = 0;
- RygelAudioItem* _tmp27_;
- sqlite3_stmt* _tmp28_;
- gint _tmp29_ = 0;
- RygelMediaItem* _tmp30_;
- _tmp13_ = item;
- _tmp14_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, RYGEL_TYPE_AUDIO_ITEM) ? ((RygelAudioItem*) _tmp13_) : NULL);
- audio_item = _tmp14_;
- _tmp15_ = audio_item;
- _tmp16_ = statement;
- _tmp17_ = sqlite3_column_int64 (_tmp16_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DURATION);
- rygel_audio_item_set_duration (_tmp15_, (glong) _tmp17_);
- _tmp18_ = audio_item;
- _tmp19_ = statement;
- _tmp20_ = sqlite3_column_int (_tmp19_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_BITRATE);
- rygel_audio_item_set_bitrate (_tmp18_, _tmp20_);
- _tmp21_ = audio_item;
- _tmp22_ = statement;
- _tmp23_ = sqlite3_column_int (_tmp22_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_SAMPLE_FREQ);
- rygel_audio_item_set_sample_freq (_tmp21_, _tmp23_);
- _tmp24_ = audio_item;
- _tmp25_ = statement;
- _tmp26_ = sqlite3_column_int (_tmp25_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_BITS_PER_SAMPLE);
- rygel_audio_item_set_bits_per_sample (_tmp24_, _tmp26_);
- _tmp27_ = audio_item;
- _tmp28_ = statement;
- _tmp29_ = sqlite3_column_int (_tmp28_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CHANNELS);
- rygel_audio_item_set_channels (_tmp27_, _tmp29_);
- _tmp30_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM)) {
- RygelMediaItem* _tmp31_;
- RygelMediaExportMusicItem* _tmp32_;
- RygelMediaExportMusicItem* music_item;
- RygelMediaExportMusicItem* _tmp33_;
- sqlite3_stmt* _tmp34_;
- const gchar* _tmp35_ = NULL;
- RygelMediaExportMusicItem* _tmp36_;
- sqlite3_stmt* _tmp37_;
- const gchar* _tmp38_ = NULL;
- RygelMediaExportMusicItem* _tmp39_;
- sqlite3_stmt* _tmp40_;
- const gchar* _tmp41_ = NULL;
- RygelMediaExportMusicItem* _tmp42_;
- sqlite3_stmt* _tmp43_;
- gint _tmp44_ = 0;
- RygelMediaExportMusicItem* _tmp45_;
- _tmp31_ = item;
- _tmp32_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp31_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM) ? ((RygelMediaExportMusicItem*) _tmp31_) : NULL);
- music_item = _tmp32_;
- _tmp33_ = music_item;
- _tmp34_ = statement;
- _tmp35_ = (const gchar *) sqlite3_column_text (_tmp34_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_AUTHOR);
- rygel_music_item_set_artist ((RygelMusicItem*) _tmp33_, _tmp35_);
- _tmp36_ = music_item;
- _tmp37_ = statement;
- _tmp38_ = (const gchar *) sqlite3_column_text (_tmp37_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ALBUM);
- rygel_music_item_set_album ((RygelMusicItem*) _tmp36_, _tmp38_);
- _tmp39_ = music_item;
- _tmp40_ = statement;
- _tmp41_ = (const gchar *) sqlite3_column_text (_tmp40_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_GENRE);
- rygel_music_item_set_genre ((RygelMusicItem*) _tmp39_, _tmp41_);
- _tmp42_ = music_item;
- _tmp43_ = statement;
- _tmp44_ = sqlite3_column_int (_tmp43_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TRACK);
- rygel_music_item_set_track_number ((RygelMusicItem*) _tmp42_, _tmp44_);
- _tmp45_ = music_item;
- rygel_music_item_lookup_album_art ((RygelMusicItem*) _tmp45_);
- g_object_unref (music_item);
- }
- g_object_unref (audio_item);
- }
- _tmp46_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp46_, RYGEL_TYPE_VISUAL_ITEM)) {
- RygelMediaItem* _tmp47_;
- RygelVisualItem* _tmp48_;
- RygelVisualItem* visual_item;
- RygelVisualItem* _tmp49_;
- sqlite3_stmt* _tmp50_;
- gint _tmp51_ = 0;
- RygelVisualItem* _tmp52_;
- sqlite3_stmt* _tmp53_;
- gint _tmp54_ = 0;
- RygelVisualItem* _tmp55_;
- sqlite3_stmt* _tmp56_;
- gint _tmp57_ = 0;
- RygelMediaItem* _tmp58_;
- _tmp47_ = item;
- _tmp48_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp47_, RYGEL_TYPE_VISUAL_ITEM) ? ((RygelVisualItem*) _tmp47_) : NULL);
- visual_item = _tmp48_;
- _tmp49_ = visual_item;
- _tmp50_ = statement;
- _tmp51_ = sqlite3_column_int (_tmp50_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_WIDTH);
- rygel_visual_item_set_width (_tmp49_, _tmp51_);
- _tmp52_ = visual_item;
- _tmp53_ = statement;
- _tmp54_ = sqlite3_column_int (_tmp53_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_HEIGHT);
- rygel_visual_item_set_height (_tmp52_, _tmp54_);
- _tmp55_ = visual_item;
- _tmp56_ = statement;
- _tmp57_ = sqlite3_column_int (_tmp56_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_COLOR_DEPTH);
- rygel_visual_item_set_color_depth (_tmp55_, _tmp57_);
- _tmp58_ = item;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp58_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM)) {
- RygelMediaItem* _tmp59_;
- RygelMediaExportVideoItem* _tmp60_;
- RygelMediaExportVideoItem* video_item;
- RygelMediaExportVideoItem* _tmp61_;
- sqlite3_stmt* _tmp62_;
- const gchar* _tmp63_ = NULL;
- _tmp59_ = item;
- _tmp60_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp59_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM) ? ((RygelMediaExportVideoItem*) _tmp59_) : NULL);
- video_item = _tmp60_;
- _tmp61_ = video_item;
- _tmp62_ = statement;
- _tmp63_ = (const gchar *) sqlite3_column_text (_tmp62_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_AUTHOR);
- rygel_video_item_set_author ((RygelVideoItem*) _tmp61_, _tmp63_);
- g_object_unref (video_item);
- }
- g_object_unref (visual_item);
- }
+ RygelMediaItem* _tmp0_;
+ sqlite3_stmt* _tmp1_;
+ const gchar* _tmp2_ = NULL;
+ RygelMediaItem* _tmp3_;
+ sqlite3_stmt* _tmp4_;
+ const gchar* _tmp5_ = NULL;
+ RygelMediaItem* _tmp6_;
+ sqlite3_stmt* _tmp7_;
+ const gchar* _tmp8_ = NULL;
+ RygelMediaItem* _tmp9_;
+ sqlite3_stmt* _tmp10_;
+ gint64 _tmp11_ = 0LL;
+ RygelMediaItem* _tmp12_;
+ RygelMediaItem* _tmp46_;
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (statement != NULL);
+ g_return_if_fail (item != NULL);
+ _tmp0_ = item;
+ _tmp1_ = statement;
+ _tmp2_ = (const gchar *) sqlite3_column_text (_tmp1_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DATE);
+ rygel_media_item_set_date (_tmp0_, _tmp2_);
+ _tmp3_ = item;
+ _tmp4_ = statement;
+ _tmp5_ = (const gchar *) sqlite3_column_text (_tmp4_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_MIME_TYPE);
+ rygel_media_item_set_mime_type (_tmp3_, _tmp5_);
+ _tmp6_ = item;
+ _tmp7_ = statement;
+ _tmp8_ = (const gchar *) sqlite3_column_text (_tmp7_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DLNA_PROFILE);
+ rygel_media_item_set_dlna_profile (_tmp6_, _tmp8_);
+ _tmp9_ = item;
+ _tmp10_ = statement;
+ _tmp11_ = sqlite3_column_int64 (_tmp10_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_SIZE);
+ rygel_media_item_set_size (_tmp9_, _tmp11_);
+ _tmp12_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, RYGEL_TYPE_AUDIO_ITEM)) {
+ RygelMediaItem* _tmp13_;
+ RygelAudioItem* _tmp14_;
+ RygelAudioItem* audio_item;
+ RygelAudioItem* _tmp15_;
+ sqlite3_stmt* _tmp16_;
+ gint64 _tmp17_ = 0LL;
+ RygelAudioItem* _tmp18_;
+ sqlite3_stmt* _tmp19_;
+ gint _tmp20_ = 0;
+ RygelAudioItem* _tmp21_;
+ sqlite3_stmt* _tmp22_;
+ gint _tmp23_ = 0;
+ RygelAudioItem* _tmp24_;
+ sqlite3_stmt* _tmp25_;
+ gint _tmp26_ = 0;
+ RygelAudioItem* _tmp27_;
+ sqlite3_stmt* _tmp28_;
+ gint _tmp29_ = 0;
+ RygelMediaItem* _tmp30_;
+ _tmp13_ = item;
+ _tmp14_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, RYGEL_TYPE_AUDIO_ITEM) ? ((RygelAudioItem*) _tmp13_) : NULL);
+ audio_item = _tmp14_;
+ _tmp15_ = audio_item;
+ _tmp16_ = statement;
+ _tmp17_ = sqlite3_column_int64 (_tmp16_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DURATION);
+ rygel_audio_item_set_duration (_tmp15_, (glong) _tmp17_);
+ _tmp18_ = audio_item;
+ _tmp19_ = statement;
+ _tmp20_ = sqlite3_column_int (_tmp19_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_BITRATE);
+ rygel_audio_item_set_bitrate (_tmp18_, _tmp20_);
+ _tmp21_ = audio_item;
+ _tmp22_ = statement;
+ _tmp23_ = sqlite3_column_int (_tmp22_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_SAMPLE_FREQ);
+ rygel_audio_item_set_sample_freq (_tmp21_, _tmp23_);
+ _tmp24_ = audio_item;
+ _tmp25_ = statement;
+ _tmp26_ = sqlite3_column_int (_tmp25_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_BITS_PER_SAMPLE);
+ rygel_audio_item_set_bits_per_sample (_tmp24_, _tmp26_);
+ _tmp27_ = audio_item;
+ _tmp28_ = statement;
+ _tmp29_ = sqlite3_column_int (_tmp28_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CHANNELS);
+ rygel_audio_item_set_channels (_tmp27_, _tmp29_);
+ _tmp30_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM)) {
+ RygelMediaItem* _tmp31_;
+ RygelMediaExportMusicItem* _tmp32_;
+ RygelMediaExportMusicItem* music_item;
+ RygelMediaExportMusicItem* _tmp33_;
+ sqlite3_stmt* _tmp34_;
+ const gchar* _tmp35_ = NULL;
+ RygelMediaExportMusicItem* _tmp36_;
+ sqlite3_stmt* _tmp37_;
+ const gchar* _tmp38_ = NULL;
+ RygelMediaExportMusicItem* _tmp39_;
+ sqlite3_stmt* _tmp40_;
+ const gchar* _tmp41_ = NULL;
+ RygelMediaExportMusicItem* _tmp42_;
+ sqlite3_stmt* _tmp43_;
+ gint _tmp44_ = 0;
+ RygelMediaExportMusicItem* _tmp45_;
+ _tmp31_ = item;
+ _tmp32_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp31_, RYGEL_MEDIA_EXPORT_TYPE_MUSIC_ITEM) ? ((RygelMediaExportMusicItem*) _tmp31_) : NULL);
+ music_item = _tmp32_;
+ _tmp33_ = music_item;
+ _tmp34_ = statement;
+ _tmp35_ = (const gchar *) sqlite3_column_text (_tmp34_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_AUTHOR);
+ rygel_music_item_set_artist ((RygelMusicItem*) _tmp33_, _tmp35_);
+ _tmp36_ = music_item;
+ _tmp37_ = statement;
+ _tmp38_ = (const gchar *) sqlite3_column_text (_tmp37_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ALBUM);
+ rygel_music_item_set_album ((RygelMusicItem*) _tmp36_, _tmp38_);
+ _tmp39_ = music_item;
+ _tmp40_ = statement;
+ _tmp41_ = (const gchar *) sqlite3_column_text (_tmp40_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_GENRE);
+ rygel_music_item_set_genre ((RygelMusicItem*) _tmp39_, _tmp41_);
+ _tmp42_ = music_item;
+ _tmp43_ = statement;
+ _tmp44_ = sqlite3_column_int (_tmp43_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TRACK);
+ rygel_music_item_set_track_number ((RygelMusicItem*) _tmp42_, _tmp44_);
+ _tmp45_ = music_item;
+ rygel_music_item_lookup_album_art ((RygelMusicItem*) _tmp45_);
+ g_object_unref (music_item);
+ }
+ g_object_unref (audio_item);
+ }
+ _tmp46_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp46_, RYGEL_TYPE_VISUAL_ITEM)) {
+ RygelMediaItem* _tmp47_;
+ RygelVisualItem* _tmp48_;
+ RygelVisualItem* visual_item;
+ RygelVisualItem* _tmp49_;
+ sqlite3_stmt* _tmp50_;
+ gint _tmp51_ = 0;
+ RygelVisualItem* _tmp52_;
+ sqlite3_stmt* _tmp53_;
+ gint _tmp54_ = 0;
+ RygelVisualItem* _tmp55_;
+ sqlite3_stmt* _tmp56_;
+ gint _tmp57_ = 0;
+ RygelMediaItem* _tmp58_;
+ _tmp47_ = item;
+ _tmp48_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp47_, RYGEL_TYPE_VISUAL_ITEM) ? ((RygelVisualItem*) _tmp47_) : NULL);
+ visual_item = _tmp48_;
+ _tmp49_ = visual_item;
+ _tmp50_ = statement;
+ _tmp51_ = sqlite3_column_int (_tmp50_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_WIDTH);
+ rygel_visual_item_set_width (_tmp49_, _tmp51_);
+ _tmp52_ = visual_item;
+ _tmp53_ = statement;
+ _tmp54_ = sqlite3_column_int (_tmp53_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_HEIGHT);
+ rygel_visual_item_set_height (_tmp52_, _tmp54_);
+ _tmp55_ = visual_item;
+ _tmp56_ = statement;
+ _tmp57_ = sqlite3_column_int (_tmp56_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_COLOR_DEPTH);
+ rygel_visual_item_set_color_depth (_tmp55_, _tmp57_);
+ _tmp58_ = item;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp58_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM)) {
+ RygelMediaItem* _tmp59_;
+ RygelMediaExportVideoItem* _tmp60_;
+ RygelMediaExportVideoItem* video_item;
+ RygelMediaExportVideoItem* _tmp61_;
+ sqlite3_stmt* _tmp62_;
+ const gchar* _tmp63_ = NULL;
+ _tmp59_ = item;
+ _tmp60_ = g_object_ref (G_TYPE_CHECK_INSTANCE_TYPE (_tmp59_, RYGEL_MEDIA_EXPORT_TYPE_VIDEO_ITEM) ? ((RygelMediaExportVideoItem*) _tmp59_) : NULL);
+ video_item = _tmp60_;
+ _tmp61_ = video_item;
+ _tmp62_ = statement;
+ _tmp63_ = (const gchar *) sqlite3_column_text (_tmp62_, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_AUTHOR);
+ rygel_video_item_set_author ((RygelVideoItem*) _tmp61_, _tmp63_);
+ g_object_unref (video_item);
+ }
+ g_object_unref (visual_item);
+ }
}
static gchar* rygel_media_export_media_cache_translate_search_expression (RygelMediaExportMediaCache* self, RygelSearchExpression* expression, GArray* args, const gchar* prefix, GError** error) {
- gchar* result = NULL;
- RygelSearchExpression* _tmp0_;
- RygelSearchExpression* _tmp2_;
- gchar* _tmp4_ = NULL;
- gchar* filter;
- const gchar* _tmp5_;
- const gchar* _tmp6_;
- gchar* _tmp7_ = NULL;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (args != NULL, NULL);
- g_return_val_if_fail (prefix != NULL, NULL);
- _tmp0_ = expression;
- if (_tmp0_ == NULL) {
- gchar* _tmp1_;
- _tmp1_ = g_strdup ("");
- result = _tmp1_;
- return result;
- }
- _tmp2_ = expression;
- _tmp4_ = rygel_media_export_media_cache_search_expression_to_sql (self, _tmp2_, args, &_inner_error_);
- filter = _tmp4_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- }
- _tmp5_ = prefix;
- _tmp6_ = filter;
- _tmp7_ = g_strdup_printf (" %s %s", _tmp5_, _tmp6_);
- result = _tmp7_;
- g_free (filter);
- return result;
+ gchar* result = NULL;
+ RygelSearchExpression* _tmp0_;
+ RygelSearchExpression* _tmp2_;
+ gchar* _tmp4_ = NULL;
+ gchar* filter;
+ const gchar* _tmp5_;
+ const gchar* _tmp6_;
+ gchar* _tmp7_ = NULL;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (args != NULL, NULL);
+ g_return_val_if_fail (prefix != NULL, NULL);
+ _tmp0_ = expression;
+ if (_tmp0_ == NULL) {
+ gchar* _tmp1_;
+ _tmp1_ = g_strdup ("");
+ result = _tmp1_;
+ return result;
+ }
+ _tmp2_ = expression;
+ _tmp4_ = rygel_media_export_media_cache_search_expression_to_sql (self, _tmp2_, args, &inner_error);
+ filter = _tmp4_;
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ _tmp5_ = prefix;
+ _tmp6_ = filter;
+ _tmp7_ = g_strdup_printf (" %s %s", _tmp5_, _tmp6_);
+ result = _tmp7_;
+ g_free (filter);
+ return result;
}
static gchar* rygel_media_export_media_cache_search_expression_to_sql (RygelMediaExportMediaCache* self, RygelSearchExpression* expression, GArray* args, GError** error) {
- gchar* result = NULL;
- RygelSearchExpression* _tmp0_;
- RygelSearchExpression* _tmp2_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (args != NULL, NULL);
- _tmp0_ = expression;
- if (_tmp0_ == NULL) {
- gchar* _tmp1_;
- _tmp1_ = g_strdup ("");
- result = _tmp1_;
- return result;
- }
- _tmp2_ = expression;
- if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, RYGEL_TYPE_LOGICAL_EXPRESSION)) {
- RygelSearchExpression* _tmp3_;
- gchar* _tmp5_ = NULL;
- gchar* _tmp6_;
- _tmp3_ = expression;
- _tmp5_ = rygel_media_export_media_cache_logical_expression_to_sql (self, G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, RYGEL_TYPE_LOGICAL_EXPRESSION) ? ((RygelLogicalExpression*) _tmp3_) : NULL, args, &_inner_error_);
- _tmp6_ = _tmp5_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- }
- result = _tmp6_;
- return result;
- } else {
- RygelSearchExpression* _tmp7_;
- gchar* _tmp9_ = NULL;
- gchar* _tmp10_;
- _tmp7_ = expression;
- _tmp9_ = rygel_media_export_media_cache_relational_expression_to_sql (self, G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, RYGEL_TYPE_RELATIONAL_EXPRESSION) ? ((RygelRelationalExpression*) _tmp7_) : NULL, args, &_inner_error_);
- _tmp10_ = _tmp9_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- }
- result = _tmp10_;
- return result;
- }
+ gchar* result = NULL;
+ RygelSearchExpression* _tmp0_;
+ RygelSearchExpression* _tmp2_;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (args != NULL, NULL);
+ _tmp0_ = expression;
+ if (_tmp0_ == NULL) {
+ gchar* _tmp1_;
+ _tmp1_ = g_strdup ("");
+ result = _tmp1_;
+ return result;
+ }
+ _tmp2_ = expression;
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, RYGEL_TYPE_LOGICAL_EXPRESSION)) {
+ RygelSearchExpression* _tmp3_;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_;
+ _tmp3_ = expression;
+ _tmp5_ = rygel_media_export_media_cache_logical_expression_to_sql (self, G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, RYGEL_TYPE_LOGICAL_EXPRESSION) ? ((RygelLogicalExpression*) _tmp3_) : NULL, args, &inner_error);
+ _tmp6_ = _tmp5_;
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ result = _tmp6_;
+ return result;
+ } else {
+ RygelSearchExpression* _tmp7_;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_;
+ _tmp7_ = expression;
+ _tmp9_ = rygel_media_export_media_cache_relational_expression_to_sql (self, G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, RYGEL_TYPE_RELATIONAL_EXPRESSION) ? ((RygelRelationalExpression*) _tmp7_) : NULL, args, &inner_error);
+ _tmp10_ = _tmp9_;
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ result = _tmp10_;
+ return result;
+ }
}
static gchar* rygel_media_export_media_cache_logical_expression_to_sql (RygelMediaExportMediaCache* self, RygelLogicalExpression* expression, GArray* args, GError** error) {
- gchar* result = NULL;
- RygelLogicalExpression* _tmp0_;
- gconstpointer _tmp1_;
- gchar* _tmp3_ = NULL;
- gchar* left_sql_string;
- RygelLogicalExpression* _tmp4_;
- gconstpointer _tmp5_;
- gchar* _tmp7_ = NULL;
- gchar* right_sql_string;
- gchar* _tmp8_;
- gchar* operator_sql_string;
- RygelLogicalExpression* _tmp9_;
- gconstpointer _tmp10_;
- const gchar* _tmp12_;
- const gchar* _tmp13_;
- const gchar* _tmp14_;
- gchar* _tmp15_ = NULL;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (args != NULL, NULL);
- _tmp0_ = expression;
- _tmp1_ = ((RygelSearchExpression*) _tmp0_)->operand1;
- _tmp3_ = rygel_media_export_media_cache_search_expression_to_sql (self, (RygelSearchExpression*) _tmp1_, args, &_inner_error_);
- left_sql_string = _tmp3_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- }
- _tmp4_ = expression;
- _tmp5_ = ((RygelSearchExpression*) _tmp4_)->operand2;
- _tmp7_ = rygel_media_export_media_cache_search_expression_to_sql (self, (RygelSearchExpression*) _tmp5_, args, &_inner_error_);
- right_sql_string = _tmp7_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (left_sql_string);
- return NULL;
- }
- _tmp8_ = g_strdup ("OR");
- operator_sql_string = _tmp8_;
- _tmp9_ = expression;
- _tmp10_ = ((RygelSearchExpression*) _tmp9_)->op;
- if (((RygelLogicalOperator) ((gintptr) _tmp10_)) == RYGEL_LOGICAL_OPERATOR_AND) {
- gchar* _tmp11_;
- _tmp11_ = g_strdup ("AND");
- g_free (operator_sql_string);
- operator_sql_string = _tmp11_;
- }
- _tmp12_ = left_sql_string;
- _tmp13_ = operator_sql_string;
- _tmp14_ = right_sql_string;
- _tmp15_ = g_strdup_printf ("(%s %s %s)", _tmp12_, _tmp13_, _tmp14_);
- result = _tmp15_;
- g_free (operator_sql_string);
- g_free (right_sql_string);
- g_free (left_sql_string);
- return result;
+ gchar* result = NULL;
+ RygelLogicalExpression* _tmp0_;
+ gconstpointer _tmp1_;
+ gchar* _tmp3_ = NULL;
+ gchar* left_sql_string;
+ RygelLogicalExpression* _tmp4_;
+ gconstpointer _tmp5_;
+ gchar* _tmp7_ = NULL;
+ gchar* right_sql_string;
+ gchar* _tmp8_;
+ gchar* operator_sql_string;
+ RygelLogicalExpression* _tmp9_;
+ gconstpointer _tmp10_;
+ const gchar* _tmp12_;
+ const gchar* _tmp13_;
+ const gchar* _tmp14_;
+ gchar* _tmp15_ = NULL;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (args != NULL, NULL);
+ _tmp0_ = expression;
+ _tmp1_ = ((RygelSearchExpression*) _tmp0_)->operand1;
+ _tmp3_ = rygel_media_export_media_cache_search_expression_to_sql (self, (RygelSearchExpression*) _tmp1_, args, &inner_error);
+ left_sql_string = _tmp3_;
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ }
+ _tmp4_ = expression;
+ _tmp5_ = ((RygelSearchExpression*) _tmp4_)->operand2;
+ _tmp7_ = rygel_media_export_media_cache_search_expression_to_sql (self, (RygelSearchExpression*) _tmp5_, args, &inner_error);
+ right_sql_string = _tmp7_;
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ g_free (left_sql_string);
+ return NULL;
+ }
+ _tmp8_ = g_strdup ("OR");
+ operator_sql_string = _tmp8_;
+ _tmp9_ = expression;
+ _tmp10_ = ((RygelSearchExpression*) _tmp9_)->op;
+ if (((RygelLogicalOperator) ((gintptr) _tmp10_)) == RYGEL_LOGICAL_OPERATOR_AND) {
+ gchar* _tmp11_;
+ _tmp11_ = g_strdup ("AND");
+ g_free (operator_sql_string);
+ operator_sql_string = _tmp11_;
+ }
+ _tmp12_ = left_sql_string;
+ _tmp13_ = operator_sql_string;
+ _tmp14_ = right_sql_string;
+ _tmp15_ = g_strdup_printf ("(%s %s %s)", _tmp12_, _tmp13_, _tmp14_);
+ result = _tmp15_;
+ g_free (operator_sql_string);
+ g_free (right_sql_string);
+ g_free (left_sql_string);
+ return result;
}
static gchar* rygel_media_export_media_cache_map_operand_to_column (RygelMediaExportMediaCache* self, const gchar* operand, gchar** collate, GError** error) {
- gchar* _vala_collate = NULL;
- gchar* result = NULL;
- gchar* column;
- gboolean use_collation;
- const gchar* _tmp0_;
- const gchar* _tmp1_;
- GQuark _tmp3_ = 0U;
- static GQuark _tmp2_label0 = 0;
- static GQuark _tmp2_label1 = 0;
- static GQuark _tmp2_label2 = 0;
- static GQuark _tmp2_label3 = 0;
- static GQuark _tmp2_label4 = 0;
- static GQuark _tmp2_label5 = 0;
- static GQuark _tmp2_label6 = 0;
- static GQuark _tmp2_label7 = 0;
- static GQuark _tmp2_label8 = 0;
- static GQuark _tmp2_label9 = 0;
- static GQuark _tmp2_label10 = 0;
- static GQuark _tmp2_label11 = 0;
- static GQuark _tmp2_label12 = 0;
- static GQuark _tmp2_label13 = 0;
- static GQuark _tmp2_label14 = 0;
- gboolean _tmp21_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (operand != NULL, NULL);
- column = NULL;
- use_collation = FALSE;
- _tmp0_ = operand;
- _tmp1_ = _tmp0_;
- _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
- if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("res")))) {
- switch (0) {
- default:
- {
- gchar* _tmp4_;
- _tmp4_ = g_strdup ("o.uri");
- g_free (column);
- column = _tmp4_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("res duration")))) {
- switch (0) {
- default:
- {
- gchar* _tmp5_;
- _tmp5_ = g_strdup ("m.duration");
- g_free (column);
- column = _tmp5_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("@refID")))) {
- switch (0) {
- default:
- {
- gchar* _tmp6_;
- _tmp6_ = g_strdup ("NULL");
- g_free (column);
- column = _tmp6_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("@id")))) {
- switch (0) {
- default:
- {
- gchar* _tmp7_;
- _tmp7_ = g_strdup ("o.upnp_id");
- g_free (column);
- column = _tmp7_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("@parentID")))) {
- switch (0) {
- default:
- {
- gchar* _tmp8_;
- _tmp8_ = g_strdup ("o.parent");
- g_free (column);
- column = _tmp8_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("upnp:class")))) {
- switch (0) {
- default:
- {
- gchar* _tmp9_;
- _tmp9_ = g_strdup ("m.class");
- g_free (column);
- column = _tmp9_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label6) ? _tmp2_label6 : (_tmp2_label6 = g_quark_from_static_string ("dc:title")))) {
- switch (0) {
- default:
- {
- gchar* _tmp10_;
- _tmp10_ = g_strdup ("o.title");
- g_free (column);
- column = _tmp10_;
- use_collation = TRUE;
- break;
- }
- }
- } else if ((_tmp3_ == ((0 != _tmp2_label7) ? _tmp2_label7 : (_tmp2_label7 = g_quark_from_static_string ("upnp:artist")))) || (_tmp3_ == ((0 != _tmp2_label8) ? _tmp2_label8 : (_tmp2_label8 = g_quark_from_static_string ("dc:creator"))))) {
- switch (0) {
- default:
- {
- gchar* _tmp11_;
- _tmp11_ = g_strdup ("m.author");
- g_free (column);
- column = _tmp11_;
- use_collation = TRUE;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label9) ? _tmp2_label9 : (_tmp2_label9 = g_quark_from_static_string ("dc:date")))) {
- switch (0) {
- default:
- {
- gchar* _tmp12_;
- _tmp12_ = g_strdup ("strftime(\"%Y\", m.date)");
- g_free (column);
- column = _tmp12_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label10) ? _tmp2_label10 : (_tmp2_label10 = g_quark_from_static_string ("upnp:album")))) {
- switch (0) {
- default:
- {
- gchar* _tmp13_;
- _tmp13_ = g_strdup ("m.album");
- g_free (column);
- column = _tmp13_;
- use_collation = TRUE;
- break;
- }
- }
- } else if ((_tmp3_ == ((0 != _tmp2_label11) ? _tmp2_label11 : (_tmp2_label11 = g_quark_from_static_string ("upnp:genre")))) || (_tmp3_ == ((0 != _tmp2_label12) ? _tmp2_label12 : (_tmp2_label12 = g_quark_from_static_string ("dc:genre"))))) {
- switch (0) {
- default:
- {
- gchar* _tmp14_;
- _tmp14_ = g_strdup ("m.genre");
- g_free (column);
- column = _tmp14_;
- use_collation = TRUE;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label13) ? _tmp2_label13 : (_tmp2_label13 = g_quark_from_static_string ("upnp:originalTrackNumber")))) {
- switch (0) {
- default:
- {
- gchar* _tmp15_;
- _tmp15_ = g_strdup ("m.track");
- g_free (column);
- column = _tmp15_;
- break;
- }
- }
- } else if (_tmp3_ == ((0 != _tmp2_label14) ? _tmp2_label14 : (_tmp2_label14 = g_quark_from_static_string ("rygel:originalVolumeNumber")))) {
- switch (0) {
- default:
- {
- gchar* _tmp16_;
- _tmp16_ = g_strdup ("m.disc");
- g_free (column);
- column = _tmp16_;
- break;
- }
- }
- } else {
- switch (0) {
- default:
- {
- const gchar* _tmp17_;
- gchar* _tmp18_ = NULL;
- gchar* message;
- const gchar* _tmp19_;
- GError* _tmp20_;
- _tmp17_ = operand;
- _tmp18_ = g_strdup_printf ("Unsupported column %s", _tmp17_);
- message = _tmp18_;
- _tmp19_ = message;
- _tmp20_ = g_error_new_literal (RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR, RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_UNSUPPORTED_SEARCH, _tmp19_);
- _inner_error_ = _tmp20_;
- g_propagate_error (error, _inner_error_);
- g_free (message);
- g_free (column);
- return NULL;
- }
- }
- }
- _tmp21_ = use_collation;
- if (_tmp21_) {
- gchar* _tmp22_;
- _tmp22_ = g_strdup ("COLLATE CASEFOLD");
- g_free (_vala_collate);
- _vala_collate = _tmp22_;
- } else {
- gchar* _tmp23_;
- _tmp23_ = g_strdup ("");
- g_free (_vala_collate);
- _vala_collate = _tmp23_;
- }
- result = column;
- if (collate) {
- *collate = _vala_collate;
- } else {
- g_free (_vala_collate);
- }
- return result;
+ gchar* _vala_collate = NULL;
+ gchar* result = NULL;
+ gchar* column;
+ gboolean use_collation;
+ const gchar* _tmp0_;
+ const gchar* _tmp1_;
+ GQuark _tmp3_ = 0U;
+ static GQuark _tmp2_label0 = 0;
+ static GQuark _tmp2_label1 = 0;
+ static GQuark _tmp2_label2 = 0;
+ static GQuark _tmp2_label3 = 0;
+ static GQuark _tmp2_label4 = 0;
+ static GQuark _tmp2_label5 = 0;
+ static GQuark _tmp2_label6 = 0;
+ static GQuark _tmp2_label7 = 0;
+ static GQuark _tmp2_label8 = 0;
+ static GQuark _tmp2_label9 = 0;
+ static GQuark _tmp2_label10 = 0;
+ static GQuark _tmp2_label11 = 0;
+ static GQuark _tmp2_label12 = 0;
+ static GQuark _tmp2_label13 = 0;
+ static GQuark _tmp2_label14 = 0;
+ gboolean _tmp21_;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (operand != NULL, NULL);
+ column = NULL;
+ use_collation = FALSE;
+ _tmp0_ = operand;
+ _tmp1_ = _tmp0_;
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("res")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp4_;
+ _tmp4_ = g_strdup ("o.uri");
+ g_free (column);
+ column = _tmp4_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("res duration")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp5_;
+ _tmp5_ = g_strdup ("m.duration");
+ g_free (column);
+ column = _tmp5_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("@refID")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp6_;
+ _tmp6_ = g_strdup ("NULL");
+ g_free (column);
+ column = _tmp6_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("@id")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp7_;
+ _tmp7_ = g_strdup ("o.upnp_id");
+ g_free (column);
+ column = _tmp7_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("@parentID")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp8_;
+ _tmp8_ = g_strdup ("o.parent");
+ g_free (column);
+ column = _tmp8_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("upnp:class")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp9_;
+ _tmp9_ = g_strdup ("m.class");
+ g_free (column);
+ column = _tmp9_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label6) ? _tmp2_label6 : (_tmp2_label6 = g_quark_from_static_string ("dc:title")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp10_;
+ _tmp10_ = g_strdup ("o.title");
+ g_free (column);
+ column = _tmp10_;
+ use_collation = TRUE;
+ break;
+ }
+ }
+ } else if ((_tmp3_ == ((0 != _tmp2_label7) ? _tmp2_label7 : (_tmp2_label7 = g_quark_from_static_string ("upnp:artist")))) || (_tmp3_ == ((0 != _tmp2_label8) ? _tmp2_label8 : (_tmp2_label8 = g_quark_from_static_string ("dc:creator"))))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp11_;
+ _tmp11_ = g_strdup ("m.author");
+ g_free (column);
+ column = _tmp11_;
+ use_collation = TRUE;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label9) ? _tmp2_label9 : (_tmp2_label9 = g_quark_from_static_string ("dc:date")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp12_;
+ _tmp12_ = g_strdup ("strftime(\"%Y\", m.date)");
+ g_free (column);
+ column = _tmp12_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label10) ? _tmp2_label10 : (_tmp2_label10 = g_quark_from_static_string ("upnp:album")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp13_;
+ _tmp13_ = g_strdup ("m.album");
+ g_free (column);
+ column = _tmp13_;
+ use_collation = TRUE;
+ break;
+ }
+ }
+ } else if ((_tmp3_ == ((0 != _tmp2_label11) ? _tmp2_label11 : (_tmp2_label11 = g_quark_from_static_string ("upnp:genre")))) || (_tmp3_ == ((0 != _tmp2_label12) ? _tmp2_label12 : (_tmp2_label12 = g_quark_from_static_string ("dc:genre"))))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp14_;
+ _tmp14_ = g_strdup ("m.genre");
+ g_free (column);
+ column = _tmp14_;
+ use_collation = TRUE;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label13) ? _tmp2_label13 : (_tmp2_label13 = g_quark_from_static_string ("upnp:originalTrackNumber")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp15_;
+ _tmp15_ = g_strdup ("m.track");
+ g_free (column);
+ column = _tmp15_;
+ break;
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label14) ? _tmp2_label14 : (_tmp2_label14 = g_quark_from_static_string ("rygel:originalVolumeNumber")))) {
+ switch (0) {
+ default:
+ {
+ gchar* _tmp16_;
+ _tmp16_ = g_strdup ("m.disc");
+ g_free (column);
+ column = _tmp16_;
+ break;
+ }
+ }
+ } else {
+ switch (0) {
+ default:
+ {
+ const gchar* _tmp17_;
+ gchar* _tmp18_ = NULL;
+ gchar* message;
+ const gchar* _tmp19_;
+ GError* _tmp20_;
+ _tmp17_ = operand;
+ _tmp18_ = g_strdup_printf ("Unsupported column %s", _tmp17_);
+ message = _tmp18_;
+ _tmp19_ = message;
+ _tmp20_ = g_error_new_literal (RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR, RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_UNSUPPORTED_SEARCH, _tmp19_);
+ inner_error = _tmp20_;
+ g_propagate_error (error, inner_error);
+ g_free (message);
+ g_free (column);
+ return NULL;
+ }
+ }
+ }
+ _tmp21_ = use_collation;
+ if (_tmp21_) {
+ gchar* _tmp22_;
+ _tmp22_ = g_strdup ("COLLATE CASEFOLD");
+ g_free (_vala_collate);
+ _vala_collate = _tmp22_;
+ } else {
+ gchar* _tmp23_;
+ _tmp23_ = g_strdup ("");
+ g_free (_vala_collate);
+ _vala_collate = _tmp23_;
+ }
+ result = column;
+ if (collate) {
+ *collate = _vala_collate;
+ } else {
+ g_free (_vala_collate);
+ }
+ return result;
}
static gchar* rygel_media_export_media_cache_relational_expression_to_sql (RygelMediaExportMediaCache* self, RygelRelationalExpression* exp, GArray* args, GError** error) {
- gchar* result = NULL;
- GValue* v;
- gchar* collate;
- RygelRelationalExpression* _tmp0_;
- gconstpointer _tmp1_;
- gchar* _tmp2_ = NULL;
- gchar* _tmp3_ = NULL;
- gchar* column;
- RygelMediaExportSqlOperator* operator = NULL;
- RygelRelationalExpression* _tmp4_;
- gconstpointer _tmp5_;
- GValue* _tmp40_;
- RygelMediaExportSqlOperator* _tmp44_;
- gchar* _tmp45_ = NULL;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (args != NULL, NULL);
- v = NULL;
- collate = NULL;
- _tmp0_ = exp;
- _tmp1_ = ((RygelSearchExpression*) _tmp0_)->operand1;
- _tmp3_ = rygel_media_export_media_cache_map_operand_to_column (self, (const gchar*) _tmp1_, &_tmp2_, &_inner_error_);
- g_free (collate);
- collate = _tmp2_;
- column = _tmp3_;
- if (_inner_error_ != NULL) {
- g_propagate_error (error, _inner_error_);
- g_free (collate);
- __vala_GValue_free0 (v);
- return NULL;
- }
- _tmp4_ = exp;
- _tmp5_ = ((RygelSearchExpression*) _tmp4_)->op;
- switch ((GUPnPSearchCriteriaOp) ((gintptr) _tmp5_)) {
- case GUPNP_SEARCH_CRITERIA_OP_EXISTS:
- {
- gchar* sql_function = NULL;
- RygelRelationalExpression* _tmp6_;
- gconstpointer _tmp7_;
- const gchar* _tmp10_;
- const gchar* _tmp11_;
- const gchar* _tmp12_;
- gchar* _tmp13_ = NULL;
- _tmp6_ = exp;
- _tmp7_ = ((RygelSearchExpression*) _tmp6_)->operand2;
- if (g_strcmp0 ((const gchar*) _tmp7_, "true") == 0) {
- gchar* _tmp8_;
- _tmp8_ = g_strdup ("%s IS NOT NULL AND %s != ''");
- g_free (sql_function);
- sql_function = _tmp8_;
- } else {
- gchar* _tmp9_;
- _tmp9_ = g_strdup ("%s IS NULL OR %s = ''");
- g_free (sql_function);
- sql_function = _tmp9_;
- }
- _tmp10_ = sql_function;
- _tmp11_ = column;
- _tmp12_ = column;
- _tmp13_ = g_strdup_printf (_tmp10_, _tmp11_, _tmp12_);
- result = _tmp13_;
- g_free (sql_function);
- g_object_unref (operator);
- g_free (column);
- g_free (collate);
- __vala_GValue_free0 (v);
- return result;
- }
- case GUPNP_SEARCH_CRITERIA_OP_EQ:
- case GUPNP_SEARCH_CRITERIA_OP_NEQ:
- case GUPNP_SEARCH_CRITERIA_OP_LESS:
- case GUPNP_SEARCH_CRITERIA_OP_LEQ:
- case GUPNP_SEARCH_CRITERIA_OP_GREATER:
- case GUPNP_SEARCH_CRITERIA_OP_GEQ:
- {
- RygelRelationalExpression* _tmp14_;
- gconstpointer _tmp15_;
- GValue* _tmp16_ = NULL;
- RygelRelationalExpression* _tmp17_;
- gconstpointer _tmp18_;
- const gchar* _tmp19_;
- const gchar* _tmp20_;
- RygelMediaExportSqlOperator* _tmp21_;
- _tmp14_ = exp;
- _tmp15_ = ((RygelSearchExpression*) _tmp14_)->operand2;
- _tmp16_ = g_new0 (GValue, 1);
- g_value_init (_tmp16_, G_TYPE_STRING);
- g_value_set_string (_tmp16_, (const gchar*) _tmp15_);
- __vala_GValue_free0 (v);
- v = _tmp16_;
- _tmp17_ = exp;
- _tmp18_ = ((RygelSearchExpression*) _tmp17_)->op;
- _tmp19_ = column;
- _tmp20_ = collate;
- _tmp21_ = rygel_media_export_sql_operator_new_from_search_criteria_op ((GUPnPSearchCriteriaOp) ((gintptr) _tmp18_), _tmp19_, _tmp20_);
- g_object_unref (operator);
- operator = _tmp21_;
- break;
- }
- case GUPNP_SEARCH_CRITERIA_OP_CONTAINS:
- {
- const gchar* _tmp22_;
- RygelMediaExportSqlFunction* _tmp23_;
- RygelRelationalExpression* _tmp24_;
- gconstpointer _tmp25_;
- GValue* _tmp26_ = NULL;
- _tmp22_ = column;
- _tmp23_ = rygel_media_export_sql_function_new ("contains", _tmp22_);
- g_object_unref (operator);
- operator = (RygelMediaExportSqlOperator*) _tmp23_;
- _tmp24_ = exp;
- _tmp25_ = ((RygelSearchExpression*) _tmp24_)->operand2;
- _tmp26_ = g_new0 (GValue, 1);
- g_value_init (_tmp26_, G_TYPE_STRING);
- g_value_set_string (_tmp26_, (const gchar*) _tmp25_);
- __vala_GValue_free0 (v);
- v = _tmp26_;
- break;
- }
- case GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN:
- {
- const gchar* _tmp27_;
- RygelMediaExportSqlFunction* _tmp28_;
- RygelRelationalExpression* _tmp29_;
- gconstpointer _tmp30_;
- GValue* _tmp31_ = NULL;
- _tmp27_ = column;
- _tmp28_ = rygel_media_export_sql_function_new ("NOT contains", _tmp27_);
- g_object_unref (operator);
- operator = (RygelMediaExportSqlOperator*) _tmp28_;
- _tmp29_ = exp;
- _tmp30_ = ((RygelSearchExpression*) _tmp29_)->operand2;
- _tmp31_ = g_new0 (GValue, 1);
- g_value_init (_tmp31_, G_TYPE_STRING);
- g_value_set_string (_tmp31_, (const gchar*) _tmp30_);
- __vala_GValue_free0 (v);
- v = _tmp31_;
- break;
- }
- case GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM:
- {
- const gchar* _tmp32_;
- RygelMediaExportSqlOperator* _tmp33_;
- RygelRelationalExpression* _tmp34_;
- gconstpointer _tmp35_;
- gchar* _tmp36_ = NULL;
- GValue* _tmp37_ = NULL;
- _tmp32_ = column;
- _tmp33_ = rygel_media_export_sql_operator_new ("LIKE", _tmp32_, "");
- g_object_unref (operator);
- operator = _tmp33_;
- _tmp34_ = exp;
- _tmp35_ = ((RygelSearchExpression*) _tmp34_)->operand2;
- _tmp36_ = g_strdup_printf ("%s%%", (const gchar*) _tmp35_);
- _tmp37_ = g_new0 (GValue, 1);
- g_value_init (_tmp37_, G_TYPE_STRING);
- g_value_take_string (_tmp37_, _tmp36_);
- __vala_GValue_free0 (v);
- v = _tmp37_;
- break;
- }
- default:
- {
- RygelRelationalExpression* _tmp38_;
- gconstpointer _tmp39_;
- _tmp38_ = exp;
- _tmp39_ = ((RygelSearchExpression*) _tmp38_)->op;
- g_warning ("rygel-media-export-media-cache.vala:851: Unsupported op %d", (gint) ((GUPnPSearchCriteriaOp) ((gintptr) _tmp39_)));
- result = NULL;
- g_object_unref (operator);
- g_free (column);
- g_free (collate);
- __vala_GValue_free0 (v);
- return result;
- }
- }
- _tmp40_ = v;
- if (_tmp40_ != NULL) {
- g_array_append_val (args, *v);
- }
- _tmp44_ = operator;
- _tmp45_ = rygel_media_export_sql_operator_to_string (_tmp44_);
- result = _tmp45_;
- g_object_unref (operator);
- g_free (column);
- g_free (collate);
- __vala_GValue_free0 (v);
- return result;
+ gchar* result = NULL;
+ GValue* v;
+ gchar* collate;
+ RygelRelationalExpression* _tmp0_;
+ gconstpointer _tmp1_;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* column;
+ RygelMediaExportSqlOperator* operator = NULL;
+ RygelRelationalExpression* _tmp4_;
+ gconstpointer _tmp5_;
+ GValue* _tmp40_;
+ RygelMediaExportSqlOperator* _tmp44_;
+ gchar* _tmp45_ = NULL;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (args != NULL, NULL);
+ v = NULL;
+ collate = NULL;
+ _tmp0_ = exp;
+ _tmp1_ = ((RygelSearchExpression*) _tmp0_)->operand1;
+ _tmp3_ = rygel_media_export_media_cache_map_operand_to_column (self, (const gchar*) _tmp1_, &_tmp2_, &inner_error);
+ g_free (collate);
+ collate = _tmp2_;
+ column = _tmp3_;
+ if (inner_error != NULL) {
+ g_propagate_error (error, inner_error);
+ g_free (collate);
+ __vala_GValue_free0 (v);
+ return NULL;
+ }
+ _tmp4_ = exp;
+ _tmp5_ = ((RygelSearchExpression*) _tmp4_)->op;
+ switch ((GUPnPSearchCriteriaOp) ((gintptr) _tmp5_)) {
+ case GUPNP_SEARCH_CRITERIA_OP_EXISTS:
+ {
+ gchar* sql_function = NULL;
+ RygelRelationalExpression* _tmp6_;
+ gconstpointer _tmp7_;
+ const gchar* _tmp10_;
+ const gchar* _tmp11_;
+ const gchar* _tmp12_;
+ gchar* _tmp13_ = NULL;
+ _tmp6_ = exp;
+ _tmp7_ = ((RygelSearchExpression*) _tmp6_)->operand2;
+ if (g_strcmp0 ((const gchar*) _tmp7_, "true") == 0) {
+ gchar* _tmp8_;
+ _tmp8_ = g_strdup ("%s IS NOT NULL AND %s != ''");
+ g_free (sql_function);
+ sql_function = _tmp8_;
+ } else {
+ gchar* _tmp9_;
+ _tmp9_ = g_strdup ("%s IS NULL OR %s = ''");
+ g_free (sql_function);
+ sql_function = _tmp9_;
+ }
+ _tmp10_ = sql_function;
+ _tmp11_ = column;
+ _tmp12_ = column;
+ _tmp13_ = g_strdup_printf (_tmp10_, _tmp11_, _tmp12_);
+ result = _tmp13_;
+ g_free (sql_function);
+ g_object_unref (operator);
+ g_free (column);
+ g_free (collate);
+ __vala_GValue_free0 (v);
+ return result;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_EQ:
+ case GUPNP_SEARCH_CRITERIA_OP_NEQ:
+ case GUPNP_SEARCH_CRITERIA_OP_LESS:
+ case GUPNP_SEARCH_CRITERIA_OP_LEQ:
+ case GUPNP_SEARCH_CRITERIA_OP_GREATER:
+ case GUPNP_SEARCH_CRITERIA_OP_GEQ:
+ {
+ RygelRelationalExpression* _tmp14_;
+ gconstpointer _tmp15_;
+ GValue* _tmp16_ = NULL;
+ RygelRelationalExpression* _tmp17_;
+ gconstpointer _tmp18_;
+ const gchar* _tmp19_;
+ const gchar* _tmp20_;
+ RygelMediaExportSqlOperator* _tmp21_;
+ _tmp14_ = exp;
+ _tmp15_ = ((RygelSearchExpression*) _tmp14_)->operand2;
+ _tmp16_ = g_new0 (GValue, 1);
+ g_value_init (_tmp16_, G_TYPE_STRING);
+ g_value_set_string (_tmp16_, (const gchar*) _tmp15_);
+ __vala_GValue_free0 (v);
+ v = _tmp16_;
+ _tmp17_ = exp;
+ _tmp18_ = ((RygelSearchExpression*) _tmp17_)->op;
+ _tmp19_ = column;
+ _tmp20_ = collate;
+ _tmp21_ = rygel_media_export_sql_operator_new_from_search_criteria_op ((GUPnPSearchCriteriaOp) ((gintptr) _tmp18_), _tmp19_, _tmp20_);
+ g_object_unref (operator);
+ operator = _tmp21_;
+ break;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_CONTAINS:
+ {
+ const gchar* _tmp22_;
+ RygelMediaExportSqlFunction* _tmp23_;
+ RygelRelationalExpression* _tmp24_;
+ gconstpointer _tmp25_;
+ GValue* _tmp26_ = NULL;
+ _tmp22_ = column;
+ _tmp23_ = rygel_media_export_sql_function_new ("contains", _tmp22_);
+ g_object_unref (operator);
+ operator = (RygelMediaExportSqlOperator*) _tmp23_;
+ _tmp24_ = exp;
+ _tmp25_ = ((RygelSearchExpression*) _tmp24_)->operand2;
+ _tmp26_ = g_new0 (GValue, 1);
+ g_value_init (_tmp26_, G_TYPE_STRING);
+ g_value_set_string (_tmp26_, (const gchar*) _tmp25_);
+ __vala_GValue_free0 (v);
+ v = _tmp26_;
+ break;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN:
+ {
+ const gchar* _tmp27_;
+ RygelMediaExportSqlFunction* _tmp28_;
+ RygelRelationalExpression* _tmp29_;
+ gconstpointer _tmp30_;
+ GValue* _tmp31_ = NULL;
+ _tmp27_ = column;
+ _tmp28_ = rygel_media_export_sql_function_new ("NOT contains", _tmp27_);
+ g_object_unref (operator);
+ operator = (RygelMediaExportSqlOperator*) _tmp28_;
+ _tmp29_ = exp;
+ _tmp30_ = ((RygelSearchExpression*) _tmp29_)->operand2;
+ _tmp31_ = g_new0 (GValue, 1);
+ g_value_init (_tmp31_, G_TYPE_STRING);
+ g_value_set_string (_tmp31_, (const gchar*) _tmp30_);
+ __vala_GValue_free0 (v);
+ v = _tmp31_;
+ break;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM:
+ {
+ const gchar* _tmp32_;
+ RygelMediaExportSqlOperator* _tmp33_;
+ RygelRelationalExpression* _tmp34_;
+ gconstpointer _tmp35_;
+ gchar* _tmp36_ = NULL;
+ GValue* _tmp37_ = NULL;
+ _tmp32_ = column;
+ _tmp33_ = rygel_media_export_sql_operator_new ("LIKE", _tmp32_, "");
+ g_object_unref (operator);
+ operator = _tmp33_;
+ _tmp34_ = exp;
+ _tmp35_ = ((RygelSearchExpression*) _tmp34_)->operand2;
+ _tmp36_ = g_strdup_printf ("%s%%", (const gchar*) _tmp35_);
+ _tmp37_ = g_new0 (GValue, 1);
+ g_value_init (_tmp37_, G_TYPE_STRING);
+ g_value_take_string (_tmp37_, _tmp36_);
+ __vala_GValue_free0 (v);
+ v = _tmp37_;
+ break;
+ }
+ default:
+ {
+ RygelRelationalExpression* _tmp38_;
+ gconstpointer _tmp39_;
+ _tmp38_ = exp;
+ _tmp39_ = ((RygelSearchExpression*) _tmp38_)->op;
+ g_warning ("rygel-media-export-media-cache.vala:851: Unsupported op %d", (gint) ((GUPnPSearchCriteriaOp) ((gintptr) _tmp39_)));
+ result = NULL;
+ g_object_unref (operator);
+ g_free (column);
+ g_free (collate);
+ __vala_GValue_free0 (v);
+ return result;
+ }
+ }
+ _tmp40_ = v;
+ if (_tmp40_ != NULL) {
+ g_array_append_val (args, *v);
+ }
+ _tmp44_ = operator;
+ _tmp45_ = rygel_media_export_sql_operator_to_string (_tmp44_);
+ result = _tmp45_;
+ g_object_unref (operator);
+ g_free (column);
+ g_free (collate);
+ __vala_GValue_free0 (v);
+ return result;
}
static RygelMediaExportDatabaseCursor* rygel_media_export_media_cache_exec_cursor (RygelMediaExportMediaCache* self, RygelMediaExportSQLString id, GValue* values, int values_length1, GError** error) {
- RygelMediaExportDatabaseCursor* result = NULL;
- RygelMediaExportDatabase* _tmp0_;
- RygelMediaExportSQLFactory* _tmp1_;
- RygelMediaExportSQLString _tmp2_;
- const gchar* _tmp3_ = NULL;
- GValue* _tmp4_;
- gint _tmp4__length1;
- RygelMediaExportDatabaseCursor* _tmp5_ = NULL;
- RygelMediaExportDatabaseCursor* _tmp6_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- _tmp0_ = self->priv->db;
- _tmp1_ = self->priv->sql;
- _tmp2_ = id;
- _tmp3_ = rygel_media_export_sql_factory_make (_tmp1_, _tmp2_);
- _tmp4_ = values;
- _tmp4__length1 = values_length1;
- _tmp5_ = rygel_media_export_database_exec_cursor (_tmp0_, _tmp3_, _tmp4_, _tmp4__length1, &_inner_error_);
- _tmp6_ = _tmp5_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- return NULL;
- } else {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- }
- result = _tmp6_;
- return result;
+ RygelMediaExportDatabaseCursor* result = NULL;
+ RygelMediaExportDatabase* _tmp0_;
+ RygelMediaExportSQLFactory* _tmp1_;
+ RygelMediaExportSQLString _tmp2_;
+ const gchar* _tmp3_ = NULL;
+ GValue* _tmp4_;
+ gint _tmp4__length1;
+ RygelMediaExportDatabaseCursor* _tmp5_ = NULL;
+ RygelMediaExportDatabaseCursor* _tmp6_;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = self->priv->db;
+ _tmp1_ = self->priv->sql;
+ _tmp2_ = id;
+ _tmp3_ = rygel_media_export_sql_factory_make (_tmp1_, _tmp2_);
+ _tmp4_ = values;
+ _tmp4__length1 = values_length1;
+ _tmp5_ = rygel_media_export_database_exec_cursor (_tmp0_, _tmp3_, _tmp4_, _tmp4__length1, &inner_error);
+ _tmp6_ = _tmp5_;
+ if (inner_error != NULL) {
+ if (inner_error->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
+ g_propagate_error (error, inner_error);
+ return NULL;
+ } else {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, inner_error->message, g_quark_to_string (inner_error->domain), inner_error->code);
+ g_clear_error (&inner_error);
+ return NULL;
+ }
+ }
+ result = _tmp6_;
+ return result;
}
static gint rygel_media_export_media_cache_query_value (RygelMediaExportMediaCache* self, RygelMediaExportSQLString id, GValue* values, int values_length1, GError** error) {
- gint result = 0;
- RygelMediaExportDatabase* _tmp0_;
- RygelMediaExportSQLFactory* _tmp1_;
- RygelMediaExportSQLString _tmp2_;
- const gchar* _tmp3_ = NULL;
- GValue* _tmp4_;
- gint _tmp4__length1;
- gint _tmp5_ = 0;
- gint _tmp6_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, 0);
- _tmp0_ = self->priv->db;
- _tmp1_ = self->priv->sql;
- _tmp2_ = id;
- _tmp3_ = rygel_media_export_sql_factory_make (_tmp1_, _tmp2_);
- _tmp4_ = values;
- _tmp4__length1 = values_length1;
- _tmp5_ = rygel_media_export_database_query_value (_tmp0_, _tmp3_, _tmp4_, _tmp4__length1, &_inner_error_);
- _tmp6_ = _tmp5_;
- if (_inner_error_ != NULL) {
- if (_inner_error_->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
- g_propagate_error (error, _inner_error_);
- return 0;
- } else {
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return 0;
- }
- }
- result = _tmp6_;
- return result;
+ gint result = 0;
+ RygelMediaExportDatabase* _tmp0_;
+ RygelMediaExportSQLFactory* _tmp1_;
+ RygelMediaExportSQLString _tmp2_;
+ const gchar* _tmp3_ = NULL;
+ GValue* _tmp4_;
+ gint _tmp4__length1;
+ gint _tmp5_ = 0;
+ gint _tmp6_;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, 0);
+ _tmp0_ = self->priv->db;
+ _tmp1_ = self->priv->sql;
+ _tmp2_ = id;
+ _tmp3_ = rygel_media_export_sql_factory_make (_tmp1_, _tmp2_);
+ _tmp4_ = values;
+ _tmp4__length1 = values_length1;
+ _tmp5_ = rygel_media_export_database_query_value (_tmp0_, _tmp3_, _tmp4_, _tmp4__length1, &inner_error);
+ _tmp6_ = _tmp5_;
+ if (inner_error != NULL) {
+ if (inner_error->domain == RYGEL_MEDIA_EXPORT_DATABASE_ERROR) {
+ g_propagate_error (error, inner_error);
+ return 0;
+ } else {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, inner_error->message, g_quark_to_string (inner_error->domain), inner_error->code);
+ g_clear_error (&inner_error);
+ return 0;
+ }
+ }
+ result = _tmp6_;
+ return result;
}
static gchar* string_slice (const gchar* self, glong start, glong end) {
- gchar* result = NULL;
- gint _tmp0_;
- gint _tmp1_;
- glong string_length;
- glong _tmp2_;
- glong _tmp5_;
- gboolean _tmp8_ = FALSE;
- glong _tmp9_;
- gboolean _tmp12_;
- gboolean _tmp13_ = FALSE;
- glong _tmp14_;
- gboolean _tmp17_;
- glong _tmp18_;
- glong _tmp19_;
- glong _tmp20_;
- glong _tmp21_;
- glong _tmp22_;
- gchar* _tmp23_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- _tmp0_ = strlen (self);
- _tmp1_ = _tmp0_;
- string_length = (glong) _tmp1_;
- _tmp2_ = start;
- if (_tmp2_ < ((glong) 0)) {
- glong _tmp3_;
- glong _tmp4_;
- _tmp3_ = string_length;
- _tmp4_ = start;
- start = _tmp3_ + _tmp4_;
- }
- _tmp5_ = end;
- if (_tmp5_ < ((glong) 0)) {
- glong _tmp6_;
- glong _tmp7_;
- _tmp6_ = string_length;
- _tmp7_ = end;
- end = _tmp6_ + _tmp7_;
- }
- _tmp9_ = start;
- if (_tmp9_ >= ((glong) 0)) {
- glong _tmp10_;
- glong _tmp11_;
- _tmp10_ = start;
- _tmp11_ = string_length;
- _tmp8_ = _tmp10_ <= _tmp11_;
- } else {
- _tmp8_ = FALSE;
- }
- _tmp12_ = _tmp8_;
- g_return_val_if_fail (_tmp12_, NULL);
- _tmp14_ = end;
- if (_tmp14_ >= ((glong) 0)) {
- glong _tmp15_;
- glong _tmp16_;
- _tmp15_ = end;
- _tmp16_ = string_length;
- _tmp13_ = _tmp15_ <= _tmp16_;
- } else {
- _tmp13_ = FALSE;
- }
- _tmp17_ = _tmp13_;
- g_return_val_if_fail (_tmp17_, NULL);
- _tmp18_ = start;
- _tmp19_ = end;
- g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL);
- _tmp20_ = start;
- _tmp21_ = end;
- _tmp22_ = start;
- _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_));
- result = _tmp23_;
- return result;
+ gchar* result = NULL;
+ gint _tmp0_;
+ gint _tmp1_;
+ glong string_length;
+ glong _tmp2_;
+ glong _tmp5_;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_;
+ gboolean _tmp12_;
+ gboolean _tmp13_ = FALSE;
+ glong _tmp14_;
+ gboolean _tmp17_;
+ glong _tmp18_;
+ glong _tmp19_;
+ glong _tmp20_;
+ glong _tmp21_;
+ glong _tmp22_;
+ gchar* _tmp23_ = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ _tmp0_ = strlen (self);
+ _tmp1_ = _tmp0_;
+ string_length = (glong) _tmp1_;
+ _tmp2_ = start;
+ if (_tmp2_ < ((glong) 0)) {
+ glong _tmp3_;
+ glong _tmp4_;
+ _tmp3_ = string_length;
+ _tmp4_ = start;
+ start = _tmp3_ + _tmp4_;
+ }
+ _tmp5_ = end;
+ if (_tmp5_ < ((glong) 0)) {
+ glong _tmp6_;
+ glong _tmp7_;
+ _tmp6_ = string_length;
+ _tmp7_ = end;
+ end = _tmp6_ + _tmp7_;
+ }
+ _tmp9_ = start;
+ if (_tmp9_ >= ((glong) 0)) {
+ glong _tmp10_;
+ glong _tmp11_;
+ _tmp10_ = start;
+ _tmp11_ = string_length;
+ _tmp8_ = _tmp10_ <= _tmp11_;
+ } else {
+ _tmp8_ = FALSE;
+ }
+ _tmp12_ = _tmp8_;
+ g_return_val_if_fail (_tmp12_, NULL);
+ _tmp14_ = end;
+ if (_tmp14_ >= ((glong) 0)) {
+ glong _tmp15_;
+ glong _tmp16_;
+ _tmp15_ = end;
+ _tmp16_ = string_length;
+ _tmp13_ = _tmp15_ <= _tmp16_;
+ } else {
+ _tmp13_ = FALSE;
+ }
+ _tmp17_ = _tmp13_;
+ g_return_val_if_fail (_tmp17_, NULL);
+ _tmp18_ = start;
+ _tmp19_ = end;
+ g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL);
+ _tmp20_ = start;
+ _tmp21_ = end;
+ _tmp22_ = start;
+ _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_));
+ result = _tmp23_;
+ return result;
}
static gchar string_get (const gchar* self, glong index) {
- gchar result = '\0';
- glong _tmp0_;
- gchar _tmp1_;
- g_return_val_if_fail (self != NULL, '\0');
- _tmp0_ = index;
- _tmp1_ = ((gchar*) self)[_tmp0_];
- result = _tmp1_;
- return result;
+ gchar result = '\0';
+ glong _tmp0_;
+ gchar _tmp1_;
+ g_return_val_if_fail (self != NULL, '\0');
+ _tmp0_ = index;
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+ result = _tmp1_;
+ return result;
}
static gchar* rygel_media_export_media_cache_translate_sort_criteria (RygelMediaExportMediaCache* self, const gchar* sort_criteria) {
- gchar* result = NULL;
- gchar* collate = NULL;
- GString* _tmp0_;
- GString* builder;
- const gchar* _tmp1_;
- gchar** _tmp2_;
- gchar** _tmp3_ = NULL;
- gchar** fields;
- gint fields_length1;
- gchar** _tmp4_;
- gint _tmp4__length1;
- GString* _tmp27_;
- const gchar* _tmp28_;
- gchar* _tmp29_;
- GError * _inner_error_ = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (sort_criteria != NULL, NULL);
- _tmp0_ = g_string_new ("ORDER BY ");
- builder = _tmp0_;
- _tmp1_ = sort_criteria;
- _tmp3_ = _tmp2_ = g_strsplit (_tmp1_, ",", 0);
- fields = _tmp3_;
- fields_length1 = _vala_array_length (_tmp2_);
- _tmp4_ = fields;
- _tmp4__length1 = fields_length1;
+ gchar* result = NULL;
+ gchar* collate = NULL;
+ GString* _tmp0_;
+ GString* builder;
+ const gchar* _tmp1_;
+ gchar** _tmp2_;
+ gchar** _tmp3_ = NULL;
+ gchar** fields;
+ gint fields_length1;
+ gchar** _tmp4_;
+ gint _tmp4__length1;
+ GString* _tmp27_;
+ const gchar* _tmp28_;
+ gchar* _tmp29_;
+ GError * inner_error = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (sort_criteria != NULL, NULL);
+ _tmp0_ = g_string_new ("ORDER BY ");
+ builder = _tmp0_;
+ _tmp1_ = sort_criteria;
+ _tmp3_ = _tmp2_ = g_strsplit (_tmp1_, ",", 0);
+ fields = _tmp3_;
+ fields_length1 = _vala_array_length (_tmp2_);
+ _tmp4_ = fields;
+ _tmp4__length1 = fields_length1;
+ {
+ gchar** field_collection = NULL;
+ gint field_it = 0;
+ field_collection = _tmp4_;
+ for (field_it = 0; field_it < _tmp4__length1; field_it = field_it + 1) {
+ gchar* _tmp5_;
+ gchar* field = NULL;
+ _tmp5_ = g_strdup (field_collection[field_it]);
+ field = _tmp5_;
+ {
{
- gchar** field_collection = NULL;
- gint field_it = 0;
- field_collection = _tmp4_;
- for (field_it = 0; field_it < _tmp4__length1; field_it = field_it + 1) {
- gchar* _tmp5_;
- gchar* field = NULL;
- _tmp5_ = g_strdup (field_collection[field_it]);
- field = _tmp5_;
- {
- {
- const gchar* _tmp6_;
- const gchar* _tmp7_;
- gint _tmp8_;
- gint _tmp9_;
- gchar* _tmp10_ = NULL;
- gchar* _tmp11_;
- gchar* _tmp12_ = NULL;
- gchar* _tmp13_ = NULL;
- gchar* _tmp14_;
- gchar* column;
- const gchar* _tmp15_;
- gchar** _tmp16_;
- const gchar* _tmp17_;
- const gchar* _tmp19_ = NULL;
- const gchar* _tmp20_;
- gchar _tmp21_ = '\0';
- GString* _tmp22_;
- const gchar* _tmp23_;
- const gchar* _tmp24_;
- const gchar* _tmp25_;
- _tmp6_ = field;
- _tmp7_ = field;
- _tmp8_ = strlen (_tmp7_);
- _tmp9_ = _tmp8_;
- _tmp10_ = string_slice (_tmp6_, (glong) 1, (glong) _tmp9_);
- _tmp11_ = _tmp10_;
- _tmp13_ = rygel_media_export_media_cache_map_operand_to_column (self, _tmp11_, &_tmp12_, &_inner_error_);
- g_free (collate);
- collate = _tmp12_;
- _tmp14_ = _tmp13_;
- g_free (_tmp11_);
- column = _tmp14_;
- if (_inner_error_ != NULL) {
- goto __catch11_g_error;
- }
- _tmp15_ = field;
- _tmp16_ = fields;
- _tmp17_ = _tmp16_[0];
- if (g_strcmp0 (_tmp15_, _tmp17_) != 0) {
- GString* _tmp18_;
- _tmp18_ = builder;
- g_string_append (_tmp18_, ",");
- }
- _tmp20_ = field;
- _tmp21_ = string_get (_tmp20_, (glong) 0);
- if (_tmp21_ == '-') {
- _tmp19_ = "DESC";
- } else {
- _tmp19_ = "ASC";
- }
- _tmp22_ = builder;
- _tmp23_ = column;
- _tmp24_ = collate;
- _tmp25_ = _tmp19_;
- g_string_append_printf (_tmp22_, "%s %s %s ", _tmp23_, _tmp24_, _tmp25_);
- g_free (column);
- }
- goto __finally11;
- __catch11_g_error:
- {
- GError* _error_ = NULL;
- const gchar* _tmp26_;
- _error_ = _inner_error_;
- _inner_error_ = NULL;
- _tmp26_ = field;
- g_warning ("rygel-media-export-media-cache.vala:890: Skipping nsupported field: %s", _tmp26_);
- g_error_free (_error_);
- }
- __finally11:
- if (_inner_error_ != NULL) {
- g_free (field);
- fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
- _g_string_free0 (builder);
- g_free (collate);
- g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
- g_clear_error (&_inner_error_);
- return NULL;
- }
- g_free (field);
- }
- }
- }
- _tmp27_ = builder;
- _tmp28_ = _tmp27_->str;
- _tmp29_ = g_strdup (_tmp28_);
- result = _tmp29_;
- fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
- _g_string_free0 (builder);
- g_free (collate);
- return result;
+ const gchar* _tmp6_;
+ const gchar* _tmp7_;
+ gint _tmp8_;
+ gint _tmp9_;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_;
+ gchar* column;
+ const gchar* _tmp15_;
+ gchar** _tmp16_;
+ const gchar* _tmp17_;
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_;
+ gchar _tmp21_ = '\0';
+ GString* _tmp22_;
+ const gchar* _tmp23_;
+ const gchar* _tmp24_;
+ const gchar* _tmp25_;
+ _tmp6_ = field;
+ _tmp7_ = field;
+ _tmp8_ = strlen (_tmp7_);
+ _tmp9_ = _tmp8_;
+ _tmp10_ = string_slice (_tmp6_, (glong) 1, (glong) _tmp9_);
+ _tmp11_ = _tmp10_;
+ _tmp13_ = rygel_media_export_media_cache_map_operand_to_column (self, _tmp11_, &_tmp12_, &inner_error);
+ g_free (collate);
+ collate = _tmp12_;
+ _tmp14_ = _tmp13_;
+ g_free (_tmp11_);
+ column = _tmp14_;
+ if (inner_error != NULL) {
+ goto __catch11_g_error;
+ }
+ _tmp15_ = field;
+ _tmp16_ = fields;
+ _tmp17_ = _tmp16_[0];
+ if (g_strcmp0 (_tmp15_, _tmp17_) != 0) {
+ GString* _tmp18_;
+ _tmp18_ = builder;
+ g_string_append (_tmp18_, ",");
+ }
+ _tmp20_ = field;
+ _tmp21_ = string_get (_tmp20_, (glong) 0);
+ if (_tmp21_ == '-') {
+ _tmp19_ = "DESC";
+ } else {
+ _tmp19_ = "ASC";
+ }
+ _tmp22_ = builder;
+ _tmp23_ = column;
+ _tmp24_ = collate;
+ _tmp25_ = _tmp19_;
+ g_string_append_printf (_tmp22_, "%s %s %s ", _tmp23_, _tmp24_, _tmp25_);
+ g_free (column);
+ }
+ goto __finally11;
+ __catch11_g_error:
+ {
+ GError* _error_ = NULL;
+ const gchar* _tmp26_;
+ _error_ = inner_error;
+ inner_error = NULL;
+ _tmp26_ = field;
+ g_warning ("rygel-media-export-media-cache.vala:890: Skipping nsupported field: %s", _tmp26_);
+ g_error_free (_error_);
+ }
+ __finally11:
+ if (inner_error != NULL) {
+ g_free (field);
+ fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
+ _g_string_free0 (builder);
+ g_free (collate);
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, inner_error->message, g_quark_to_string (inner_error->domain), inner_error->code);
+ g_clear_error (&inner_error);
+ return NULL;
+ }
+ g_free (field);
+ }
+ }
+ }
+ _tmp27_ = builder;
+ _tmp28_ = _tmp27_->str;
+ _tmp29_ = g_strdup (_tmp28_);
+ result = _tmp29_;
+ fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
+ _g_string_free0 (builder);
+ g_free (collate);
+ return result;
}
static void rygel_media_export_media_cache_class_init (RygelMediaExportMediaCacheClass * klass) {
- rygel_media_export_media_cache_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (RygelMediaExportMediaCachePrivate));
- G_OBJECT_CLASS (klass)->dispose = rygel_media_export_media_cache_dispose;
+ rygel_media_export_media_cache_parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (RygelMediaExportMediaCachePrivate));
+ G_OBJECT_CLASS (klass)->dispose = rygel_media_export_media_cache_dispose;
}
static void rygel_media_export_media_cache_init (RygelMediaExportMediaCache * self) {
- self->priv = RYGEL_MEDIA_EXPORT_MEDIA_CACHE_GET_PRIVATE (self);
+ self->priv = RYGEL_MEDIA_EXPORT_MEDIA_CACHE_GET_PRIVATE (self);
}
@@ -3933,30 +3055,30 @@ static void rygel_media_export_media_cache_dispose (GObject *object) {
}
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]);
- }
- }
- }
+ 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);
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
}
static gint _vala_array_length (gpointer array) {
- int length;
- length = 0;
- if (array) {
- while (((gpointer*) array)[length]) {
- length++;
- }
- }
- return length;
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]