1
/* musicstore-collection.c generated by valac 0.16.1, the Vala compiler
2
* generated from musicstore-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>
30
#include <json-glib/json-glib.h>
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))
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)))
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))
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;
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;
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))
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;
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))
91
typedef struct _UnityMusicLensMusicStoreFilterParser UnityMusicLensMusicStoreFilterParser;
92
typedef struct _UnityMusicLensMusicStoreFilterParserIface UnityMusicLensMusicStoreFilterParserIface;
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))
101
typedef struct _UnityMusicLensGenreFilterParser UnityMusicLensGenreFilterParser;
102
typedef struct _UnityMusicLensGenreFilterParserClass UnityMusicLensGenreFilterParserClass;
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))
111
typedef struct _UnityMusicLensMusicStoreGenreFilterParser UnityMusicLensMusicStoreGenreFilterParser;
112
typedef struct _UnityMusicLensMusicStoreGenreFilterParserClass UnityMusicLensMusicStoreGenreFilterParserClass;
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))
121
typedef struct _UnityMusicLensDecadeFilterParser UnityMusicLensDecadeFilterParser;
122
typedef struct _UnityMusicLensDecadeFilterParserClass UnityMusicLensDecadeFilterParserClass;
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))
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)))
135
struct _UnityMusicLensMusicStoreCollection {
136
GObject parent_instance;
137
UnityMusicLensMusicStoreCollectionPrivate * priv;
140
struct _UnityMusicLensMusicStoreCollectionClass {
141
GObjectClass parent_class;
144
struct _UnityMusicLensMusicStoreCollectionPrivate {
145
GHashTable* preview_uri_map;
148
struct _UnityMusicLensMusicStoreCollectionSearchData {
150
GObject* _source_object_;
152
GSimpleAsyncResult* _async_result;
153
UnityMusicLensMusicStoreCollection* self;
154
UnityLensSearch* search;
155
UnitySearchType search_type;
158
GCancellable* cancellable;
159
UnityLensSearch* _tmp0_;
167
UnityLensSearch* _tmp7_;
168
DeeSerializableModel* _tmp8_;
169
DeeSerializableModel* _tmp9_;
170
DeeSerializableModel* _tmp10_;
171
DeeSerializableModel* results_model;
172
const gchar* _tmp11_;
176
DeeSerializableModel* _tmp14_;
177
GCancellable* _tmp15_;
180
struct _UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData {
182
GObject* _source_object_;
184
GSimpleAsyncResult* _async_result;
185
UnityMusicLensMusicStoreCollection* self;
188
GCancellable* cancellable;
195
GCancellable* _tmp5_;
196
GFileInputStream* _tmp6_;
197
GFileInputStream* stream;
198
GFileInputStream* _tmp7_;
199
GDataInputStream* _tmp8_;
200
GDataInputStream* dis;
204
GDataInputStream* _tmp11_;
205
GCancellable* _tmp12_;
210
JsonObject* root_object;
225
const gchar* details_uri;
226
const gchar* artwork_path;
227
const gchar* mimetype;
230
const gchar* dnd_uri;
232
GList* album_node_collection;
233
GList* album_node_it;
234
JsonNode* album_node;
238
JsonObject* album_obj;
240
const gchar* _tmp32_;
242
const gchar* _tmp34_;
244
const gchar* _tmp36_;
246
const gchar* _tmp38_;
248
const gchar* _tmp40_;
249
const gchar* _tmp41_;
251
const gchar* _tmp43_;
252
const gchar* _tmp44_;
253
const gchar* _tmp45_;
254
const gchar* _tmp46_;
255
const gchar* _tmp47_;
256
const gchar* _tmp48_;
258
const gchar* _tmp50_;
260
const gchar* _tmp52_;
263
GList* track_node_collection;
264
GList* track_node_it;
265
JsonNode* track_node;
269
JsonObject* track_obj;
271
const gchar* _tmp59_;
273
const gchar* _tmp61_;
275
const gchar* _tmp63_;
277
const gchar* _tmp65_;
279
const gchar* _tmp67_;
280
const gchar* _tmp68_;
282
const gchar* _tmp70_;
283
const gchar* _tmp71_;
284
const gchar* _tmp72_;
285
const gchar* _tmp73_;
286
const gchar* _tmp74_;
287
const gchar* _tmp75_;
289
const gchar* _tmp77_;
291
const gchar* _tmp79_;
305
const gchar* _tmp92_;
306
GError * _inner_error_;
309
struct _UnityMusicLensMusicStoreFilterParserIface {
310
GTypeInterface parent_iface;
314
static gpointer unity_music_lens_music_store_collection_parent_class = NULL;
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))
319
UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_DUMMY_PROPERTY
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);
372
static void _g_free0_ (gpointer var) {
373
var = (g_free (var), NULL);
377
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_construct (GType object_type) {
378
UnityMusicLensMusicStoreCollection * self = NULL;
382
self = (UnityMusicLensMusicStoreCollection*) g_object_new (object_type, NULL);
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_;
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);
397
static void _g_object_unref0_ (gpointer var) {
398
(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
402
static void _g_list_free__g_object_unref0_ (GList* self) {
403
g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
408
static void unity_music_lens_music_store_collection_search_data_free (gpointer _data) {
409
UnityMusicLensMusicStoreCollectionSearchData* _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_);
419
static gpointer _g_object_ref0 (gpointer self) {
420
return self ? g_object_ref (self) : NULL;
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_;
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_;
440
_tmp2_ = _g_object_ref0 (_tmp1_);
441
_data_->search = _tmp2_;
442
_tmp3_ = search_type;
443
_data_->search_type = _tmp3_;
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_);
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)) {
461
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
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_);
474
static gboolean unity_music_lens_music_store_collection_search_co (UnityMusicLensMusicStoreCollectionSearchData* _data_) {
475
switch (_data_->_state_) {
481
g_assert_not_reached ();
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);
498
g_simple_async_result_complete (_data_->_async_result);
500
g_object_unref (_data_->_async_result);
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;
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_);
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);
529
g_simple_async_result_complete (_data_->_async_result);
531
g_object_unref (_data_->_async_result);
536
static glong string_strnlen (gchar* str, glong maxlen) {
540
gchar* _tmp2_ = NULL;
545
_tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
548
if (_tmp3_ == NULL) {
558
result = (glong) (_tmp5_ - _tmp6_);
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;
577
gchar* _tmp23_ = NULL;
578
g_return_val_if_fail (self != NULL, NULL);
580
if (_tmp1_ >= ((glong) 0)) {
583
_tmp0_ = _tmp2_ >= ((glong) 0);
594
_tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_);
595
string_length = _tmp6_;
599
_tmp7_ = strlen (self);
601
string_length = (glong) _tmp8_;
604
if (_tmp9_ < ((glong) 0)) {
608
_tmp10_ = string_length;
610
offset = _tmp10_ + _tmp11_;
612
g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL);
617
_tmp14_ = string_length;
618
g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL);
621
if (_tmp15_ < ((glong) 0)) {
624
_tmp16_ = string_length;
626
len = _tmp16_ - _tmp17_;
630
_tmp20_ = string_length;
631
g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL);
634
_tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_);
640
static JsonObject* _vala_JsonObject_copy (JsonObject* self) {
641
return g_boxed_copy (json_object_get_type (), self);
645
static gpointer __vala_JsonObject_copy0 (gpointer self) {
646
return self ? _vala_JsonObject_copy (self) : NULL;
650
static void _g_slist_free__g_object_unref0_ (GSList* self) {
651
g_slist_foreach (self, (GFunc) _g_object_unref0_, NULL);
656
static JsonArray* _vala_JsonArray_copy (JsonArray* self) {
657
return g_boxed_copy (json_array_get_type (), self);
661
static gpointer __vala_JsonArray_copy0 (gpointer self) {
662
return self ? _vala_JsonArray_copy (self) : NULL;
666
static void _vala_JsonObject_free (JsonObject* self) {
667
g_boxed_free (json_object_get_type (), self);
671
static void _vala_JsonArray_free (JsonArray* self) {
672
g_boxed_free (json_array_get_type (), self);
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;
680
gchar* _tmp1_ = NULL;
684
gboolean _tmp4_ = FALSE;
685
GError * _inner_error_ = NULL;
686
g_return_if_fail (self != NULL);
687
g_return_if_fail (uri != NULL);
689
_tmp1_ = string_substring (_tmp0_, (glong) 7, (glong) (-1));
691
_tmp2_ = self->priv->preview_uri_map;
693
_tmp4_ = g_hash_table_contains (_tmp2_, _tmp3_);
697
gconstpointer _tmp7_ = NULL;
701
const gchar* _tmp10_;
702
GFile* _tmp11_ = NULL;
706
_tmp5_ = self->priv->preview_uri_map;
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_);
716
_tmp12_ = json_parser_new ();
720
GFileInputStream* _tmp14_ = NULL;
721
GFileInputStream* _tmp15_;
723
GFileInputStream* _tmp17_;
724
gboolean _tmp18_ = FALSE;
728
_tmp14_ = g_file_read (_tmp13_, NULL, &_inner_error_);
730
if (_inner_error_ != NULL) {
731
goto __catch0_g_error;
735
_tmp18_ = json_parser_load_from_stream (_tmp16_, (GInputStream*) _tmp17_, NULL, &_inner_error_);
737
_g_object_unref0 (_tmp17_);
739
if (_inner_error_ != NULL) {
740
goto __catch0_g_error;
744
JsonNode* _tmp22_ = NULL;
745
JsonObject* _tmp23_ = NULL;
747
JsonObject* root_obj;
748
UnityMusicLensAlbum* _tmp25_;
749
UnityMusicLensAlbum* _tmp26_;
751
const gchar* _tmp28_ = NULL;
752
UnityMusicLensAlbum* _tmp29_;
754
const gchar* _tmp31_ = NULL;
755
UnityMusicLensAlbum* _tmp32_;
757
const gchar* _tmp34_ = NULL;
758
UnityMusicLensAlbum* _tmp35_;
759
const gchar* _tmp36_;
761
gboolean _tmp38_ = FALSE;
763
_tmp22_ = json_parser_get_root (_tmp21_);
764
_tmp23_ = json_node_get_object (_tmp22_);
765
_tmp24_ = __vala_JsonObject_copy0 (_tmp23_);
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);
772
_tmp26_ = _vala_album;
774
_tmp28_ = json_object_get_string_member (_tmp27_, "title");
775
unity_music_lens_album_set_title (_tmp26_, _tmp28_);
776
_tmp29_ = _vala_album;
778
_tmp31_ = json_object_get_string_member (_tmp30_, "image");
779
unity_music_lens_album_set_artwork_path (_tmp29_, _tmp31_);
780
_tmp32_ = _vala_album;
782
_tmp34_ = json_object_get_string_member (_tmp33_, "artist");
783
unity_music_lens_album_set_artist (_tmp32_, _tmp34_);
784
_tmp35_ = _vala_album;
786
unity_music_lens_album_set_uri (_tmp35_, _tmp36_);
788
_tmp38_ = json_object_has_member (_tmp37_, "tracks");
791
JsonArray* _tmp40_ = NULL;
793
JsonArray* tracks_node;
794
const gchar* _tmp42_;
795
const gchar* _tmp43_;
797
GList* _tmp45_ = NULL;
799
_tmp40_ = json_object_get_array_member (_tmp39_, "tracks");
800
_tmp41_ = __vala_JsonArray_copy0 (_tmp40_);
801
tracks_node = _tmp41_;
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_);
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;
816
JsonObject* _tmp47_ = NULL;
818
JsonObject* track_obj;
819
UnityMusicLensTrack* _tmp49_;
820
UnityMusicLensTrack* track;
821
UnityMusicLensTrack* _tmp50_;
823
const gchar* _tmp52_ = NULL;
824
UnityMusicLensTrack* _tmp53_;
826
const gchar* _tmp55_ = NULL;
827
UnityMusicLensTrack* _tmp56_;
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_);
837
_tmp49_ = unity_music_lens_track_new ();
841
_tmp52_ = json_object_get_string_member (_tmp51_, "preview");
842
unity_music_lens_track_set_uri (_tmp50_, _tmp52_);
845
_tmp55_ = json_object_get_string_member (_tmp54_, "title");
846
unity_music_lens_track_set_title (_tmp53_, _tmp55_);
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_);
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);
859
_g_list_free0 (track_node_collection);
861
__vala_JsonArray_free0 (tracks_node);
863
const gchar* _tmp62_;
864
const gchar* _tmp63_;
865
UnityMusicLensTrack* _tmp64_;
866
UnityMusicLensTrack* track;
867
UnityMusicLensTrack* _tmp65_;
869
const gchar* _tmp67_ = NULL;
870
UnityMusicLensTrack* _tmp68_;
872
const gchar* _tmp70_ = NULL;
873
UnityMusicLensTrack* _tmp71_;
875
JsonNode* _tmp73_ = NULL;
876
gint64 _tmp74_ = 0LL;
877
UnityMusicLensTrack* _tmp75_;
878
UnityMusicLensTrack* _tmp76_;
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 ();
886
_tmp67_ = json_object_get_string_member (_tmp66_, "preview");
887
unity_music_lens_track_set_uri (_tmp65_, _tmp67_);
890
_tmp70_ = json_object_get_string_member (_tmp69_, "title");
891
unity_music_lens_track_set_title (_tmp68_, _tmp70_);
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_);
898
_tmp76_ = _g_object_ref0 (_tmp75_);
899
_vala_tracks = g_slist_append (_vala_tracks, _tmp76_);
900
_g_object_unref0 (track);
902
__vala_JsonObject_free0 (root_obj);
904
const gchar* _tmp77_;
905
_tmp77_ = details_uri;
906
g_warning ("musicstore-collection.vala:100: Can't parse json data for '%s'", _tmp77_);
913
const gchar* _tmp78_;
915
const gchar* _tmp80_;
917
_inner_error_ = NULL;
918
_tmp78_ = details_uri;
920
_tmp80_ = _tmp79_->message;
921
g_warning ("musicstore-collection.vala:105: Error fetching details for '%s': %s", _tmp78_, _tmp80_);
925
if (_inner_error_ != NULL) {
926
_g_object_unref0 (parser);
927
_g_object_unref0 (file);
928
_g_free0 (details_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_);
934
_g_object_unref0 (parser);
935
_g_object_unref0 (file);
936
_g_free0 (details_uri);
938
const gchar* _tmp81_;
940
g_warning ("musicstore-collection.vala:110: No details uri for '%s'", _tmp81_);
944
*album = _vala_album;
946
_g_object_unref0 (_vala_album);
949
*tracks = _vala_tracks;
951
__g_slist_free__g_object_unref0_0 (_vala_tracks);
956
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_data_free (gpointer _data) {
957
UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _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_);
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_;
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_;
982
_tmp2_ = _g_object_ref0 (_tmp1_);
983
_data_->file = _tmp2_;
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_);
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_));
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_);
1009
static gboolean unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_) {
1010
switch (_data_->_state_) {
1018
g_assert_not_reached ();
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_);
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_);
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;
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_);
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;
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" \
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);
1084
g_simple_async_result_complete (_data_->_async_result);
1086
g_object_unref (_data_->_async_result);
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;
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;
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);
1159
_data_->_tmp54_ = _data_->tracks;
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;
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);
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);
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);
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_);
1255
_g_timer_destroy0 (_data_->timer);
1256
if (_data_->_state_ == 0) {
1257
g_simple_async_result_complete_in_idle (_data_->_async_result);
1259
g_simple_async_result_complete (_data_->_async_result);
1261
g_object_unref (_data_->_async_result);
1266
static gchar* string_strip (const gchar* self) {
1267
gchar* result = NULL;
1268
gchar* _tmp0_ = NULL;
1270
const gchar* _tmp1_;
1271
g_return_val_if_fail (self != NULL, NULL);
1272
_tmp0_ = g_strdup (self);
1275
g_strstrip (_tmp1_);
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;
1287
UnityMusicLensMusicStoreFilterParser* store_parser = NULL;
1289
gchar* musicstore_base_uri;
1290
const gchar* _tmp5_ = NULL;
1291
const gchar* _tmp8_;
1292
const gchar* _tmp9_;
1297
const gchar* _tmp13_;
1298
gchar* _tmp14_ = NULL;
1304
const gchar* _tmp31_;
1306
g_return_val_if_fail (self != NULL, NULL);
1307
g_return_val_if_fail (query != NULL, NULL);
1309
_tmp1_ = string_strip (_tmp0_);
1311
_tmp3_ = g_strcmp0 (_tmp2_, "") == 0;
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;
1323
_tmp6_ = g_getenv ("MUSICSTORE_URI");
1324
_tmp7_ = g_strdup (_tmp6_);
1325
_g_free0 (musicstore_base_uri);
1326
musicstore_base_uri = _tmp7_;
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_);
1334
g_string_append (_tmp11_, "search?q=");
1337
_tmp14_ = g_uri_escape_string (_tmp13_, "", FALSE);
1339
g_string_append (_tmp12_, _tmp15_);
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);
1352
UnityMusicLensFilterParser* _tmp18_;
1354
UnityMusicLensMusicStoreFilterParser* _tmp25_;
1355
gchar* _tmp26_ = NULL;
1358
if (UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER (_tmp18_)) {
1359
UnityMusicLensFilterParser* _tmp19_;
1360
UnityMusicLensMusicStoreGenreFilterParser* _tmp20_;
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_;
1366
UnityMusicLensFilterParser* _tmp21_;
1368
if (UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER (_tmp21_)) {
1369
UnityMusicLensFilterParser* _tmp22_;
1370
UnityMusicLensMusicStoreDecadeFilterParser* _tmp23_;
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_;
1376
_g_object_unref0 (parser);
1381
_tmp25_ = store_parser;
1382
_tmp26_ = unity_music_lens_filter_parser_parse ((UnityMusicLensFilterParser*) _tmp25_);
1384
g_string_append (_tmp24_, _tmp27_);
1386
_g_object_unref0 (parser);
1391
g_string_append (_tmp28_, "&pagesize=10");
1393
g_string_append (_tmp29_, "&grouping=1");
1395
_tmp31_ = _tmp30_->str;
1396
_tmp32_ = g_strdup (_tmp31_);
1398
_g_string_free0 (uri);
1399
_g_free0 (musicstore_base_uri);
1400
_g_object_unref0 (store_parser);
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;
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);
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);
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);
1433
return unity_music_lens_music_store_collection_type_id__volatile;