1
/* musicstore-filter-parser-genre.c generated by valac 0.16.1, the Vala compiler
2
* generated from musicstore-filter-parser-genre.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>
31
#define UNITY_MUSIC_LENS_TYPE_FILTER_PARSER (unity_music_lens_filter_parser_get_type ())
32
#define UNITY_MUSIC_LENS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParser))
33
#define UNITY_MUSIC_LENS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
34
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
35
#define UNITY_MUSIC_LENS_IS_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER))
36
#define UNITY_MUSIC_LENS_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_FILTER_PARSER, UnityMusicLensFilterParserClass))
38
typedef struct _UnityMusicLensFilterParser UnityMusicLensFilterParser;
39
typedef struct _UnityMusicLensFilterParserClass UnityMusicLensFilterParserClass;
40
typedef struct _UnityMusicLensFilterParserPrivate UnityMusicLensFilterParserPrivate;
42
#define UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER (unity_music_lens_genre_filter_parser_get_type ())
43
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParser))
44
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParserClass))
45
#define UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER))
46
#define UNITY_MUSIC_LENS_IS_GENRE_FILTER_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER))
47
#define UNITY_MUSIC_LENS_GENRE_FILTER_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, UnityMusicLensGenreFilterParserClass))
49
typedef struct _UnityMusicLensGenreFilterParser UnityMusicLensGenreFilterParser;
50
typedef struct _UnityMusicLensGenreFilterParserClass UnityMusicLensGenreFilterParserClass;
51
typedef struct _UnityMusicLensGenreFilterParserPrivate UnityMusicLensGenreFilterParserPrivate;
53
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER (unity_music_lens_music_store_filter_parser_get_type ())
54
#define UNITY_MUSIC_LENS_MUSIC_STORE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER, UnityMusicLensMusicStoreFilterParser))
55
#define UNITY_MUSIC_LENS_IS_MUSIC_STORE_FILTER_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER))
56
#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))
58
typedef struct _UnityMusicLensMusicStoreFilterParser UnityMusicLensMusicStoreFilterParser;
59
typedef struct _UnityMusicLensMusicStoreFilterParserIface UnityMusicLensMusicStoreFilterParserIface;
61
#define UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER (unity_music_lens_music_store_genre_filter_parser_get_type ())
62
#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))
63
#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))
64
#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))
65
#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))
66
#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))
68
typedef struct _UnityMusicLensMusicStoreGenreFilterParser UnityMusicLensMusicStoreGenreFilterParser;
69
typedef struct _UnityMusicLensMusicStoreGenreFilterParserClass UnityMusicLensMusicStoreGenreFilterParserClass;
70
typedef struct _UnityMusicLensMusicStoreGenreFilterParserPrivate UnityMusicLensMusicStoreGenreFilterParserPrivate;
71
#define _g_free0(var) (var = (g_free (var), NULL))
72
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
74
#define UNITY_MUSIC_LENS_TYPE_GENRE (unity_music_lens_genre_get_type ())
75
#define UNITY_MUSIC_LENS_GENRE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_MUSIC_LENS_TYPE_GENRE, UnityMusicLensGenre))
76
#define UNITY_MUSIC_LENS_GENRE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_MUSIC_LENS_TYPE_GENRE, UnityMusicLensGenreClass))
77
#define UNITY_MUSIC_LENS_IS_GENRE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_MUSIC_LENS_TYPE_GENRE))
78
#define UNITY_MUSIC_LENS_IS_GENRE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_MUSIC_LENS_TYPE_GENRE))
79
#define UNITY_MUSIC_LENS_GENRE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_MUSIC_LENS_TYPE_GENRE, UnityMusicLensGenreClass))
81
typedef struct _UnityMusicLensGenre UnityMusicLensGenre;
82
typedef struct _UnityMusicLensGenreClass UnityMusicLensGenreClass;
83
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
84
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
86
struct _UnityMusicLensFilterParser {
87
GObject parent_instance;
88
UnityMusicLensFilterParserPrivate * priv;
91
struct _UnityMusicLensFilterParserClass {
92
GObjectClass parent_class;
93
gchar* (*parse) (UnityMusicLensFilterParser* self);
94
const gchar* (*get_id) (UnityMusicLensFilterParser* self);
97
struct _UnityMusicLensGenreFilterParser {
98
UnityMusicLensFilterParser parent_instance;
99
UnityMusicLensGenreFilterParserPrivate * priv;
102
struct _UnityMusicLensGenreFilterParserClass {
103
UnityMusicLensFilterParserClass parent_class;
106
struct _UnityMusicLensMusicStoreFilterParserIface {
107
GTypeInterface parent_iface;
110
struct _UnityMusicLensMusicStoreGenreFilterParser {
111
UnityMusicLensGenreFilterParser parent_instance;
112
UnityMusicLensMusicStoreGenreFilterParserPrivate * priv;
115
struct _UnityMusicLensMusicStoreGenreFilterParserClass {
116
UnityMusicLensGenreFilterParserClass parent_class;
120
static gpointer unity_music_lens_music_store_genre_filter_parser_parent_class = NULL;
121
static UnityMusicLensMusicStoreFilterParserIface* unity_music_lens_music_store_genre_filter_parser_unity_music_lens_music_store_filter_parser_parent_iface = NULL;
123
GType unity_music_lens_filter_parser_get_type (void) G_GNUC_CONST;
124
GType unity_music_lens_genre_filter_parser_get_type (void) G_GNUC_CONST;
125
GType unity_music_lens_music_store_filter_parser_get_type (void) G_GNUC_CONST;
126
GType unity_music_lens_music_store_genre_filter_parser_get_type (void) G_GNUC_CONST;
128
UNITY_MUSIC_LENS_MUSIC_STORE_GENRE_FILTER_PARSER_DUMMY_PROPERTY
130
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_new (UnityMusicLensGenreFilterParser* parser);
131
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_construct (GType object_type, UnityMusicLensGenreFilterParser* parser);
132
UnityFilter* unity_music_lens_filter_parser_get_filter (UnityMusicLensFilterParser* self);
133
UnityMusicLensGenreFilterParser* unity_music_lens_genre_filter_parser_new (UnityCheckOptionFilterCompact* filter);
134
UnityMusicLensGenreFilterParser* unity_music_lens_genre_filter_parser_construct (GType object_type, UnityCheckOptionFilterCompact* filter);
135
static gchar* unity_music_lens_music_store_genre_filter_parser_real_parse (UnityMusicLensFilterParser* base);
136
GList* unity_music_lens_genre_filter_parser_get_all_selected_genres (UnityMusicLensGenreFilterParser* self);
137
GType unity_music_lens_genre_get_type (void) G_GNUC_CONST;
138
UnityMusicLensGenre* unity_music_lens_genre_filter_parser_get_map (UnityMusicLensGenreFilterParser* self);
139
GeeCollection* unity_music_lens_genre_get_genre_synonyms (UnityMusicLensGenre* self, const gchar* genre_id);
140
static void _g_object_unref0_ (gpointer var);
141
static void _g_list_free__g_object_unref0_ (GList* self);
144
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_construct (GType object_type, UnityMusicLensGenreFilterParser* parser) {
145
UnityMusicLensMusicStoreGenreFilterParser * self = NULL;
146
UnityMusicLensGenreFilterParser* _tmp0_;
149
g_return_val_if_fail (parser != NULL, NULL);
151
_tmp1_ = unity_music_lens_filter_parser_get_filter ((UnityMusicLensFilterParser*) _tmp0_);
153
self = (UnityMusicLensMusicStoreGenreFilterParser*) unity_music_lens_genre_filter_parser_construct (object_type, UNITY_IS_CHECK_OPTION_FILTER_COMPACT (_tmp2_) ? ((UnityCheckOptionFilterCompact*) _tmp2_) : NULL);
158
UnityMusicLensMusicStoreGenreFilterParser* unity_music_lens_music_store_genre_filter_parser_new (UnityMusicLensGenreFilterParser* parser) {
159
return unity_music_lens_music_store_genre_filter_parser_construct (UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_GENRE_FILTER_PARSER, parser);
163
static gpointer _g_object_ref0 (gpointer self) {
164
return self ? g_object_ref (self) : NULL;
168
static void _g_object_unref0_ (gpointer var) {
169
(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
173
static void _g_list_free__g_object_unref0_ (GList* self) {
174
g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
179
static gchar* unity_music_lens_music_store_genre_filter_parser_real_parse (UnityMusicLensFilterParser* base) {
180
UnityMusicLensMusicStoreGenreFilterParser * self;
181
gchar* result = NULL;
184
GList* _tmp1_ = NULL;
189
const gchar* _tmp27_;
191
self = (UnityMusicLensMusicStoreGenreFilterParser*) base;
192
_tmp0_ = g_string_new ("&genres=");
194
_tmp1_ = unity_music_lens_genre_filter_parser_get_all_selected_genres ((UnityMusicLensGenreFilterParser*) self);
196
GList* genre_collection = NULL;
197
GList* genre_it = NULL;
198
genre_collection = _tmp1_;
199
for (genre_it = genre_collection; genre_it != NULL; genre_it = genre_it->next) {
200
UnityFilterOption* _tmp2_;
201
UnityFilterOption* genre = NULL;
202
_tmp2_ = _g_object_ref0 ((UnityFilterOption*) genre_it->data);
205
UnityFilterOption* _tmp3_;
210
UnityFilterOption* _tmp7_;
214
_tmp4_ = unity_filter_option_get_id (_tmp3_);
216
_tmp6_ = g_strdup (_tmp5_);
219
_tmp8_ = unity_filter_option_get_id (_tmp7_);
221
if (_tmp9_ == NULL) {
223
_g_object_unref0 (genre);
227
UnityMusicLensGenre* _tmp10_;
228
UnityMusicLensGenre* _tmp11_;
229
const gchar* _tmp12_;
230
GeeCollection* _tmp13_ = NULL;
231
GeeCollection* _tmp14_;
232
GeeIterator* _tmp15_ = NULL;
233
GeeIterator* _tmp16_;
234
GeeIterator* _alt_it;
235
_tmp10_ = unity_music_lens_genre_filter_parser_get_map ((UnityMusicLensGenreFilterParser*) self);
238
_tmp13_ = unity_music_lens_genre_get_genre_synonyms (_tmp11_, _tmp12_);
240
_tmp15_ = gee_iterable_iterator ((GeeIterable*) _tmp14_);
242
_g_object_unref0 (_tmp14_);
245
GeeIterator* _tmp17_;
246
gboolean _tmp18_ = FALSE;
247
GeeIterator* _tmp19_;
248
gpointer _tmp20_ = NULL;
251
const gchar* _tmp22_;
253
_tmp18_ = gee_iterator_next (_tmp17_);
258
_tmp20_ = gee_iterator_get (_tmp19_);
259
alt = (gchar*) _tmp20_;
262
g_string_append_printf (_tmp21_, "%s,", _tmp22_);
265
_g_object_unref0 (_alt_it);
268
_g_object_unref0 (genre);
271
__g_list_free__g_object_unref0_0 (genre_collection);
275
_tmp25_ = _tmp24_->len;
276
g_string_truncate (_tmp23_, (gsize) (_tmp25_ - 1));
278
_tmp27_ = _tmp26_->str;
279
_tmp28_ = g_strdup (_tmp27_);
281
_g_string_free0 (builder);
286
static void unity_music_lens_music_store_genre_filter_parser_class_init (UnityMusicLensMusicStoreGenreFilterParserClass * klass) {
287
unity_music_lens_music_store_genre_filter_parser_parent_class = g_type_class_peek_parent (klass);
288
UNITY_MUSIC_LENS_FILTER_PARSER_CLASS (klass)->parse = unity_music_lens_music_store_genre_filter_parser_real_parse;
292
static void unity_music_lens_music_store_genre_filter_parser_unity_music_lens_music_store_filter_parser_interface_init (UnityMusicLensMusicStoreFilterParserIface * iface) {
293
unity_music_lens_music_store_genre_filter_parser_unity_music_lens_music_store_filter_parser_parent_iface = g_type_interface_peek_parent (iface);
297
static void unity_music_lens_music_store_genre_filter_parser_instance_init (UnityMusicLensMusicStoreGenreFilterParser * self) {
301
GType unity_music_lens_music_store_genre_filter_parser_get_type (void) {
302
static volatile gsize unity_music_lens_music_store_genre_filter_parser_type_id__volatile = 0;
303
if (g_once_init_enter (&unity_music_lens_music_store_genre_filter_parser_type_id__volatile)) {
304
static const GTypeInfo g_define_type_info = { sizeof (UnityMusicLensMusicStoreGenreFilterParserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unity_music_lens_music_store_genre_filter_parser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnityMusicLensMusicStoreGenreFilterParser), 0, (GInstanceInitFunc) unity_music_lens_music_store_genre_filter_parser_instance_init, NULL };
305
static const GInterfaceInfo unity_music_lens_music_store_filter_parser_info = { (GInterfaceInitFunc) unity_music_lens_music_store_genre_filter_parser_unity_music_lens_music_store_filter_parser_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
306
GType unity_music_lens_music_store_genre_filter_parser_type_id;
307
unity_music_lens_music_store_genre_filter_parser_type_id = g_type_register_static (UNITY_MUSIC_LENS_TYPE_GENRE_FILTER_PARSER, "UnityMusicLensMusicStoreGenreFilterParser", &g_define_type_info, 0);
308
g_type_add_interface_static (unity_music_lens_music_store_genre_filter_parser_type_id, UNITY_MUSIC_LENS_TYPE_MUSIC_STORE_FILTER_PARSER, &unity_music_lens_music_store_filter_parser_info);
309
g_once_init_leave (&unity_music_lens_music_store_genre_filter_parser_type_id__volatile, unity_music_lens_music_store_genre_filter_parser_type_id);
311
return unity_music_lens_music_store_genre_filter_parser_type_id__volatile;