summaryrefslogtreecommitdiff
path: root/apps/codecs/wav.c
diff options
context:
space:
mode:
authorTomasz Malesinski <tomal@rockbox.org>2006-11-26 18:31:41 +0000
committerTomasz Malesinski <tomal@rockbox.org>2006-11-26 18:31:41 +0000
commit80da8b141c4672ca4380d66094976b6342ed5071 (patch)
tree631e9edd537ae9983524622a9e1ec82e24957280 /apps/codecs/wav.c
parent8ef3c8a342d41c2aa5e5d8370fd4e89d4d8d937e (diff)
downloadrockbox-80da8b141c4672ca4380d66094976b6342ed5071.zip
rockbox-80da8b141c4672ca4380d66094976b6342ed5071.tar.gz
rockbox-80da8b141c4672ca4380d66094976b6342ed5071.tar.bz2
rockbox-80da8b141c4672ca4380d66094976b6342ed5071.tar.xz
FS#6357, patch 1: let iramcopy and bss share the same space in codecs and
plugins. Currently, in case of plugins using IRAM bss is cleared twice, once in the loader, once in PLUGIN_IRAM_INIT. For codecs, bss is cleared only during codec initialization. Also, removed double variables in codecs storing a pointer to codec_api. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11606 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/wav.c')
-rw-r--r--apps/codecs/wav.c23
1 files changed, 2 insertions, 21 deletions
diff --git a/apps/codecs/wav.c b/apps/codecs/wav.c
index 9add1f5..26cbf7f 100644
--- a/apps/codecs/wav.c
+++ b/apps/codecs/wav.c
@@ -25,8 +25,6 @@ CODEC_HEADER
/* Macro that sign extends an unsigned byte */
#define SE(x) ((int32_t)((int8_t)(x)))
-struct codec_api *rb;
-
/* This codec support WAVE files with the following formats:
* - PCM, up to 32 bits, supporting 32 bits playback when useful.
* - ALAW and MULAW (16 bits compressed on 8 bits).
@@ -95,14 +93,6 @@ enum
/* for 44.1kHz stereo 16bits, this represents 0.023s ~= 1/50s */
#define WAV_CHUNK_SIZE (1024*2)
-#ifdef USE_IRAM
-extern char iramcopy[];
-extern char iramstart[];
-extern char iramend[];
-extern char iedata[];
-extern char iend[];
-#endif
-
static const int16_t alaw2linear16[256] ICONST_ATTR = {
-5504, -5248, -6016, -5760, -4480, -4224, -4992,
-4736, -7552, -7296, -8064, -7808, -6528, -6272,
@@ -213,9 +203,8 @@ decode_dvi_adpcm(struct codec_api *ci,
size_t *pcmoutsize);
/* this is the codec entry point */
-enum codec_status codec_start(struct codec_api *api)
+enum codec_status codec_main(void)
{
- struct codec_api *ci;
uint32_t numbytes, bytesdone;
uint32_t totalsamples = 0;
uint16_t channels = 0;
@@ -235,20 +224,12 @@ enum codec_status codec_start(struct codec_api *api)
/* Generic codec initialisation */
- rb = api;
- ci = api;
-
-#ifdef USE_IRAM
- ci->memcpy(iramstart, iramcopy, iramend - iramstart);
- ci->memset(iedata, 0, iend - iedata);
-#endif
-
ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)28);
ci->configure(CODEC_SET_FILEBUF_WATERMARK, (int *)(1024*512));
ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (int *)(1024*256));
next_track:
- if (codec_init(api)) {
+ if (codec_init()) {
i = CODEC_ERROR;
goto exit;
}