📄 file_access.c
字号:
/* Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved. */
/*
File : \Audio\common\
Desc : 文件访问函数。
Author : Vincent Hisung
Date : 2007-07-xx
Notes :
$Log :
* Vincent Hisung 2007/07/xx 建立此文件
*
*/
/****************************************************************/
#include "include.h"
MY_FILE *pRawFileCache = NULL;
extern MY_FILE* outfile;
MY_FILE*(*RKFIO_FOpen)(const char *, const char *);
size_t (*RKFIO_FRead)(MY_FILE *, void *, size_t) ;
int (*RKFIO_FSeek)(MY_FILE * /*stream*/, long int /*offset*/, int /*whence*/);
unsigned int (*RKFIO_FLength)(MY_FILE *in);
int (*RKFIO_FClose)(MY_FILE * /*stream*/);
long int (*RKFIO_FTell)(MY_FILE *stream); //long int ftell(MY_FILE *stream);
size_t (*RKFIO_FWrite)(MY_FILE *stream, const void *ptr, size_t n);
//若使用了RK27的文件系统函数则定定义该宏
#if defined(BOARD) || defined(ROCK_FS) //080706,HUANGSL,增加 PC ROCK_FS的支持.
#define RK27_FS
long int RKFS_Tell(MY_FILE *in)
{
MY_FILE *a = (MY_FILE*)in;
return (long int)(a->Offset);
}
#endif
size_t RKfread(MY_FILE *f, void *b, size_t s)
{
#ifdef RK27_FS
//return FSFileRead(b,s,(MY_FILE*)f);
size_t tmp = FSFileRead(b, s, (MY_FILE*)f);
//FSFileWrite(b,2048,(MY_FILE*)outfile);
//while(1);
return tmp;
#else
return fread(b, 1, s, f);
#endif
}
size_t RKFIO_flacFRead(void *ptr, size_t size, size_t n, MY_FILE *stream)
{
return RKfread(stream, ptr, size*n);
}
unsigned int RKftell(MY_FILE *in)
{
unsigned int AllByteLength, OldOptionByte;
#ifdef RK27_FS
AllByteLength = FSFileGetSize((MY_FILE*)in);
#else
OldOptionByte = ftell(in);
fseek(in, 0, 2);
AllByteLength = ftell(in);
fseek(in, OldOptionByte, 0);
#endif
return AllByteLength;
}
size_t RKfwrite(MY_FILE *stream, const void *ptr, size_t n)
{
size_t p = 0;
#ifdef RK27_FS
p = FSFileWrite(ptr, n, (MY_FILE*)stream);
#else
p = fwrite(ptr, 1, n, stream);
#endif
return p;
}
/******************************************************
Name: FileFuncInit
Desc: 文件操作函数指针初始化
Param: 无
Return: 无
Global: 无
Note: 在使用音频CODEC之前一定要调用此函数
Author: Vincent Hisung
Log:
******************************************************/
void FileFuncInit(void)
{
#ifdef RK27_FS
RKFIO_FOpen = (MY_FILE * (*)(const char *, const char *))FSFileOpen;
//*
RKFIO_FRead = RKfread;
RKFIO_FSeek = (int(*)(MY_FILE *, long int , int))FSFileSeek;
RKFIO_FLength = RKftell;
RKFIO_FTell = RKFS_Tell;//ftell;
RKFIO_FClose = (int (*)(MY_FILE *))FSFileClose;
RKFIO_FWrite = RKfwrite;
#else
RKFIO_FOpen = fopen;
RKFIO_FRead = RKfread;
RKFIO_FSeek = fseek;
RKFIO_FLength = RKftell;
RKFIO_FTell = ftell;
RKFIO_FClose = fclose;
RKFIO_FWrite = RKfwrite;
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -