~ricmm/+junk/unity-lens_music-sc

« back to all changes in this revision

Viewing changes to src/musicstore-collection.c

  • Committer: Ricardo Mendoza
  • Date: 2012-09-05 14:20:15 UTC
  • Revision ID: ricardo.mendoza@canonical.com-20120905142015-prem6hiyfshwgm8q
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* musicstore-collection.c generated by valac 0.16.1, the Vala compiler
 
2
 * generated from musicstore-collection.vala, do not modify */
 
3
 
 
4
/*
 
5
 * Copyright (C) 2011 Canonical Ltd
 
6
 *
 
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.
 
10
 *
 
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.
 
15
 *
 
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/>.
 
18
 *
 
19
 * Authored by Alex Launi <alex.launi@canonical.com>
 
20
 *
 
21
 */
 
22
 
 
23
#include <glib.h>
 
24
#include <glib-object.h>
 
25
#include <stdlib.h>
 
26
#include <string.h>
 
27
#include <gio/gio.h>
 
28
#include <unity.h>
 
29
#include <dee.h>
 
30
#include <json-glib/json-glib.h>
 
31
 
 
32
 
 
33
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION (unity_music_lens_music_store_collection_get_type ())
 
34
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION, UnityMusicLensMusicStoreCollection))
 
35
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION, UnityMusicLensMusicStoreCollectionClass))
 
36
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION))
 
37
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION))
 
38
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION, UnityMusicLensMusicStoreCollectionClass))
 
39
 
 
40
typedef struct _UnityMusicLensMusicStoreCollection UnityMusicLensMusicStoreCollection;
 
41
typedef struct _UnityMusicLensMusicStoreCollectionClass UnityMusicLensMusicStoreCollectionClass;
 
42
typedef struct _UnityMusicLensMusicStoreCollectionPrivate UnityMusicLensMusicStoreCollectionPrivate;
 
43
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
 
44
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
45
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 
46
 
 
47
#define UNITY_MUSIC_LENS_TYPE_FILTER_PARSER (unity_music_lens_filter_parser_get_type ())
 
48
#define UNITY_MUSIC_LENS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParser))
 
49
#define UNITY_MUSIC_LENS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
 
50
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
 
51
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
 
52
#define UNITY_MUSIC_LENS_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
 
53
 
 
54
typedef struct _UnityMusicLensFilterParser UnityMusicLensFilterParser;
 
55
typedef struct _UnityMusicLensFilterParserClass UnityMusicLensFilterParserClass;
 
56
#define _g_free0(var) (var = (g_free (var), NULL))
 
57
typedef struct _UnityMusicLensMusicStoreCollectionSearchData UnityMusicLensMusicStoreCollectionSearchData;
 
58
 
 
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))
 
65
 
 
66
typedef struct _UnityMusicLensAlbum UnityMusicLensAlbum;
 
67
typedef struct _UnityMusicLensAlbumClass UnityMusicLensAlbumClass;
 
68
 
 
69
#define UNITY_MUSIC_LENS_TYPE_TRACK (unity_music_lens_track_get_type ())
 
70
#define UNITY_MUSIC_LENS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrack))
 
71
#define UNITY_MUSIC_LENS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrackClass))
 
72
#define UNITY_MUSIC_LENS_IS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_TRACK))
 
73
#define UNITY_MUSIC_LENS_IS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_TRACK))
 
74
#define UNITY_MUSIC_LENS_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrackClass))
 
75
 
 
76
typedef struct _UnityMusicLensTrack UnityMusicLensTrack;
 
77
typedef struct _UnityMusicLensTrackClass UnityMusicLensTrackClass;
 
78
#define __g_slist_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_object_unref0_ (var), NULL)))
 
79
#define __vala_JsonObject_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonObject_free (var), NULL)))
 
80
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
 
81
#define __vala_JsonArray_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonArray_free (var), NULL)))
 
82
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 
83
#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
 
84
typedef struct _UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData;
 
85
 
 
86
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER (unity_music_lens_music_store_filter_parser_get_type ())
 
87
#define UNITY_MUSIC_LENS_MUSIC_STORE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER, UnityMusicLensMusicStoreFilterParser))
 
88
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER))
 
89
#define UNITY_MUSIC_LENS_MUSIC_STORE_FILTER_PARSER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER, UnityMusicLensMusicStoreFilterParserIface))
 
90
 
 
91
typedef struct _UnityMusicLensMusicStoreFilterParser UnityMusicLensMusicStoreFilterParser;
 
92
typedef struct _UnityMusicLensMusicStoreFilterParserIface UnityMusicLensMusicStoreFilterParserIface;
 
93
 
 
94
#define UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER (unity_music_lens_genre_filter_parser_get_type ())
 
95
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParser))
 
96
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParserClass))
 
97
#define UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER))
 
98
#define UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER))
 
99
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParserClass))
 
100
 
 
101
typedef struct _UnityMusicLensGenreFilterParser UnityMusicLensGenreFilterParser;
 
102
typedef struct _UnityMusicLensGenreFilterParserClass UnityMusicLensGenreFilterParserClass;
 
103
 
 
104
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER (unity_music_lens_music_store_genre_filter_parser_get_type ())
 
105
#define UNITY_MUSIC_LENS_MUSIC_STORE_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER, UnityMusicLensMusicStoreGenreFilterParser))
 
106
#define UNITY_MUSIC_LENS_MUSIC_STORE_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER, UnityMusicLensMusicStoreGenreFilterParserClass))
 
107
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER))
 
108
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER))
 
109
#define UNITY_MUSIC_LENS_MUSIC_STORE_GENRE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER, UnityMusicLensMusicStoreGenreFilterParserClass))
 
110
 
 
111
typedef struct _UnityMusicLensMusicStoreGenreFilterParser UnityMusicLensMusicStoreGenreFilterParser;
 
112
typedef struct _UnityMusicLensMusicStoreGenreFilterParserClass UnityMusicLensMusicStoreGenreFilterParserClass;
 
113
 
 
114
#define UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER (unity_music_lens_decade_filter_parser_get_type ())
 
115
#define UNITY_MUSIC_LENS_DECADE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER, UnityMusicLensDecadeFilterParser))
 
116
#define UNITY_MUSIC_LENS_DECADE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER, UnityMusicLensDecadeFilterParserClass))
 
117
#define UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER))
 
118
#define UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER))
 
119
#define UNITY_MUSIC_LENS_DECADE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER, UnityMusicLensDecadeFilterParserClass))
 
120
 
 
121
typedef struct _UnityMusicLensDecadeFilterParser UnityMusicLensDecadeFilterParser;
 
122
typedef struct _UnityMusicLensDecadeFilterParserClass UnityMusicLensDecadeFilterParserClass;
 
123
 
 
124
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER (unity_music_lens_music_store_decade_filter_parser_get_type ())
 
125
#define UNITY_MUSIC_LENS_MUSIC_STORE_DECADE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER, UnityMusicLensMusicStoreDecadeFilterParser))
 
126
#define UNITY_MUSIC_LENS_MUSIC_STORE_DECADE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER, UnityMusicLensMusicStoreDecadeFilterParserClass))
 
127
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_DECADE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER))
 
128
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_DECADE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER))
 
129
#define UNITY_MUSIC_LENS_MUSIC_STORE_DECADE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER, UnityMusicLensMusicStoreDecadeFilterParserClass))
 
130
 
 
131
typedef struct _UnityMusicLensMusicStoreDecadeFilterParser UnityMusicLensMusicStoreDecadeFilterParser;
 
132
typedef struct _UnityMusicLensMusicStoreDecadeFilterParserClass UnityMusicLensMusicStoreDecadeFilterParserClass;
 
133
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
 
134
 
 
135
struct _UnityMusicLensMusicStoreCollection {
 
136
        GObject parent_instance;
 
137
        UnityMusicLensMusicStoreCollectionPrivate * priv;
 
138
};
 
139
 
 
140
struct _UnityMusicLensMusicStoreCollectionClass {
 
141
        GObjectClass parent_class;
 
142
};
 
143
 
 
144
struct _UnityMusicLensMusicStoreCollectionPrivate {
 
145
        GHashTable* preview_uri_map;
 
146
};
 
147
 
 
148
struct _UnityMusicLensMusicStoreCollectionSearchData {
 
149
        int _state_;
 
150
        GObject* _source_object_;
 
151
        GAsyncResult* _res_;
 
152
        GSimpleAsyncResult* _async_result;
 
153
        UnityMusicLensMusicStoreCollection* self;
 
154
        UnityLensSearch* search;
 
155
        UnitySearchType search_type;
 
156
        GList* filters;
 
157
        gint max_results;
 
158
        GCancellable* cancellable;
 
159
        UnityLensSearch* _tmp0_;
 
160
        const gchar* _tmp1_;
 
161
        const gchar* _tmp2_;
 
162
        GList* _tmp3_;
 
163
        gchar* _tmp4_;
 
164
        gchar* uri;
 
165
        const gchar* _tmp5_;
 
166
        GHashTable* _tmp6_;
 
167
        UnityLensSearch* _tmp7_;
 
168
        DeeSerializableModel* _tmp8_;
 
169
        DeeSerializableModel* _tmp9_;
 
170
        DeeSerializableModel* _tmp10_;
 
171
        DeeSerializableModel* results_model;
 
172
        const gchar* _tmp11_;
 
173
        GFile* _tmp12_;
 
174
        GFile* file;
 
175
        GFile* _tmp13_;
 
176
        DeeSerializableModel* _tmp14_;
 
177
        GCancellable* _tmp15_;
 
178
};
 
179
 
 
180
struct _UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData {
 
181
        int _state_;
 
182
        GObject* _source_object_;
 
183
        GAsyncResult* _res_;
 
184
        GSimpleAsyncResult* _async_result;
 
185
        UnityMusicLensMusicStoreCollection* self;
 
186
        GFile* file;
 
187
        DeeModel* model;
 
188
        GCancellable* cancellable;
 
189
        GTimer* _tmp0_;
 
190
        GTimer* timer;
 
191
        GFile* _tmp1_;
 
192
        gchar* _tmp2_;
 
193
        gchar* _tmp3_;
 
194
        GFile* _tmp4_;
 
195
        GCancellable* _tmp5_;
 
196
        GFileInputStream* _tmp6_;
 
197
        GFileInputStream* stream;
 
198
        GFileInputStream* _tmp7_;
 
199
        GDataInputStream* _tmp8_;
 
200
        GDataInputStream* dis;
 
201
        JsonParser* _tmp9_;
 
202
        JsonParser* parser;
 
203
        JsonParser* _tmp10_;
 
204
        GDataInputStream* _tmp11_;
 
205
        GCancellable* _tmp12_;
 
206
        JsonParser* _tmp13_;
 
207
        JsonNode* _tmp14_;
 
208
        JsonObject* _tmp15_;
 
209
        JsonObject* _tmp16_;
 
210
        JsonObject* root_object;
 
211
        JsonObject* _tmp17_;
 
212
        JsonObject* _tmp18_;
 
213
        JsonObject* results;
 
214
        JsonArray* _tmp19_;
 
215
        GList* _tmp20_;
 
216
        GList* albums;
 
217
        JsonArray* _tmp21_;
 
218
        GList* _tmp22_;
 
219
        GList* tracks;
 
220
        GList* _tmp23_;
 
221
        guint _tmp24_;
 
222
        GList* _tmp25_;
 
223
        guint _tmp26_;
 
224
        const gchar* uri;
 
225
        const gchar* details_uri;
 
226
        const gchar* artwork_path;
 
227
        const gchar* mimetype;
 
228
        const gchar* title;
 
229
        const gchar* artist;
 
230
        const gchar* dnd_uri;
 
231
        GList* _tmp27_;
 
232
        GList* album_node_collection;
 
233
        GList* album_node_it;
 
234
        JsonNode* album_node;
 
235
        JsonNode* _tmp28_;
 
236
        JsonObject* _tmp29_;
 
237
        JsonObject* _tmp30_;
 
238
        JsonObject* album_obj;
 
239
        JsonObject* _tmp31_;
 
240
        const gchar* _tmp32_;
 
241
        JsonObject* _tmp33_;
 
242
        const gchar* _tmp34_;
 
243
        JsonObject* _tmp35_;
 
244
        const gchar* _tmp36_;
 
245
        JsonObject* _tmp37_;
 
246
        const gchar* _tmp38_;
 
247
        JsonObject* _tmp39_;
 
248
        const gchar* _tmp40_;
 
249
        const gchar* _tmp41_;
 
250
        DeeModel* _tmp42_;
 
251
        const gchar* _tmp43_;
 
252
        const gchar* _tmp44_;
 
253
        const gchar* _tmp45_;
 
254
        const gchar* _tmp46_;
 
255
        const gchar* _tmp47_;
 
256
        const gchar* _tmp48_;
 
257
        GHashTable* _tmp49_;
 
258
        const gchar* _tmp50_;
 
259
        gchar* _tmp51_;
 
260
        const gchar* _tmp52_;
 
261
        gchar* _tmp53_;
 
262
        GList* _tmp54_;
 
263
        GList* track_node_collection;
 
264
        GList* track_node_it;
 
265
        JsonNode* track_node;
 
266
        JsonNode* _tmp55_;
 
267
        JsonObject* _tmp56_;
 
268
        JsonObject* _tmp57_;
 
269
        JsonObject* track_obj;
 
270
        JsonObject* _tmp58_;
 
271
        const gchar* _tmp59_;
 
272
        JsonObject* _tmp60_;
 
273
        const gchar* _tmp61_;
 
274
        JsonObject* _tmp62_;
 
275
        const gchar* _tmp63_;
 
276
        JsonObject* _tmp64_;
 
277
        const gchar* _tmp65_;
 
278
        JsonObject* _tmp66_;
 
279
        const gchar* _tmp67_;
 
280
        const gchar* _tmp68_;
 
281
        DeeModel* _tmp69_;
 
282
        const gchar* _tmp70_;
 
283
        const gchar* _tmp71_;
 
284
        const gchar* _tmp72_;
 
285
        const gchar* _tmp73_;
 
286
        const gchar* _tmp74_;
 
287
        const gchar* _tmp75_;
 
288
        GHashTable* _tmp76_;
 
289
        const gchar* _tmp77_;
 
290
        gchar* _tmp78_;
 
291
        const gchar* _tmp79_;
 
292
        gchar* _tmp80_;
 
293
        GFile* _tmp81_;
 
294
        gchar* _tmp82_;
 
295
        gchar* _tmp83_;
 
296
        GTimer* _tmp84_;
 
297
        gdouble _tmp85_;
 
298
        DeeModel* _tmp86_;
 
299
        guint _tmp87_;
 
300
        GError* e;
 
301
        GFile* _tmp88_;
 
302
        gchar* _tmp89_;
 
303
        gchar* _tmp90_;
 
304
        GError* _tmp91_;
 
305
        const gchar* _tmp92_;
 
306
        GError * _inner_error_;
 
307
};
 
308
 
 
309
struct _UnityMusicLensMusicStoreFilterParserIface {
 
310
        GTypeInterface parent_iface;
 
311
};
 
312
 
 
313
 
 
314
static gpointer unity_music_lens_music_store_collection_parent_class = NULL;
 
315
 
 
316
GType unity_music_lens_music_store_collection_get_type (void) G_GNUC_CONST;
 
317
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION, UnityMusicLensMusicStoreCollectionPrivate))
 
318
enum  {
 
319
        UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_DUMMY_PROPERTY
 
320
};
 
321
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_MUSICSTORE_BASE_URI "http://musicsearch.ubuntu.com/v1/"
 
322
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_PURCHASE_CATEGORY ((guint) 2)
 
323
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_new (void);
 
324
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_construct (GType object_type);
 
325
static void _g_free0_ (gpointer var);
 
326
static void _g_object_unref0_ (gpointer var);
 
327
static void _g_list_free__g_object_unref0_ (GList* self);
 
328
static void unity_music_lens_music_store_collection_search_data_free (gpointer _data);
 
329
GType unity_music_lens_filter_parser_get_type (void) G_GNUC_CONST;
 
330
void unity_music_lens_music_store_collection_search (UnityMusicLensMusicStoreCollection* self, UnityLensSearch* search, UnitySearchType search_type, GList* filters, gint max_results, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
 
331
void unity_music_lens_music_store_collection_search_finish (UnityMusicLensMusicStoreCollection* self, GAsyncResult* _res_, GError** error);
 
332
static gboolean unity_music_lens_music_store_collection_search_co (UnityMusicLensMusicStoreCollectionSearchData* _data_);
 
333
static gchar* unity_music_lens_music_store_collection_build_search_uri (UnityMusicLensMusicStoreCollection* self, const gchar* query, GList* filters);
 
334
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async (UnityMusicLensMusicStoreCollection* self, GFile* file, DeeModel* model, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
 
335
static void unity_music_lens_music_store_collection_read_musicstore_search_result_finish (UnityMusicLensMusicStoreCollection* self, GAsyncResult* _res_);
 
336
static void unity_music_lens_music_store_collection_search_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
 
337
GType unity_music_lens_album_get_type (void) G_GNUC_CONST;
 
338
GType unity_music_lens_track_get_type (void) G_GNUC_CONST;
 
339
void unity_music_lens_music_store_collection_get_album_details (UnityMusicLensMusicStoreCollection* self, const gchar* uri, UnityMusicLensAlbum** album, GSList** tracks);
 
340
static JsonObject* _vala_JsonObject_copy (JsonObject* self);
 
341
UnityMusicLensAlbum* unity_music_lens_album_new (void);
 
342
UnityMusicLensAlbum* unity_music_lens_album_construct (GType object_type);
 
343
static void _g_slist_free__g_object_unref0_ (GSList* self);
 
344
void unity_music_lens_album_set_title (UnityMusicLensAlbum* self, const gchar* value);
 
345
void unity_music_lens_album_set_artwork_path (UnityMusicLensAlbum* self, const gchar* value);
 
346
void unity_music_lens_album_set_artist (UnityMusicLensAlbum* self, const gchar* value);
 
347
void unity_music_lens_album_set_uri (UnityMusicLensAlbum* self, const gchar* value);
 
348
static JsonArray* _vala_JsonArray_copy (JsonArray* self);
 
349
UnityMusicLensTrack* unity_music_lens_track_new (void);
 
350
UnityMusicLensTrack* unity_music_lens_track_construct (GType object_type);
 
351
void unity_music_lens_track_set_uri (UnityMusicLensTrack* self, const gchar* value);
 
352
void unity_music_lens_track_set_title (UnityMusicLensTrack* self, const gchar* value);
 
353
void unity_music_lens_track_set_duration (UnityMusicLensTrack* self, gint value);
 
354
static void _vala_JsonObject_free (JsonObject* self);
 
355
static void _vala_JsonArray_free (JsonArray* self);
 
356
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_data_free (gpointer _data);
 
357
static gboolean unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_);
 
358
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
 
359
GType unity_music_lens_music_store_filter_parser_get_type (void) G_GNUC_CONST;
 
360
GType unity_music_lens_genre_filter_parser_get_type (void) G_GNUC_CONST;
 
361
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_new (UnityMusicLensGenreFilterParser* parser);
 
362
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_construct (GType object_type, UnityMusicLensGenreFilterParser* parser);
 
363
GType unity_music_lens_music_store_genre_filter_parser_get_type (void) G_GNUC_CONST;
 
364
GType unity_music_lens_decade_filter_parser_get_type (void) G_GNUC_CONST;
 
365
UnityMusicLensMusicStoreDecadeFilterParser* unity_music_lens_music_store_decade_filter_parser_new (UnityMusicLensDecadeFilterParser* parser);
 
366
UnityMusicLensMusicStoreDecadeFilterParser* unity_music_lens_music_store_decade_filter_parser_construct (GType object_type, UnityMusicLensDecadeFilterParser* parser);
 
367
GType unity_music_lens_music_store_decade_filter_parser_get_type (void) G_GNUC_CONST;
 
368
gchar* unity_music_lens_filter_parser_parse (UnityMusicLensFilterParser* self);
 
369
static void unity_music_lens_music_store_collection_finalize (GObject* obj);
 
370
 
 
371
 
 
372
static void _g_free0_ (gpointer var) {
 
373
        var = (g_free (var), NULL);
 
374
}
 
375
 
 
376
 
 
377
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_construct (GType object_type) {
 
378
        UnityMusicLensMusicStoreCollection * self = NULL;
 
379
        GHashFunc _tmp0_;
 
380
        GEqualFunc _tmp1_;
 
381
        GHashTable* _tmp2_;
 
382
        self = (UnityMusicLensMusicStoreCollection*) g_object_new (object_type, NULL);
 
383
        _tmp0_ = g_str_hash;
 
384
        _tmp1_ = g_str_equal;
 
385
        _tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_free0_);
 
386
        _g_hash_table_unref0 (self->priv->preview_uri_map);
 
387
        self->priv->preview_uri_map = _tmp2_;
 
388
        return self;
 
389
}
 
390
 
 
391
 
 
392
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_new (void) {
 
393
        return unity_music_lens_music_store_collection_construct (UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION);
 
394
}
 
395
 
 
396
 
 
397
static void _g_object_unref0_ (gpointer var) {
 
398
        (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
 
399
}
 
400
 
 
401
 
 
402
static void _g_list_free__g_object_unref0_ (GList* self) {
 
403
        g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 
404
        g_list_free (self);
 
405
}
 
406
 
 
407
 
 
408
static void unity_music_lens_music_store_collection_search_data_free (gpointer _data) {
 
409
        UnityMusicLensMusicStoreCollectionSearchData* _data_;
 
410
        _data_ = _data;
 
411
        _g_object_unref0 (_data_->search);
 
412
        __g_list_free__g_object_unref0_0 (_data_->filters);
 
413
        _g_object_unref0 (_data_->cancellable);
 
414
        _g_object_unref0 (_data_->self);
 
415
        g_slice_free (UnityMusicLensMusicStoreCollectionSearchData, _data_);
 
416
}
 
417
 
 
418
 
 
419
static gpointer _g_object_ref0 (gpointer self) {
 
420
        return self ? g_object_ref (self) : NULL;
 
421
}
 
422
 
 
423
 
 
424
void unity_music_lens_music_store_collection_search (UnityMusicLensMusicStoreCollection* self, UnityLensSearch* search, UnitySearchType search_type, GList* filters, gint max_results, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_) {
 
425
        UnityMusicLensMusicStoreCollectionSearchData* _data_;
 
426
        UnityMusicLensMusicStoreCollection* _tmp0_;
 
427
        UnityLensSearch* _tmp1_;
 
428
        UnityLensSearch* _tmp2_;
 
429
        UnitySearchType _tmp3_;
 
430
        GList* _tmp4_;
 
431
        gint _tmp5_;
 
432
        GCancellable* _tmp6_;
 
433
        GCancellable* _tmp7_;
 
434
        _data_ = g_slice_new0 (UnityMusicLensMusicStoreCollectionSearchData);
 
435
        _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, unity_music_lens_music_store_collection_search);
 
436
        g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, unity_music_lens_music_store_collection_search_data_free);
 
437
        _tmp0_ = _g_object_ref0 (self);
 
438
        _data_->self = _tmp0_;
 
439
        _tmp1_ = search;
 
440
        _tmp2_ = _g_object_ref0 (_tmp1_);
 
441
        _data_->search = _tmp2_;
 
442
        _tmp3_ = search_type;
 
443
        _data_->search_type = _tmp3_;
 
444
        _tmp4_ = filters;
 
445
        __g_list_free__g_object_unref0_0 (_data_->filters);
 
446
        _data_->filters = _tmp4_;
 
447
        _tmp5_ = max_results;
 
448
        _data_->max_results = _tmp5_;
 
449
        _tmp6_ = cancellable;
 
450
        _tmp7_ = _g_object_ref0 (_tmp6_);
 
451
        _data_->cancellable = _tmp7_;
 
452
        unity_music_lens_music_store_collection_search_co (_data_);
 
453
}
 
454
 
 
455
 
 
456
void unity_music_lens_music_store_collection_search_finish (UnityMusicLensMusicStoreCollection* self, GAsyncResult* _res_, GError** error) {
 
457
        UnityMusicLensMusicStoreCollectionSearchData* _data_;
 
458
        if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
 
459
                return;
 
460
        }
 
461
        _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
 
462
}
 
463
 
 
464
 
 
465
static void unity_music_lens_music_store_collection_search_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
 
466
        UnityMusicLensMusicStoreCollectionSearchData* _data_;
 
467
        _data_ = _user_data_;
 
468
        _data_->_source_object_ = source_object;
 
469
        _data_->_res_ = _res_;
 
470
        unity_music_lens_music_store_collection_search_co (_data_);
 
471
}
 
472
 
 
473
 
 
474
static gboolean unity_music_lens_music_store_collection_search_co (UnityMusicLensMusicStoreCollectionSearchData* _data_) {
 
475
        switch (_data_->_state_) {
 
476
                case 0:
 
477
                goto _state_0;
 
478
                case 1:
 
479
                goto _state_1;
 
480
                default:
 
481
                g_assert_not_reached ();
 
482
        }
 
483
        _state_0:
 
484
        _data_->_tmp0_ = _data_->search;
 
485
        _data_->_tmp1_ = unity_lens_search_get_search_string (_data_->_tmp0_);
 
486
        _data_->_tmp2_ = _data_->_tmp1_;
 
487
        _data_->_tmp3_ = _data_->filters;
 
488
        _data_->_tmp4_ = NULL;
 
489
        _data_->_tmp4_ = unity_music_lens_music_store_collection_build_search_uri (_data_->self, _data_->_tmp2_, _data_->_tmp3_);
 
490
        _data_->uri = _data_->_tmp4_;
 
491
        _data_->_tmp5_ = _data_->uri;
 
492
        if (_data_->_tmp5_ == NULL) {
 
493
                _g_free0 (_data_->uri);
 
494
                __g_list_free__g_object_unref0_0 (_data_->filters);
 
495
                if (_data_->_state_ == 0) {
 
496
                        g_simple_async_result_complete_in_idle (_data_->_async_result);
 
497
                } else {
 
498
                        g_simple_async_result_complete (_data_->_async_result);
 
499
                }
 
500
                g_object_unref (_data_->_async_result);
 
501
                return FALSE;
 
502
        }
 
503
        _data_->_tmp6_ = _data_->self->priv->preview_uri_map;
 
504
        g_hash_table_remove_all (_data_->_tmp6_);
 
505
        _data_->_tmp7_ = _data_->search;
 
506
        _data_->_tmp8_ = unity_lens_search_get_results_model (_data_->_tmp7_);
 
507
        _data_->_tmp9_ = _data_->_tmp8_;
 
508
        _data_->_tmp10_ = _g_object_ref0 (_data_->_tmp9_);
 
509
        _data_->results_model = _data_->_tmp10_;
 
510
        _data_->_tmp11_ = _data_->uri;
 
511
        _data_->_tmp12_ = NULL;
 
512
        _data_->_tmp12_ = g_file_new_for_uri (_data_->_tmp11_);
 
513
        _data_->file = _data_->_tmp12_;
 
514
        _data_->_tmp13_ = _data_->file;
 
515
        _data_->_tmp14_ = _data_->results_model;
 
516
        _data_->_tmp15_ = _data_->cancellable;
 
517
        _data_->_state_ = 1;
 
518
        unity_music_lens_music_store_collection_read_musicstore_search_result_async (_data_->self, _data_->_tmp13_, (DeeModel*) _data_->_tmp14_, _data_->_tmp15_, unity_music_lens_music_store_collection_search_ready, _data_);
 
519
        return FALSE;
 
520
        _state_1:
 
521
        unity_music_lens_music_store_collection_read_musicstore_search_result_finish (_data_->self, _data_->_res_);
 
522
        _g_object_unref0 (_data_->file);
 
523
        _g_object_unref0 (_data_->results_model);
 
524
        _g_free0 (_data_->uri);
 
525
        __g_list_free__g_object_unref0_0 (_data_->filters);
 
526
        if (_data_->_state_ == 0) {
 
527
                g_simple_async_result_complete_in_idle (_data_->_async_result);
 
528
        } else {
 
529
                g_simple_async_result_complete (_data_->_async_result);
 
530
        }
 
531
        g_object_unref (_data_->_async_result);
 
532
        return FALSE;
 
533
}
 
534
 
 
535
 
 
536
static glong string_strnlen (gchar* str, glong maxlen) {
 
537
        glong result = 0L;
 
538
        gchar* _tmp0_;
 
539
        glong _tmp1_;
 
540
        gchar* _tmp2_ = NULL;
 
541
        gchar* end;
 
542
        gchar* _tmp3_;
 
543
        _tmp0_ = str;
 
544
        _tmp1_ = maxlen;
 
545
        _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
 
546
        end = _tmp2_;
 
547
        _tmp3_ = end;
 
548
        if (_tmp3_ == NULL) {
 
549
                glong _tmp4_;
 
550
                _tmp4_ = maxlen;
 
551
                result = _tmp4_;
 
552
                return result;
 
553
        } else {
 
554
                gchar* _tmp5_;
 
555
                gchar* _tmp6_;
 
556
                _tmp5_ = end;
 
557
                _tmp6_ = str;
 
558
                result = (glong) (_tmp5_ - _tmp6_);
 
559
                return result;
 
560
        }
 
561
}
 
562
 
 
563
 
 
564
static gchar* string_substring (const gchar* self, glong offset, glong len) {
 
565
        gchar* result = NULL;
 
566
        glong string_length = 0L;
 
567
        gboolean _tmp0_ = FALSE;
 
568
        glong _tmp1_;
 
569
        gboolean _tmp3_;
 
570
        glong _tmp9_;
 
571
        glong _tmp15_;
 
572
        glong _tmp18_;
 
573
        glong _tmp19_;
 
574
        glong _tmp20_;
 
575
        glong _tmp21_;
 
576
        glong _tmp22_;
 
577
        gchar* _tmp23_ = NULL;
 
578
        g_return_val_if_fail (self != NULL, NULL);
 
579
        _tmp1_ = offset;
 
580
        if (_tmp1_ >= ((glong) 0)) {
 
581
                glong _tmp2_;
 
582
                _tmp2_ = len;
 
583
                _tmp0_ = _tmp2_ >= ((glong) 0);
 
584
        } else {
 
585
                _tmp0_ = FALSE;
 
586
        }
 
587
        _tmp3_ = _tmp0_;
 
588
        if (_tmp3_) {
 
589
                glong _tmp4_;
 
590
                glong _tmp5_;
 
591
                glong _tmp6_ = 0L;
 
592
                _tmp4_ = offset;
 
593
                _tmp5_ = len;
 
594
                _tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_);
 
595
                string_length = _tmp6_;
 
596
        } else {
 
597
                gint _tmp7_;
 
598
                gint _tmp8_;
 
599
                _tmp7_ = strlen (self);
 
600
                _tmp8_ = _tmp7_;
 
601
                string_length = (glong) _tmp8_;
 
602
        }
 
603
        _tmp9_ = offset;
 
604
        if (_tmp9_ < ((glong) 0)) {
 
605
                glong _tmp10_;
 
606
                glong _tmp11_;
 
607
                glong _tmp12_;
 
608
                _tmp10_ = string_length;
 
609
                _tmp11_ = offset;
 
610
                offset = _tmp10_ + _tmp11_;
 
611
                _tmp12_ = offset;
 
612
                g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL);
 
613
        } else {
 
614
                glong _tmp13_;
 
615
                glong _tmp14_;
 
616
                _tmp13_ = offset;
 
617
                _tmp14_ = string_length;
 
618
                g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL);
 
619
        }
 
620
        _tmp15_ = len;
 
621
        if (_tmp15_ < ((glong) 0)) {
 
622
                glong _tmp16_;
 
623
                glong _tmp17_;
 
624
                _tmp16_ = string_length;
 
625
                _tmp17_ = offset;
 
626
                len = _tmp16_ - _tmp17_;
 
627
        }
 
628
        _tmp18_ = offset;
 
629
        _tmp19_ = len;
 
630
        _tmp20_ = string_length;
 
631
        g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL);
 
632
        _tmp21_ = offset;
 
633
        _tmp22_ = len;
 
634
        _tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_);
 
635
        result = _tmp23_;
 
636
        return result;
 
637
}
 
638
 
 
639
 
 
640
static JsonObject* _vala_JsonObject_copy (JsonObject* self) {
 
641
        return g_boxed_copy (json_object_get_type (), self);
 
642
}
 
643
 
 
644
 
 
645
static gpointer __vala_JsonObject_copy0 (gpointer self) {
 
646
        return self ? _vala_JsonObject_copy (self) : NULL;
 
647
}
 
648
 
 
649
 
 
650
static void _g_slist_free__g_object_unref0_ (GSList* self) {
 
651
        g_slist_foreach (self, (GFunc) _g_object_unref0_, NULL);
 
652
        g_slist_free (self);
 
653
}
 
654
 
 
655
 
 
656
static JsonArray* _vala_JsonArray_copy (JsonArray* self) {
 
657
        return g_boxed_copy (json_array_get_type (), self);
 
658
}
 
659
 
 
660
 
 
661
static gpointer __vala_JsonArray_copy0 (gpointer self) {
 
662
        return self ? _vala_JsonArray_copy (self) : NULL;
 
663
}
 
664
 
 
665
 
 
666
static void _vala_JsonObject_free (JsonObject* self) {
 
667
        g_boxed_free (json_object_get_type (), self);
 
668
}
 
669
 
 
670
 
 
671
static void _vala_JsonArray_free (JsonArray* self) {
 
672
        g_boxed_free (json_array_get_type (), self);
 
673
}
 
674
 
 
675
 
 
676
void unity_music_lens_music_store_collection_get_album_details (UnityMusicLensMusicStoreCollection* self, const gchar* uri, UnityMusicLensAlbum** album, GSList** tracks) {
 
677
        UnityMusicLensAlbum* _vala_album = NULL;
 
678
        GSList* _vala_tracks = NULL;
 
679
        const gchar* _tmp0_;
 
680
        gchar* _tmp1_ = NULL;
 
681
        gchar* http_uri;
 
682
        GHashTable* _tmp2_;
 
683
        const gchar* _tmp3_;
 
684
        gboolean _tmp4_ = FALSE;
 
685
        GError * _inner_error_ = NULL;
 
686
        g_return_if_fail (self != NULL);
 
687
        g_return_if_fail (uri != NULL);
 
688
        _tmp0_ = uri;
 
689
        _tmp1_ = string_substring (_tmp0_, (glong) 7, (glong) (-1));
 
690
        http_uri = _tmp1_;
 
691
        _tmp2_ = self->priv->preview_uri_map;
 
692
        _tmp3_ = http_uri;
 
693
        _tmp4_ = g_hash_table_contains (_tmp2_, _tmp3_);
 
694
        if (_tmp4_) {
 
695
                GHashTable* _tmp5_;
 
696
                const gchar* _tmp6_;
 
697
                gconstpointer _tmp7_ = NULL;
 
698
                gchar* _tmp8_;
 
699
                gchar* details_uri;
 
700
                const gchar* _tmp9_;
 
701
                const gchar* _tmp10_;
 
702
                GFile* _tmp11_ = NULL;
 
703
                GFile* file;
 
704
                JsonParser* _tmp12_;
 
705
                JsonParser* parser;
 
706
                _tmp5_ = self->priv->preview_uri_map;
 
707
                _tmp6_ = http_uri;
 
708
                _tmp7_ = g_hash_table_lookup (_tmp5_, _tmp6_);
 
709
                _tmp8_ = g_strdup ((const gchar*) _tmp7_);
 
710
                details_uri = _tmp8_;
 
711
                _tmp9_ = details_uri;
 
712
                g_debug ("musicstore-collection.vala:57: details uri: %s", _tmp9_);
 
713
                _tmp10_ = details_uri;
 
714
                _tmp11_ = g_file_new_for_uri (_tmp10_);
 
715
                file = _tmp11_;
 
716
                _tmp12_ = json_parser_new ();
 
717
                parser = _tmp12_;
 
718
                {
 
719
                        GFile* _tmp13_;
 
720
                        GFileInputStream* _tmp14_ = NULL;
 
721
                        GFileInputStream* _tmp15_;
 
722
                        JsonParser* _tmp16_;
 
723
                        GFileInputStream* _tmp17_;
 
724
                        gboolean _tmp18_ = FALSE;
 
725
                        gboolean _tmp19_;
 
726
                        gboolean _tmp20_;
 
727
                        _tmp13_ = file;
 
728
                        _tmp14_ = g_file_read (_tmp13_, NULL, &_inner_error_);
 
729
                        _tmp15_ = _tmp14_;
 
730
                        if (_inner_error_ != NULL) {
 
731
                                goto __catch0_g_error;
 
732
                        }
 
733
                        _tmp16_ = parser;
 
734
                        _tmp17_ = _tmp15_;
 
735
                        _tmp18_ = json_parser_load_from_stream (_tmp16_, (GInputStream*) _tmp17_, NULL, &_inner_error_);
 
736
                        _tmp19_ = _tmp18_;
 
737
                        _g_object_unref0 (_tmp17_);
 
738
                        _tmp20_ = _tmp19_;
 
739
                        if (_inner_error_ != NULL) {
 
740
                                goto __catch0_g_error;
 
741
                        }
 
742
                        if (_tmp20_) {
 
743
                                JsonParser* _tmp21_;
 
744
                                JsonNode* _tmp22_ = NULL;
 
745
                                JsonObject* _tmp23_ = NULL;
 
746
                                JsonObject* _tmp24_;
 
747
                                JsonObject* root_obj;
 
748
                                UnityMusicLensAlbum* _tmp25_;
 
749
                                UnityMusicLensAlbum* _tmp26_;
 
750
                                JsonObject* _tmp27_;
 
751
                                const gchar* _tmp28_ = NULL;
 
752
                                UnityMusicLensAlbum* _tmp29_;
 
753
                                JsonObject* _tmp30_;
 
754
                                const gchar* _tmp31_ = NULL;
 
755
                                UnityMusicLensAlbum* _tmp32_;
 
756
                                JsonObject* _tmp33_;
 
757
                                const gchar* _tmp34_ = NULL;
 
758
                                UnityMusicLensAlbum* _tmp35_;
 
759
                                const gchar* _tmp36_;
 
760
                                JsonObject* _tmp37_;
 
761
                                gboolean _tmp38_ = FALSE;
 
762
                                _tmp21_ = parser;
 
763
                                _tmp22_ = json_parser_get_root (_tmp21_);
 
764
                                _tmp23_ = json_node_get_object (_tmp22_);
 
765
                                _tmp24_ = __vala_JsonObject_copy0 (_tmp23_);
 
766
                                root_obj = _tmp24_;
 
767
                                _tmp25_ = unity_music_lens_album_new ();
 
768
                                _g_object_unref0 (_vala_album);
 
769
                                _vala_album = _tmp25_;
 
770
                                __g_slist_free__g_object_unref0_0 (_vala_tracks);
 
771
                                _vala_tracks = NULL;
 
772
                                _tmp26_ = _vala_album;
 
773
                                _tmp27_ = root_obj;
 
774
                                _tmp28_ = json_object_get_string_member (_tmp27_, "title");
 
775
                                unity_music_lens_album_set_title (_tmp26_, _tmp28_);
 
776
                                _tmp29_ = _vala_album;
 
777
                                _tmp30_ = root_obj;
 
778
                                _tmp31_ = json_object_get_string_member (_tmp30_, "image");
 
779
                                unity_music_lens_album_set_artwork_path (_tmp29_, _tmp31_);
 
780
                                _tmp32_ = _vala_album;
 
781
                                _tmp33_ = root_obj;
 
782
                                _tmp34_ = json_object_get_string_member (_tmp33_, "artist");
 
783
                                unity_music_lens_album_set_artist (_tmp32_, _tmp34_);
 
784
                                _tmp35_ = _vala_album;
 
785
                                _tmp36_ = http_uri;
 
786
                                unity_music_lens_album_set_uri (_tmp35_, _tmp36_);
 
787
                                _tmp37_ = root_obj;
 
788
                                _tmp38_ = json_object_has_member (_tmp37_, "tracks");
 
789
                                if (_tmp38_) {
 
790
                                        JsonObject* _tmp39_;
 
791
                                        JsonArray* _tmp40_ = NULL;
 
792
                                        JsonArray* _tmp41_;
 
793
                                        JsonArray* tracks_node;
 
794
                                        const gchar* _tmp42_;
 
795
                                        const gchar* _tmp43_;
 
796
                                        JsonArray* _tmp44_;
 
797
                                        GList* _tmp45_ = NULL;
 
798
                                        _tmp39_ = root_obj;
 
799
                                        _tmp40_ = json_object_get_array_member (_tmp39_, "tracks");
 
800
                                        _tmp41_ = __vala_JsonArray_copy0 (_tmp40_);
 
801
                                        tracks_node = _tmp41_;
 
802
                                        _tmp42_ = uri;
 
803
                                        _tmp43_ = details_uri;
 
804
                                        g_debug ("musicstore-collection.vala:77: Album details: '%s', '%s'", _tmp42_, _tmp43_);
 
805
                                        _tmp44_ = tracks_node;
 
806
                                        _tmp45_ = json_array_get_elements (_tmp44_);
 
807
                                        {
 
808
                                                GList* track_node_collection = NULL;
 
809
                                                GList* track_node_it = NULL;
 
810
                                                track_node_collection = _tmp45_;
 
811
                                                for (track_node_it = track_node_collection; track_node_it != NULL; track_node_it = track_node_it->next) {
 
812
                                                        JsonNode* track_node = NULL;
 
813
                                                        track_node = (JsonNode*) track_node_it->data;
 
814
                                                        {
 
815
                                                                JsonNode* _tmp46_;
 
816
                                                                JsonObject* _tmp47_ = NULL;
 
817
                                                                JsonObject* _tmp48_;
 
818
                                                                JsonObject* track_obj;
 
819
                                                                UnityMusicLensTrack* _tmp49_;
 
820
                                                                UnityMusicLensTrack* track;
 
821
                                                                UnityMusicLensTrack* _tmp50_;
 
822
                                                                JsonObject* _tmp51_;
 
823
                                                                const gchar* _tmp52_ = NULL;
 
824
                                                                UnityMusicLensTrack* _tmp53_;
 
825
                                                                JsonObject* _tmp54_;
 
826
                                                                const gchar* _tmp55_ = NULL;
 
827
                                                                UnityMusicLensTrack* _tmp56_;
 
828
                                                                JsonObject* _tmp57_;
 
829
                                                                JsonNode* _tmp58_ = NULL;
 
830
                                                                gint64 _tmp59_ = 0LL;
 
831
                                                                UnityMusicLensTrack* _tmp60_;
 
832
                                                                UnityMusicLensTrack* _tmp61_;
 
833
                                                                _tmp46_ = track_node;
 
834
                                                                _tmp47_ = json_node_get_object (_tmp46_);
 
835
                                                                _tmp48_ = __vala_JsonObject_copy0 (_tmp47_);
 
836
                                                                track_obj = _tmp48_;
 
837
                                                                _tmp49_ = unity_music_lens_track_new ();
 
838
                                                                track = _tmp49_;
 
839
                                                                _tmp50_ = track;
 
840
                                                                _tmp51_ = track_obj;
 
841
                                                                _tmp52_ = json_object_get_string_member (_tmp51_, "preview");
 
842
                                                                unity_music_lens_track_set_uri (_tmp50_, _tmp52_);
 
843
                                                                _tmp53_ = track;
 
844
                                                                _tmp54_ = track_obj;
 
845
                                                                _tmp55_ = json_object_get_string_member (_tmp54_, "title");
 
846
                                                                unity_music_lens_track_set_title (_tmp53_, _tmp55_);
 
847
                                                                _tmp56_ = track;
 
848
                                                                _tmp57_ = track_obj;
 
849
                                                                _tmp58_ = json_object_get_member (_tmp57_, "duration");
 
850
                                                                _tmp59_ = json_node_get_int (_tmp58_);
 
851
                                                                unity_music_lens_track_set_duration (_tmp56_, (gint) _tmp59_);
 
852
                                                                _tmp60_ = track;
 
853
                                                                _tmp61_ = _g_object_ref0 (_tmp60_);
 
854
                                                                _vala_tracks = g_slist_append (_vala_tracks, _tmp61_);
 
855
                                                                _g_object_unref0 (track);
 
856
                                                                __vala_JsonObject_free0 (track_obj);
 
857
                                                        }
 
858
                                                }
 
859
                                                _g_list_free0 (track_node_collection);
 
860
                                        }
 
861
                                        __vala_JsonArray_free0 (tracks_node);
 
862
                                } else {
 
863
                                        const gchar* _tmp62_;
 
864
                                        const gchar* _tmp63_;
 
865
                                        UnityMusicLensTrack* _tmp64_;
 
866
                                        UnityMusicLensTrack* track;
 
867
                                        UnityMusicLensTrack* _tmp65_;
 
868
                                        JsonObject* _tmp66_;
 
869
                                        const gchar* _tmp67_ = NULL;
 
870
                                        UnityMusicLensTrack* _tmp68_;
 
871
                                        JsonObject* _tmp69_;
 
872
                                        const gchar* _tmp70_ = NULL;
 
873
                                        UnityMusicLensTrack* _tmp71_;
 
874
                                        JsonObject* _tmp72_;
 
875
                                        JsonNode* _tmp73_ = NULL;
 
876
                                        gint64 _tmp74_ = 0LL;
 
877
                                        UnityMusicLensTrack* _tmp75_;
 
878
                                        UnityMusicLensTrack* _tmp76_;
 
879
                                        _tmp62_ = uri;
 
880
                                        _tmp63_ = details_uri;
 
881
                                        g_debug ("musicstore-collection.vala:90: Single track details: '%s', '%s'", _tmp62_, _tmp63_);
 
882
                                        _tmp64_ = unity_music_lens_track_new ();
 
883
                                        track = _tmp64_;
 
884
                                        _tmp65_ = track;
 
885
                                        _tmp66_ = root_obj;
 
886
                                        _tmp67_ = json_object_get_string_member (_tmp66_, "preview");
 
887
                                        unity_music_lens_track_set_uri (_tmp65_, _tmp67_);
 
888
                                        _tmp68_ = track;
 
889
                                        _tmp69_ = root_obj;
 
890
                                        _tmp70_ = json_object_get_string_member (_tmp69_, "title");
 
891
                                        unity_music_lens_track_set_title (_tmp68_, _tmp70_);
 
892
                                        _tmp71_ = track;
 
893
                                        _tmp72_ = root_obj;
 
894
                                        _tmp73_ = json_object_get_member (_tmp72_, "duration");
 
895
                                        _tmp74_ = json_node_get_int (_tmp73_);
 
896
                                        unity_music_lens_track_set_duration (_tmp71_, (gint) _tmp74_);
 
897
                                        _tmp75_ = track;
 
898
                                        _tmp76_ = _g_object_ref0 (_tmp75_);
 
899
                                        _vala_tracks = g_slist_append (_vala_tracks, _tmp76_);
 
900
                                        _g_object_unref0 (track);
 
901
                                }
 
902
                                __vala_JsonObject_free0 (root_obj);
 
903
                        } else {
 
904
                                const gchar* _tmp77_;
 
905
                                _tmp77_ = details_uri;
 
906
                                g_warning ("musicstore-collection.vala:100: Can't parse json data for '%s'", _tmp77_);
 
907
                        }
 
908
                }
 
909
                goto __finally0;
 
910
                __catch0_g_error:
 
911
                {
 
912
                        GError* e = NULL;
 
913
                        const gchar* _tmp78_;
 
914
                        GError* _tmp79_;
 
915
                        const gchar* _tmp80_;
 
916
                        e = _inner_error_;
 
917
                        _inner_error_ = NULL;
 
918
                        _tmp78_ = details_uri;
 
919
                        _tmp79_ = e;
 
920
                        _tmp80_ = _tmp79_->message;
 
921
                        g_warning ("musicstore-collection.vala:105: Error fetching details for '%s': %s", _tmp78_, _tmp80_);
 
922
                        _g_error_free0 (e);
 
923
                }
 
924
                __finally0:
 
925
                if (_inner_error_ != NULL) {
 
926
                        _g_object_unref0 (parser);
 
927
                        _g_object_unref0 (file);
 
928
                        _g_free0 (details_uri);
 
929
                        _g_free0 (http_uri);
 
930
                        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);
 
931
                        g_clear_error (&_inner_error_);
 
932
                        return;
 
933
                }
 
934
                _g_object_unref0 (parser);
 
935
                _g_object_unref0 (file);
 
936
                _g_free0 (details_uri);
 
937
        } else {
 
938
                const gchar* _tmp81_;
 
939
                _tmp81_ = http_uri;
 
940
                g_warning ("musicstore-collection.vala:110: No details uri for '%s'", _tmp81_);
 
941
        }
 
942
        _g_free0 (http_uri);
 
943
        if (album) {
 
944
                *album = _vala_album;
 
945
        } else {
 
946
                _g_object_unref0 (_vala_album);
 
947
        }
 
948
        if (tracks) {
 
949
                *tracks = _vala_tracks;
 
950
        } else {
 
951
                __g_slist_free__g_object_unref0_0 (_vala_tracks);
 
952
        }
 
953
}
 
954
 
 
955
 
 
956
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_data_free (gpointer _data) {
 
957
        UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_;
 
958
        _data_ = _data;
 
959
        _g_object_unref0 (_data_->file);
 
960
        _g_object_unref0 (_data_->model);
 
961
        _g_object_unref0 (_data_->cancellable);
 
962
        _g_object_unref0 (_data_->self);
 
963
        g_slice_free (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData, _data_);
 
964
}
 
965
 
 
966
 
 
967
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async (UnityMusicLensMusicStoreCollection* self, GFile* file, DeeModel* model, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_) {
 
968
        UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_;
 
969
        UnityMusicLensMusicStoreCollection* _tmp0_;
 
970
        GFile* _tmp1_;
 
971
        GFile* _tmp2_;
 
972
        DeeModel* _tmp3_;
 
973
        DeeModel* _tmp4_;
 
974
        GCancellable* _tmp5_;
 
975
        GCancellable* _tmp6_;
 
976
        _data_ = g_slice_new0 (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData);
 
977
        _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, unity_music_lens_music_store_collection_read_musicstore_search_result_async);
 
978
        g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, unity_music_lens_music_store_collection_read_musicstore_search_result_async_data_free);
 
979
        _tmp0_ = _g_object_ref0 (self);
 
980
        _data_->self = _tmp0_;
 
981
        _tmp1_ = file;
 
982
        _tmp2_ = _g_object_ref0 (_tmp1_);
 
983
        _data_->file = _tmp2_;
 
984
        _tmp3_ = model;
 
985
        _tmp4_ = _g_object_ref0 (_tmp3_);
 
986
        _data_->model = _tmp4_;
 
987
        _tmp5_ = cancellable;
 
988
        _tmp6_ = _g_object_ref0 (_tmp5_);
 
989
        _data_->cancellable = _tmp6_;
 
990
        unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (_data_);
 
991
}
 
992
 
 
993
 
 
994
static void unity_music_lens_music_store_collection_read_musicstore_search_result_finish (UnityMusicLensMusicStoreCollection* self, GAsyncResult* _res_) {
 
995
        UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_;
 
996
        _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
 
997
}
 
998
 
 
999
 
 
1000
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
 
1001
        UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_;
 
1002
        _data_ = _user_data_;
 
1003
        _data_->_source_object_ = source_object;
 
1004
        _data_->_res_ = _res_;
 
1005
        unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (_data_);
 
1006
}
 
1007
 
 
1008
 
 
1009
static gboolean unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_) {
 
1010
        switch (_data_->_state_) {
 
1011
                case 0:
 
1012
                goto _state_0;
 
1013
                case 1:
 
1014
                goto _state_1;
 
1015
                case 2:
 
1016
                goto _state_2;
 
1017
                default:
 
1018
                g_assert_not_reached ();
 
1019
        }
 
1020
        _state_0:
 
1021
        _data_->_tmp0_ = g_timer_new ();
 
1022
        _data_->timer = _data_->_tmp0_;
 
1023
        _data_->_tmp1_ = _data_->file;
 
1024
        _data_->_tmp2_ = NULL;
 
1025
        _data_->_tmp2_ = g_file_get_uri (_data_->_tmp1_);
 
1026
        _data_->_tmp3_ = _data_->_tmp2_;
 
1027
        g_debug ("musicstore-collection.vala:117: Searching %s", _data_->_tmp3_);
 
1028
        _g_free0 (_data_->_tmp3_);
 
1029
        {
 
1030
                _data_->_tmp4_ = _data_->file;
 
1031
                _data_->_tmp5_ = _data_->cancellable;
 
1032
                _data_->_state_ = 1;
 
1033
                g_file_read_async (_data_->_tmp4_, G_PRIORITY_DEFAULT, _data_->_tmp5_, unity_music_lens_music_store_collection_read_musicstore_search_result_async_ready, _data_);
 
1034
                return FALSE;
 
1035
                _state_1:
 
1036
                _data_->_tmp6_ = NULL;
 
1037
                _data_->_tmp6_ = g_file_read_finish (_data_->_tmp4_, _data_->_res_, &_data_->_inner_error_);
 
1038
                _data_->stream = _data_->_tmp6_;
 
1039
                if (_data_->_inner_error_ != NULL) {
 
1040
                        goto __catch1_g_error;
 
1041
                }
 
1042
                _data_->_tmp7_ = _data_->stream;
 
1043
                _data_->_tmp8_ = g_data_input_stream_new ((GInputStream*) _data_->_tmp7_);
 
1044
                _data_->dis = _data_->_tmp8_;
 
1045
                _data_->_tmp9_ = json_parser_new ();
 
1046
                _data_->parser = _data_->_tmp9_;
 
1047
                _data_->_tmp10_ = _data_->parser;
 
1048
                _data_->_tmp11_ = _data_->dis;
 
1049
                _data_->_tmp12_ = _data_->cancellable;
 
1050
                _data_->_state_ = 2;
 
1051
                json_parser_load_from_stream_async (_data_->_tmp10_, (GInputStream*) _data_->_tmp11_, _data_->_tmp12_, unity_music_lens_music_store_collection_read_musicstore_search_result_async_ready, _data_);
 
1052
                return FALSE;
 
1053
                _state_2:
 
1054
                json_parser_load_from_stream_finish (_data_->_tmp10_, _data_->_res_, &_data_->_inner_error_);
 
1055
                if (_data_->_inner_error_ != NULL) {
 
1056
                        _g_object_unref0 (_data_->parser);
 
1057
                        _g_object_unref0 (_data_->dis);
 
1058
                        _g_object_unref0 (_data_->stream);
 
1059
                        goto __catch1_g_error;
 
1060
                }
 
1061
                _data_->_tmp13_ = _data_->parser;
 
1062
                _data_->_tmp14_ = NULL;
 
1063
                _data_->_tmp14_ = json_parser_get_root (_data_->_tmp13_);
 
1064
                _data_->_tmp15_ = NULL;
 
1065
                _data_->_tmp15_ = json_node_get_object (_data_->_tmp14_);
 
1066
                _data_->_tmp16_ = __vala_JsonObject_copy0 (_data_->_tmp15_);
 
1067
                _data_->root_object = _data_->_tmp16_;
 
1068
                _data_->_tmp17_ = NULL;
 
1069
                _data_->_tmp17_ = json_object_get_object_member (_data_->root_object, "results");
 
1070
                _data_->_tmp18_ = __vala_JsonObject_copy0 (_data_->_tmp17_);
 
1071
                _data_->results = _data_->_tmp18_;
 
1072
                if (_data_->results == NULL) {
 
1073
                        g_warning ("musicstore-collection.vala:128: Invalid response from server. No 'resu" \
 
1074
"lts' member.");
 
1075
                        __vala_JsonObject_free0 (_data_->results);
 
1076
                        __vala_JsonObject_free0 (_data_->root_object);
 
1077
                        _g_object_unref0 (_data_->parser);
 
1078
                        _g_object_unref0 (_data_->dis);
 
1079
                        _g_object_unref0 (_data_->stream);
 
1080
                        _g_timer_destroy0 (_data_->timer);
 
1081
                        if (_data_->_state_ == 0) {
 
1082
                                g_simple_async_result_complete_in_idle (_data_->_async_result);
 
1083
                        } else {
 
1084
                                g_simple_async_result_complete (_data_->_async_result);
 
1085
                        }
 
1086
                        g_object_unref (_data_->_async_result);
 
1087
                        return FALSE;
 
1088
                }
 
1089
                _data_->_tmp19_ = NULL;
 
1090
                _data_->_tmp19_ = json_object_get_array_member (_data_->results, "album");
 
1091
                _data_->_tmp20_ = NULL;
 
1092
                _data_->_tmp20_ = json_array_get_elements (_data_->_tmp19_);
 
1093
                _data_->albums = _data_->_tmp20_;
 
1094
                _data_->_tmp21_ = NULL;
 
1095
                _data_->_tmp21_ = json_object_get_array_member (_data_->results, "track");
 
1096
                _data_->_tmp22_ = NULL;
 
1097
                _data_->_tmp22_ = json_array_get_elements (_data_->_tmp21_);
 
1098
                _data_->tracks = _data_->_tmp22_;
 
1099
                _data_->_tmp23_ = _data_->albums;
 
1100
                _data_->_tmp24_ = 0U;
 
1101
                _data_->_tmp24_ = g_list_length (_data_->_tmp23_);
 
1102
                _data_->_tmp25_ = _data_->tracks;
 
1103
                _data_->_tmp26_ = 0U;
 
1104
                _data_->_tmp26_ = g_list_length (_data_->_tmp25_);
 
1105
                g_debug ("musicstore-collection.vala:135: Got %u albums and %u tracks", _data_->_tmp24_, _data_->_tmp26_);
 
1106
                _data_->_tmp27_ = _data_->albums;
 
1107
                {
 
1108
                        _data_->album_node_collection = _data_->_tmp27_;
 
1109
                        for (_data_->album_node_it = _data_->album_node_collection; _data_->album_node_it != NULL; _data_->album_node_it = _data_->album_node_it->next) {
 
1110
                                _data_->album_node = (JsonNode*) _data_->album_node_it->data;
 
1111
                                {
 
1112
                                        _data_->_tmp28_ = _data_->album_node;
 
1113
                                        _data_->_tmp29_ = NULL;
 
1114
                                        _data_->_tmp29_ = json_node_get_object (_data_->_tmp28_);
 
1115
                                        _data_->_tmp30_ = __vala_JsonObject_copy0 (_data_->_tmp29_);
 
1116
                                        _data_->album_obj = _data_->_tmp30_;
 
1117
                                        _data_->_tmp31_ = _data_->album_obj;
 
1118
                                        _data_->_tmp32_ = NULL;
 
1119
                                        _data_->_tmp32_ = json_object_get_string_member (_data_->_tmp31_, "purchase_url");
 
1120
                                        _data_->uri = _data_->_tmp32_;
 
1121
                                        _data_->_tmp33_ = _data_->album_obj;
 
1122
                                        _data_->_tmp34_ = NULL;
 
1123
                                        _data_->_tmp34_ = json_object_get_string_member (_data_->_tmp33_, "details");
 
1124
                                        _data_->details_uri = _data_->_tmp34_;
 
1125
                                        _data_->_tmp35_ = _data_->album_obj;
 
1126
                                        _data_->_tmp36_ = NULL;
 
1127
                                        _data_->_tmp36_ = json_object_get_string_member (_data_->_tmp35_, "image");
 
1128
                                        _data_->artwork_path = _data_->_tmp36_;
 
1129
                                        _data_->mimetype = "audio-x-generic";
 
1130
                                        _data_->_tmp37_ = _data_->album_obj;
 
1131
                                        _data_->_tmp38_ = NULL;
 
1132
                                        _data_->_tmp38_ = json_object_get_string_member (_data_->_tmp37_, "title");
 
1133
                                        _data_->title = _data_->_tmp38_;
 
1134
                                        _data_->_tmp39_ = _data_->album_obj;
 
1135
                                        _data_->_tmp40_ = NULL;
 
1136
                                        _data_->_tmp40_ = json_object_get_string_member (_data_->_tmp39_, "artist");
 
1137
                                        _data_->artist = _data_->_tmp40_;
 
1138
                                        _data_->_tmp41_ = _data_->uri;
 
1139
                                        _data_->dnd_uri = _data_->_tmp41_;
 
1140
                                        _data_->_tmp42_ = _data_->model;
 
1141
                                        _data_->_tmp43_ = _data_->uri;
 
1142
                                        _data_->_tmp44_ = _data_->artwork_path;
 
1143
                                        _data_->_tmp45_ = _data_->mimetype;
 
1144
                                        _data_->_tmp46_ = _data_->title;
 
1145
                                        _data_->_tmp47_ = _data_->artist;
 
1146
                                        _data_->_tmp48_ = _data_->dnd_uri;
 
1147
                                        dee_model_append (_data_->_tmp42_, _data_->_tmp43_, _data_->_tmp44_, UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_PURCHASE_CATEGORY, _data_->_tmp45_, _data_->_tmp46_, _data_->_tmp47_, _data_->_tmp48_, NULL);
 
1148
                                        _data_->_tmp49_ = _data_->self->priv->preview_uri_map;
 
1149
                                        _data_->_tmp50_ = _data_->uri;
 
1150
                                        _data_->_tmp51_ = NULL;
 
1151
                                        _data_->_tmp51_ = string_substring (_data_->_tmp50_, (glong) 7, (glong) (-1));
 
1152
                                        _data_->_tmp52_ = _data_->details_uri;
 
1153
                                        _data_->_tmp53_ = g_strdup (_data_->_tmp52_);
 
1154
                                        g_hash_table_insert (_data_->_tmp49_, _data_->_tmp51_, _data_->_tmp53_);
 
1155
                                        __vala_JsonObject_free0 (_data_->album_obj);
 
1156
                                }
 
1157
                        }
 
1158
                }
 
1159
                _data_->_tmp54_ = _data_->tracks;
 
1160
                {
 
1161
                        _data_->track_node_collection = _data_->_tmp54_;
 
1162
                        for (_data_->track_node_it = _data_->track_node_collection; _data_->track_node_it != NULL; _data_->track_node_it = _data_->track_node_it->next) {
 
1163
                                _data_->track_node = (JsonNode*) _data_->track_node_it->data;
 
1164
                                {
 
1165
                                        _data_->_tmp55_ = _data_->track_node;
 
1166
                                        _data_->_tmp56_ = NULL;
 
1167
                                        _data_->_tmp56_ = json_node_get_object (_data_->_tmp55_);
 
1168
                                        _data_->_tmp57_ = __vala_JsonObject_copy0 (_data_->_tmp56_);
 
1169
                                        _data_->track_obj = _data_->_tmp57_;
 
1170
                                        _data_->_tmp58_ = _data_->track_obj;
 
1171
                                        _data_->_tmp59_ = NULL;
 
1172
                                        _data_->_tmp59_ = json_object_get_string_member (_data_->_tmp58_, "purchase_url");
 
1173
                                        _data_->uri = _data_->_tmp59_;
 
1174
                                        _data_->_tmp60_ = _data_->track_obj;
 
1175
                                        _data_->_tmp61_ = NULL;
 
1176
                                        _data_->_tmp61_ = json_object_get_string_member (_data_->_tmp60_, "details");
 
1177
                                        _data_->details_uri = _data_->_tmp61_;
 
1178
                                        _data_->_tmp62_ = _data_->track_obj;
 
1179
                                        _data_->_tmp63_ = NULL;
 
1180
                                        _data_->_tmp63_ = json_object_get_string_member (_data_->_tmp62_, "image");
 
1181
                                        _data_->artwork_path = _data_->_tmp63_;
 
1182
                                        _data_->mimetype = "audio-x-generic";
 
1183
                                        _data_->_tmp64_ = _data_->track_obj;
 
1184
                                        _data_->_tmp65_ = NULL;
 
1185
                                        _data_->_tmp65_ = json_object_get_string_member (_data_->_tmp64_, "title");
 
1186
                                        _data_->title = _data_->_tmp65_;
 
1187
                                        _data_->_tmp66_ = _data_->track_obj;
 
1188
                                        _data_->_tmp67_ = NULL;
 
1189
                                        _data_->_tmp67_ = json_object_get_string_member (_data_->_tmp66_, "artist");
 
1190
                                        _data_->artist = _data_->_tmp67_;
 
1191
                                        _data_->_tmp68_ = _data_->uri;
 
1192
                                        _data_->dnd_uri = _data_->_tmp68_;
 
1193
                                        _data_->_tmp69_ = _data_->model;
 
1194
                                        _data_->_tmp70_ = _data_->uri;
 
1195
                                        _data_->_tmp71_ = _data_->artwork_path;
 
1196
                                        _data_->_tmp72_ = _data_->mimetype;
 
1197
                                        _data_->_tmp73_ = _data_->title;
 
1198
                                        _data_->_tmp74_ = _data_->artist;
 
1199
                                        _data_->_tmp75_ = _data_->dnd_uri;
 
1200
                                        dee_model_append (_data_->_tmp69_, _data_->_tmp70_, _data_->_tmp71_, UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_PURCHASE_CATEGORY, _data_->_tmp72_, _data_->_tmp73_, _data_->_tmp74_, _data_->_tmp75_, NULL);
 
1201
                                        _data_->_tmp76_ = _data_->self->priv->preview_uri_map;
 
1202
                                        _data_->_tmp77_ = _data_->uri;
 
1203
                                        _data_->_tmp78_ = NULL;
 
1204
                                        _data_->_tmp78_ = string_substring (_data_->_tmp77_, (glong) 7, (glong) (-1));
 
1205
                                        _data_->_tmp79_ = _data_->details_uri;
 
1206
                                        _data_->_tmp80_ = g_strdup (_data_->_tmp79_);
 
1207
                                        g_hash_table_insert (_data_->_tmp76_, _data_->_tmp78_, _data_->_tmp80_);
 
1208
                                        __vala_JsonObject_free0 (_data_->track_obj);
 
1209
                                }
 
1210
                        }
 
1211
                }
 
1212
                _data_->_tmp81_ = _data_->file;
 
1213
                _data_->_tmp82_ = NULL;
 
1214
                _data_->_tmp82_ = g_file_get_uri (_data_->_tmp81_);
 
1215
                _data_->_tmp83_ = _data_->_tmp82_;
 
1216
                _data_->_tmp84_ = _data_->timer;
 
1217
                _data_->_tmp85_ = 0.0;
 
1218
                _data_->_tmp85_ = g_timer_elapsed (_data_->_tmp84_, NULL);
 
1219
                g_debug ("musicstore-collection.vala:174: Retrieved '%s' in %fms", _data_->_tmp83_, _data_->_tmp85_ * 1000);
 
1220
                _g_free0 (_data_->_tmp83_);
 
1221
                _data_->_tmp86_ = _data_->model;
 
1222
                _data_->_tmp87_ = 0U;
 
1223
                _data_->_tmp87_ = dee_model_get_n_rows (_data_->_tmp86_);
 
1224
                g_debug ("musicstore-collection.vala:175: Model has %u rows after search", _data_->_tmp87_);
 
1225
                _g_list_free0 (_data_->tracks);
 
1226
                _g_list_free0 (_data_->albums);
 
1227
                __vala_JsonObject_free0 (_data_->results);
 
1228
                __vala_JsonObject_free0 (_data_->root_object);
 
1229
                _g_object_unref0 (_data_->parser);
 
1230
                _g_object_unref0 (_data_->dis);
 
1231
                _g_object_unref0 (_data_->stream);
 
1232
        }
 
1233
        goto __finally1;
 
1234
        __catch1_g_error:
 
1235
        {
 
1236
                _data_->e = _data_->_inner_error_;
 
1237
                _data_->_inner_error_ = NULL;
 
1238
                _data_->_tmp88_ = _data_->file;
 
1239
                _data_->_tmp89_ = NULL;
 
1240
                _data_->_tmp89_ = g_file_get_uri (_data_->_tmp88_);
 
1241
                _data_->_tmp90_ = _data_->_tmp89_;
 
1242
                _data_->_tmp91_ = _data_->e;
 
1243
                _data_->_tmp92_ = _data_->_tmp91_->message;
 
1244
                g_warning ("musicstore-collection.vala:178: Error reading URL '%s': %s", _data_->_tmp90_, _data_->_tmp92_);
 
1245
                _g_free0 (_data_->_tmp90_);
 
1246
                _g_error_free0 (_data_->e);
 
1247
        }
 
1248
        __finally1:
 
1249
        if (_data_->_inner_error_ != NULL) {
 
1250
                _g_timer_destroy0 (_data_->timer);
 
1251
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
 
1252
                g_clear_error (&_data_->_inner_error_);
 
1253
                return FALSE;
 
1254
        }
 
1255
        _g_timer_destroy0 (_data_->timer);
 
1256
        if (_data_->_state_ == 0) {
 
1257
                g_simple_async_result_complete_in_idle (_data_->_async_result);
 
1258
        } else {
 
1259
                g_simple_async_result_complete (_data_->_async_result);
 
1260
        }
 
1261
        g_object_unref (_data_->_async_result);
 
1262
        return FALSE;
 
1263
}
 
1264
 
 
1265
 
 
1266
static gchar* string_strip (const gchar* self) {
 
1267
        gchar* result = NULL;
 
1268
        gchar* _tmp0_ = NULL;
 
1269
        gchar* _result_;
 
1270
        const gchar* _tmp1_;
 
1271
        g_return_val_if_fail (self != NULL, NULL);
 
1272
        _tmp0_ = g_strdup (self);
 
1273
        _result_ = _tmp0_;
 
1274
        _tmp1_ = _result_;
 
1275
        g_strstrip (_tmp1_);
 
1276
        result = _result_;
 
1277
        return result;
 
1278
}
 
1279
 
 
1280
 
 
1281
static gchar* unity_music_lens_music_store_collection_build_search_uri (UnityMusicLensMusicStoreCollection* self, const gchar* query, GList* filters) {
 
1282
        gchar* result = NULL;
 
1283
        const gchar* _tmp0_;
 
1284
        gchar* _tmp1_ = NULL;
 
1285
        gchar* _tmp2_;
 
1286
        gboolean _tmp3_;
 
1287
        UnityMusicLensMusicStoreFilterParser* store_parser = NULL;
 
1288
        gchar* _tmp4_;
 
1289
        gchar* musicstore_base_uri;
 
1290
        const gchar* _tmp5_ = NULL;
 
1291
        const gchar* _tmp8_;
 
1292
        const gchar* _tmp9_;
 
1293
        GString* _tmp10_;
 
1294
        GString* uri;
 
1295
        GString* _tmp11_;
 
1296
        GString* _tmp12_;
 
1297
        const gchar* _tmp13_;
 
1298
        gchar* _tmp14_ = NULL;
 
1299
        gchar* _tmp15_;
 
1300
        GList* _tmp16_;
 
1301
        GString* _tmp28_;
 
1302
        GString* _tmp29_;
 
1303
        GString* _tmp30_;
 
1304
        const gchar* _tmp31_;
 
1305
        gchar* _tmp32_;
 
1306
        g_return_val_if_fail (self != NULL, NULL);
 
1307
        g_return_val_if_fail (query != NULL, NULL);
 
1308
        _tmp0_ = query;
 
1309
        _tmp1_ = string_strip (_tmp0_);
 
1310
        _tmp2_ = _tmp1_;
 
1311
        _tmp3_ = g_strcmp0 (_tmp2_, "") == 0;
 
1312
        _g_free0 (_tmp2_);
 
1313
        if (_tmp3_) {
 
1314
                result = NULL;
 
1315
                return result;
 
1316
        }
 
1317
        _tmp4_ = g_strdup (UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_MUSICSTORE_BASE_URI);
 
1318
        musicstore_base_uri = _tmp4_;
 
1319
        _tmp5_ = g_getenv ("MUSICSTORE_URI");
 
1320
        if (_tmp5_ != NULL) {
 
1321
                const gchar* _tmp6_ = NULL;
 
1322
                gchar* _tmp7_;
 
1323
                _tmp6_ = g_getenv ("MUSICSTORE_URI");
 
1324
                _tmp7_ = g_strdup (_tmp6_);
 
1325
                _g_free0 (musicstore_base_uri);
 
1326
                musicstore_base_uri = _tmp7_;
 
1327
        }
 
1328
        _tmp8_ = musicstore_base_uri;
 
1329
        g_debug ("musicstore-collection.vala:191: Using base URI of '%s'", _tmp8_);
 
1330
        _tmp9_ = musicstore_base_uri;
 
1331
        _tmp10_ = g_string_new (_tmp9_);
 
1332
        uri = _tmp10_;
 
1333
        _tmp11_ = uri;
 
1334
        g_string_append (_tmp11_, "search?q=");
 
1335
        _tmp12_ = uri;
 
1336
        _tmp13_ = query;
 
1337
        _tmp14_ = g_uri_escape_string (_tmp13_, "", FALSE);
 
1338
        _tmp15_ = _tmp14_;
 
1339
        g_string_append (_tmp12_, _tmp15_);
 
1340
        _g_free0 (_tmp15_);
 
1341
        _tmp16_ = filters;
 
1342
        {
 
1343
                GList* parser_collection = NULL;
 
1344
                GList* parser_it = NULL;
 
1345
                parser_collection = _tmp16_;
 
1346
                for (parser_it = parser_collection; parser_it != NULL; parser_it = parser_it->next) {
 
1347
                        UnityMusicLensFilterParser* _tmp17_;
 
1348
                        UnityMusicLensFilterParser* parser = NULL;
 
1349
                        _tmp17_ = _g_object_ref0 ((UnityMusicLensFilterParser*) parser_it->data);
 
1350
                        parser = _tmp17_;
 
1351
                        {
 
1352
                                UnityMusicLensFilterParser* _tmp18_;
 
1353
                                GString* _tmp24_;
 
1354
                                UnityMusicLensMusicStoreFilterParser* _tmp25_;
 
1355
                                gchar* _tmp26_ = NULL;
 
1356
                                gchar* _tmp27_;
 
1357
                                _tmp18_ = parser;
 
1358
                                if (UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER (_tmp18_)) {
 
1359
                                        UnityMusicLensFilterParser* _tmp19_;
 
1360
                                        UnityMusicLensMusicStoreGenreFilterParser* _tmp20_;
 
1361
                                        _tmp19_ = parser;
 
1362
                                        _tmp20_ = unity_music_lens_music_store_genre_filter_parser_new (UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER (_tmp19_) ? ((UnityMusicLensGenreFilterParser*) _tmp19_) : NULL);
 
1363
                                        _g_object_unref0 (store_parser);
 
1364
                                        store_parser = (UnityMusicLensMusicStoreFilterParser*) _tmp20_;
 
1365
                                } else {
 
1366
                                        UnityMusicLensFilterParser* _tmp21_;
 
1367
                                        _tmp21_ = parser;
 
1368
                                        if (UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER (_tmp21_)) {
 
1369
                                                UnityMusicLensFilterParser* _tmp22_;
 
1370
                                                UnityMusicLensMusicStoreDecadeFilterParser* _tmp23_;
 
1371
                                                _tmp22_ = parser;
 
1372
                                                _tmp23_ = unity_music_lens_music_store_decade_filter_parser_new (UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER (_tmp22_) ? ((UnityMusicLensDecadeFilterParser*) _tmp22_) : NULL);
 
1373
                                                _g_object_unref0 (store_parser);
 
1374
                                                store_parser = (UnityMusicLensMusicStoreFilterParser*) _tmp23_;
 
1375
                                        } else {
 
1376
                                                _g_object_unref0 (parser);
 
1377
                                                continue;
 
1378
                                        }
 
1379
                                }
 
1380
                                _tmp24_ = uri;
 
1381
                                _tmp25_ = store_parser;
 
1382
                                _tmp26_ = unity_music_lens_filter_parser_parse ((UnityMusicLensFilterParser*) _tmp25_);
 
1383
                                _tmp27_ = _tmp26_;
 
1384
                                g_string_append (_tmp24_, _tmp27_);
 
1385
                                _g_free0 (_tmp27_);
 
1386
                                _g_object_unref0 (parser);
 
1387
                        }
 
1388
                }
 
1389
        }
 
1390
        _tmp28_ = uri;
 
1391
        g_string_append (_tmp28_, "&pagesize=10");
 
1392
        _tmp29_ = uri;
 
1393
        g_string_append (_tmp29_, "&grouping=1");
 
1394
        _tmp30_ = uri;
 
1395
        _tmp31_ = _tmp30_->str;
 
1396
        _tmp32_ = g_strdup (_tmp31_);
 
1397
        result = _tmp32_;
 
1398
        _g_string_free0 (uri);
 
1399
        _g_free0 (musicstore_base_uri);
 
1400
        _g_object_unref0 (store_parser);
 
1401
        return result;
 
1402
}
 
1403
 
 
1404
 
 
1405
static void unity_music_lens_music_store_collection_class_init (UnityMusicLensMusicStoreCollectionClass * klass) {
 
1406
        unity_music_lens_music_store_collection_parent_class = g_type_class_peek_parent (klass);
 
1407
        g_type_class_add_private (klass, sizeof (UnityMusicLensMusicStoreCollectionPrivate));
 
1408
        G_OBJECT_CLASS (klass)->finalize = unity_music_lens_music_store_collection_finalize;
 
1409
}
 
1410
 
 
1411
 
 
1412
static void unity_music_lens_music_store_collection_instance_init (UnityMusicLensMusicStoreCollection * self) {
 
1413
        self->priv = UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_GET_PRIVATE (self);
 
1414
}
 
1415
 
 
1416
 
 
1417
static void unity_music_lens_music_store_collection_finalize (GObject* obj) {
 
1418
        UnityMusicLensMusicStoreCollection * self;
 
1419
        self = UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION (obj);
 
1420
        _g_hash_table_unref0 (self->priv->preview_uri_map);
 
1421
        G_OBJECT_CLASS (unity_music_lens_music_store_collection_parent_class)->finalize (obj);
 
1422
}
 
1423
 
 
1424
 
 
1425
GType unity_music_lens_music_store_collection_get_type (void) {
 
1426
        static volatile gsize unity_music_lens_music_store_collection_type_id__volatile = 0;
 
1427
        if (g_once_init_enter (&unity_music_lens_music_store_collection_type_id__volatile)) {
 
1428
                static const GTypeInfo g_define_type_info = { sizeof (UnityMusicLensMusicStoreCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unity_music_lens_music_store_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnityMusicLensMusicStoreCollection), 0, (GInstanceInitFunc) unity_music_lens_music_store_collection_instance_init, NULL };
 
1429
                GType unity_music_lens_music_store_collection_type_id;
 
1430
                unity_music_lens_music_store_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "UnityMusicLensMusicStoreCollection", &g_define_type_info, 0);
 
1431
                g_once_init_leave (&unity_music_lens_music_store_collection_type_id__volatile, unity_music_lens_music_store_collection_type_id);
 
1432
        }
 
1433
        return unity_music_lens_music_store_collection_type_id__volatile;
 
1434
}
 
1435
 
 
1436
 
 
1437