summaryrefslogtreecommitdiff
path: root/apps/codecs/wavpack.c
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-06-26 19:41:29 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-06-26 19:41:29 +0000
commitd8cb703b1e86c9f910211a976d8bed0c7a99379a (patch)
tree6db3b698d83e639974bd6603225ff11891652113 /apps/codecs/wavpack.c
parent316eb6538e2fc88efa93248deb761679071409f1 (diff)
downloadrockbox-d8cb703b1e86c9f910211a976d8bed0c7a99379a.tar.gz
rockbox-d8cb703b1e86c9f910211a976d8bed0c7a99379a.zip
Initial DSP implementation. DSP supports resampling audio stream from
codecs (currently works corrently only with mp3's, somebody should fix that). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6877 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/wavpack.c')
-rw-r--r--apps/codecs/wavpack.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/apps/codecs/wavpack.c b/apps/codecs/wavpack.c
index 2ea8f052df..275f5f11e4 100644
--- a/apps/codecs/wavpack.c
+++ b/apps/codecs/wavpack.c
@@ -22,6 +22,7 @@
22#include <codecs/libwavpack/wavpack.h> 22#include <codecs/libwavpack/wavpack.h>
23#include "playback.h" 23#include "playback.h"
24#include "lib/codeclib.h" 24#include "lib/codeclib.h"
25#include "dsp.h"
25 26
26static struct codec_api *rb; 27static struct codec_api *rb;
27static struct codec_api *ci; 28static struct codec_api *ci;
@@ -61,14 +62,27 @@ enum codec_status codec_start(struct codec_api* api)
61 ci->configure(CODEC_SET_FILEBUF_LIMIT, (int *)(1024*1024*10)); 62 ci->configure(CODEC_SET_FILEBUF_LIMIT, (int *)(1024*1024*10));
62 ci->configure(CODEC_SET_FILEBUF_WATERMARK, (int *)(1024*512)); 63 ci->configure(CODEC_SET_FILEBUF_WATERMARK, (int *)(1024*512));
63 ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (int *)(1024*128)); 64 ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (int *)(1024*128));
65
66 ci->configure(DSP_DITHER, (bool *)false);
67 ci->configure(DSP_SET_STEREO_MODE, (int *)STEREO_INTERLEAVED);
68 ci->configure(DSP_SET_SAMPLE_DEPTH, (int *)(16));
64 69
65 next_track: 70 next_track:
66 71
67 if (codec_init(api)) 72 if (codec_init(api))
68 return CODEC_ERROR; 73 return CODEC_ERROR;
69 74
75 while (!rb->taginfo_ready)
76 ci->yield();
77
78 if (ci->id3->frequency != NATIVE_FREQUENCY) {
79 ci->configure(DSP_SET_FREQUENCY, (long *)(ci->id3->frequency));
80 ci->configure(CODEC_DSP_ENABLE, (bool *)true);
81 } else {
82 ci->configure(CODEC_DSP_ENABLE, (bool *)false);
83 }
84
70 /* Create a decoder instance */ 85 /* Create a decoder instance */
71
72 wpc = WavpackOpenFileInput (read_callback, error); 86 wpc = WavpackOpenFileInput (read_callback, error);
73 87
74 if (!wpc) 88 if (!wpc)