[tracker] tracker-extract-mp3: Extract nmm:albumTrackCount if available
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] tracker-extract-mp3: Extract nmm:albumTrackCount if available
- Date: Tue, 17 Nov 2009 14:37:24 +0000 (UTC)
commit 2f7c1d403e6e0210f2de1e5e1649663808223e73
Author: Jürg Billeter <j bitron ch>
Date: Tue Nov 17 15:35:42 2009 +0100
tracker-extract-mp3: Extract nmm:albumTrackCount if available
src/tracker-extract/tracker-extract-mp3.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-mp3.c b/src/tracker-extract/tracker-extract-mp3.c
index f626635..143d720 100644
--- a/src/tracker-extract/tracker-extract-mp3.c
+++ b/src/tracker-extract/tracker-extract-mp3.c
@@ -100,6 +100,7 @@ typedef struct {
gchar *title2;
gchar *title3;
gint track_number;
+ gint track_count;
} id3v2tag;
typedef enum {
@@ -160,6 +161,7 @@ typedef struct {
gchar *comment;
gint track_number;
+ gint track_count;
unsigned char *albumart_data;
size_t albumart_size;
@@ -1266,6 +1268,9 @@ get_id3v24_tags (const gchar *data,
if (parts[0]) {
tag->track_number = atoi (parts[0]);
}
+ if (parts[1]) {
+ tag->track_count = atoi (parts[1]);
+ }
g_strfreev (parts);
g_free (word);
@@ -1462,6 +1467,9 @@ get_id3v23_tags (const gchar *data,
if (parts[0]) {
tag->track_number = atoi (parts[0]);
}
+ if (parts[1]) {
+ tag->track_count = atoi (parts[1]);
+ }
g_strfreev (parts);
g_free (word);
@@ -1967,6 +1975,14 @@ extract_mp3 (const gchar *uri,
md.track_number = md.id3v1.track_number;
}
+ if (md.id3v24.track_count != 0) {
+ md.track_count = md.id3v24.track_count;
+ } else if (md.id3v23.track_count != 0) {
+ md.track_count = md.id3v23.track_count;
+ } else if (md.id3v22.track_count != 0) {
+ md.track_count = md.id3v22.track_count;
+ }
+
if (md.performer) {
md.performer_uri = tracker_uri_printf_escaped ("urn:artist:%s", md.performer);
tracker_sparql_builder_subject_iri (metadata, md.performer_uri);
@@ -1984,6 +2000,12 @@ extract_mp3 (const gchar *uri,
tracker_sparql_builder_object (metadata, "nmm:MusicAlbum");
tracker_sparql_builder_predicate (metadata, "nmm:albumTitle");
tracker_sparql_builder_object_unvalidated (metadata, md.album);
+
+ if (md.track_count > 0) {
+ tracker_sparql_builder_predicate (metadata, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_int64 (metadata, md.track_count);
+ }
+
g_free (md.album);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]