~ubuntu-branches/ubuntu/karmic/xmms2/karmic

« back to all changes in this revision

Viewing changes to src/plugins/mad/id3v1.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:
23
23
#include "xmms/xmms_log.h"
24
24
#include "id3v1.h"
25
25
 
26
 
static const gchar *id3_genres[] = {
 
26
static const gchar * const id3_genres[] = {
27
27
        "Blues", "Classic Rock", "Country", "Dance",
28
28
        "Disco", "Funk", "Grunge", "Hip-Hop",
29
29
        "Jazz", "Metal", "New Age", "Oldies",
125
125
        xmms_config_property_t *config;
126
126
        id3v1tag_t *tag = (id3v1tag_t *) buf;
127
127
        const char *encoding;
128
 
        gboolean tmp;
 
128
        const gchar *metakey;
129
129
 
130
130
        if (strncmp (tag->tag, "TAG", 3) != 0) {
131
131
                return FALSE;
137
137
        g_return_val_if_fail (config, FALSE);
138
138
        encoding = xmms_config_property_get_string (config);
139
139
 
140
 
        xmms_mad_id3v1_set (xform, XMMS_MEDIALIB_ENTRY_PROPERTY_ARTIST, tag->artist,
 
140
        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_ARTIST;
 
141
        xmms_mad_id3v1_set (xform, metakey, tag->artist,
141
142
                            sizeof (tag->artist), encoding);
142
 
        xmms_mad_id3v1_set (xform, XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM, tag->album,
 
143
 
 
144
        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM;
 
145
        xmms_mad_id3v1_set (xform, metakey, tag->album,
143
146
                            sizeof (tag->album), encoding);
144
 
        xmms_mad_id3v1_set (xform, XMMS_MEDIALIB_ENTRY_PROPERTY_TITLE, tag->title,
 
147
 
 
148
        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_TITLE;
 
149
        xmms_mad_id3v1_set (xform, metakey, tag->title,
145
150
                            sizeof (tag->title), encoding);
146
 
        xmms_mad_id3v1_set (xform, XMMS_MEDIALIB_ENTRY_PROPERTY_YEAR, tag->year,
 
151
 
 
152
        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_YEAR;
 
153
        xmms_mad_id3v1_set (xform, metakey, tag->year,
147
154
                            sizeof (tag->year), encoding);
148
155
 
149
 
 
150
 
        if (!xmms_xform_metadata_has_val (xform,
151
 
            XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE)) {
 
156
        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE;
 
157
        if (!xmms_xform_metadata_has_val (xform, metakey)) {
152
158
                if (tag->genre >= G_N_ELEMENTS (id3_genres)) {
153
 
                        xmms_xform_metadata_set_str (xform,
154
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE,
155
 
                                                     "Unknown");
 
159
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE;
 
160
                        xmms_xform_metadata_set_str (xform, metakey, "Unknown");
156
161
                } else {
157
 
                        xmms_xform_metadata_set_str (xform,
158
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE,
 
162
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE;
 
163
                        xmms_xform_metadata_set_str (xform, metakey,
159
164
                                                     id3_genres[tag->genre]);
160
165
                }
161
166
        }
166
171
                                    tag->u.v1_1.comment, sizeof (tag->u.v1_1.comment),
167
172
                                    encoding);
168
173
 
169
 
                tmp =
170
 
                        xmms_xform_metadata_has_val (xform,
171
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_TRACKNR);
172
 
                if (!tmp) {
173
 
                        xmms_xform_metadata_set_int (xform,
174
 
                                                     XMMS_MEDIALIB_ENTRY_PROPERTY_TRACKNR,
 
174
                metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_TRACKNR;
 
175
                if (!xmms_xform_metadata_has_val (xform, metakey)) {
 
176
                        metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_TRACKNR;
 
177
                        xmms_xform_metadata_set_int (xform, metakey,
175
178
                                                     tag->u.v1_1.track_number);
176
179
                }
177
180
        } else {
178
 
                xmms_mad_id3v1_set (xform, XMMS_MEDIALIB_ENTRY_PROPERTY_COMMENT,
179
 
                                    tag->u.v1_0.comment, sizeof (tag->u.v1_0.comment),
180
 
                                    encoding);
 
181
                metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_COMMENT;
 
182
                xmms_mad_id3v1_set (xform, metakey, tag->u.v1_0.comment,
 
183
                                    sizeof (tag->u.v1_0.comment), encoding);
181
184
        }
182
185
 
183
186
        return TRUE;