|
From: <ny...@us...> - 2007-02-23 09:23:00
|
Revision: 391
http://svn.sourceforge.net/pmplib/?rev=391&view=rev
Author: nyaochi
Date: 2007-02-23 01:23:01 -0800 (Fri, 23 Feb 2007)
Log Message:
-----------
Added total_tracks field to pmp_music_record_t.
Modified Paths:
--------------
trunk/pmplib/include/pmplib/pmp.h
trunk/pmplib/lib/gmi/gmi_mp3.c
trunk/pmplib/lib/gmi/gmi_vorbis.c
trunk/pmplib/lib/pmp_ipod/ipod.c
Modified: trunk/pmplib/include/pmplib/pmp.h
===================================================================
--- trunk/pmplib/include/pmplib/pmp.h 2007-02-23 09:12:10 UTC (rev 390)
+++ trunk/pmplib/include/pmplib/pmp.h 2007-02-23 09:23:01 UTC (rev 391)
@@ -392,6 +392,12 @@
uint32_t track_number;
/**
+ * Total number of tracks in this disc.
+ * e.g., 12
+ */
+ uint32_t total_tracks;
+
+ /**
* Sample rate in [Hz].
* e.g., 44100
*/
Modified: trunk/pmplib/lib/gmi/gmi_mp3.c
===================================================================
--- trunk/pmplib/lib/gmi/gmi_mp3.c 2007-02-23 09:12:10 UTC (rev 390)
+++ trunk/pmplib/lib/gmi/gmi_mp3.c 2007-02-23 09:23:01 UTC (rev 391)
@@ -375,9 +375,17 @@
/* Obtain track number first. */
ucs2 = get_frame_value(id3tag, "TRCK", charset);
if (ucs2 && *ucs2) {
- info->track_number = ucs2toi(ucs2);
+ ucs2char_t* p = ucs2chr(ucs2, '/');
+ if (p) {
+ info->track_number = ucs2toi(ucs2);
+ info->total_tracks = ucs2toi(p+1);
+ } else {
+ info->track_number = ucs2toi(ucs2);
+ info->total_tracks = 0;
+ }
} else {
info->track_number = 0;
+ info->total_tracks = 0;
}
ucs2free(ucs2);
Modified: trunk/pmplib/lib/gmi/gmi_vorbis.c
===================================================================
--- trunk/pmplib/lib/gmi/gmi_vorbis.c 2007-02-23 09:12:10 UTC (rev 390)
+++ trunk/pmplib/lib/gmi/gmi_vorbis.c 2007-02-23 09:23:01 UTC (rev 391)
@@ -114,7 +114,17 @@
} else if (strncasecmp(fieldvalue, "GENRE=", 6) == 0) {
info->genre = utf8dupucs2(fieldvalue+6);
} else if (strncasecmp(fieldvalue, "TRACKNUMBER=", 12) == 0) {
- info->track_number = atoi(fieldvalue+12);
+ char* value = fieldvalue+12;
+ char* p = strchr(value, '/');
+ if (p) {
+ info->track_number = atoi(value);
+ info->total_tracks = atoi(p+1);
+ } else {
+ info->track_number = atoi(value);
+ info->total_tracks = 0;
+ }
+ } else if (strncasecmp(fieldvalue, "TOTALTRACKS=", 12) == 0) {
+ info->total_tracks = atoi(fieldvalue+12);
} else if (strncasecmp(fieldvalue, "DATE=", 5) == 0) {
info->date = utf8dupucs2(fieldvalue+5);
}
Modified: trunk/pmplib/lib/pmp_ipod/ipod.c
===================================================================
--- trunk/pmplib/lib/pmp_ipod/ipod.c 2007-02-23 09:12:10 UTC (rev 390)
+++ trunk/pmplib/lib/pmp_ipod/ipod.c 2007-02-23 09:23:01 UTC (rev 391)
@@ -170,7 +170,7 @@
mhit_data->filesize = rec->filesize;
mhit_data->duration = rec->duration;
mhit_data->track_number = rec->track_number;
- mhit_data->total_tracks = 100;
+ mhit_data->total_tracks = rec->total_tracks;
mhit_data->year = 2000;
mhit_data->bitrate = rec->bitrate / 1000;
mhit_data->samplerate = rec->sample_rate;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|