summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-22 21:00:32 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-22 21:00:32 +0000
commitde1529c4eb711a331dfa156efdb799149eb52068 (patch)
treed325cf8651608b6c44785cbcf76e7597c630895f /apps
parentd038f89f3fc403f8a9ef03cd08461988f9c74c59 (diff)
downloadrockbox-de1529c4eb711a331dfa156efdb799149eb52068.tar.gz
rockbox-de1529c4eb711a331dfa156efdb799149eb52068.tar.bz2
rockbox-de1529c4eb711a331dfa156efdb799149eb52068.zip
Save a large static buffer in sid codec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29915 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/codecs/sid.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/apps/codecs/sid.c b/apps/codecs/sid.c
index 46c4a5408f..291b9ca6f3 100644
--- a/apps/codecs/sid.c
+++ b/apps/codecs/sid.c
@@ -66,6 +66,7 @@
CODEC_HEADER
#define CHUNK_SIZE (1024*2)
+#define SID_BUFFER_SIZE 0x10000
/* This codec supports SID Files:
*
@@ -73,9 +74,6 @@ CODEC_HEADER
static int32_t samples[CHUNK_SIZE] IBSS_ATTR; /* The sample buffer */
-/* Static buffer for the plain SID-File */
-static unsigned char sidfile[0x10000];
-
void sidPoke(int reg, unsigned char val) ICODE_ATTR;
#define FLAG_N 128
@@ -1225,6 +1223,7 @@ enum codec_status codec_run(void)
unsigned int filesize;
unsigned short load_addr, init_addr, play_addr;
unsigned char subSongsMax, subSong, song_speed;
+ unsigned char *sidfile = NULL;
intptr_t param;
if (codec_init()) {
@@ -1236,7 +1235,7 @@ enum codec_status codec_run(void)
/* Load SID file the read_filebuf callback will return the full requested
* size if at all possible, so there is no need to loop */
ci->seek_buffer(0);
- filesize = ci->read_filebuf(sidfile, sizeof(sidfile));
+ sidfile = ci->request_buffer(&filesize, SID_BUFFER_SIZE);
if (filesize == 0) {
return CODEC_ERROR;