comparison src/audacious/plugin.h @ 4240:29c8603a877a

added FMT_FIXED32, an equivalent of mad_fixed_t, already supported by libSAD; some endianness-related changes
author Eugene Zagidullin <e.asphyx@gmail.com>
date Mon, 04 Feb 2008 01:30:53 +0300
parents 8f6956130372
children 8157686b8115
comparison
equal deleted inserted replaced
4239:51291ce4eb54 4240:29c8603a877a
84 FMT_S32_LE, 84 FMT_S32_LE,
85 FMT_S32_BE, 85 FMT_S32_BE,
86 FMT_S32_NE, 86 FMT_S32_NE,
87 87
88 FMT_FLOAT, 88 FMT_FLOAT,
89 FMT_FIXED32, /* equivalent of libmad's mad_fixed_t explained below */
89 } AFormat; 90 } AFormat;
91
92 /* From mad.h:
93 *
94 * Fixed-point format: 0xABBBBBBB
95 * A == whole part (sign + 3 bits)
96 * B == fractional part (28 bits)
97 *
98 * Values are signed two's complement, so the effective range is:
99 * 0x80000000 to 0x7fffffff
100 * -8.0 to +7.9999999962747097015380859375
101 *
102 * The smallest representable value is:
103 * 0x00000001 == 0.0000000037252902984619140625 (i.e. about 3.725e-9)
104 *
105 * 28 bits of fractional accuracy represent about
106 * 8.6 digits of decimal accuracy.
107 *
108 * Fixed-point numbers can be added or subtracted as normal
109 * integers, but multiplication requires shifting the 64-bit result
110 * from 56 fractional bits back to 28 (and rounding.)
111 */
112
113 #define __AUDACIOUS_ASSUMED_MAD_F_FRACBITS__ 28 /* useful for build time check for plugins linked against libmad, i.e. madplug */
90 114
91 typedef enum { 115 typedef enum {
92 INPUT_VIS_ANALYZER, 116 INPUT_VIS_ANALYZER,
93 INPUT_VIS_SCOPE, 117 INPUT_VIS_SCOPE,
94 INPUT_VIS_VU, 118 INPUT_VIS_VU,