[rygel-gst-0-10-plugins] Cleanup RygelMediaExportMediaCache.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel-gst-0-10-plugins] Cleanup RygelMediaExportMediaCache.
- Date: Mon, 4 Feb 2013 14:35:35 +0000 (UTC)
commit 8a07694da6e197cf31b7bbe22e053e0e9b3b5070
Author: Krzesimir Nowak <krnowak openismus com>
Date: Mon Feb 4 15:35:00 2013 +0100
Cleanup RygelMediaExportMediaCache.
src/media-export/rygel-media-export-media-cache.c | 2407 ++++++--------------
.../rygel-media-export-object-factory.c | 19 +-
.../rygel-media-export-object-factory.h | 4 -
3 files changed, 694 insertions(+), 1736 deletions(-)
---
diff --git a/src/media-export/rygel-media-export-media-cache.c b/src/media-export/rygel-media-export-media-cache.c
index 21af856..f4a5398 100644
--- a/src/media-export/rygel-media-export-media-cache.c
+++ b/src/media-export/rygel-media-export-media-cache.c
@@ -33,6 +33,7 @@
#include "rygel-media-export-sql-factory.h"
#include "rygel-media-export-sql-function.h"
#include "rygel-media-export-sql-operator.h"
+#include "rygel-media-export-string-utils.h"
#include "rygel-media-export-video-item.h"
/**
@@ -51,8 +52,6 @@ G_DEFINE_TYPE (RygelMediaExportMediaCache,
typedef struct _RygelMediaExportExistsCacheEntry RygelMediaExportExistsCacheEntry;
#define _rygel_media_export_exists_cache_entry_free0(var) ((var == NULL) ? NULL : (var = (rygel_media_export_exists_cache_entry_free (var), NULL)))
-#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))
-#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
typedef enum {
RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER,
@@ -84,26 +83,21 @@ enum {
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);
static void rygel_media_export_media_cache_create_object (RygelMediaExportMediaCache* self, RygelMediaObject* item, GError** error);
static void rygel_media_export_media_cache_save_metadata (RygelMediaExportMediaCache* self, RygelMediaItem* item, GError** error);
static RygelMediaExportDatabaseCursor* rygel_media_export_media_cache_exec_cursor (RygelMediaExportMediaCache* self, RygelMediaExportSQLString id, GValue* values, int values_length1, GError** error);
static RygelMediaObject* rygel_media_export_media_cache_get_object_from_statement (RygelMediaExportMediaCache* self, RygelMediaContainer* parent, sqlite3_stmt* statement);
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 gchar* rygel_media_export_media_cache_translate_sort_criteria (const gchar* sort_criteria);
+static gchar* rygel_media_export_media_cache_translate_search_expression (RygelSearchExpression* expression, GArray* args, const gchar* prefix, GError** error);
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 gchar* rygel_media_export_media_cache_map_operand_to_column (const gchar* operand, gchar** collate, GError** error);
static gboolean rygel_media_export_media_cache_create_schema (RygelMediaExportMediaCache* self);
static void rygel_media_export_media_cache_fill_item (RygelMediaExportMediaCache* self, sqlite3_stmt* statement, RygelMediaItem* item);
-static gchar* rygel_media_export_media_cache_search_expression_to_sql (RygelMediaExportMediaCache* self, RygelSearchExpression* expression, GArray* args, GError** error);
-static gchar* rygel_media_export_media_cache_logical_expression_to_sql (RygelMediaExportMediaCache* self, RygelLogicalExpression* expression, GArray* args, GError** error);
-static gchar* rygel_media_export_media_cache_relational_expression_to_sql (RygelMediaExportMediaCache* self, RygelRelationalExpression* exp, GArray* args, GError** error);
+static gchar* rygel_media_export_media_cache_search_expression_to_sql (RygelSearchExpression* expression, GArray* args, GError** error);
+static gchar* rygel_media_export_media_cache_logical_expression_to_sql (RygelLogicalExpression* expression, GArray* args, GError** error);
+static gchar* rygel_media_export_media_cache_relational_expression_to_sql (RygelRelationalExpression* exp, GArray* args, GError** error);
static void rygel_media_export_media_cache_dispose (GObject* obj);
-static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
-static gint _vala_array_length (gpointer array);
static GArray *
our_g_value_array_new (void)
@@ -212,16 +206,6 @@ rygel_media_export_media_cache_get_default (GError **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);
-}
-
void
rygel_media_export_media_cache_remove_by_id (RygelMediaExportMediaCache *self,
const gchar *id,
@@ -524,7 +508,7 @@ rygel_media_export_media_cache_get_children (RygelMediaExportMediaCache *self,
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);
+ sort_order = rygel_media_export_media_cache_translate_sort_criteria (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);
@@ -586,7 +570,7 @@ rygel_media_export_media_cache_get_objects_by_search_expression (RygelMediaExpor
args = our_g_value_array_new ();
inner_error = NULL;
- filter = rygel_media_export_media_cache_translate_search_expression (self, expression, args, "WHERE", &inner_error);
+ filter = rygel_media_export_media_cache_translate_search_expression (expression, args, "WHERE", &inner_error);
if (inner_error) {
g_propagate_error (error, inner_error);
g_array_unref (args);
@@ -629,11 +613,6 @@ rygel_media_export_media_cache_get_objects_by_search_expression (RygelMediaExpor
return objects;
}
-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,
@@ -649,7 +628,7 @@ rygel_media_export_media_cache_get_object_count_by_search_expression (RygelMedia
args = our_g_value_array_new ();
inner_error = NULL;
- filter = rygel_media_export_media_cache_translate_search_expression (self, expression, args, "WHERE", &inner_error);
+ filter = rygel_media_export_media_cache_translate_search_expression (expression, args, "WHERE", &inner_error);
if (inner_error) {
g_propagate_error (error, inner_error);
g_array_unref (args);
@@ -788,7 +767,7 @@ rygel_media_export_media_cache_get_objects_by_filter (RygelMediaExportMediaCache
} 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);
+ sort_order = rygel_media_export_media_cache_translate_sort_criteria (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);
@@ -827,7 +806,7 @@ rygel_media_export_media_cache_get_objects_by_filter (RygelMediaExportMediaCache
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),
+ (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ID),
parent_id);
}
}
@@ -906,7 +885,7 @@ rygel_media_export_media_cache_get_child_ids (RygelMediaExportMediaCache *self,
g_object_unref (cursor);
return NULL;
}
- gee_abstract_collection_add (abstract_children, sqlite3_column_text (statement, 0));
+ gee_abstract_collection_add (abstract_children, (const gchar *) sqlite3_column_text (statement, 0));
}
g_object_unref (cursor);
return children;
@@ -965,7 +944,7 @@ rygel_media_export_media_cache_get_meta_data_column_by_filter (RygelMediaExportM
g_object_unref (data);
return NULL;
}
- gee_abstract_collection_add (abstract_data, sqlite3_column_text (statement, 0));
+ gee_abstract_collection_add (abstract_data, (const gchar *) sqlite3_column_text (statement, 0));
}
g_object_unref (cursor);
@@ -991,14 +970,14 @@ rygel_media_export_media_cache_get_object_attribute_by_search_expression (RygelM
args = our_g_value_array_new ();
inner_error = NULL;
- filter = rygel_media_export_media_cache_translate_search_expression (self, expression, args, "AND", &inner_error);
+ filter = rygel_media_export_media_cache_translate_search_expression (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);
+ column = rygel_media_export_media_cache_map_operand_to_column (attribute, NULL, &inner_error);
if (inner_error) {
g_propagate_error (error, inner_error);
g_free (filter);
@@ -1084,7 +1063,7 @@ rygel_media_export_media_cache_get_flagged_uris (RygelMediaExportMediaCache *se
g_object_unref (uris);
return NULL;
}
- gee_abstract_collection_add (abstract_uris, sqlite3_column_text (statement, 0));
+ gee_abstract_collection_add (abstract_uris, (const gchar *) sqlite3_column_text (statement, 0));
}
g_object_unref (cursor);
return GEE_LIST (uris);
@@ -1126,7 +1105,7 @@ rygel_media_export_media_cache_get_exists_cache (RygelMediaExportMediaCache *se
}
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);
+ gee_abstract_map_set (abstract_cache, (const gchar *) sqlite3_column_text (statement, 2), &entry);
}
g_object_unref (cursor);
}
@@ -1239,506 +1218,220 @@ rygel_media_export_media_cache_open_db (RygelMediaExportMediaCache *self,
}
}
+static void
+rygel_media_export_media_cache_save_metadata (RygelMediaExportMediaCache *self,
+ RygelMediaItem *item,
+ GError **error) {
+ GValue values [] = {G_VALUE_INIT, /* item size */
+ G_VALUE_INIT, /* item mime type */
+ G_VALUE_INIT, /* visual item width */
+ G_VALUE_INIT, /* visual item height */
+ G_VALUE_INIT, /* item upnp class */
+ G_VALUE_INIT, /* music item artist / video item author / playlist item creator */
+ G_VALUE_INIT, /* music item album */
+ G_VALUE_INIT, /* item date */
+ G_VALUE_INIT, /* audio item bitrate */
+ G_VALUE_INIT, /* audio item sample frequency */
+ G_VALUE_INIT, /* audio item bits per sample */
+ G_VALUE_INIT, /* audio item channels */
+ G_VALUE_INIT, /* music item track number */
+ G_VALUE_INIT, /* visual item color depth */
+ G_VALUE_INIT, /* audio item duration */
+ G_VALUE_INIT, /* item id */
+ G_VALUE_INIT, /* item dlna profile */
+ G_VALUE_INIT, /* music item genre */
+ G_VALUE_INIT}; /* music item disc */
+ GError *inner_error;
+ RygelMediaObject *object;
+ guint iter;
+ 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;
+ object = RYGEL_MEDIA_OBJECT (item);
+
+ g_value_init (&(values[0]), G_TYPE_INT64);
+ g_value_set_int64 (&(values[0]), rygel_media_item_get_size (item));
+
+ g_value_init (&(values[1]), G_TYPE_STRING);
+ g_value_set_string (&(values[1]), rygel_media_item_get_mime_type (item));
+
+ g_value_init (&(values[2]), G_TYPE_INT);
+ g_value_set_int (&(values[2]), -1);
+
+ g_value_init (&(values[3]), G_TYPE_INT);
+ g_value_set_int (&(values[3]), -1);
+
+ g_value_init (&(values[4]), G_TYPE_STRING);
+ g_value_set_string (&(values[4]), rygel_media_object_get_upnp_class (object));
-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);
+ rygel_media_export_database_null (&(values[5]));
+
+ rygel_media_export_database_null (&(values[6]));
+
+ g_value_init (&(values[7]), G_TYPE_STRING);
+ g_value_set_string (&(values[7]), rygel_media_item_get_date (item));
+
+ g_value_init (&(values[8]), G_TYPE_INT);
+ g_value_set_int (&(values[8]), -1);
+
+ g_value_init (&(values[9]), G_TYPE_INT);
+ g_value_set_int (&(values[9]), -1);
+
+ g_value_init (&(values[10]), G_TYPE_INT);
+ g_value_set_int (&(values[10]), -1);
+
+ g_value_init (&(values[11]), G_TYPE_INT);
+ g_value_set_int (&(values[11]), -1);
+
+ g_value_init (&(values[12]), G_TYPE_INT);
+ g_value_set_int (&(values[12]), -1);
+
+ g_value_init (&(values[13]), G_TYPE_INT);
+ g_value_set_int (&(values[13]), -1);
+
+ g_value_init (&(values[14]), G_TYPE_LONG);
+ g_value_set_long (&(values[14]), -1);
+
+ g_value_init (&(values[15]), G_TYPE_STRING);
+ g_value_set_string (&(values[15]), rygel_media_object_get_id (object));
+
+ g_value_init (&(values[16]), G_TYPE_STRING);
+ g_value_set_string (&(values[16]), rygel_media_item_get_dlna_profile (item));
+
+ rygel_media_export_database_null (&(values[17]));
+
+ g_value_init (&(values[18]), G_TYPE_INT);
+ g_value_set_int (&(values[18]), -1);
+
+ if (RYGEL_IS_AUDIO_ITEM (item)) {
+ RygelAudioItem *audio_item = RYGEL_AUDIO_ITEM (item);
+
+ g_value_set_long (&(values[14]), rygel_audio_item_get_duration (audio_item));
+ g_value_set_int (&(values[8]), rygel_audio_item_get_bitrate (audio_item));
+ g_value_set_int (&(values[9]), rygel_audio_item_get_sample_freq (audio_item));
+ g_value_set_int (&(values[10]), rygel_audio_item_get_bits_per_sample (audio_item));
+ g_value_set_int (&(values[11]), rygel_audio_item_get_channels (audio_item));
+ if (RYGEL_IS_MUSIC_ITEM (item)) {
+ RygelMusicItem *music_item = RYGEL_MUSIC_ITEM (item);
+
+ g_value_unset (&(values[5]));
+ g_value_init (&(values[5]), G_TYPE_STRING);
+ g_value_set_string (&(values[5]), rygel_music_item_get_artist (music_item));
+
+ g_value_unset (&(values[6]));
+ g_value_init (&(values[6]), G_TYPE_STRING);
+ g_value_set_string (&(values[6]), rygel_music_item_get_album (music_item));
+
+ g_value_unset (&(values[17]));
+ g_value_init (&(values[17]), G_TYPE_STRING);
+ g_value_set_string (&(values[17]), rygel_music_item_get_genre (music_item));
+
+ g_value_set_int (&(values[12]), rygel_music_item_get_track_number (music_item));
+ if (RYGEL_MEDIA_EXPORT_IS_MUSIC_ITEM (item)) {
+ g_value_set_int (&(values[18]), RYGEL_MEDIA_EXPORT_MUSIC_ITEM (item)->disc);
+ }
}
- 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);
+ }
+ if (RYGEL_IS_VISUAL_ITEM (item)) {
+ RygelVisualItem *visual_item = RYGEL_VISUAL_ITEM (item);
+
+ g_value_set_int (&(values[2]), rygel_visual_item_get_width (visual_item));
+ g_value_set_int (&(values[3]), rygel_visual_item_get_height (visual_item));
+ g_value_set_int (&(values[13]), rygel_visual_item_get_color_depth (visual_item));
+
+ if (RYGEL_IS_VIDEO_ITEM (item)) {
+ RygelVideoItem *video_item = RYGEL_VIDEO_ITEM (item);
+
+ g_value_set_string (&(values[5]), rygel_video_item_get_author (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) {
+ }
+ inner_error = NULL;
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_SAVE_METADATA),
+ 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);
- 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) {
+static void
+rygel_media_export_media_cache_create_object (RygelMediaExportMediaCache *self,
+ RygelMediaObject *object,
+ GError **error) {
+ GValue values[] = {G_VALUE_INIT, /* object id */
+ G_VALUE_INIT, /* object title */
+ G_VALUE_INIT, /* type */
+ G_VALUE_INIT, /* parent */
+ G_VALUE_INIT, /* object modified */
+ G_VALUE_INIT}; /* object uris */
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)) {
+ GError *inner_error;
+ RygelMediaObject *object_parent;
+ gchar *uri;
+ guint iter;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
+ g_return_if_fail (RYGEL_IS_MEDIA_OBJECT (object));
+
+ priv = self->priv;
+ g_value_init (&(values[0]), G_TYPE_STRING);
+ g_value_set_string (&(values[0]), rygel_media_object_get_id (object));
+
+ g_value_init (&(values[1]), G_TYPE_STRING);
+ g_value_set_string (&(values[1]), rygel_media_object_get_title (object));
+
+ if (RYGEL_IS_MEDIA_ITEM (object)) {
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;
+ type = (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER;
+ }
+
+ g_value_init (&(values[2]), G_TYPE_INT);
+ g_value_set_int (&(values[2]), type);
+
+ object_parent = RYGEL_MEDIA_OBJECT (rygel_media_object_get_parent (object));
+ if (object_parent) {
+ g_value_init (&(values[3]), G_TYPE_STRING);
+ g_value_set_string (&(values[3]), rygel_media_object_get_id (object_parent));
} 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_);
+ rygel_media_export_database_null (&(values[3]));
+ }
+
+ g_value_init (&(values[4]), G_TYPE_UINT64);
+ g_value_set_uint64 (&(values[4]), rygel_media_object_get_modified (object));
+
+ if (gee_collection_get_is_empty (GEE_COLLECTION (object->uris))) {
+ uri = NULL;
} 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) {
+ uri = (gchar *) gee_list_first (GEE_LIST (object->uris));
+ }
+ g_value_init (&(values[5]), G_TYPE_STRING);
+ g_value_take_string (&(values[5]), uri);
+
+ inner_error = NULL;
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_INSERT),
+ 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);
- 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.
*
@@ -1747,1283 +1440,584 @@ static void rygel_media_export_media_cache_create_object (RygelMediaExportMediaC
*
* @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;
+static gboolean
+rygel_media_export_media_cache_create_schema (RygelMediaExportMediaCache *self) {
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), FALSE);
+
+ priv = self->priv;
+ inner_error = NULL;
+ rygel_media_export_database_begin (priv->db, &inner_error);
+ if (inner_error) {
+ goto out;
}
- 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);
+
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_SCHEMA),
+ NULL,
+ 0,
+ &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_COMMON),
+ NULL,
+ 0,
+ &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_CLOSURE),
+ NULL,
+ 0,
+ &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_INDEX_COMMON),
+ NULL,
+ 0,
+ &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+
+ rygel_media_export_database_exec (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_CLOSURE),
+ NULL,
+ 0,
+ &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+
+ rygel_media_export_database_commit (priv->db, &inner_error);
+ if (inner_error) {
+ goto out;
+ }
+
+ rygel_media_export_database_analyze (priv->db);
+ out:
+ if (inner_error) {
+ g_warning ("Failed to create schema: %s", inner_error->message);
+ rygel_media_export_database_rollback (priv->db);
+ g_error_free (inner_error);
return FALSE;
}
- result = FALSE;
- return result;
+ return TRUE;
}
+static RygelMediaObject *
+rygel_media_export_media_cache_get_object_from_statement (RygelMediaExportMediaCache *self,
+ RygelMediaContainer *parent,
+ sqlite3_stmt *statement) {
+ RygelMediaObject *object;
+ const gchar *title;
+ const gchar *object_id;
+ const gchar *uri;
+ RygelMediaExportMediaCachePrivate *priv;
-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 (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), 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;
+
+ priv = self->priv;
+ title = (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TITLE);
+ object_id = (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ID);
+ uri = (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_URI);
+ switch (sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TYPE)) {
+ case 0: { /* container */
+ object = RYGEL_MEDIA_OBJECT (rygel_media_export_object_factory_get_container (priv->factory,
+ object_id,
+ title,
+ (guint) 0,
+ uri));
+ if (uri) {
+ gee_abstract_collection_add (GEE_ABSTRACT_COLLECTION (object->uris), uri);
}
- 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;
+ break;
+ }
+
+ case 1: { /* item */
+ RygelMediaItem *item = rygel_media_export_object_factory_get_item (priv->factory,
+ parent,
+ object_id,
+ title,
+ (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CLASS));
+
+ object = RYGEL_MEDIA_OBJECT (item);
+ rygel_media_export_media_cache_fill_item (self, statement, item);
+ if (uri) {
+ rygel_media_item_add_uri (item, uri);
}
+ break;
+ }
+
default:
- {
- g_assert_not_reached ();
- }
+ 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);
+ if (object) {
+ guint64 modified;
+
+ rygel_media_object_set_modified (object,
+ (guint64) sqlite3_column_int64 (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TIMESTAMP));
+ modified = rygel_media_object_get_modified (object);
+ if ((modified == G_MAXINT64) && RYGEL_IS_MEDIA_ITEM (object)) {
+ rygel_media_object_set_modified (object, 0);
+ rygel_media_item_set_place_holder (RYGEL_MEDIA_ITEM (object), TRUE);
}
}
- result = object;
- return result;
-}
+ return object;
+}
-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);
+static void
+rygel_media_export_media_cache_fill_item (RygelMediaExportMediaCache *self,
+ sqlite3_stmt *statement,
+ RygelMediaItem *item) {
+ g_return_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self));
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_return_if_fail (RYGEL_IS_MEDIA_ITEM (item));
+
+ rygel_media_item_set_date (item,
+ (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DATE));
+ rygel_media_item_set_mime_type (item,
+ (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_MIME_TYPE));
+ rygel_media_item_set_dlna_profile (item, (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DLNA_PROFILE));
+ rygel_media_item_set_size (item,
+ sqlite3_column_int64 (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_SIZE));
+ if (RYGEL_IS_AUDIO_ITEM (item)) {
+ RygelAudioItem *audio_item = RYGEL_AUDIO_ITEM (item);
+
+ rygel_audio_item_set_duration (audio_item,
+ (glong) sqlite3_column_int64 (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DURATION));
+ rygel_audio_item_set_bitrate (audio_item,
+ sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_BITRATE));
+ rygel_audio_item_set_sample_freq (audio_item,
+ sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_SAMPLE_FREQ));
+ rygel_audio_item_set_bits_per_sample (audio_item,
+ sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_BITS_PER_SAMPLE));
+ rygel_audio_item_set_channels (audio_item, sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CHANNELS));
+ if (RYGEL_IS_MUSIC_ITEM (item)) {
+ RygelMusicItem *music_item = RYGEL_MUSIC_ITEM (item);
+
+ rygel_music_item_set_artist (music_item, (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_AUTHOR));
+ rygel_music_item_set_album (music_item, (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_ALBUM));
+ rygel_music_item_set_genre (music_item, (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_GENRE));
+ rygel_music_item_set_track_number (music_item, sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TRACK));
+ rygel_music_item_lookup_album_art (music_item);
+ }
+ }
+ if (RYGEL_IS_VISUAL_ITEM (item)) {
+ RygelVisualItem *visual_item = RYGEL_VISUAL_ITEM (item);
+
+ rygel_visual_item_set_width (visual_item, sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_WIDTH));
+ rygel_visual_item_set_height (visual_item, sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_HEIGHT));
+ rygel_visual_item_set_color_depth (visual_item, sqlite3_column_int (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_COLOR_DEPTH));
+
+ if (RYGEL_IS_VIDEO_ITEM (item)) {
+ RygelVideoItem *video_item = RYGEL_VIDEO_ITEM (item);
+
+ rygel_video_item_set_author (video_item,
+ (const gchar *) sqlite3_column_text (statement, (gint) RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_AUTHOR));
}
- 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;
+static gchar *
+rygel_media_export_media_cache_translate_search_expression (RygelSearchExpression *expression,
+ GArray *args,
+ const gchar *prefix,
+ GError **error) {
+ gchar *str;
gchar* filter;
- const gchar* _tmp5_;
- const gchar* _tmp6_;
- gchar* _tmp7_ = NULL;
- GError * inner_error = NULL;
- g_return_val_if_fail (self != NULL, NULL);
+ GError *inner_error;
+
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) {
+
+ if (!expression) {
+ return g_strdup ("");
+ }
+
+ inner_error = NULL;
+ filter = rygel_media_export_media_cache_search_expression_to_sql (expression, args, &inner_error);
+ if (inner_error) {
g_propagate_error (error, inner_error);
return NULL;
}
- _tmp5_ = prefix;
- _tmp6_ = filter;
- _tmp7_ = g_strdup_printf (" %s %s", _tmp5_, _tmp6_);
- result = _tmp7_;
+ str = g_strdup_printf (" %s %s", prefix, filter);
g_free (filter);
- return result;
+ return str;
}
+static gchar *
+rygel_media_export_media_cache_search_expression_to_sql (RygelSearchExpression *expression,
+ GArray *args,
+ GError **error) {
+ GError *inner_error;
-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) {
+
+ if (!expression) {
+ return g_strdup ("");
+ }
+
+ if (RYGEL_IS_LOGICAL_EXPRESSION (expression)) {
+ gchar *str;
+
+ inner_error = NULL;
+ str = rygel_media_export_media_cache_logical_expression_to_sql (RYGEL_LOGICAL_EXPRESSION (expression),
+ args,
+ &inner_error);
+ if (inner_error) {
g_propagate_error (error, inner_error);
return NULL;
}
- result = _tmp6_;
- return result;
+
+ return str;
} 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) {
+ gchar *str;
+
+ str = rygel_media_export_media_cache_relational_expression_to_sql (RYGEL_RELATIONAL_EXPRESSION (expression),
+ args,
+ &inner_error);
+ if (inner_error) {
g_propagate_error (error, inner_error);
return NULL;
}
- result = _tmp10_;
- return result;
+ return str;
}
}
+static gchar *
+rygel_media_export_media_cache_logical_expression_to_sql (RygelLogicalExpression *expression,
+ GArray *args,
+ GError **error) {
+ RygelSearchExpression *search_expression;
+ gchar *str;
+ gchar *left_sql_string;
+ gchar *right_sql_string;
+ const gchar *operator_sql_string;
+ GError *inner_error;
-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 (RYGEL_IS_LOGICAL_EXPRESSION (expression), 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) {
+
+ search_expression = RYGEL_SEARCH_EXPRESSION (expression);
+ inner_error = NULL;
+ left_sql_string = rygel_media_export_media_cache_search_expression_to_sql (RYGEL_SEARCH_EXPRESSION (search_expression->operand1),
+ args,
+ &inner_error);
+ if (inner_error) {
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) {
+
+ right_sql_string = rygel_media_export_media_cache_search_expression_to_sql (RYGEL_SEARCH_EXPRESSION (search_expression->operand2),
+ args,
+ &inner_error);
+ if (inner_error) {
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);
+
+ if (((RygelLogicalOperator) ((gintptr) search_expression->op)) == RYGEL_LOGICAL_OPERATOR_AND) {
+ operator_sql_string = "AND";
+ } else {
+ operator_sql_string = "OR";
+ }
+
+ str = g_strdup_printf ("(%s %s %s)", left_sql_string, operator_sql_string, right_sql_string);
g_free (right_sql_string);
g_free (left_sql_string);
- return result;
+ return str;
}
-
-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;
+static gchar *
+rygel_media_export_media_cache_map_operand_to_column (const gchar *operand,
+ gchar **collate,
+ GError **error) {
+ const 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_;
+
+ if (!g_strcmp0 (operand, "res")) {
+ column = "o.uri";
+ } else if (!g_strcmp0 (operand, "res duration")) {
+ column = "m.duration";
+ } else if (!g_strcmp0 (operand, "@refID")) {
+ column = "NULL";
+ } else if (!g_strcmp0 (operand, "@id")) {
+ column = "o.upnp_id";
+ } else if (!g_strcmp0 (operand, "@parentID")) {
+ column = "o.parent";
+ } else if (!g_strcmp0 (operand, "upnp:class")) {
+ column = "m.class";
+ } else if (!g_strcmp0 (operand, "dc:title")) {
+ column = "o.title";
+ use_collation = TRUE;
+ } else if (!g_strcmp0 (operand, "upnp:artist") || !g_strcmp0(operand, "dc:creator")) {
+ column = "m.author";
+ use_collation = TRUE;
+ } else if (!g_strcmp0 (operand, "dc:date")) {
+ column = "strftime(\"%Y\", m.date)";
+ } else if (!g_strcmp0 (operand, "upnp:album")) {
+ column = "m.album";
+ use_collation = TRUE;
+ } else if (!g_strcmp0 (operand, "upnp:genre") || !g_strcmp0(operand, "dc:genre")) {
+ column = "m.genre";
+ use_collation = TRUE;
+ } else if (!g_strcmp0 (operand, "upnp:originalTrackNumber")) {
+ column = "m.track";
+ } else if (!g_strcmp0 (operand, "upnp:originalVolumeNumber")) {
+ column = "m.disc";
} else {
- gchar* _tmp23_;
- _tmp23_ = g_strdup ("");
- g_free (_vala_collate);
- _vala_collate = _tmp23_;
+ g_set_error (error,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR,
+ RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_UNSUPPORTED_SEARCH,
+ "Unsupported column %s",
+ operand);
+ return NULL;
}
- result = column;
if (collate) {
- *collate = _vala_collate;
- } else {
- g_free (_vala_collate);
+ *collate = g_strdup (use_collation ? "COLLATE CASEFOLD" : "");
}
- return result;
+ return g_strdup (column);
}
+static gchar *
+rygel_media_export_media_cache_relational_expression_to_sql (RygelRelationalExpression *exp,
+ GArray *args,
+ GError **error) {
+ RygelSearchExpression *search_expression;
+ gchar *str;
+ GValue v = G_VALUE_INIT;
+ gchar *collate;
+ gchar *column;
+ RygelMediaExportSqlOperator *operator;
+ GError *inner_error;
-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 (RYGEL_IS_RELATIONAL_EXPRESSION (exp), 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) {
+ search_expression = RYGEL_SEARCH_EXPRESSION (exp);
+ inner_error = NULL;
+ column = rygel_media_export_media_cache_map_operand_to_column ((const gchar *) search_expression->operand1, &collate, &inner_error);
+ if (inner_error) {
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;
+
+ switch ((GUPnPSearchCriteriaOp) ((gintptr) search_expression->op)) {
+ case GUPNP_SEARCH_CRITERIA_OP_EXISTS: {
+ const gchar *sql_function;
+ gchar *sql;
+
+ if (g_strcmp0 ((const gchar *) search_expression->operand2, "true")) {
+ sql_function = g_strdup ("%s IS NULL OR %s = ''");
+ } else {
+ sql_function = g_strdup ("%s IS NOT NULL AND %s != ''");
}
+
+ sql = g_strdup_printf (sql_function, column, column);
+ g_free (column);
+ g_free (collate);
+
+ return sql;
+ }
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;
+ case GUPNP_SEARCH_CRITERIA_OP_GEQ: {
+ if (!g_strcmp0 (column, "m.class") &&
+ ((GUPnPSearchCriteriaOp) ((gintptr) search_expression->op) == GUPNP_SEARCH_CRITERIA_OP_EQ) &&
+ !g_strcmp0 ((const gchar *) search_expression->operand2, "object.container")) {
+ g_value_init (&v, G_TYPE_INT);
+ g_value_set_int (&v, (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER);
+ } else {
+ g_value_init (&v, G_TYPE_STRING);
+ g_value_set_string (&v, (const gchar *) search_expression->operand2);
+ operator = rygel_media_export_sql_operator_new_from_search_criteria_op ((GUPnPSearchCriteriaOp) ((gintptr) search_expression->op), column, collate);
}
- 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;
+ break;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_CONTAINS: {
+ operator = RYGEL_MEDIA_EXPORT_SQL_OPERATOR (rygel_media_export_sql_function_new ("contains", column));
+ g_value_init (&v, G_TYPE_STRING);
+ g_value_set_string (&v, (const gchar*) search_expression->operand2);
+ break;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN: {
+ operator = RYGEL_MEDIA_EXPORT_SQL_OPERATOR (rygel_media_export_sql_function_new ("NOT contains", column));
+ g_value_init (&v, G_TYPE_STRING);
+ g_value_set_string (&v, (const gchar*) search_expression->operand2);
+ break;
+ }
+ case GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM: {
+ if (!g_strcmp0 (column, "m.class") &&
+ g_str_has_prefix ((const gchar *) search_expression->operand2, "object.container")) {
+ operator = rygel_media_export_sql_operator_new ("=", "o.type_fk", "");
+ g_value_init (&v, G_TYPE_INT);
+ g_value_set_int (&v, (gint) RYGEL_MEDIA_EXPORT_OBJECT_TYPE_CONTAINER);
+ } else {
+ operator = rygel_media_export_sql_operator_new ("LIKE", column, "");
+ g_value_init (&v, G_TYPE_STRING);
+ g_value_take_string (&v, g_strdup_printf ("%s%%", (const gchar*) search_expression->operand2));
}
+ break;
}
- _tmp40_ = v;
- if (_tmp40_ != NULL) {
- g_array_append_val (args, *v);
+ default:
+ g_warning ("Unsupported op %d",
+ (gint) ((GUPnPSearchCriteriaOp) ((gintptr) search_expression->op)));
+ g_free (column);
+ g_free (collate);
+ return NULL;
}
- _tmp44_ = operator;
- _tmp45_ = rygel_media_export_sql_operator_to_string (_tmp44_);
- result = _tmp45_;
+ g_array_append_val (args, v);
+ str = rygel_media_export_sql_operator_to_string (operator);
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;
+ return str;
}
+static RygelMediaExportDatabaseCursor *
+rygel_media_export_media_cache_exec_cursor (RygelMediaExportMediaCache *self,
+ RygelMediaExportSQLString id,
+ GValue *values,
+ int values_length,
+ GError **error) {
+ RygelMediaExportDatabaseCursor *cursor;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
-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;
- }
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), NULL);
+
+ priv = self->priv;
+ inner_error = NULL;
+ cursor = rygel_media_export_database_exec_cursor (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, id),
+ values,
+ values_length,
+ &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return NULL;
}
- result = _tmp6_;
- return result;
+
+ return cursor;
}
+static gint
+rygel_media_export_media_cache_query_value (RygelMediaExportMediaCache *self,
+ RygelMediaExportSQLString id,
+ GValue *values,
+ gint values_length,
+ GError **error) {
+ gint value;
+ GError *inner_error;
+ RygelMediaExportMediaCachePrivate *priv;
+
+ g_return_val_if_fail (RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE (self), 0);
-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;
-}
+ priv = self->priv;
+ value = rygel_media_export_database_query_value (priv->db,
+ rygel_media_export_sql_factory_make (priv->sql, id),
+ values,
+ values_length,
+ &inner_error);
+ if (inner_error) {
+ g_propagate_error (error, inner_error);
+ return 0;
+ }
-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;
+ return value;
}
+static gchar *
+rygel_media_export_media_cache_translate_sort_criteria (const gchar *sort_criteria) {
+ gchar *order_str;
+ gchar *str;
+ gchar **iter;
+ gchar **fields;
+ GPtrArray *order_list;
-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** 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);
- }
+
+ order_list = g_ptr_array_new_with_free_func (g_free);
+ fields = g_strsplit (sort_criteria, ",", 0);
+
+ for (iter = fields; iter; ++iter) {
+ const gchar *order;
+ gchar *field = *iter;
+ gchar *slice = rygel_media_export_string_slice (field, 1, strlen (field));
+ gchar *collate = NULL;
+ GError *inner_error = NULL;
+ gchar *column = rygel_media_export_media_cache_map_operand_to_column (slice,
+ &collate,
+ &inner_error);
+
+ g_free (slice);
+ if (inner_error) {
+ g_warning ("Skipping unsupported field: %s", field);
+ g_error_free (inner_error);
+ continue;
+ }
+ if (field[0] == '-') {
+ order = "DESC";
+ } else {
+ order = "ASC";
}
+
+ g_ptr_array_add (order_list,
+ g_strdup_printf ("%s %s %s ", column, collate, order));
+ g_free (column);
+ g_free (collate);
}
- _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;
+ g_ptr_array_add (order_list, NULL);
+ order_str = g_strjoinv (",", (gchar **) order_list->pdata);
+ g_ptr_array_unref (order_list);
+ str = g_strdup_printf ("ORDER BY %s", order_str);
+ g_free (order_str);
+ g_strfreev (fields);
+
+ return str;
}
+static void
+rygel_media_export_media_cache_class_init (RygelMediaExportMediaCacheClass *cache_class) {
+ GObjectClass *object_class = G_OBJECT_CLASS (cache_class);
-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;
+ object_class->dispose = rygel_media_export_media_cache_dispose;
+ g_type_class_add_private (cache_class,
+ sizeof (RygelMediaExportMediaCachePrivate));
}
-
-static void rygel_media_export_media_cache_init (RygelMediaExportMediaCache * self) {
+static void
+rygel_media_export_media_cache_init (RygelMediaExportMediaCache *self) {
self->priv = RYGEL_MEDIA_EXPORT_MEDIA_CACHE_GET_PRIVATE (self);
}
-
-static void rygel_media_export_media_cache_dispose (GObject *object) {
+static void
+rygel_media_export_media_cache_dispose (GObject *object) {
RygelMediaExportMediaCache *self = RYGEL_MEDIA_EXPORT_MEDIA_CACHE (object);
RygelMediaExportMediaCachePrivate *priv = self->priv;
@@ -3053,32 +2047,3 @@ static void rygel_media_export_media_cache_dispose (GObject *object) {
}
G_OBJECT_CLASS (rygel_media_export_media_cache_parent_class)->dispose (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]);
- }
- }
- }
-}
-
-
-static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
- _vala_array_destroy (array, array_length, destroy_func);
- g_free (array);
-}
-
-
-static gint _vala_array_length (gpointer array) {
- int length;
- length = 0;
- if (array) {
- while (((gpointer*) array)[length]) {
- length++;
- }
- }
- return length;
-}
diff --git a/src/media-export/rygel-media-export-object-factory.c b/src/media-export/rygel-media-export-object-factory.c
index 1115e71..fb66b08 100644
--- a/src/media-export/rygel-media-export-object-factory.c
+++ b/src/media-export/rygel-media-export-object-factory.c
@@ -35,8 +35,8 @@ G_DEFINE_TYPE (RygelMediaExportObjectFactory, rygel_media_export_object_factory,
enum {
RYGEL_MEDIA_EXPORT_OBJECT_FACTORY_DUMMY_PROPERTY
};
-static RygelMediaExportDBContainer* rygel_media_export_object_factory_real_get_container (RygelMediaExportObjectFactory* self, RygelMediaExportMediaCache* media_db, const gchar* id, const gchar* title, guint child_count, const gchar* uri);
-static RygelMediaItem* rygel_media_export_object_factory_real_get_item (RygelMediaExportObjectFactory* self, RygelMediaExportMediaCache* media_db, RygelMediaContainer* parent, const gchar* id, const gchar* title, const gchar* upnp_class);
+static RygelMediaExportDBContainer* rygel_media_export_object_factory_real_get_container (RygelMediaExportObjectFactory* self, const gchar* id, const gchar* title, guint child_count, const gchar* uri);
+static RygelMediaItem* rygel_media_export_object_factory_real_get_item (RygelMediaExportObjectFactory* self, RygelMediaContainer* parent, const gchar* id, const gchar* title, const gchar* upnp_class);
RygelMediaExportObjectFactory* rygel_media_export_object_factory_construct (GType object_type);
@@ -47,7 +47,7 @@ RygelMediaExportObjectFactory* rygel_media_export_object_factory_construct (GTyp
* @param title title of the container
* @param child_count number of children in the container
*/
-static RygelMediaExportDBContainer* rygel_media_export_object_factory_real_get_container (RygelMediaExportObjectFactory* self G_GNUC_UNUSED, RygelMediaExportMediaCache* media_db, const gchar* id, const gchar* title, guint child_count G_GNUC_UNUSED, const gchar* uri) {
+static RygelMediaExportDBContainer* rygel_media_export_object_factory_real_get_container (RygelMediaExportObjectFactory* self G_GNUC_UNUSED, const gchar* id, const gchar* title, guint child_count G_GNUC_UNUSED, const gchar* uri) {
RygelMediaExportDBContainer* result = NULL;
const gchar* _tmp0_;
const gchar* _tmp8_;
@@ -57,7 +57,6 @@ static RygelMediaExportDBContainer* rygel_media_export_object_factory_real_get_c
const gchar* _tmp23_;
RygelMediaExportWritableDbContainer* _tmp24_;
GError * _inner_error_ = NULL;
- g_return_val_if_fail (media_db != NULL, NULL);
g_return_val_if_fail (id != NULL, NULL);
g_return_val_if_fail (title != NULL, NULL);
_tmp0_ = id;
@@ -161,26 +160,24 @@ static RygelMediaExportDBContainer* rygel_media_export_object_factory_real_get_c
}
-RygelMediaExportDBContainer* rygel_media_export_object_factory_get_container (RygelMediaExportObjectFactory* self, RygelMediaExportMediaCache* media_db, const gchar* id, const gchar* title, guint child_count, const gchar* uri) {
+RygelMediaExportDBContainer* rygel_media_export_object_factory_get_container (RygelMediaExportObjectFactory* self, const gchar* id, const gchar* title, guint child_count, const gchar* uri) {
g_return_val_if_fail (self != NULL, NULL);
- return RYGEL_MEDIA_EXPORT_OBJECT_FACTORY_GET_CLASS (self)->get_container (self, media_db, id, title, child_count, uri);
+ return RYGEL_MEDIA_EXPORT_OBJECT_FACTORY_GET_CLASS (self)->get_container (self, id, title, child_count, uri);
}
/**
* Return a new instance of MediaItem
*
- * @param media_db instance of MediaDB
* @param id id of the item
* @param title title of the item
* @param upnp_class upnp_class of the item
*/
-static RygelMediaItem* rygel_media_export_object_factory_real_get_item (RygelMediaExportObjectFactory* self G_GNUC_UNUSED, RygelMediaExportMediaCache* media_db, RygelMediaContainer* parent, const gchar* id, const gchar* title, const gchar* upnp_class) {
+static RygelMediaItem* rygel_media_export_object_factory_real_get_item (RygelMediaExportObjectFactory* self G_GNUC_UNUSED, RygelMediaContainer* parent, const gchar* id, const gchar* title, const gchar* upnp_class) {
RygelMediaItem* result = NULL;
const gchar* _tmp0_;
const gchar* _tmp1_;
GQuark _tmp3_ = 0U;
- g_return_val_if_fail (media_db != NULL, NULL);
g_return_val_if_fail (parent != NULL, NULL);
g_return_val_if_fail (id != NULL, NULL);
g_return_val_if_fail (title != NULL, NULL);
@@ -247,9 +244,9 @@ static RygelMediaItem* rygel_media_export_object_factory_real_get_item (RygelMed
}
-RygelMediaItem* rygel_media_export_object_factory_get_item (RygelMediaExportObjectFactory* self, RygelMediaExportMediaCache* media_db, RygelMediaContainer* parent, const gchar* id, const gchar* title, const gchar* upnp_class) {
+RygelMediaItem* rygel_media_export_object_factory_get_item (RygelMediaExportObjectFactory* self, RygelMediaContainer* parent, const gchar* id, const gchar* title, const gchar* upnp_class) {
g_return_val_if_fail (self != NULL, NULL);
- return RYGEL_MEDIA_EXPORT_OBJECT_FACTORY_GET_CLASS (self)->get_item (self, media_db, parent, id, title, upnp_class);
+ return RYGEL_MEDIA_EXPORT_OBJECT_FACTORY_GET_CLASS (self)->get_item (self, parent, id, title, upnp_class);
}
diff --git a/src/media-export/rygel-media-export-object-factory.h b/src/media-export/rygel-media-export-object-factory.h
index 6478c99..35d868a 100644
--- a/src/media-export/rygel-media-export-object-factory.h
+++ b/src/media-export/rygel-media-export-object-factory.h
@@ -51,13 +51,11 @@ struct _RygelMediaExportObjectFactory {
struct _RygelMediaExportObjectFactoryClass {
GObjectClass parent_class;
RygelMediaExportDBContainer* (* get_container) (RygelMediaExportObjectFactory *self,
- RygelMediaExportMediaCache *media_db,
const gchar *id,
const gchar *title,
guint child_count,
const gchar *uri);
RygelMediaItem* (* get_item) (RygelMediaExportObjectFactory *self,
- RygelMediaExportMediaCache *media_db,
RygelMediaContainer *parent,
const gchar *id,
const gchar *title,
@@ -69,7 +67,6 @@ rygel_media_export_object_factory_get_type (void) G_GNUC_CONST;
RygelMediaExportDBContainer *
rygel_media_export_object_factory_get_container (RygelMediaExportObjectFactory* self,
- RygelMediaExportMediaCache* media_db,
const gchar* id,
const gchar* title,
guint child_count,
@@ -77,7 +74,6 @@ rygel_media_export_object_factory_get_container (RygelMediaExportObjectFactory*
RygelMediaItem *
rygel_media_export_object_factory_get_item (RygelMediaExportObjectFactory *self,
- RygelMediaExportMediaCache *media_db,
RygelMediaContainer *parent,
const gchar *id,
const gchar *title,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]