1
/* banshee-collection.c generated by valac 0.12.1, the Vala compiler
2
* generated from banshee-collection.vala, do not modify */
5
* Copyright (C) 2011 Canonical Ltd
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 3 as
9
* published by the Free Software Foundation.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
* Authored by Alex Launi <alex.launi@canonical.com>
24
#include <glib-object.h>
33
#define UNITY_MUSIC_LENS_TYPE_COLUMNS (unity_music_lens_columns_get_type ())
35
#define UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION (unity_music_lens_banshee_collection_get_type ())
36
#define UNITY_MUSIC_LENS_BANSHEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION, UnityMusicLensBansheeCollection))
37
#define UNITY_MUSIC_LENS_BANSHEE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION, UnityMusicLensBansheeCollectionClass))
38
#define UNITY_MUSIC_LENS_IS_BANSHEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION))
39
#define UNITY_MUSIC_LENS_IS_BANSHEE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION))
40
#define UNITY_MUSIC_LENS_BANSHEE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION, UnityMusicLensBansheeCollectionClass))
42
typedef struct _UnityMusicLensBansheeCollection UnityMusicLensBansheeCollection;
43
typedef struct _UnityMusicLensBansheeCollectionClass UnityMusicLensBansheeCollectionClass;
44
typedef struct _UnityMusicLensBansheeCollectionPrivate UnityMusicLensBansheeCollectionPrivate;
45
#define _sqlite3_close0(var) ((var == NULL) ? NULL : (var = (sqlite3_close (var), NULL)))
46
#define _g_free0(var) (var = (g_free (var), NULL))
47
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
49
#define UNITY_MUSIC_LENS_TYPE_FILTER_PARSER (unity_music_lens_filter_parser_get_type ())
50
#define UNITY_MUSIC_LENS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParser))
51
#define UNITY_MUSIC_LENS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
52
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
53
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
54
#define UNITY_MUSIC_LENS_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
56
typedef struct _UnityMusicLensFilterParser UnityMusicLensFilterParser;
57
typedef struct _UnityMusicLensFilterParserClass UnityMusicLensFilterParserClass;
59
#define UNITY_MUSIC_LENS_TYPE_ALBUM (unity_music_lens_album_get_type ())
60
#define UNITY_MUSIC_LENS_ALBUM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_ALBUM, UnityMusicLensAlbum))
61
#define UNITY_MUSIC_LENS_ALBUM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_ALBUM, UnityMusicLensAlbumClass))
62
#define UNITY_MUSIC_LENS_IS_ALBUM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_ALBUM))
63
#define UNITY_MUSIC_LENS_IS_ALBUM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_ALBUM))
64
#define UNITY_MUSIC_LENS_ALBUM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_ALBUM, UnityMusicLensAlbumClass))
66
typedef struct _UnityMusicLensAlbum UnityMusicLensAlbum;
67
typedef struct _UnityMusicLensAlbumClass UnityMusicLensAlbumClass;
68
#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
70
#define UNITY_MUSIC_LENS_TYPE_TRACK (unity_music_lens_track_get_type ())
71
#define UNITY_MUSIC_LENS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrack))
72
#define UNITY_MUSIC_LENS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrackClass))
73
#define UNITY_MUSIC_LENS_IS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_TRACK))
74
#define UNITY_MUSIC_LENS_IS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_TRACK))
75
#define UNITY_MUSIC_LENS_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrackClass))
77
typedef struct _UnityMusicLensTrack UnityMusicLensTrack;
78
typedef struct _UnityMusicLensTrackClass UnityMusicLensTrackClass;
79
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
82
UNITY_MUSIC_LENS_DATABASE_ERROR_FAILED_TO_OPEN
83
} UnityMusicLensDatabaseError;
84
#define UNITY_MUSIC_LENS_DATABASE_ERROR unity_music_lens_database_error_quark ()
86
UNITY_MUSIC_LENS_COLUMNS_TRACK_TITLE,
87
UNITY_MUSIC_LENS_COLUMNS_TRACK_URI,
88
UNITY_MUSIC_LENS_COLUMNS_TRACK_MIMETYPE,
89
UNITY_MUSIC_LENS_COLUMNS_ALBUM_TITLE,
90
UNITY_MUSIC_LENS_COLUMNS_ARTIST_NAME
91
} UnityMusicLensColumns;
93
struct _UnityMusicLensBansheeCollection {
94
GObject parent_instance;
95
UnityMusicLensBansheeCollectionPrivate * priv;
98
struct _UnityMusicLensBansheeCollectionClass {
99
GObjectClass parent_class;
102
struct _UnityMusicLensBansheeCollectionPrivate {
107
static gpointer unity_music_lens_banshee_collection_parent_class = NULL;
109
GQuark unity_music_lens_database_error_quark (void);
110
GType unity_music_lens_columns_get_type (void) G_GNUC_CONST;
111
GType unity_music_lens_banshee_collection_get_type (void) G_GNUC_CONST;
112
#define UNITY_MUSIC_LENS_BANSHEE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION, UnityMusicLensBansheeCollectionPrivate))
114
UNITY_MUSIC_LENS_BANSHEE_COLLECTION_DUMMY_PROPERTY
116
#define UNITY_MUSIC_LENS_BANSHEE_COLLECTION_MAX_RESULTS 100
117
UnityMusicLensBansheeCollection* unity_music_lens_banshee_collection_new (GError** error);
118
UnityMusicLensBansheeCollection* unity_music_lens_banshee_collection_construct (GType object_type, GError** error);
119
GType unity_music_lens_filter_parser_get_type (void) G_GNUC_CONST;
120
void unity_music_lens_banshee_collection_search (UnityMusicLensBansheeCollection* self, UnityLensSearch* search, DeeModel* results_model, GList* filters, gint max_results);
121
GType unity_music_lens_album_get_type (void) G_GNUC_CONST;
122
static gchar* unity_music_lens_banshee_collection_build_sql_from_filters (UnityMusicLensBansheeCollection* self, GList* filters);
123
UnityMusicLensTrack* unity_music_lens_track_new (void);
124
UnityMusicLensTrack* unity_music_lens_track_construct (GType object_type);
125
GType unity_music_lens_track_get_type (void) G_GNUC_CONST;
126
void unity_music_lens_track_set_Title (UnityMusicLensTrack* self, const gchar* value);
127
void unity_music_lens_track_set_Artist (UnityMusicLensTrack* self, const gchar* value);
128
void unity_music_lens_track_set_Uri (UnityMusicLensTrack* self, const gchar* value);
129
void unity_music_lens_track_set_MimeType (UnityMusicLensTrack* self, const gchar* value);
130
UnityMusicLensAlbum* unity_music_lens_album_new (void);
131
UnityMusicLensAlbum* unity_music_lens_album_construct (GType object_type);
132
void unity_music_lens_album_set_Title (UnityMusicLensAlbum* self, const gchar* value);
133
void unity_music_lens_album_set_Artist (UnityMusicLensAlbum* self, const gchar* value);
134
const gchar* unity_music_lens_track_get_Artist (UnityMusicLensTrack* self);
135
const gchar* unity_music_lens_track_get_Title (UnityMusicLensTrack* self);
136
const gchar* unity_music_lens_track_get_Uri (UnityMusicLensTrack* self);
137
const gchar* unity_music_lens_track_get_MimeType (UnityMusicLensTrack* self);
138
const gchar* unity_music_lens_album_get_Artist (UnityMusicLensAlbum* self);
139
const gchar* unity_music_lens_album_get_Title (UnityMusicLensAlbum* self);
140
gchar* unity_music_lens_filter_parser_parse (UnityMusicLensFilterParser* self);
141
static void unity_music_lens_banshee_collection_finalize (GObject* obj);
144
GQuark unity_music_lens_database_error_quark (void) {
145
return g_quark_from_static_string ("unity_music_lens_database_error-quark");
149
GType unity_music_lens_columns_get_type (void) {
150
static volatile gsize unity_music_lens_columns_type_id__volatile = 0;
151
if (g_once_init_enter (&unity_music_lens_columns_type_id__volatile)) {
152
static const GEnumValue values[] = {{UNITY_MUSIC_LENS_COLUMNS_TRACK_TITLE, "UNITY_MUSIC_LENS_COLUMNS_TRACK_TITLE", "track-title"}, {UNITY_MUSIC_LENS_COLUMNS_TRACK_URI, "UNITY_MUSIC_LENS_COLUMNS_TRACK_URI", "track-uri"}, {UNITY_MUSIC_LENS_COLUMNS_TRACK_MIMETYPE, "UNITY_MUSIC_LENS_COLUMNS_TRACK_MIMETYPE", "track-mimetype"}, {UNITY_MUSIC_LENS_COLUMNS_ALBUM_TITLE, "UNITY_MUSIC_LENS_COLUMNS_ALBUM_TITLE", "album-title"}, {UNITY_MUSIC_LENS_COLUMNS_ARTIST_NAME, "UNITY_MUSIC_LENS_COLUMNS_ARTIST_NAME", "artist-name"}, {0, NULL, NULL}};
153
GType unity_music_lens_columns_type_id;
154
unity_music_lens_columns_type_id = g_enum_register_static ("UnityMusicLensColumns", values);
155
g_once_init_leave (&unity_music_lens_columns_type_id__volatile, unity_music_lens_columns_type_id);
157
return unity_music_lens_columns_type_id__volatile;
161
UnityMusicLensBansheeCollection* unity_music_lens_banshee_collection_construct (GType object_type, GError** error) {
162
UnityMusicLensBansheeCollection * self = NULL;
163
const gchar* _tmp0_ = NULL;
164
gchar* _tmp1_ = NULL;
166
sqlite3* _tmp3_ = NULL;
170
GError * _inner_error_ = NULL;
171
self = (UnityMusicLensBansheeCollection*) g_object_new (object_type, NULL);
172
_tmp0_ = g_get_user_config_dir ();
173
_tmp1_ = g_strdup_printf ("%s/banshee-1/banshee.db", _tmp0_);
175
_tmp4_ = sqlite3_open (_tmp2_, &_tmp3_);
176
_sqlite3_close0 (self->priv->db);
177
self->priv->db = _tmp3_;
181
if (rc != SQLITE_OK) {
182
const gchar* _tmp6_ = NULL;
183
GError* _tmp7_ = NULL;
184
_tmp6_ = sqlite3_errmsg (self->priv->db);
185
g_printerr ("failed to open db, %d, %s\n", rc, _tmp6_);
186
_tmp7_ = g_error_new_literal (UNITY_MUSIC_LENS_DATABASE_ERROR, UNITY_MUSIC_LENS_DATABASE_ERROR_FAILED_TO_OPEN, "Failed to open banshee database");
187
_inner_error_ = _tmp7_;
188
if (_inner_error_->domain == UNITY_MUSIC_LENS_DATABASE_ERROR) {
189
g_propagate_error (error, _inner_error_);
190
_g_object_unref0 (self);
193
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);
194
g_clear_error (&_inner_error_);
202
UnityMusicLensBansheeCollection* unity_music_lens_banshee_collection_new (GError** error) {
203
return unity_music_lens_banshee_collection_construct (UNITY_MUSIC_LENS_TYPE_BANSHEE_COLLECTION, error);
208
* Performs a search on the banshee db
210
void unity_music_lens_banshee_collection_search (UnityMusicLensBansheeCollection* self, UnityLensSearch* search, DeeModel* results_model, GList* filters, gint max_results) {
212
sqlite3_stmt* stmt = NULL;
213
GeeTreeSet* _tmp0_ = NULL;
215
gchar* _tmp1_ = NULL;
218
const gchar* _tmp3_ = NULL;
219
const gchar* _tmp4_ = NULL;
220
const gchar* _tmp5_ = NULL;
221
gchar* _tmp6_ = NULL;
223
sqlite3_stmt* _tmp7_ = NULL;
225
g_return_if_fail (self != NULL);
226
g_return_if_fail (results_model != NULL);
228
_tmp0_ = gee_tree_set_new (UNITY_MUSIC_LENS_TYPE_ALBUM, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL);
230
_tmp1_ = unity_music_lens_banshee_collection_build_sql_from_filters (self, filters);
231
filters_sql = _tmp1_;
232
if (max_results == (-1)) {
233
_tmp2_ = UNITY_MUSIC_LENS_BANSHEE_COLLECTION_MAX_RESULTS;
235
_tmp2_ = max_results;
237
_tmp3_ = unity_lens_search_get_search_string (search);
238
_tmp4_ = unity_lens_search_get_search_string (search);
239
_tmp5_ = unity_lens_search_get_search_string (search);
240
_tmp6_ = g_strdup_printf ("SELECT CoreTracks.Title, CoreTracks.Uri, CoreTracks.MimeType, CoreAlbu" \
241
"ms.Title, CoreArtists.Name \n" \
242
"\t\t\t\t\t\t \tFROM CoreTracks \n" \
243
"\t\t\t\t\t\t \tCROSS JOIN CoreArtists, CoreAlbums \n" \
244
"\t\t\t\t\t\t \tWHERE CoreArtists.ArtistID = CoreTracks.ArtistID AND C" \
245
"oreAlbums.AlbumID = CoreTracks.AlbumID \n" \
246
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t AND CoreTracks.PrimarySourceID =1 \n" \
247
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t AND ((CoreArtists.NameLowered LIKE '%" \
248
"%%s%%' ESCAPE '\\' \n" \
249
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t \tAND CoreArtists.NameLowered IS NOT " \
251
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t OR (CoreAlbums.TitleLowered LIKE '%%%" \
252
"s%%' ESCAPE '\\' \n" \
253
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t \tAND CoreAlbums.TitleLowered IS NOT " \
255
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t OR (CoreTracks.TitleLowered LIKE '%%%" \
256
"s%%' ESCAPE '\\' \n" \
257
"\t\t\t\t\t\t \t\t\t\t\t\t\t\t \tAND CoreTracks.TitleLowered IS NOT " \
260
"\t\t\t\t\t\t \tLIMIT 0, %d;", _tmp3_, _tmp4_, _tmp5_, filters_sql, _tmp2_);
262
g_debug ("banshee-collection.vala:90: preparing to execute sql %s\n", sql);
263
_tmp8_ = sqlite3_prepare_v2 (self->priv->db, sql, -1, &_tmp7_, NULL);
264
_sqlite3_finalize0 (stmt);
269
_g_free0 (filters_sql);
270
_g_object_unref0 (albums);
271
_sqlite3_finalize0 (stmt);
280
if (!(rc == SQLITE_ROW)) {
285
_tmp10_ = sqlite3_step (stmt);
294
UnityMusicLensTrack* _tmp11_ = NULL;
295
UnityMusicLensTrack* track;
296
const gchar* _tmp12_ = NULL;
297
const gchar* _tmp13_ = NULL;
298
const gchar* _tmp14_ = NULL;
299
const gchar* _tmp15_ = NULL;
300
UnityMusicLensAlbum* _tmp16_ = NULL;
301
UnityMusicLensAlbum* album;
302
const gchar* _tmp17_ = NULL;
303
const gchar* _tmp18_ = NULL;
304
const gchar* _tmp19_ = NULL;
305
const gchar* _tmp20_ = NULL;
306
const gchar* _tmp21_ = NULL;
307
const gchar* _tmp22_ = NULL;
308
const gchar* _tmp23_ = NULL;
309
const gchar* _tmp24_ = NULL;
311
_tmp11_ = unity_music_lens_track_new ();
313
_tmp12_ = sqlite3_column_text (stmt, (gint) UNITY_MUSIC_LENS_COLUMNS_TRACK_TITLE);
314
unity_music_lens_track_set_Title (track, _tmp12_);
315
_tmp13_ = sqlite3_column_text (stmt, (gint) UNITY_MUSIC_LENS_COLUMNS_ARTIST_NAME);
316
unity_music_lens_track_set_Artist (track, _tmp13_);
317
_tmp14_ = sqlite3_column_text (stmt, (gint) UNITY_MUSIC_LENS_COLUMNS_TRACK_URI);
318
unity_music_lens_track_set_Uri (track, _tmp14_);
319
_tmp15_ = sqlite3_column_text (stmt, (gint) UNITY_MUSIC_LENS_COLUMNS_TRACK_MIMETYPE);
320
unity_music_lens_track_set_MimeType (track, _tmp15_);
321
_tmp16_ = unity_music_lens_album_new ();
323
_tmp17_ = sqlite3_column_text (stmt, (gint) UNITY_MUSIC_LENS_COLUMNS_ALBUM_TITLE);
324
unity_music_lens_album_set_Title (album, _tmp17_);
325
_tmp18_ = sqlite3_column_text (stmt, (gint) UNITY_MUSIC_LENS_COLUMNS_ARTIST_NAME);
326
unity_music_lens_album_set_Artist (album, _tmp18_);
327
_tmp19_ = unity_music_lens_track_get_Artist (track);
328
_tmp20_ = unity_music_lens_track_get_Title (track);
329
g_debug ("banshee-collection.vala:115: adding result for %s - %s\n", _tmp19_, _tmp20_);
330
_tmp21_ = unity_music_lens_track_get_Uri (track);
331
_tmp22_ = unity_music_lens_track_get_MimeType (track);
332
_tmp23_ = unity_music_lens_track_get_Title (track);
333
_tmp24_ = unity_music_lens_track_get_Artist (track);
334
dee_model_append (results_model, _tmp21_, "audio-x-generic", 0, _tmp22_, _tmp23_, _tmp24_, NULL);
335
_tmp25_ = gee_abstract_collection_add ((GeeAbstractCollection*) albums, album);
337
const gchar* _tmp26_ = NULL;
338
const gchar* _tmp27_ = NULL;
339
const gchar* _tmp28_ = NULL;
340
const gchar* _tmp29_ = NULL;
341
_tmp26_ = unity_music_lens_album_get_Artist (album);
342
_tmp27_ = unity_music_lens_album_get_Title (album);
343
g_debug ("banshee-collection.vala:121: adding album result for %s - %s\n", _tmp26_, _tmp27_);
344
_tmp28_ = unity_music_lens_album_get_Title (album);
345
_tmp29_ = unity_music_lens_album_get_Artist (album);
346
dee_model_append (results_model, "uri://need-to-solve-this", "audio-x-generic", 1, "need-to/solve-this", _tmp28_, _tmp29_, NULL);
348
_g_object_unref0 (album);
349
_g_object_unref0 (track);
354
const gchar* _tmp30_ = NULL;
355
_tmp30_ = sqlite3_errmsg (self->priv->db);
356
g_printerr ("Error: %d, %s\n", rc, _tmp30_);
363
_g_free0 (filters_sql);
364
_g_object_unref0 (albums);
365
_sqlite3_finalize0 (stmt);
369
static gpointer _g_object_ref0 (gpointer self) {
370
return self ? g_object_ref (self) : NULL;
374
static gchar* unity_music_lens_banshee_collection_build_sql_from_filters (UnityMusicLensBansheeCollection* self, GList* filters) {
375
gchar* result = NULL;
376
gboolean _tmp0_ = FALSE;
377
GString* _tmp3_ = NULL;
380
g_return_val_if_fail (self != NULL, NULL);
381
if (filters == NULL) {
385
_tmp1_ = g_list_length (filters);
386
_tmp0_ = _tmp1_ == 0;
390
_tmp2_ = g_strdup ("");
394
_tmp3_ = g_string_new ("");
397
GList* parser_collection;
399
parser_collection = filters;
400
for (parser_it = parser_collection; parser_it != NULL; parser_it = parser_it->next) {
401
UnityMusicLensFilterParser* _tmp4_;
402
UnityMusicLensFilterParser* parser;
403
_tmp4_ = _g_object_ref0 ((UnityMusicLensFilterParser*) parser_it->data);
406
gchar* _tmp5_ = NULL;
408
gboolean _tmp6_ = FALSE;
409
_tmp5_ = unity_music_lens_filter_parser_parse (parser);
411
if (parsed == NULL) {
414
_tmp6_ = g_strcmp0 (parsed, "") == 0;
418
_g_object_unref0 (parser);
421
g_string_append (builder, " AND ");
422
g_string_append (builder, parsed);
424
_g_object_unref0 (parser);
428
g_string_append (builder, " ");
429
_tmp7_ = g_strdup (builder->str);
431
_g_string_free0 (builder);
436
static void unity_music_lens_banshee_collection_class_init (UnityMusicLensBansheeCollectionClass * klass) {
437
unity_music_lens_banshee_collection_parent_class = g_type_class_peek_parent (klass);
438
g_type_class_add_private (klass, sizeof (UnityMusicLensBansheeCollectionPrivate));
439
G_OBJECT_CLASS (klass)->finalize = unity_music_lens_banshee_collection_finalize;
443
static void unity_music_lens_banshee_collection_instance_init (UnityMusicLensBansheeCollection * self) {
444
self->priv = UNITY_MUSIC_LENS_BANSHEE_COLLECTION_GET_PRIVATE (self);
448
static void unity_music_lens_banshee_collection_finalize (GObject* obj) {
449
UnityMusicLensBansheeCollection * self;
450
self = UNITY_MUSIC_LENS_BANSHEE_COLLECTION (obj);
451
_sqlite3_close0 (self->priv->db);
452
G_OBJECT_CLASS (unity_music_lens_banshee_collection_parent_class)->finalize (obj);
457
* Abstracts talking to the banshee collection database
459
GType unity_music_lens_banshee_collection_get_type (void) {
460
static volatile gsize unity_music_lens_banshee_collection_type_id__volatile = 0;
461
if (g_once_init_enter (&unity_music_lens_banshee_collection_type_id__volatile)) {
462
static const GTypeInfo g_define_type_info = { sizeof (UnityMusicLensBansheeCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unity_music_lens_banshee_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnityMusicLensBansheeCollection), 0, (GInstanceInitFunc) unity_music_lens_banshee_collection_instance_init, NULL };
463
GType unity_music_lens_banshee_collection_type_id;
464
unity_music_lens_banshee_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "UnityMusicLensBansheeCollection", &g_define_type_info, 0);
465
g_once_init_leave (&unity_music_lens_banshee_collection_type_id__volatile, unity_music_lens_banshee_collection_type_id);
467
return unity_music_lens_banshee_collection_type_id__volatile;