#170874 - iainprice - Sat Oct 24, 2009 5:10 pm
Can you stream a looping wav from efs?
Code: |
#include <nds.h>
#include <stdio.h> #include <malloc.h> #include <fat.h> #include <unistd.h> #include "efs_lib.h" // include EFS lib char *pFileBuffer = NULL; FILE *pFileStream = NULL; int initFileStream(char *fileName) { struct stat fileStat; if(pFileStream != NULL) fclose(pFileStream); pFileStream = fopen(fileName, "rb"); if(pFileStream == NULL) return 0; if(stat(fileName, &fileStat) != 0) return 0; return fileStat.st_size; } int readFileStream(char *pBuffer, int size) { int result; if(pFileStream == NULL) return 0; result = fread(pBuffer, 1, size, pFileStream); return result; } int resetFileStream() { size_t result; if(pFileStream == NULL) return 0; result = fseek(pFileStream, 0, SEEK_SET); if(result != 0) return 0; return 1; } int closeFileStream() { if(pFileStream != NULL) { fclose(pFileStream); return 1; } return 0; } int readFileSize(char *fileName) { struct stat fileStat; size_t result; result = stat(fileName, &fileStat); if(result != 0) return 0; return fileStat.st_size; } |
iainprice wrote: |
Thanks, would it be possible (or a good idea) to have two buffers, fill one while playing another, then swap, so that there is no delay when filling the buffer? |