From: <ny...@us...> - 2007-02-23 08:28:18
|
Revision: 388 http://svn.sourceforge.net/pmplib/?rev=388&view=rev Author: nyaochi Date: 2007-02-23 00:28:19 -0800 (Fri, 23 Feb 2007) Log Message: ----------- Added the version number of codecs 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/gmi/gmi_wav.c trunk/pmplib/lib/gmi/gmi_wma.c trunk/pmplib/lib/pmp_ipod/ipod.c Modified: trunk/pmplib/include/pmplib/pmp.h =================================================================== --- trunk/pmplib/include/pmplib/pmp.h 2007-02-23 07:46:45 UTC (rev 387) +++ trunk/pmplib/include/pmplib/pmp.h 2007-02-23 08:28:19 UTC (rev 388) @@ -128,11 +128,11 @@ /** Unknown codec. */ #define PMPCODEC_NONE PMPFOURCC(' ',' ',' ',' ') /** MPEG Audio Layer III. */ -#define PMPCODEC_MPEGLAYER3 PMPFOURCC('M','P','1','3') +#define PMPCODEC_MPEGLAYER3 PMPFOURCC('M','P','A','3') /** Windows Media Audio. */ #define PMPCODEC_WMA PMPFOURCC('W','M','A',' ') /** Ogg Vorbis. */ -#define PMPCODEC_VORBIS PMPFOURCC('O','V','1',' ') +#define PMPCODEC_VORBIS PMPFOURCC('O','g','g','V') /** Microsoft Riff WAVE. */ #define PMPCODEC_WAV PMPFOURCC('W','A','V','E') @@ -374,6 +374,12 @@ uint32_t codec; /** + * Codec version multiplied by 100. + * e.g., 100 for MPEG version 1. + */ + uint32_t codec_version; + + /** * Track number. * e.g., 1 */ Modified: trunk/pmplib/lib/gmi/gmi_mp3.c =================================================================== --- trunk/pmplib/lib/gmi/gmi_mp3.c 2007-02-23 07:46:45 UTC (rev 387) +++ trunk/pmplib/lib/gmi/gmi_mp3.c 2007-02-23 08:28:19 UTC (rev 388) @@ -477,6 +477,17 @@ info->sample_rate = mp3header.sample_rate; info->bitrate = mp3header.bitrate; info->duration = mp3header.duration; + switch (mp3header.version) { + case 0: + info->codec_version = 100; + break; + case 1: + info->codec_version = 200; + break; + case 2: + info->codec_version = 205; + break; + } } id3_file_close(id3file); /* This will call fclose(fp); */ Modified: trunk/pmplib/lib/gmi/gmi_vorbis.c =================================================================== --- trunk/pmplib/lib/gmi/gmi_vorbis.c 2007-02-23 07:46:45 UTC (rev 387) +++ trunk/pmplib/lib/gmi/gmi_vorbis.c 2007-02-23 08:28:19 UTC (rev 388) @@ -117,6 +117,7 @@ } info->codec = PMPCODEC_VORBIS; + info->codec_version = 1; // Clear the decoders buffers, also closes fp. ov_clear(&vf); Modified: trunk/pmplib/lib/gmi/gmi_wav.c =================================================================== --- trunk/pmplib/lib/gmi/gmi_wav.c 2007-02-23 07:46:45 UTC (rev 387) +++ trunk/pmplib/lib/gmi/gmi_wav.c 2007-02-23 08:28:19 UTC (rev 388) @@ -260,6 +260,7 @@ ret = get_riff_audio_info(info, filename, charset); if (ret == 0) { info->codec = PMPCODEC_WAV; + info->codec_version = 1; } return ret; } Modified: trunk/pmplib/lib/gmi/gmi_wma.c =================================================================== --- trunk/pmplib/lib/gmi/gmi_wma.c 2007-02-23 07:46:45 UTC (rev 387) +++ trunk/pmplib/lib/gmi/gmi_wma.c 2007-02-23 08:28:19 UTC (rev 388) @@ -514,6 +514,7 @@ ret = get_asf_audio_info(info, filename); if (ret == 0) { info->codec = PMPCODEC_WMA; + info->codec_version = 1; /* Set 1 for now. */ } return ret; } Modified: trunk/pmplib/lib/pmp_ipod/ipod.c =================================================================== --- trunk/pmplib/lib/pmp_ipod/ipod.c 2007-02-23 07:46:45 UTC (rev 387) +++ trunk/pmplib/lib/pmp_ipod/ipod.c 2007-02-23 08:28:19 UTC (rev 388) @@ -153,7 +153,11 @@ mhit_data->uid = uid; mhit_data->visible = 1; - mhit_data->filetype = 0x4D503320; + switch (rec->codec) { + case PMPCODEC_MPEGLAYER3: + mhit_data->filetype = 0x4D503320; + break; + } mhit_data->type1 = 0x01; mhit_data->type2 = 0x01; mhit_data->compilation = 0; @@ -169,6 +173,18 @@ mhit_data->date_added = rec->ts_import; mhit_data->dbid = 0; mhit_data->unk9 = 0xFFFF; + switch (rec->codec) { + case PMPCODEC_MPEGLAYER3: + switch (rec->codec_version) { + case 200: mhit_data->unk14_1 = 0x0016; break; + case 205: mhit_data->unk14_1 = 0x0020; break; + default: mhit_data->unk14_1 = 0x000C; break; + } + break; + case PMPCODEC_WAV: + mhit_data->unk14_1 = 0x0000; + break; + } mhit_data->unk14_1 = 12; mhit_data->is_played = 2; mhit_data->unk27 = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |