#include FT_ERRORS_H
#include FT_TYPES_H
+#include "graphic_hardware_config.h"
/**************************************************************************
*
file = STREAM_FILE( stream );
+ #if defined(BOARD_N9) || defined(BOARD_FD230) //减少4gai叠字概率,还未完全解决
+ long oriFilePos = ftell(file);
+ if ( stream->pos != offset ) { // seek可能就走这里,偏移,读取count为0
+ ft_fseek( file, (long)offset, SEEK_SET ); // LWJ: 位置错了,可以强制偏移,以入参为准
+ // printf("[LTT] [%s: %d] seek: offset %d, stream->pos: %d\n",
+ // __FUNCTION__, __LINE__, offset, stream->pos); // todo: 可以放开,每次强制偏移保证位置正确,再去读数据
+ } else { // 检测是否有可能记录的位置和实际File位置不一致的情况
+ if (oriFilePos != offset) {
+ // printf("[LTT] [%s: %d] oriFilePos : %d, not equal to, offset: %d!!!!!!!!!\n",
+ // __FUNCTION__, __LINE__, oriFilePos, offset);
+ ft_fseek( file, (long)offset, SEEK_SET ); // LWJ: 位置错了,可以强制偏移,以入参为准
+ }
+ }
+ if (count != 0) {
+ // printf("[LTT] [%s: %d] ft_ansi_stream_io READ: buffer %p, file->pos: %d, stream->pos: %d, offset: %d, count: %u\n",
+ // __FUNCTION__, __LINE__, buffer, ftell(file), stream->pos, offset, count);
+ }
+ #else
if ( stream->pos != offset )
ft_fseek( file, (long)offset, SEEK_SET );
+ #endif
return (unsigned long)ft_fread( buffer, 1, count, file );
}