1
/* musicstore-collection.c generated by valac 0.12.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_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
45
#define UNITY_MUSIC_LENS_TYPE_FILTER_PARSER (unity_music_lens_filter_parser_get_type ())
46
#define UNITY_MUSIC_LENS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParser))
47
#define UNITY_MUSIC_LENS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
48
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
49
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
50
#define UNITY_MUSIC_LENS_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
52
typedef struct _UnityMusicLensFilterParser UnityMusicLensFilterParser;
53
typedef struct _UnityMusicLensFilterParserClass UnityMusicLensFilterParserClass;
54
#define _g_free0(var) (var = (g_free (var), NULL))
56
#define UNITY_MUSIC_LENS_TYPE_TRACK (unity_music_lens_track_get_type ())
57
#define UNITY_MUSIC_LENS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrack))
58
#define UNITY_MUSIC_LENS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrackClass))
59
#define UNITY_MUSIC_LENS_IS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_TRACK))
60
#define UNITY_MUSIC_LENS_IS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_TRACK))
61
#define UNITY_MUSIC_LENS_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_TRACK, UnityMusicLensTrackClass))
63
typedef struct _UnityMusicLensTrack UnityMusicLensTrack;
64
typedef struct _UnityMusicLensTrackClass UnityMusicLensTrackClass;
66
#define UNITY_MUSIC_LENS_TYPE_ALBUM (unity_music_lens_album_get_type ())
67
#define UNITY_MUSIC_LENS_ALBUM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_ALBUM, UnityMusicLensAlbum))
68
#define UNITY_MUSIC_LENS_ALBUM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_ALBUM, UnityMusicLensAlbumClass))
69
#define UNITY_MUSIC_LENS_IS_ALBUM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_ALBUM))
70
#define UNITY_MUSIC_LENS_IS_ALBUM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_ALBUM))
71
#define UNITY_MUSIC_LENS_ALBUM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_ALBUM, UnityMusicLensAlbumClass))
73
typedef struct _UnityMusicLensAlbum UnityMusicLensAlbum;
74
typedef struct _UnityMusicLensAlbumClass UnityMusicLensAlbumClass;
75
#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
76
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
77
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
78
#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
79
typedef struct _UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData;
81
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER (unity_music_lens_music_store_filter_parser_get_type ())
82
#define UNITY_MUSIC_LENS_MUSIC_STORE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER, UnityMusicLensMusicStoreFilterParser))
83
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER))
84
#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))
86
typedef struct _UnityMusicLensMusicStoreFilterParser UnityMusicLensMusicStoreFilterParser;
87
typedef struct _UnityMusicLensMusicStoreFilterParserIface UnityMusicLensMusicStoreFilterParserIface;
89
#define UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER (unity_music_lens_genre_filter_parser_get_type ())
90
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParser))
91
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParserClass))
92
#define UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER))
93
#define UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER))
94
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParserClass))
96
typedef struct _UnityMusicLensGenreFilterParser UnityMusicLensGenreFilterParser;
97
typedef struct _UnityMusicLensGenreFilterParserClass UnityMusicLensGenreFilterParserClass;
99
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER (unity_music_lens_music_store_genre_filter_parser_get_type ())
100
#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))
101
#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))
102
#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))
103
#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))
104
#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))
106
typedef struct _UnityMusicLensMusicStoreGenreFilterParser UnityMusicLensMusicStoreGenreFilterParser;
107
typedef struct _UnityMusicLensMusicStoreGenreFilterParserClass UnityMusicLensMusicStoreGenreFilterParserClass;
109
#define UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER (unity_music_lens_decade_filter_parser_get_type ())
110
#define UNITY_MUSIC_LENS_DECADE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER, UnityMusicLensDecadeFilterParser))
111
#define UNITY_MUSIC_LENS_DECADE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER, UnityMusicLensDecadeFilterParserClass))
112
#define UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER))
113
#define UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER))
114
#define UNITY_MUSIC_LENS_DECADE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_DECADE_FILTER_PARSER, UnityMusicLensDecadeFilterParserClass))
116
typedef struct _UnityMusicLensDecadeFilterParser UnityMusicLensDecadeFilterParser;
117
typedef struct _UnityMusicLensDecadeFilterParserClass UnityMusicLensDecadeFilterParserClass;
119
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_DECADE_FILTER_PARSER (unity_music_lens_music_store_decade_filter_parser_get_type ())
120
#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))
121
#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))
122
#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))
123
#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))
124
#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))
126
typedef struct _UnityMusicLensMusicStoreDecadeFilterParser UnityMusicLensMusicStoreDecadeFilterParser;
127
typedef struct _UnityMusicLensMusicStoreDecadeFilterParserClass UnityMusicLensMusicStoreDecadeFilterParserClass;
128
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
130
struct _UnityMusicLensMusicStoreCollection {
131
GObject parent_instance;
132
UnityMusicLensMusicStoreCollectionPrivate * priv;
135
struct _UnityMusicLensMusicStoreCollectionClass {
136
GObjectClass parent_class;
139
struct _UnityMusicLensMusicStoreCollectionPrivate {
140
GCancellable* cancellable;
143
struct _UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData {
145
GObject* _source_object_;
147
GSimpleAsyncResult* _async_result;
148
UnityMusicLensMusicStoreCollection* self;
155
GFileInputStream* _tmp3_;
156
GFileInputStream* _tmp4_;
157
GFileInputStream* _tmp5_;
158
GDataInputStream* _tmp6_;
159
GDataInputStream* _tmp7_;
160
GDataInputStream* dis;
166
JsonObject* root_object;
174
JsonObject* result_obj;
175
const gchar* _tmp16_;
178
UnityMusicLensTrack* _tmp18_;
179
UnityMusicLensTrack* track;
180
const gchar* _tmp19_;
181
const gchar* _tmp20_;
182
const gchar* _tmp21_;
183
const gchar* _tmp22_;
184
const gchar* _tmp23_;
185
const gchar* _tmp24_;
186
const gchar* _tmp25_;
187
const gchar* _tmp26_;
188
const gchar* _tmp27_;
189
const gchar* _tmp28_;
190
UnityMusicLensAlbum* _tmp29_;
191
UnityMusicLensAlbum* album;
192
const gchar* _tmp30_;
193
const gchar* _tmp31_;
194
const gchar* _tmp32_;
195
const gchar* _tmp33_;
196
const gchar* _tmp34_;
197
const gchar* _tmp35_;
198
const gchar* _tmp36_;
199
const gchar* _tmp37_;
200
const gchar* _tmp38_;
208
GError * _inner_error_;
211
struct _UnityMusicLensMusicStoreFilterParserIface {
212
GTypeInterface parent_iface;
216
static gpointer unity_music_lens_music_store_collection_parent_class = NULL;
218
GType unity_music_lens_music_store_collection_get_type (void) G_GNUC_CONST;
219
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION, UnityMusicLensMusicStoreCollectionPrivate))
221
UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_DUMMY_PROPERTY
223
#define UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_MUSICSTORE_BASE_URI "http://musicsearch.ubuntu.com/v1/"
224
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_new (void);
225
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_construct (GType object_type);
226
GType unity_music_lens_filter_parser_get_type (void) G_GNUC_CONST;
227
void unity_music_lens_music_store_collection_search (UnityMusicLensMusicStoreCollection* self, UnityLensSearch* search, DeeModel* results_model, GList* filters, gint max_results, GError** error);
228
static gchar* unity_music_lens_music_store_collection_build_search_uri (UnityMusicLensMusicStoreCollection* self, const gchar* query, GList* filters);
229
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async (UnityMusicLensMusicStoreCollection* self, GFile* file, DeeModel* model, GAsyncReadyCallback _callback_, gpointer _user_data_);
230
static void unity_music_lens_music_store_collection_read_musicstore_search_result_finish (UnityMusicLensMusicStoreCollection* self, GAsyncResult* _res_);
231
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_data_free (gpointer _data);
232
static gboolean unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* data);
233
UnityMusicLensTrack* unity_music_lens_track_new (void);
234
UnityMusicLensTrack* unity_music_lens_track_construct (GType object_type);
235
GType unity_music_lens_track_get_type (void) G_GNUC_CONST;
236
void unity_music_lens_track_set_title (UnityMusicLensTrack* self, const gchar* value);
237
void unity_music_lens_track_set_artist (UnityMusicLensTrack* self, const gchar* value);
238
void unity_music_lens_track_set_uri (UnityMusicLensTrack* self, const gchar* value);
239
void unity_music_lens_track_set_artwork_path (UnityMusicLensTrack* self, const gchar* value);
240
void unity_music_lens_track_set_mime_type (UnityMusicLensTrack* self, const gchar* value);
241
const gchar* unity_music_lens_track_get_uri (UnityMusicLensTrack* self);
242
const gchar* unity_music_lens_track_get_artwork_path (UnityMusicLensTrack* self);
243
const gchar* unity_music_lens_track_get_mime_type (UnityMusicLensTrack* self);
244
const gchar* unity_music_lens_track_get_title (UnityMusicLensTrack* self);
245
const gchar* unity_music_lens_track_get_artist (UnityMusicLensTrack* self);
246
UnityMusicLensAlbum* unity_music_lens_album_new (void);
247
UnityMusicLensAlbum* unity_music_lens_album_construct (GType object_type);
248
GType unity_music_lens_album_get_type (void) G_GNUC_CONST;
249
void unity_music_lens_album_set_title (UnityMusicLensAlbum* self, const gchar* value);
250
void unity_music_lens_album_set_artist (UnityMusicLensAlbum* self, const gchar* value);
251
void unity_music_lens_album_set_uri (UnityMusicLensAlbum* self, const gchar* value);
252
void unity_music_lens_album_set_artwork_path (UnityMusicLensAlbum* self, const gchar* value);
253
const gchar* unity_music_lens_album_get_uri (UnityMusicLensAlbum* self);
254
const gchar* unity_music_lens_album_get_artwork_path (UnityMusicLensAlbum* self);
255
const gchar* unity_music_lens_album_get_title (UnityMusicLensAlbum* self);
256
const gchar* unity_music_lens_album_get_artist (UnityMusicLensAlbum* self);
257
GType unity_music_lens_music_store_filter_parser_get_type (void) G_GNUC_CONST;
258
GType unity_music_lens_genre_filter_parser_get_type (void) G_GNUC_CONST;
259
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_new (UnityMusicLensGenreFilterParser* parser);
260
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_construct (GType object_type, UnityMusicLensGenreFilterParser* parser);
261
GType unity_music_lens_music_store_genre_filter_parser_get_type (void) G_GNUC_CONST;
262
GType unity_music_lens_decade_filter_parser_get_type (void) G_GNUC_CONST;
263
UnityMusicLensMusicStoreDecadeFilterParser* unity_music_lens_music_store_decade_filter_parser_new (UnityMusicLensDecadeFilterParser* parser);
264
UnityMusicLensMusicStoreDecadeFilterParser* unity_music_lens_music_store_decade_filter_parser_construct (GType object_type, UnityMusicLensDecadeFilterParser* parser);
265
GType unity_music_lens_music_store_decade_filter_parser_get_type (void) G_GNUC_CONST;
266
gchar* unity_music_lens_filter_parser_parse (UnityMusicLensFilterParser* self);
267
static void unity_music_lens_music_store_collection_finalize (GObject* obj);
270
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_construct (GType object_type) {
271
UnityMusicLensMusicStoreCollection * self = NULL;
272
self = (UnityMusicLensMusicStoreCollection*) g_object_new (object_type, NULL);
277
UnityMusicLensMusicStoreCollection* unity_music_lens_music_store_collection_new (void) {
278
return unity_music_lens_music_store_collection_construct (UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_COLLECTION);
282
void unity_music_lens_music_store_collection_search (UnityMusicLensMusicStoreCollection* self, UnityLensSearch* search, DeeModel* results_model, GList* filters, gint max_results, GError** error) {
283
GCancellable* _tmp0_ = NULL;
284
const gchar* _tmp1_ = NULL;
285
gchar* _tmp2_ = NULL;
287
GFile* _tmp3_ = NULL;
289
g_return_if_fail (self != NULL);
290
g_return_if_fail (results_model != NULL);
291
if (self->priv->cancellable != NULL) {
292
g_cancellable_cancel (self->priv->cancellable);
294
_tmp0_ = g_cancellable_new ();
295
_g_object_unref0 (self->priv->cancellable);
296
self->priv->cancellable = _tmp0_;
297
_tmp1_ = unity_lens_search_get_search_string (search);
298
_tmp2_ = unity_music_lens_music_store_collection_build_search_uri (self, _tmp1_, filters);
304
_tmp3_ = g_file_new_for_uri (uri);
306
unity_music_lens_music_store_collection_read_musicstore_search_result_async (self, file, results_model, NULL, NULL);
307
_g_object_unref0 (file);
312
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async_data_free (gpointer _data) {
313
UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* data;
315
_g_object_unref0 (data->file);
316
_g_object_unref0 (data->model);
317
_g_object_unref0 (data->self);
318
g_slice_free (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData, data);
322
static gpointer _g_object_ref0 (gpointer self) {
323
return self ? g_object_ref (self) : NULL;
327
static void unity_music_lens_music_store_collection_read_musicstore_search_result_async (UnityMusicLensMusicStoreCollection* self, GFile* file, DeeModel* model, GAsyncReadyCallback _callback_, gpointer _user_data_) {
328
UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_;
329
_data_ = g_slice_new0 (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData);
330
_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);
331
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);
332
_data_->self = _g_object_ref0 (self);
333
_data_->file = _g_object_ref0 (file);
334
_data_->model = _g_object_ref0 (model);
335
unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (_data_);
339
static void unity_music_lens_music_store_collection_read_musicstore_search_result_finish (UnityMusicLensMusicStoreCollection* self, GAsyncResult* _res_) {
340
UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* _data_;
341
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
345
static gpointer _json_object_ref0 (gpointer self) {
346
return self ? json_object_ref (self) : NULL;
350
static gboolean unity_music_lens_music_store_collection_read_musicstore_search_result_async_co (UnityMusicLensMusicStoreCollectionReadMusicstoreSearchResultAsyncData* data) {
351
switch (data->_state_) {
355
g_assert_not_reached ();
359
data->_tmp0_ = g_timer_new ();
360
data->timer = data->_tmp0_;
362
data->_tmp1_ = g_file_get_uri (data->file);
363
data->_tmp2_ = data->_tmp1_;
364
g_debug ("musicstore-collection.vala:55: Searching %s", data->_tmp2_);
365
_g_free0 (data->_tmp2_);
367
data->_tmp3_ = g_file_read (data->file, data->self->priv->cancellable, &data->_inner_error_);
368
data->_tmp4_ = data->_tmp3_;
369
if (data->_inner_error_ != NULL) {
370
goto __catch0_g_error;
372
data->_tmp5_ = data->_tmp4_;
374
data->_tmp6_ = g_data_input_stream_new ((GInputStream*) data->_tmp5_);
375
data->_tmp7_ = data->_tmp6_;
376
_g_object_unref0 (data->_tmp5_);
377
data->dis = data->_tmp7_;
379
data->_tmp8_ = json_parser_new ();
380
data->parser = data->_tmp8_;
381
json_parser_load_from_stream (data->parser, (GInputStream*) data->dis, data->self->priv->cancellable, &data->_inner_error_);
382
if (data->_inner_error_ != NULL) {
383
_g_object_unref0 (data->parser);
384
_g_object_unref0 (data->dis);
385
goto __catch0_g_error;
388
data->_tmp9_ = json_parser_get_root (data->parser);
389
data->_tmp10_ = NULL;
390
data->_tmp10_ = json_node_get_object (data->_tmp9_);
391
data->_tmp11_ = _json_object_ref0 (data->_tmp10_);
392
data->root_object = data->_tmp11_;
393
data->_tmp12_ = NULL;
394
data->_tmp12_ = json_object_get_array_member (data->root_object, "results");
395
data->_tmp13_ = NULL;
396
data->_tmp13_ = json_array_get_elements (data->_tmp12_);
398
data->r_collection = data->_tmp13_;
399
for (data->r_it = data->r_collection; data->r_it != NULL; data->r_it = data->r_it->next) {
400
data->r = (JsonNode*) data->r_it->data;
402
data->_tmp14_ = NULL;
403
data->_tmp14_ = json_node_get_object (data->r);
404
data->_tmp15_ = _json_object_ref0 (data->_tmp14_);
405
data->result_obj = data->_tmp15_;
406
data->_tmp16_ = NULL;
407
data->_tmp16_ = json_object_get_string_member (data->result_obj, "type");
408
data->_tmp17_ = g_strdup (data->_tmp16_);
409
data->type = data->_tmp17_;
410
if (g_strcmp0 (data->type, "track") == 0) {
411
data->_tmp18_ = NULL;
412
data->_tmp18_ = unity_music_lens_track_new ();
413
data->track = data->_tmp18_;
414
data->_tmp19_ = NULL;
415
data->_tmp19_ = json_object_get_string_member (data->result_obj, "title");
416
unity_music_lens_track_set_title (data->track, data->_tmp19_);
417
data->_tmp20_ = NULL;
418
data->_tmp20_ = json_object_get_string_member (data->result_obj, "artist");
419
unity_music_lens_track_set_artist (data->track, data->_tmp20_);
420
data->_tmp21_ = NULL;
421
data->_tmp21_ = json_object_get_string_member (data->result_obj, "purchase_url");
422
unity_music_lens_track_set_uri (data->track, data->_tmp21_);
423
data->_tmp22_ = NULL;
424
data->_tmp22_ = json_object_get_string_member (data->result_obj, "image");
425
unity_music_lens_track_set_artwork_path (data->track, data->_tmp22_);
426
unity_music_lens_track_set_mime_type (data->track, "audio-x-generic");
427
data->_tmp23_ = NULL;
428
data->_tmp23_ = unity_music_lens_track_get_uri (data->track);
429
data->_tmp24_ = NULL;
430
data->_tmp24_ = unity_music_lens_track_get_artwork_path (data->track);
431
data->_tmp25_ = NULL;
432
data->_tmp25_ = unity_music_lens_track_get_mime_type (data->track);
433
data->_tmp26_ = NULL;
434
data->_tmp26_ = unity_music_lens_track_get_title (data->track);
435
data->_tmp27_ = NULL;
436
data->_tmp27_ = unity_music_lens_track_get_artist (data->track);
437
data->_tmp28_ = NULL;
438
data->_tmp28_ = unity_music_lens_track_get_uri (data->track);
439
dee_model_append (data->model, data->_tmp23_, data->_tmp24_, 2, data->_tmp25_, data->_tmp26_, data->_tmp27_, data->_tmp28_, NULL);
440
_g_object_unref0 (data->track);
442
if (g_strcmp0 (data->type, "album") == 0) {
443
data->_tmp29_ = NULL;
444
data->_tmp29_ = unity_music_lens_album_new ();
445
data->album = data->_tmp29_;
446
data->_tmp30_ = NULL;
447
data->_tmp30_ = json_object_get_string_member (data->result_obj, "title");
448
unity_music_lens_album_set_title (data->album, data->_tmp30_);
449
data->_tmp31_ = NULL;
450
data->_tmp31_ = json_object_get_string_member (data->result_obj, "artist");
451
unity_music_lens_album_set_artist (data->album, data->_tmp31_);
452
data->_tmp32_ = NULL;
453
data->_tmp32_ = json_object_get_string_member (data->result_obj, "purchase_url");
454
unity_music_lens_album_set_uri (data->album, data->_tmp32_);
455
data->_tmp33_ = NULL;
456
data->_tmp33_ = json_object_get_string_member (data->result_obj, "image");
457
unity_music_lens_album_set_artwork_path (data->album, data->_tmp33_);
458
data->_tmp34_ = NULL;
459
data->_tmp34_ = unity_music_lens_album_get_uri (data->album);
460
data->_tmp35_ = NULL;
461
data->_tmp35_ = unity_music_lens_album_get_artwork_path (data->album);
462
data->_tmp36_ = NULL;
463
data->_tmp36_ = unity_music_lens_album_get_title (data->album);
464
data->_tmp37_ = NULL;
465
data->_tmp37_ = unity_music_lens_album_get_artist (data->album);
466
data->_tmp38_ = NULL;
467
data->_tmp38_ = unity_music_lens_album_get_uri (data->album);
468
dee_model_append (data->model, data->_tmp34_, data->_tmp35_, 2, "audio-x-generic", data->_tmp36_, data->_tmp37_, data->_tmp38_, NULL);
469
_g_object_unref0 (data->album);
472
_g_free0 (data->type);
473
_json_object_unref0 (data->result_obj);
476
_g_list_free0 (data->r_collection);
478
data->_tmp39_ = NULL;
479
data->_tmp39_ = g_file_get_uri (data->file);
480
data->_tmp40_ = data->_tmp39_;
481
data->_tmp41_ = g_timer_elapsed (data->timer, NULL);
482
g_debug ("musicstore-collection.vala:89: Retrieved '%s' in %fms", data->_tmp40_, data->_tmp41_ * 1000);
483
_g_free0 (data->_tmp40_);
484
data->_tmp42_ = dee_model_get_n_rows (data->model);
485
g_debug ("musicstore-collection.vala:90: model has %u rows after search", data->_tmp42_);
486
_json_object_unref0 (data->root_object);
487
_g_object_unref0 (data->parser);
488
_g_object_unref0 (data->dis);
492
data->e = data->_inner_error_;
493
data->_inner_error_ = NULL;
494
data->_tmp43_ = NULL;
495
data->_tmp43_ = g_file_get_uri (data->file);
496
data->_tmp44_ = data->_tmp43_;
497
g_warning ("musicstore-collection.vala:93: Error reading URL '%s': %s", data->_tmp44_, data->e->message);
498
_g_free0 (data->_tmp44_);
499
_g_error_free0 (data->e);
502
if (data->_inner_error_ != NULL) {
503
_g_timer_destroy0 (data->timer);
504
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);
505
g_clear_error (&data->_inner_error_);
508
_g_object_unref0 (data->self->priv->cancellable);
509
data->self->priv->cancellable = NULL;
510
_g_timer_destroy0 (data->timer);
511
if (data->_state_ == 0) {
512
g_simple_async_result_complete_in_idle (data->_async_result);
514
g_simple_async_result_complete (data->_async_result);
516
g_object_unref (data->_async_result);
521
static gchar* string_strip (const gchar* self) {
522
gchar* result = NULL;
523
gchar* _tmp0_ = NULL;
525
g_return_val_if_fail (self != NULL, NULL);
526
_tmp0_ = g_strdup (self);
528
g_strstrip (_result_);
534
static gchar* unity_music_lens_music_store_collection_build_search_uri (UnityMusicLensMusicStoreCollection* self, const gchar* query, GList* filters) {
535
gchar* result = NULL;
536
gchar* _tmp0_ = NULL;
539
UnityMusicLensMusicStoreFilterParser* store_parser = NULL;
541
gchar* musicstore_base_uri;
542
const gchar* _tmp4_ = NULL;
543
GString* _tmp7_ = NULL;
545
gchar* _tmp8_ = NULL;
548
g_return_val_if_fail (self != NULL, NULL);
549
g_return_val_if_fail (query != NULL, NULL);
550
_tmp0_ = string_strip (query);
552
_tmp2_ = g_strcmp0 (_tmp1_, "") == 0;
558
_tmp3_ = g_strdup (UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_MUSICSTORE_BASE_URI);
559
musicstore_base_uri = _tmp3_;
560
_tmp4_ = g_getenv ("MUSICSTORE_URI");
561
if (_tmp4_ != NULL) {
562
const gchar* _tmp5_ = NULL;
564
_tmp5_ = g_getenv ("MUSICSTORE_URI");
565
_tmp6_ = g_strdup (_tmp5_);
566
_g_free0 (musicstore_base_uri);
567
musicstore_base_uri = _tmp6_;
569
g_debug ("musicstore-collection.vala:108: Using base URI of '%s'", musicstore_base_uri);
570
_tmp7_ = g_string_new (musicstore_base_uri);
572
g_string_append (uri, "search?q=");
573
_tmp8_ = g_uri_escape_string (query, "", FALSE);
575
g_string_append (uri, _tmp9_);
578
GList* parser_collection;
580
parser_collection = filters;
581
for (parser_it = parser_collection; parser_it != NULL; parser_it = parser_it->next) {
582
UnityMusicLensFilterParser* _tmp10_;
583
UnityMusicLensFilterParser* parser;
584
_tmp10_ = _g_object_ref0 ((UnityMusicLensFilterParser*) parser_it->data);
587
gchar* _tmp15_ = NULL;
589
if (UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER (parser)) {
590
UnityMusicLensFilterParser* _tmp11_;
591
UnityMusicLensMusicStoreGenreFilterParser* _tmp12_ = NULL;
593
_tmp12_ = unity_music_lens_music_store_genre_filter_parser_new (UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER (_tmp11_) ? ((UnityMusicLensGenreFilterParser*) _tmp11_) : NULL);
594
_g_object_unref0 (store_parser);
595
store_parser = (UnityMusicLensMusicStoreFilterParser*) _tmp12_;
597
if (UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER (parser)) {
598
UnityMusicLensFilterParser* _tmp13_;
599
UnityMusicLensMusicStoreDecadeFilterParser* _tmp14_ = NULL;
601
_tmp14_ = unity_music_lens_music_store_decade_filter_parser_new (UNITY_MUSIC_LENS_IS_DECADE_FILTER_PARSER (_tmp13_) ? ((UnityMusicLensDecadeFilterParser*) _tmp13_) : NULL);
602
_g_object_unref0 (store_parser);
603
store_parser = (UnityMusicLensMusicStoreFilterParser*) _tmp14_;
605
_g_object_unref0 (parser);
609
_tmp15_ = unity_music_lens_filter_parser_parse ((UnityMusicLensFilterParser*) store_parser);
611
g_string_append (uri, _tmp16_);
613
_g_object_unref0 (parser);
617
g_string_append (uri, "&pagesize=10");
618
_tmp17_ = g_strdup (uri->str);
620
_g_string_free0 (uri);
621
_g_free0 (musicstore_base_uri);
622
_g_object_unref0 (store_parser);
627
static void unity_music_lens_music_store_collection_class_init (UnityMusicLensMusicStoreCollectionClass * klass) {
628
unity_music_lens_music_store_collection_parent_class = g_type_class_peek_parent (klass);
629
g_type_class_add_private (klass, sizeof (UnityMusicLensMusicStoreCollectionPrivate));
630
G_OBJECT_CLASS (klass)->finalize = unity_music_lens_music_store_collection_finalize;
634
static void unity_music_lens_music_store_collection_instance_init (UnityMusicLensMusicStoreCollection * self) {
635
self->priv = UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION_GET_PRIVATE (self);
639
static void unity_music_lens_music_store_collection_finalize (GObject* obj) {
640
UnityMusicLensMusicStoreCollection * self;
641
self = UNITY_MUSIC_LENS_MUSIC_STORE_COLLECTION (obj);
642
_g_object_unref0 (self->priv->cancellable);
643
G_OBJECT_CLASS (unity_music_lens_music_store_collection_parent_class)->finalize (obj);
647
GType unity_music_lens_music_store_collection_get_type (void) {
648
static volatile gsize unity_music_lens_music_store_collection_type_id__volatile = 0;
649
if (g_once_init_enter (&unity_music_lens_music_store_collection_type_id__volatile)) {
650
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 };
651
GType unity_music_lens_music_store_collection_type_id;
652
unity_music_lens_music_store_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "UnityMusicLensMusicStoreCollection", &g_define_type_info, 0);
653
g_once_init_leave (&unity_music_lens_music_store_collection_type_id__volatile, unity_music_lens_music_store_collection_type_id);
655
return unity_music_lens_music_store_collection_type_id__volatile;