summaryrefslogtreecommitdiff
path: root/apps/plugins/pdbox/PDa/src/m_fixed.h
diff options
context:
space:
mode:
authorPeter D'Hoye <peter.dhoye@gmail.com>2009-05-22 21:58:48 +0000
committerPeter D'Hoye <peter.dhoye@gmail.com>2009-05-22 21:58:48 +0000
commit513389b4c1bc8afe4b2dc9947c534bfeb105e3da (patch)
tree10e673b35651ac567fed2eda0c679c7ade64cbc6 /apps/plugins/pdbox/PDa/src/m_fixed.h
parent95fa7f6a2ef466444fbe3fe87efc6d5db6b77b36 (diff)
downloadrockbox-513389b4c1bc8afe4b2dc9947c534bfeb105e3da.tar.gz
rockbox-513389b4c1bc8afe4b2dc9947c534bfeb105e3da.zip
Add FS #10214. Initial commit of the original PDa code for the GSoC Pure Data plugin project of Wincent Balin. Stripped some non-sourcefiles and added a rockbox readme that needs a bit more info from Wincent. Is added to CATEGORIES and viewers, but not yet to SUBDIRS (ie doesn't build yet)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21044 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/pdbox/PDa/src/m_fixed.h')
-rw-r--r--apps/plugins/pdbox/PDa/src/m_fixed.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/apps/plugins/pdbox/PDa/src/m_fixed.h b/apps/plugins/pdbox/PDa/src/m_fixed.h
new file mode 100644
index 0000000000..4ccc121ac1
--- /dev/null
+++ b/apps/plugins/pdbox/PDa/src/m_fixed.h
@@ -0,0 +1,110 @@
1#ifndef __M_FIXED_H__
2#define __M_FIXED_H__
3
4typedef int t_sample;
5
6#define t_fixed int
7#define fix1 18 /* (18) number of bits after comma */
8
9
10#define fixfac ((float)(1<<fix1)) /* float factor (for scaling ftofix ..) */
11
12
13/* fixed point multiplication and division */
14
15#define mult(a,b) (long long)(((long long) (a) * (long long) (b))>>fix1)
16#define idiv(a,b) ((((long long) (a) )<<fix1)/(long long) (b) )
17
18/* conversion macros */
19
20#define itofix(a) ((a) << fix1)
21#define ftofix(a) ((t_fixed)( (a) *(double)fixfac + 0.5))
22
23#define fixtof(a) ((double) (a) * 1./(fixfac-0.5))
24#define fixtoi(a) ((a) >>fix1)
25
26
27/* Not working !! */
28
29#define fnum(a) ( (a) >>(fix1-16))
30#define ffrac(a) (0)
31
32
33/* mapping of fft functions */
34
35#ifdef FIXEDPOINT
36#define mayer_realifft imayer_realifft
37#define mayer_realfft imayer_realfft
38#define mayer_fft imayer_fft
39#define mayer_ifft imayer_ifft
40#endif
41
42#ifdef FIXEDPOINT
43#define SCALE16(x) (x>>(fix1-15))
44#define SCALE32(x) (x<<(32-fix1))
45#define INVSCALE16(x) (x<<8)
46#else
47#define SCALE16(x) (32767.*x)
48#define SCALE32(x) (2147483648.*x)
49#define INVSCALE16(x) ((float)3.051850e-05*x)
50#endif
51
52
53#endif
54
55
56#ifndef __M_FIXED_H__
57#define __M_FIXED_H__
58
59typedef int t_sample;
60
61#define t_fixed int
62#define fix1 18 /* (18) number of bits after comma */
63
64
65#define fixfac ((float)(1<<fix1)) /* float factor (for scaling ftofix ..) */
66
67
68/* fixed point multiplication and division */
69
70#define mult(a,b) (long long)(((long long) (a) * (long long) (b))>>fix1)
71#define idiv(a,b) ((((long long) (a) )<<fix1)/(long long) (b) )
72
73/* conversion macros */
74
75#define itofix(a) ((a) << fix1)
76#define ftofix(a) ((t_fixed)( (a) *(double)fixfac + 0.5))
77
78#define fixtof(a) ((double) (a) * 1./(fixfac-0.5))
79#define fixtoi(a) ((a) >>fix1)
80
81
82/* Not working !! */
83
84#define fnum(a) ( (a) >>(fix1-16))
85#define ffrac(a) (0)
86
87
88/* mapping of fft functions */
89
90#ifdef FIXEDPOINT
91#define mayer_realifft imayer_realifft
92#define mayer_realfft imayer_realfft
93#define mayer_fft imayer_fft
94#define mayer_ifft imayer_ifft
95#endif
96
97#ifdef FIXEDPOINT
98#define SCALE16(x) (x>>(fix1-15))
99#define SCALE32(x) (x<<(32-fix1))
100#define INVSCALE16(x) (x<<8)
101#else
102#define SCALE16(x) (32767.*x)
103#define SCALE32(x) (2147483648.*x)
104#define INVSCALE16(x) ((float)3.051850e-05*x)
105#endif
106
107
108#endif
109
110