Deleted Added
full compact
27c27
< # $FreeBSD: head/sys/tools/sound/feeder_rate_mkfilter.awk 195283 2009-07-02 10:02:10Z ariff $
---
> # $FreeBSD: head/sys/tools/sound/feeder_rate_mkfilter.awk 195378 2009-07-05 18:15:06Z ariff $
388a389,409
> if (alen > 0 && a[1] == "COEFFICIENT_BIT") {
> if (alen != 2)
> return (-1);
> init_coeff_bit(floor(a[2]));
> return (-1);
> }
>
> if (alen > 0 && a[1] == "ACCUMULATOR_BIT") {
> if (alen != 2)
> return (-1);
> init_accum_bit(floor(a[2]));
> return (-1);
> }
>
> if (alen > 0 && a[1] == "INTERPOLATOR") {
> if (alen != 2)
> return (-1);
> init_coeff_interpolator(toupper(a[2]));
> return (-1);
> }
>
451c472,477
< s1 = Z_COEFF_SHIFT - (32 - bit);
---
> if ((bit + Z_COEFF_SHIFT) > Z_ACCUMULATOR_BIT)
> s1 = Z_COEFF_SHIFT - \
> (32 - (Z_ACCUMULATOR_BIT - Z_COEFF_SHIFT));
> else
> s1 = Z_COEFF_SHIFT - (32 - bit);
>
529a556,611
> function init_coeff_bit(cbit, xcbit)
> {
> xcbit = floor(cbit);
>
> if (Z_COEFF_SHIFT != 0) {
> if (xcbit != Z_COEFF_SHIFT)
> printf("#error Z_COEFF_SHIFT reinitialize!\n");
> return;
> }
>
> #
> # Initialize dynamic range of coefficients.
> #
> if (xcbit < 1)
> xcbit = 1;
> else if (xcbit > 30)
> xcbit = 30;
>
> Z_COEFF_SHIFT = xcbit;
> Z_COEFF_ONE = shl(1, Z_COEFF_SHIFT);
> }
>
> function init_accum_bit(accbit, xaccbit)
> {
> xaccbit = floor(accbit);
>
> if (Z_ACCUMULATOR_BIT != 0) {
> if (xaccbit != Z_ACCUMULATOR_BIT)
> printf("#error Z_ACCUMULATOR_BIT reinitialize!\n");
> return;
> }
>
> #
> # Initialize dynamic range of accumulator.
> #
> if (xaccbit > 64)
> xaccbit = 64;
> else if (xaccbit < 32)
> xaccbit = 32;
>
> Z_ACCUMULATOR_BIT = xaccbit;
> }
>
> function init_coeff_interpolator(interp)
> {
> #
> # Validate interpolator type.
> #
> if (interp == "ZOH" || interp == "LINEAR" || \
> interp == "QUADRATIC" || interp == "HERMITE" || \
> interp == "BSPLINE" || interp == "OPT32X" || \
> interp == "OPT16X" || interp == "OPT8X" || \
> interp == "OPT4X" || interp == "OPT2X")
> Z_COEFF_INTERPOLATOR = interp;
> }
>
538a621,623
> Z_ACCUMULATOR_BIT_DEFAULT = 58;
> Z_ACCUMULATOR_BIT = 0;
>
542,543c627,629
< Z_COEFF_SHIFT = 28;
< Z_COEFF_ONE = shl(1, Z_COEFF_SHIFT);
---
> Z_COEFF_SHIFT_DEFAULT = 30;
> Z_COEFF_SHIFT = 0;
> Z_COEFF_ONE = 0;
544a631,632
> Z_COEFF_INTERPOLATOR = 0;
>
622a711,714
> if (Z_COEFF_SHIFT == 0)
> init_coeff_bit(Z_COEFF_SHIFT_DEFAULT);
> if (Z_ACCUMULATOR_BIT == 0)
> init_accum_bit(Z_ACCUMULATOR_BIT_DEFAULT);
753a846,857
> printf("#define Z_ACCUMULATOR_BIT\t%d\n\n", Z_ACCUMULATOR_BIT)
> for (i = 8; i <= 32; i += 8) {
> gbit = ((i + Z_COEFF_SHIFT) > Z_ACCUMULATOR_BIT) ? \
> (i - (Z_ACCUMULATOR_BIT - Z_COEFF_SHIFT)) : 0;
> printf("#define Z_GUARD_BIT_%d\t\t%d\n", i, gbit);
> if (gbit == 0)
> printf("#define Z_NORM_%d(v)\t\t(v)\n\n", i);
> else
> printf("#define Z_NORM_%d(v)\t\t" \
> "((v) >> Z_GUARD_BIT_%d)\n\n", i, i);
> }
> printf("\n");
777a882,884
> if (Z_COEFF_INTERPOLATOR != 0)
> printf("\n#define Z_COEFF_INTERP_%s\t1\n", \
> Z_COEFF_INTERPOLATOR);