1
0
Fork 0
forked from len0rd/rockbox

Remove structec API from codecs

Change-Id: I1e67582c0521e6354b0175a11fcf690ae40dbd88
This commit is contained in:
Aidan MacDonald 2022-12-01 00:45:57 +00:00
parent 4745970974
commit 1131320d48
3 changed files with 23 additions and 15 deletions

View file

@ -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)
@ -90,13 +97,16 @@ 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);
r = read_string(fd, name, sizeof(name), 0, tag_remaining); r = read_string(fd, name, sizeof(name), 0, tag_remaining);

View file

@ -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*/

View file

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