#ifndef __M_FIXED_H__ #define __M_FIXED_H__ #ifdef ROCKBOX #include "plugin.h" #endif typedef int t_sample; #define t_fixed int #define fix1 18 /* (18) number of bits after comma */ #define fixfac ((float)(1<>= fix1 */ \ "orr %[lo], %[lo], %[hi], lsl %[shl]" /* lo |= (hi << (32-fix1)) */ \ : [lo]"=&r"(lo), [hi]"=&r"(hi) \ : [x]"r"(A), [y]"r"(B), [shr]"r"(fix1), [shl]"r"(32-fix1)); \ lo; \ }) #define idiv(a,b) ((((long long) (a) )<>fix1) #define idiv(a,b) ((((long long) (a) )<>fix1) #define idiv(a,b) ((((long long) (a) )<>fix1) /* Not working !! */ #define fnum(a) ( (a) >>(fix1-16)) #define ffrac(a) (0) /* mapping of fft functions */ #ifdef FIXEDPOINT #define mayer_realifft imayer_realifft #define mayer_realfft imayer_realfft #define mayer_fft imayer_fft #define mayer_ifft imayer_ifft #endif #ifdef FIXEDPOINT #define SCALE16(x) (x>>(fix1-15)) #define SCALE32(x) (x<<(32-fix1)) #define INVSCALE16(x) (x<<8) #else #define SCALE16(x) (32767.*x) #define SCALE32(x) (2147483648.*x) #define INVSCALE16(x) ((float)3.051850e-05*x) #endif #endif