summaryrefslogtreecommitdiff
path: root/apps/codecs/libwmapro/wmapro_math.h
diff options
context:
space:
mode:
authorMohamed Tarek <mt@rockbox.org>2010-07-12 15:41:10 +0000
committerMohamed Tarek <mt@rockbox.org>2010-07-12 15:41:10 +0000
commitec4ee483181d01d14444e4431159282ecd92a2c5 (patch)
tree2f5c121e1fd41f518b0ee06362e3023110043e3f /apps/codecs/libwmapro/wmapro_math.h
parentddbfffb2173630b16b5ddafaa6449cad8709bf83 (diff)
downloadrockbox-ec4ee483181d01d14444e4431159282ecd92a2c5.zip
rockbox-ec4ee483181d01d14444e4431159282ecd92a2c5.tar.gz
rockbox-ec4ee483181d01d14444e4431159282ecd92a2c5.tar.bz2
rockbox-ec4ee483181d01d14444e4431159282ecd92a2c5.tar.xz
Complete the conversion of WMA Pro to fixed point. Floating point code is still there for better history and to have a returning point in svn should something go wrong.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27402 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libwmapro/wmapro_math.h')
-rw-r--r--apps/codecs/libwmapro/wmapro_math.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/codecs/libwmapro/wmapro_math.h b/apps/codecs/libwmapro/wmapro_math.h
index 83fbb40..b339d86 100644
--- a/apps/codecs/libwmapro/wmapro_math.h
+++ b/apps/codecs/libwmapro/wmapro_math.h
@@ -1,8 +1,13 @@
+#ifndef _WMAPRO_MATH_H_
+#define _WMAPRO_MATH_H_
+
#include <inttypes.h>
#include "types.h"
#define fixtof16(x) (float)((float)(x) / (float)(1 << 16))
+#define fixtof31(x) (float)((float)(x) / (float)(1 << 31))
#define ftofix16(x) ((int32_t)((x) * (float)(1 << 16) + ((x) < 0 ? -0.5:0.5)))
+#define ftofix31(x) ((int32_t)((x) * (float)(1 << 31) + ((x) < 0 ? -0.5:0.5)))
static inline FIXED fixmulshift(FIXED x, FIXED y, int shamt)
{
@@ -36,11 +41,11 @@ static inline void vector_fixmul_window(FIXED *dst, const FIXED *src0,
}
static inline void vector_fixmul_scalar(FIXED *dst, const FIXED *src, FIXED mul,
- int len)
+ int len, int shift)
{
int i;
- for(i=0; i<len; i++) {
- dst[i] = fixmulshift(src[i],mul,32);
- }
-
+ for(i=0; i<len; i++)
+ dst[i] = fixmulshift(src[i],mul,shift);
}
+
+#endif /* _WMAPRO_MATH_H_ */