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. |