From 18fc68401ca075980ea7739df65bcddb9e4a8ef3 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Thu, 1 Dec 2022 01:03:22 +0000 Subject: Remove structec API from talk.c Change-Id: I6e3bae2a893c932b67b4b5a7c4bf46060e5dc32a --- apps/talk.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/apps/talk.c b/apps/talk.c index 5d6e7ac0b6..fb2f9cf3df 100644 --- a/apps/talk.c +++ b/apps/talk.c @@ -41,7 +41,6 @@ /*#define LOGF_ENABLE*/ #include "logf.h" #include "bitswap.h" -#include "structec.h" #include "plugin.h" /* plugin_get_buffer() */ #include "debug.h" #include "panic.h" @@ -502,23 +501,24 @@ static bool load_index_table(int fd, const struct voicefile_header *hdr) return false; ret = read_to_handle(fd, index_handle, 0, alloc_size); - - if (ret == alloc_size) + if (ret != alloc_size) { + index_handle = core_free(index_handle); + return false; + } + #ifdef ROCKBOX_LITTLE_ENDIAN - struct clip_entry *buf; - buf = core_get_data(index_handle); - for (int i = 0; i < hdr->id1_max + hdr->id2_max; i++) - { - /* doesn't yield() */ - structec_convert(&buf[i], "ll", 1, true); - } -#endif + struct clip_entry *buf, *end; + buf = core_get_data(index_handle); + end = buf + hdr->id1_max + hdr->id2_max; + for (; buf != end; buf++) + { + buf->offset = swap32(buf->offset); + buf->size = swap32(buf->size); } - else - index_handle = core_free(index_handle); +#endif - return ret == alloc_size; + return true; } static bool load_header(int fd, struct voicefile_header *hdr) @@ -528,8 +528,11 @@ static bool load_header(int fd, struct voicefile_header *hdr) return false; #ifdef ROCKBOX_LITTLE_ENDIAN - logf("Byte swapping voice file"); - structec_convert(&voicefile, "lllll", 1, true); + hdr->version = swap32(hdr->version); + hdr->target_id = swap32(hdr->target_id); + hdr->table = swap32(hdr->table); + hdr->id1_max = swap32(hdr->id1_max); + hdr->id2_max = swap32(hdr->id2_max); #endif return true; } -- cgit v1.2.3