~ubuntu-branches/ubuntu/wily/xmms2/wily

« back to all changes in this revision

Viewing changes to src/plugins/lastfmeta/lastfmeta.c

  • Committer: Bazaar Package Importer
  • Author(s): Benjamin Drung
  • Date: 2008-05-29 10:14:25 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080529101425-ycw1nbd980uhvzfp
Tags: 0.4DrKosmos-4ubuntu1
* Merge from debian unstable (LP: #178477), remaining changes:
  - debian/control: Update Maintainer field
  - debian/control: add lpia to xmms2-plugin-alsa supported architectures
* This version reads AAC files (LP: #156359)

Show diffs side-by-side

added added

removed removed

Lines of Context:
100
100
        data = g_new (xmms_lastfmeta_data_t, 1);
101
101
        data->handles = 0;
102
102
 
103
 
        xmms_xform_private_data_set (xform, data);
104
103
 
105
104
        /* seek over the first 4 bytes (SYNC) */
106
105
        xmms_xform_read (xform, buf, 4, &err);
107
106
 
108
 
        session = xmms_xform_metadata_get_str (xform, "session");
 
107
        if (!xmms_xform_metadata_get_str (xform, "session", &session)) {
 
108
                xmms_log_error ("No session for lastfmeta to use!");
 
109
                g_free (data);
 
110
                return FALSE;
 
111
        }
 
112
 
 
113
        xmms_xform_private_data_set (xform, data);
 
114
 
109
115
        g_snprintf (data->url, sizeof (data->url), np_fmt, session);
110
116
 
111
117
        data->curl_easy = curl_easy_init ();
135
141
                                     "application/octet-stream",
136
142
                                     XMMS_STREAM_TYPE_END);
137
143
 
 
144
 
138
145
        return TRUE;
139
146
}
140
147
 
143
150
xmms_lastfmeta_destroy (xmms_xform_t *xform)
144
151
{
145
152
        xmms_lastfmeta_data_t *data;
 
153
        xmms_config_property_t *val;
146
154
 
147
155
        g_return_if_fail (xform);
148
156
 
153
161
        curl_easy_cleanup (data->curl_easy);
154
162
        curl_multi_cleanup (data->curl_multi);
155
163
 
 
164
        val = xmms_xform_config_lookup (xform, "recordtoprofile");
 
165
        xmms_config_property_callback_remove (val, xmms_lastfm_config_changed, xform);
 
166
 
156
167
        g_free (data);
157
168
}
158
169
 
212
223
 
213
224
        split = g_strsplit (ptr, "\n", 0);
214
225
        for (i = 0; split && split[i]; i++) {
 
226
                const gchar *metakey;
 
227
 
215
228
                if (g_str_has_prefix (split[i], "error=")) {
216
229
                        ret = 0;
217
230
                        break;
218
231
                } else if (g_str_has_prefix (split[i], "artist=")) {
219
 
                        xmms_xform_metadata_set_str (xform,
220
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_ARTIST,
221
 
                                                     split[i] + 7);
 
232
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_ARTIST,
 
233
                        xmms_xform_metadata_set_str (xform, metakey, split[i] + 7);
222
234
                } else if (g_str_has_prefix (split[i], "track=")) {
223
 
                        xmms_xform_metadata_set_str (xform,
224
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_TITLE,
225
 
                                                     split[i] + 6);
 
235
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_TITLE;
 
236
                        xmms_xform_metadata_set_str (xform, metakey, split[i] + 6);
226
237
                } else if (g_str_has_prefix (split[i], "album=")) {
227
 
                        xmms_xform_metadata_set_str (xform,
228
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM,
229
 
                                                     split[i] + 6);
 
238
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM;
 
239
                        xmms_xform_metadata_set_str (xform, metakey, split[i] + 6);
230
240
                } else if (g_str_has_prefix (split[i], "station=")) {
231
 
                        xmms_xform_metadata_set_str (xform,
232
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_CHANNEL,
233
 
                                                     split[i] + 8);
 
241
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_CHANNEL;
 
242
                        xmms_xform_metadata_set_str (xform, metakey, split[i] + 8);
234
243
                }
235
244
        }
236
245
        g_strfreev (split);
256
265
        data = xmms_xform_private_data_get (xform);
257
266
        g_return_val_if_fail (data, 0);
258
267
 
259
 
        session = xmms_xform_metadata_get_str (xform, "session");
 
268
        if (!xmms_xform_metadata_get_str (xform, "session", &session)) {
 
269
                xmms_log_error ("No session for lastfmeta to use!");
 
270
                return FALSE;
 
271
        }
260
272
 
261
273
        buffer = g_string_new (NULL);
262
274