diff options
Diffstat (limited to 'apps/codecs/wavpack.c')
-rw-r--r-- | apps/codecs/wavpack.c | 16 |
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 | ||
26 | static struct codec_api *rb; | 27 | static struct codec_api *rb; |
27 | static struct codec_api *ci; | 28 | static 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) |