forked from len0rd/rockbox
Remove structec API from codecs
Change-Id: I1e67582c0521e6354b0175a11fcf690ae40dbd88
This commit is contained in:
parent
4745970974
commit
1131320d48
3 changed files with 23 additions and 15 deletions
|
@ -27,11 +27,8 @@
|
||||||
#include "metadata.h"
|
#include "metadata.h"
|
||||||
#include "metadata_common.h"
|
#include "metadata_common.h"
|
||||||
#include "metadata_parsers.h"
|
#include "metadata_parsers.h"
|
||||||
#include "structec.h"
|
|
||||||
|
|
||||||
#define APETAG_HEADER_LENGTH 32
|
#define APETAG_HEADER_LENGTH 32
|
||||||
#define APETAG_HEADER_FORMAT "8llll8"
|
|
||||||
#define APETAG_ITEM_HEADER_FORMAT "ll"
|
|
||||||
#define APETAG_ITEM_TYPE_MASK 3
|
#define APETAG_ITEM_TYPE_MASK 3
|
||||||
|
|
||||||
struct apetag_header
|
struct apetag_header
|
||||||
|
@ -57,12 +54,22 @@ bool read_ape_tags(int fd, struct mp3entry* id3)
|
||||||
{
|
{
|
||||||
struct apetag_header header;
|
struct apetag_header header;
|
||||||
|
|
||||||
if ((lseek(fd, -APETAG_HEADER_LENGTH, SEEK_END) < 0)
|
if (lseek(fd, -APETAG_HEADER_LENGTH, SEEK_END) < 0)
|
||||||
|| (ecread(fd, &header, 1, APETAG_HEADER_FORMAT, IS_BIG_ENDIAN)
|
|
||||||
!= APETAG_HEADER_LENGTH)
|
|
||||||
|| (memcmp(header.id, "APETAGEX", sizeof(header.id))))
|
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (read(fd, &header, sizeof(header)) != APETAG_HEADER_LENGTH)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (memcmp(header.id, "APETAGEX", sizeof(header.id)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* APE tag is little endian - convert to native byte order if needed */
|
||||||
|
if (IS_BIG_ENDIAN)
|
||||||
|
{
|
||||||
|
header.version = swap32(header.version);
|
||||||
|
header.length = swap32(header.version);
|
||||||
|
header.item_count = swap32(header.version);
|
||||||
|
header.flags = swap32(header.version);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((header.version == 2000) && (header.item_count > 0)
|
if ((header.version == 2000) && (header.item_count > 0)
|
||||||
|
@ -91,10 +98,13 @@ bool read_ape_tags(int fd, struct mp3entry* id3)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ecread(fd, &item, 1, APETAG_ITEM_HEADER_FORMAT, IS_BIG_ENDIAN)
|
if (read(fd, &item, sizeof(item)) != sizeof(item))
|
||||||
< (long) sizeof(item))
|
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (IS_BIG_ENDIAN)
|
||||||
|
{
|
||||||
|
item.length = swap32(item.length);
|
||||||
|
item.flags = swap32(item.flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
tag_remaining -= sizeof(item);
|
tag_remaining -= sizeof(item);
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include "metadata.h"
|
#include "metadata.h"
|
||||||
#include "metadata_common.h"
|
#include "metadata_common.h"
|
||||||
#include "metadata_parsers.h"
|
#include "metadata_parsers.h"
|
||||||
#include "structec.h"
|
|
||||||
|
|
||||||
/* Define LOGF_ENABLE to enable logf output in this file */
|
/* Define LOGF_ENABLE to enable logf output in this file */
|
||||||
/*#define LOGF_ENABLE*/
|
/*#define LOGF_ENABLE*/
|
||||||
|
|
|
@ -2,7 +2,6 @@ warble.c
|
||||||
../../../firmware/common/strmemccpy.c
|
../../../firmware/common/strmemccpy.c
|
||||||
../../../firmware/common/strlcpy.c
|
../../../firmware/common/strlcpy.c
|
||||||
../../../firmware/common/unicode.c
|
../../../firmware/common/unicode.c
|
||||||
../../../firmware/common/structec.c
|
|
||||||
../../../firmware/common/pathfuncs.c
|
../../../firmware/common/pathfuncs.c
|
||||||
../../../firmware/common/crc32.c
|
../../../firmware/common/crc32.c
|
||||||
../../../firmware/buflib_mempool.c
|
../../../firmware/buflib_mempool.c
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue