1
0
Fork 0
forked from len0rd/rockbox

Some minor code cleanup.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11854 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Magnus Holmgren 2006-12-29 14:59:10 +00:00
parent cd8c4322ae
commit 1e7b7bcb07

View file

@ -157,6 +157,7 @@ static long read_string(int fd, char* buf, long buf_size, int eos, long size)
*/ */
static void convert_endian(void *data, const char *format) static void convert_endian(void *data, const char *format)
{ {
#ifdef ROCKBOX_BIG_ENDIAN
while (*format) while (*format)
{ {
switch (*format) switch (*format)
@ -192,6 +193,10 @@ static void convert_endian(void *data, const char *format)
format++; format++;
} }
#else
(void) data;
(void) format;
#endif
} }
#if 0 /* not needed atm */ #if 0 /* not needed atm */
@ -225,7 +230,7 @@ static int read_uint32be(int fd, unsigned int* buf)
#endif #endif
/* Read an unaligned 32-bit little endian long from buffer. */ /* Read an unaligned 32-bit little endian long from buffer. */
static unsigned long get_long(void* buf) static unsigned long get_long_le(void* buf)
{ {
unsigned char* p = (unsigned char*) buf; unsigned char* p = (unsigned char*) buf;
@ -564,8 +569,8 @@ static bool get_vorbis_metadata(int fd, struct mp3entry* id3)
/* We need to ensure the serial number from this page is the same as the /* We need to ensure the serial number from this page is the same as the
* one from the last page (since we only support a single bitstream). * one from the last page (since we only support a single bitstream).
*/ */
serial = get_long(&buf[14]); serial = get_long_le(&buf[14]);
id3->frequency = get_long(&buf[40]); id3->frequency = get_long_le(&buf[40]);
id3->filesize = filesize(fd); id3->filesize = filesize(fd);
/* Comments are in second Ogg page */ /* Comments are in second Ogg page */
@ -666,8 +671,8 @@ static bool get_vorbis_metadata(int fd, struct mp3entry* id3)
/* Note that this only reads the low 32 bits of a /* Note that this only reads the low 32 bits of a
* 64 bit value. * 64 bit value.
*/ */
id3->samples = get_long(&buf[i + 6]); id3->samples = get_long_le(&buf[i + 6]);
last_serial = get_long(&buf[i + 14]); last_serial = get_long_le(&buf[i + 14]);
/* If this page is very small the beginning of the next /* If this page is very small the beginning of the next
* header could be in buffer. Jump near end of this header * header could be in buffer. Jump near end of this header
@ -779,8 +784,7 @@ static bool get_flac_metadata(int fd, struct mp3entry* id3)
rc = true; /* Got vital metadata */ rc = true; /* Got vital metadata */
/* totalsamples is a 36-bit field, but we assume <= 32 bits are used */ /* totalsamples is a 36-bit field, but we assume <= 32 bits are used */
totalsamples = (buf[14] << 24) | (buf[15] << 16) totalsamples = get_long_be(&buf[14]);
| (buf[16] << 8) | buf[17];
/* Calculate track length (in ms) and estimate the bitrate (in kbit/s) */ /* Calculate track length (in ms) and estimate the bitrate (in kbit/s) */
id3->length = ((int64_t) totalsamples * 1000) / id3->frequency; id3->length = ((int64_t) totalsamples * 1000) / id3->frequency;
@ -854,7 +858,7 @@ static bool get_wave_metadata(int fd, struct mp3entry* id3)
return false; return false;
/* chunkSize */ /* chunkSize */
i = get_long(&buf[4]); i = get_long_le(&buf[4]);
if (memcmp(buf, "fmt ", 4) == 0) if (memcmp(buf, "fmt ", 4) == 0)
{ {
@ -868,9 +872,9 @@ static bool get_wave_metadata(int fd, struct mp3entry* id3)
/* wChannels */ /* wChannels */
channels = buf[2] | (buf[3] << 8); channels = buf[2] | (buf[3] << 8);
/* dwSamplesPerSec */ /* dwSamplesPerSec */
id3->frequency = get_long(&buf[4]); id3->frequency = get_long_le(&buf[4]);
/* dwAvgBytesPerSec */ /* dwAvgBytesPerSec */
id3->bitrate = (get_long(&buf[8]) * 8) / 1000; id3->bitrate = (get_long_le(&buf[8]) * 8) / 1000;
/* skipping wBlockAlign */ /* skipping wBlockAlign */
/* wBitsPerSample */ /* wBitsPerSample */
bitspersample = buf[14] | (buf[15] << 8); bitspersample = buf[14] | (buf[15] << 8);
@ -890,7 +894,7 @@ static bool get_wave_metadata(int fd, struct mp3entry* id3)
return false; return false;
i -= 2; i -= 2;
totalsamples = get_long(buf); totalsamples = get_long_le(buf);
} }
} }
@ -1641,12 +1645,10 @@ static bool get_adx_metadata(int fd, struct mp3entry* id3)
return false; return false;
} }
id3->frequency = (buf[8] << 24) | (buf[9] << 16) | (buf[10] << 8) | buf[11]; id3->frequency = get_long_be(&buf[8]);
/* 32 samples per 18 bytes */ /* 32 samples per 18 bytes */
id3->bitrate = id3->frequency * channels * 18 * 8 / 32 / 1000; id3->bitrate = id3->frequency * channels * 18 * 8 / 32 / 1000;
id3->length = ((unsigned long) id3->length = get_long_be(&buf[12]) / id3->frequency * 1000;
(buf[12] << 24) | (buf[13] << 16) | (buf[14] << 8) | buf[15]) /
id3->frequency * 1000;
id3->vbr = false; id3->vbr = false;
id3->filesize = filesize(fd); id3->filesize = filesize(fd);
@ -1657,21 +1659,9 @@ static bool get_adx_metadata(int fd, struct mp3entry* id3)
/* check if header is too small for loop data */ /* check if header is too small for loop data */
if (chanstart-6 < 0x2c) looping=0; if (chanstart-6 < 0x2c) looping=0;
else { else {
looping = (buf[0x18]) || looping = get_long_be(&buf[0x18]);
(buf[0x19]) || end_adr = get_long_be(&buf[0x28]);
(buf[0x1a]) || start_adr = get_long_be(&buf[0x1c])/32*channels*18+chanstart;
(buf[0x1b]);
end_adr = (buf[0x28]<<24) |
(buf[0x29]<<16) |
(buf[0x2a]<<8) |
(buf[0x2b]);
start_adr = (
(buf[0x1c]<<24) |
(buf[0x1d]<<16) |
(buf[0x1e]<<8) |
(buf[0x1f])
)/32*channels*18+chanstart;
} }
} else if (!memcmp(buf+0x10,"\x01\xF4\x04\x00",4)) { } else if (!memcmp(buf+0x10,"\x01\xF4\x04\x00",4)) {
/* Standard (type 04) */ /* Standard (type 04) */
@ -1679,20 +1669,9 @@ static bool get_adx_metadata(int fd, struct mp3entry* id3)
/* check if header is too small for loop data */ /* check if header is too small for loop data */
if (chanstart-6 < 0x38) looping=0; if (chanstart-6 < 0x38) looping=0;
else { else {
looping = (buf[0x24]) || looping = get_long_be(&buf[0x24]);
(buf[0x25]) || end_adr = get_long_be(&buf[0x34]);
(buf[0x26]) || start_adr = get_long_be(&buf[0x28])/32*channels*18+chanstart;
(buf[0x27]);
end_adr = (buf[0x34]<<24) |
(buf[0x35]<<16) |
(buf[0x36]<<8) |
buf[0x37];
start_adr = (
(buf[0x28]<<24) |
(buf[0x29]<<16) |
(buf[0x2a]<<8) |
(buf[0x2b])
)/32*channels*18+chanstart;
} }
} else { } else {
DEBUGF("get_adx_metadata: error, couldn't determine ADX type\n"); DEBUGF("get_adx_metadata: error, couldn't determine ADX type\n");
@ -1748,18 +1727,18 @@ static bool get_aiff_metadata(int fd, struct mp3entry* id3)
while ((numbytes == 0) && (read_bytes >= 8)) while ((numbytes == 0) && (read_bytes >= 8))
{ {
/* chunkSize */ /* chunkSize */
i = ((buf[4]<<24)|(buf[5]<<16)|(buf[6]<<8)|buf[7]); i = get_long_be(&buf[4]);
if (memcmp(buf, "COMM", 4) == 0) if (memcmp(buf, "COMM", 4) == 0)
{ {
/* numChannels */ /* numChannels */
numChannels = ((buf[8]<<8)|buf[9]); numChannels = ((buf[8]<<8)|buf[9]);
/* numSampleFrames */ /* numSampleFrames */
numSampleFrames =((buf[10]<<24)|(buf[11]<<16)|(buf[12]<<8)|buf[13]); numSampleFrames = get_long_be(&buf[10]);
/* sampleSize */ /* sampleSize */
sampleSize = ((buf[14]<<8)|buf[15]); sampleSize = ((buf[14]<<8)|buf[15]);
/* sampleRate */ /* sampleRate */
sampleRate = ((buf[18]<<24)|(buf[19]<<16)|(buf[20]<<8)|buf[21]); sampleRate = get_long_be(&buf[18]);
sampleRate = sampleRate >> (16+14-buf[17]); sampleRate = sampleRate >> (16+14-buf[17]);
/* save format infos */ /* save format infos */
id3->bitrate = (sampleSize * numChannels * sampleRate) / 1000; id3->bitrate = (sampleSize * numChannels * sampleRate) / 1000;
@ -1813,9 +1792,9 @@ unsigned int probe_file_format(const char *filename)
const char *ext = audio_formats[i].ext_list; const char *ext = audio_formats[i].ext_list;
do do
{
if (strcasecmp(suffix, ext) == 0)
{ {
if (strcasecmp(suffix, ext) == 0)
{
return i; return i;
} }
@ -1936,7 +1915,7 @@ bool get_metadata(struct track_info* track, int fd, const char* trackname,
track->id3.frequency = wavpack_sample_rates[srindx]; track->id3.frequency = wavpack_sample_rates[srindx];
} }
totalsamples = get_long(&buf[12]); totalsamples = get_long_le(&buf[12]);
track->id3.length = totalsamples / (track->id3.frequency / 100) * 10; track->id3.length = totalsamples / (track->id3.frequency / 100) * 10;
track->id3.bitrate = filesize (fd) / (track->id3.length / 8); track->id3.bitrate = filesize (fd) / (track->id3.length / 8);
} }