71 lines
1.5 KiB
C
71 lines
1.5 KiB
C
|
|
#include "app_config.h"
|
|
#include "system/includes.h"
|
|
#include "device/device.h"
|
|
#include "fs/fs.h"
|
|
#include "jltar.h"
|
|
|
|
extern int storage_device_ready(void);
|
|
static void jltar_test(void *priv)
|
|
{
|
|
while (!storage_device_ready()) {//等待sd文件系统挂载完成
|
|
os_time_dly(2);
|
|
}
|
|
|
|
JLFILE *fp = jltar_fopen(CONFIG_ROOT_PATH"music.jlp", "b7da096e05ed4af745830cefd2ba4c37.mp3", "r");
|
|
if (fp == NULL) {
|
|
printf("fopen err!");
|
|
return;
|
|
}
|
|
|
|
int file_len = jltar_flen(fp);
|
|
|
|
char *r_buf = malloc(file_len);
|
|
if (NULL == r_buf) {
|
|
printf("malloc fail\n");
|
|
return;
|
|
}
|
|
|
|
//read test
|
|
int ret = jltar_fread(r_buf, 1, fp->fileInfo.filesize, fp);
|
|
if (ret > 0) {
|
|
FILE *out = fopen(CONFIG_ROOT_PATH"out.mp3", "w+");
|
|
if (out) {
|
|
fwrite(r_buf, 1, fp->fileInfo.filesize, out);
|
|
fclose(out);
|
|
} else {
|
|
printf("fopen err!\n");
|
|
}
|
|
}
|
|
|
|
//feek test
|
|
memset(r_buf, 0, file_len);
|
|
jltar_fseek(fp, 0, SEEK_SET);
|
|
ret = jltar_fread(r_buf, 1, 128, fp);
|
|
if (ret > 0) {
|
|
put_buf(r_buf, 200);
|
|
}
|
|
|
|
memset(r_buf, 0, file_len);
|
|
jltar_fseek(fp, 12, SEEK_SET);
|
|
ret = jltar_fread(r_buf, 1, 128, fp);
|
|
if (ret > 0) {
|
|
put_buf(r_buf, 200);
|
|
}
|
|
|
|
jltar_close(fp);
|
|
free(r_buf);
|
|
}
|
|
|
|
static int c_main(void)
|
|
{
|
|
if (thread_fork("jltar_test", 10, 512, 0, NULL, jltar_test, NULL) != OS_NO_ERR) {
|
|
printf("thread fork fail\n");
|
|
}
|
|
return 0;
|
|
}
|
|
late_initcall(c_main);
|
|
|
|
|
|
|