config root man

Current Path : /sys/amd64/compile/hs32/modules/usr/src/sys/modules/ichwd/@/amd64/compile/hs32/modules/usr/src/sys/modules/sound/sound/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //sys/amd64/compile/hs32/modules/usr/src/sys/modules/ichwd/@/amd64/compile/hs32/modules/usr/src/sys/modules/sound/sound/feeder_eq_gen.h

#ifndef _FEEDER_EQ_GEN_H_
#define _FEEDER_EQ_GEN_H_

/*
 * Generated using feeder_eq_mkfilter.awk, heaven, wind and awesome.
 *
 * DO NOT EDIT!
 */

/*
 * EQ: Peaking EQ
 */
#define FEEDER_EQ_PRESETS	"PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000"

struct feed_eq_coeff_tone {
	int32_t a1, a2;
	int32_t b0, b1, b2;
};

struct feed_eq_coeff {
	struct feed_eq_coeff_tone treble;
	struct feed_eq_coeff_tone bass;
};

static struct feed_eq_coeff eq_44100[19] = {
     {{  0x005de957, -0x006fba89,  0x00895f8a,  0x005de957,  0x0006e5ed },
      { -0x01f13b8a,  0x00f14082,  0x00fb3e0d, -0x01f13b8a,  0x00f60274 }},
     {{  0x0061d7ab, -0x0069b090,  0x0093269a,  0x0061d7ab,  0x000328d6 },
      { -0x01f208fa,  0x00f20df4,  0x00fbcd9b, -0x01f208fa,  0x00f64058 }},
     {{  0x0065de32, -0x0063816b,  0x009da57f,  0x0065de32, -0x000126eb },
      { -0x01f2cb88,  0x00f2d083,  0x00fc5a25, -0x01f2cb88,  0x00f6765f }},
     {{  0x0069fc09, -0x005d2e76,  0x00a8e973,  0x0069fc09, -0x000617e9 },
      { -0x01f383c0,  0x00f388bd,  0x00fce414, -0x01f383c0,  0x00f6a4a9 }},
     {{  0x006e302f, -0x0056b93b,  0x00b50085,  0x006e302f, -0x000bb9c0 },
      { -0x01f43226,  0x00f43725,  0x00fd6bd3, -0x01f43226,  0x00f6cb52 }},
     {{  0x00727984, -0x00502374,  0x00c1f9ac,  0x00727984, -0x00121d20 },
      { -0x01f4d73b,  0x00f4dc3c,  0x00fdf1ca, -0x01f4d73b,  0x00f6ea72 }},
     {{  0x0076d6cd, -0x00496f07,  0x00cfe4cd,  0x0076d6cd, -0x001953d4 },
      { -0x01f57378,  0x00f5787b,  0x00fe7661, -0x01f57378,  0x00f70219 }},
     {{  0x007b46ae, -0x00429e09,  0x00ded2c8,  0x007b46ae, -0x002170d1 },
      { -0x01f60752,  0x00f60c55,  0x00fefa02, -0x01f60752,  0x00f71253 }},
     {{  0x007fc7b3, -0x003bb2b6,  0x00eed585,  0x007fc7b3, -0x002a883b },
      { -0x01f69336,  0x00f6983b,  0x00ff7d14, -0x01f69336,  0x00f71b27 }},
     {{  0x0084584c, -0x0034af74,  0x01000000,  0x0084584c, -0x0034af74 },
      { -0x01f7178e,  0x00f71c94,  0x01000000, -0x01f7178e,  0x00f71c94 }},
     {{  0x0088f6d1, -0x002d96cf,  0x01126654,  0x0088f6d1, -0x003ffd23 },
      { -0x01f794bf,  0x00f799c7,  0x0100832f, -0x01f794bf,  0x00f71698 }},
     {{  0x008da185, -0x00266b74,  0x01261dcb,  0x008da185, -0x004c893f },
      { -0x01f80b29,  0x00f81032,  0x0101070b, -0x01f80b29,  0x00f70927 }},
     {{  0x00925695, -0x001f302c,  0x013b3cea,  0x00925695, -0x005a6d17 },
      { -0x01f87b26,  0x00f88030,  0x01018bff, -0x01f87b26,  0x00f6f430 }},
     {{  0x00971420, -0x0017e7df,  0x0151db84,  0x00971420, -0x0069c363 },
      { -0x01f8e50d,  0x00f8ea18,  0x01021279, -0x01f8e50d,  0x00f6d79f }},
     {{  0x009bd835, -0x00109585,  0x016a12c3,  0x009bd835, -0x007aa848 },
      { -0x01f94930,  0x00f94e3c,  0x01029ae5, -0x01f94930,  0x00f6b357 }},
     {{  0x00a0a0d9, -0x00093c2c,  0x0183fd3e,  0x00a0a0d9, -0x008d3969 },
      { -0x01f9a7de,  0x00f9aceb,  0x010325b5, -0x01f9a7de,  0x00f68736 }},
     {{  0x00a56c08, -0x0001dee9,  0x019fb708,  0x00a56c08, -0x00a195f2 },
      { -0x01fa0160,  0x00fa066e,  0x0103b35b, -0x01fa0160,  0x00f65313 }},
     {{  0x00aa37bc,  0x00057f24,  0x01bd5dc6,  0x00aa37bc, -0x00b7dea2 },
      { -0x01fa55fe,  0x00fa5b0d,  0x0104444d, -0x01fa55fe,  0x00f616c0 }},
     {{  0x00af01eb,  0x000cdade,  0x01dd10bf,  0x00af01eb, -0x00d035e1 },
      { -0x01faa5fa,  0x00faab09,  0x0104d903, -0x01faa5fa,  0x00f5d206 }}
};

static struct feed_eq_coeff eq_48000[19] = {
     {{  0x004182ac, -0x007cfaa7,  0x00851944,  0x004182ac, -0x000213eb },
      { -0x01f266eb,  0x00f26b1f,  0x00fb9e62, -0x01f266eb,  0x00f6ccbd }},
     {{  0x00445b0f, -0x007749e1,  0x008f0ee9,  0x00445b0f, -0x000658ca },
      { -0x01f32487,  0x00f328bd,  0x00fc22b6, -0x01f32487,  0x00f70607 }},
     {{  0x0047473e, -0x00717183,  0x0099ca5b,  0x0047473e, -0x000b3bde },
      { -0x01f3d80d,  0x00f3dc43,  0x00fca438, -0x01f3d80d,  0x00f7380b }},
     {{  0x004a46c1, -0x006b727e,  0x00a55a9c,  0x004a46c1, -0x0010cd1a },
      { -0x01f481fe,  0x00f48636,  0x00fd234c, -0x01f481fe,  0x00f762ea }},
     {{  0x004d5908, -0x00654df1,  0x00b1cfb2,  0x004d5908, -0x00171da2 },
      { -0x01f522d7,  0x00f52711,  0x00fda053, -0x01f522d7,  0x00f786be }},
     {{  0x00507d6b, -0x005f052a,  0x00bf3ab3,  0x00507d6b, -0x001e3fdd },
      { -0x01f5bb11,  0x00f5bf4c,  0x00fe1bb0, -0x01f5bb11,  0x00f7a39c }},
     {{  0x0053b32c, -0x005899a7,  0x00cdadd5,  0x0053b32c, -0x0026477c },
      { -0x01f64b1b,  0x00f64f57,  0x00fe95c2, -0x01f64b1b,  0x00f7b995 }},
     {{  0x0056f976, -0x00520d14,  0x00dd3c79,  0x0056f976, -0x002f498d },
      { -0x01f6d362,  0x00f6d7a0,  0x00ff0eea, -0x01f6d362,  0x00f7c8b6 }},
     {{  0x005a4f5b, -0x004b614b,  0x00edfb3b,  0x005a4f5b, -0x00395c85 },
      { -0x01f7544e,  0x00f7588d,  0x00ff8789, -0x01f7544e,  0x00f7d103 }},
     {{  0x005db3d7, -0x00449851,  0x01000000,  0x005db3d7, -0x00449851 },
      { -0x01f7ce41,  0x00f7d280,  0x01000000, -0x01f7ce41,  0x00f7d280 }},
     {{  0x006125d3, -0x003db45a,  0x01136206,  0x006125d3, -0x00511660 },
      { -0x01f84197,  0x00f845d7,  0x010078b0, -0x01f84197,  0x00f7cd28 }},
     {{  0x0064a420, -0x0036b7bf,  0x012839f3,  0x0064a420, -0x005ef1b2 },
      { -0x01f8aeaa,  0x00f8b2ec,  0x0100f1fa, -0x01f8aeaa,  0x00f7c0f2 }},
     {{  0x00682d7f, -0x002fa501,  0x013ea1e4,  0x00682d7f, -0x006e46e5 },
      { -0x01f915cf,  0x00f91a11,  0x01016c42, -0x01f915cf,  0x00f7adcf }},
     {{  0x006bc09e, -0x00287ec4,  0x0156b581,  0x006bc09e, -0x007f3445 },
      { -0x01f97755,  0x00f97b98,  0x0101e7eb, -0x01f97755,  0x00f793ac }},
     {{  0x006f5c1b, -0x002147c9,  0x0170920c,  0x006f5c1b, -0x0091d9d5 },
      { -0x01f9d389,  0x00f9d7cd,  0x0102655d, -0x01f9d389,  0x00f77270 }},
     {{  0x0072fe88, -0x001a02f0,  0x018c5673,  0x0072fe88, -0x00a65964 },
      { -0x01fa2ab4,  0x00fa2ef8,  0x0102e4fd, -0x01fa2ab4,  0x00f749fb }},
     {{  0x0076a669, -0x0012b32e,  0x01aa2367,  0x0076a669, -0x00bcd695 },
      { -0x01fa7d1a,  0x00fa815f,  0x01036736, -0x01fa7d1a,  0x00f71a29 }},
     {{  0x007a523c, -0x000b5b88,  0x01ca1b6c,  0x007a523c, -0x00d576f5 },
      { -0x01facafc,  0x00facf42,  0x0103ec74, -0x01facafc,  0x00f6e2ce }},
     {{  0x007e0076, -0x0003ff15,  0x01ec62f3,  0x007e0076, -0x00f06208 },
      { -0x01fb149a,  0x00fb18e0,  0x01047526, -0x01fb149a,  0x00f6a3ba }}
};

static struct feed_eq_coeff eq_88200[19] = {
     {{ -0x0034ce99, -0x0081990d,  0x00839bd5, -0x0034ce99, -0x000534e2 },
      { -0x01f88364,  0x00f884a6,  0x00fd961f, -0x01f88364,  0x00faee87 }},
     {{ -0x0037212c, -0x007c09d9,  0x008da0f8, -0x0037212c, -0x0009aad1 },
      { -0x01f8ed0d,  0x00f8ee50,  0x00fddf62, -0x01f8ed0d,  0x00fb0eef }},
     {{ -0x0039848e, -0x00765265,  0x009870d7, -0x0039848e, -0x000ec33d },
      { -0x01f950f7,  0x00f9523a,  0x00fe26fa, -0x01f950f7,  0x00fb2b40 }},
     {{ -0x003bf86c, -0x0070737e,  0x00a41b1e, -0x003bf86c, -0x00148e9d },
      { -0x01f9af6d,  0x00f9b0b0,  0x00fe6d22, -0x01f9af6d,  0x00fb438f }},
     {{ -0x003e7c5e, -0x006a6e1d,  0x00b0b08d, -0x003e7c5e, -0x001b1eaa },
      { -0x01fa08bc,  0x00fa09ff,  0x00feb211, -0x01fa08bc,  0x00fb57ee }},
     {{ -0x00410fe7, -0x00644369,  0x00be4307, -0x00410fe7, -0x0022866f },
      { -0x01fa5d28,  0x00fa5e6c,  0x00fef5ff, -0x01fa5d28,  0x00fb686c }},
     {{ -0x0043b279, -0x005df4b7,  0x00cce59e, -0x0043b279, -0x002ada56 },
      { -0x01faacf5,  0x00faae39,  0x00ff3925, -0x01faacf5,  0x00fb7514 }},
     {{ -0x00466371, -0x0057838e,  0x00dcaca9, -0x00466371, -0x00343036 },
      { -0x01faf863,  0x00faf9a7,  0x00ff7bb8, -0x01faf863,  0x00fb7def }},
     {{ -0x0049221a, -0x0050f1a0,  0x00edadc8, -0x0049221a, -0x003e9f69 },
      { -0x01fb3fad,  0x00fb40f1,  0x00ffbdef, -0x01fb3fad,  0x00fb8303 }},
     {{ -0x004bedaa, -0x004a40d0,  0x01000000, -0x004bedaa, -0x004a40d0 },
      { -0x01fb830d,  0x00fb8451,  0x01000000, -0x01fb830d,  0x00fb8451 }},
     {{ -0x004ec545, -0x0043732b,  0x0113bbc2, -0x004ec545, -0x00572eed },
      { -0x01fbc2b8,  0x00fbc3fc,  0x01004223, -0x01fbc2b8,  0x00fb81da }},
     {{ -0x0051a7fe, -0x003c8aea,  0x0128fb00, -0x0051a7fe, -0x006585ea },
      { -0x01fbfee2,  0x00fc0027,  0x0100848d, -0x01fbfee2,  0x00fb7b9a }},
     {{ -0x005494d7, -0x00358a6e,  0x013fd93d, -0x005494d7, -0x007563ab },
      { -0x01fc37bc,  0x00fc3901,  0x0100c776, -0x01fc37bc,  0x00fb718a }},
     {{ -0x00578ac1, -0x002e743d,  0x015873a0, -0x00578ac1, -0x0086e7de },
      { -0x01fc6d73,  0x00fc6eb8,  0x01010b16, -0x01fc6d73,  0x00fb63a2 }},
     {{ -0x005a88a0, -0x00274b01,  0x0172e905, -0x005a88a0, -0x009a3406 },
      { -0x01fca033,  0x00fca178,  0x01014fa5, -0x01fca033,  0x00fb51d3 }},
     {{ -0x005d8d4a, -0x00201182,  0x018f5a10, -0x005d8d4a, -0x00af6b91 },
      { -0x01fcd026,  0x00fcd16b,  0x0101955c, -0x01fcd026,  0x00fb3c0f }},
     {{ -0x0060978b, -0x0018caa0,  0x01ade944, -0x0060978b, -0x00c6b3e4 },
      { -0x01fcfd73,  0x00fcfeb8,  0x0101dc76, -0x01fcfd73,  0x00fb2242 }},
     {{ -0x0063a626, -0x00117955,  0x01cebb15, -0x0063a626, -0x00e0346a },
      { -0x01fd283e,  0x00fd2983,  0x0102252f, -0x01fd283e,  0x00fb0455 }},
     {{ -0x0066b7d6, -0x000a20ab,  0x01f1f601, -0x0066b7d6, -0x00fc16ac },
      { -0x01fd50ab,  0x00fd51f1,  0x01026fc3, -0x01fd50ab,  0x00fae22e }}
};

static struct feed_eq_coeff eq_96000[19] = {
     {{ -0x004182ac, -0x007cfaa7,  0x00851944, -0x004182ac, -0x000213eb },
      { -0x01f91d1d,  0x00f91e2e,  0x00fdc7a6, -0x01f91d1d,  0x00fb5688 }},
     {{ -0x00445b0f, -0x007749e1,  0x008f0ee9, -0x00445b0f, -0x000658ca },
      { -0x01f97e6b,  0x00f97f7b,  0x00fe0b12, -0x01f97e6b,  0x00fb746a }},
     {{ -0x0047473e, -0x00717183,  0x0099ca5b, -0x0047473e, -0x000b3bde },
      { -0x01f9da69,  0x00f9db7a,  0x00fe4cf3, -0x01f9da69,  0x00fb8e87 }},
     {{ -0x004a46c1, -0x006b727e,  0x00a55a9c, -0x004a46c1, -0x0010cd1a },
      { -0x01fa3161,  0x00fa3272,  0x00fe8d7e, -0x01fa3161,  0x00fba4f4 }},
     {{ -0x004d5908, -0x00654df1,  0x00b1cfb2, -0x004d5908, -0x00171da2 },
      { -0x01fa8397,  0x00fa84a8,  0x00fecce8, -0x01fa8397,  0x00fbb7c0 }},
     {{ -0x00507d6b, -0x005f052a,  0x00bf3ab3, -0x00507d6b, -0x001e3fdd },
      { -0x01fad14c,  0x00fad25d,  0x00ff0b64, -0x01fad14c,  0x00fbc6f9 }},
     {{ -0x0053b32c, -0x005899a7,  0x00cdadd5, -0x0053b32c, -0x0026477c },
      { -0x01fb1abe,  0x00fb1bcf,  0x00ff4925, -0x01fb1abe,  0x00fbd2aa }},
     {{ -0x0056f976, -0x00520d14,  0x00dd3c79, -0x0056f976, -0x002f498d },
      { -0x01fb6028,  0x00fb613a,  0x00ff865e, -0x01fb6028,  0x00fbdadb }},
     {{ -0x005a4f5b, -0x004b614b,  0x00edfb3b, -0x005a4f5b, -0x00395c85 },
      { -0x01fba1c1,  0x00fba2d3,  0x00ffc341, -0x01fba1c1,  0x00fbdf92 }},
     {{ -0x005db3d7, -0x00449851,  0x01000000, -0x005db3d7, -0x00449851 },
      { -0x01fbdfbf,  0x00fbe0d1,  0x01000000, -0x01fbdfbf,  0x00fbe0d1 }},
     {{ -0x006125d3, -0x003db45a,  0x01136206, -0x006125d3, -0x00511660 },
      { -0x01fc1a52,  0x00fc1b64,  0x01003ccd, -0x01fc1a52,  0x00fbde97 }},
     {{ -0x0064a420, -0x0036b7bf,  0x012839f3, -0x0064a420, -0x005ef1b2 },
      { -0x01fc51ab,  0x00fc52be,  0x010079dc, -0x01fc51ab,  0x00fbd8e2 }},
     {{ -0x00682d7f, -0x002fa501,  0x013ea1e4, -0x00682d7f, -0x006e46e5 },
      { -0x01fc85f7,  0x00fc870a,  0x0100b75e, -0x01fc85f7,  0x00fbcfac }},
     {{ -0x006bc09e, -0x00287ec4,  0x0156b581, -0x006bc09e, -0x007f3445 },
      { -0x01fcb760,  0x00fcb872,  0x0100f586, -0x01fcb760,  0x00fbc2ec }},
     {{ -0x006f5c1b, -0x002147c9,  0x0170920c, -0x006f5c1b, -0x0091d9d5 },
      { -0x01fce60e,  0x00fce720,  0x0101348a, -0x01fce60e,  0x00fbb296 }},
     {{ -0x0072fe88, -0x001a02f0,  0x018c5673, -0x0072fe88, -0x00a65964 },
      { -0x01fd1227,  0x00fd133a,  0x0101749d, -0x01fd1227,  0x00fb9e9d }},
     {{ -0x0076a669, -0x0012b32e,  0x01aa2367, -0x0076a669, -0x00bcd695 },
      { -0x01fd3bd0,  0x00fd3ce3,  0x0101b5f5, -0x01fd3bd0,  0x00fb86ed }},
     {{ -0x007a523c, -0x000b5b88,  0x01ca1b6c, -0x007a523c, -0x00d576f5 },
      { -0x01fd632a,  0x00fd643d,  0x0101f8ca, -0x01fd632a,  0x00fb6b73 }},
     {{ -0x007e0076, -0x0003ff15,  0x01ec62f3, -0x007e0076, -0x00f06208 },
      { -0x01fd8857,  0x00fd896a,  0x01023d53, -0x01fd8857,  0x00fb4c17 }}
};

static struct feed_eq_coeff eq_176400[19] = {
     {{ -0x0099526b, -0x0049e5b4,  0x009593cd, -0x0099526b,  0x0020867f },
      { -0x01fc3af5,  0x00fc3b46,  0x00fec8c9, -0x01fc3af5,  0x00fd727d }},
     {{ -0x009f0e08, -0x00431699,  0x009ec48b, -0x009f0e08,  0x001e24dc },
      { -0x01fc708c,  0x00fc70dd,  0x00feedcc, -0x01fc708c,  0x00fd8311 }},
     {{ -0x00a4dff2, -0x003c2d02,  0x00a88702, -0x00a4dff2,  0x001b4bfd },
      { -0x01fca32e,  0x00fca37f,  0x00ff11ef, -0x01fca32e,  0x00fd9190 }},
     {{ -0x00aac626, -0x00352b50,  0x00b2e428, -0x00aac626,  0x0017f088 },
      { -0x01fcd304,  0x00fcd356,  0x00ff3551, -0x01fcd304,  0x00fd9e05 }},
     {{ -0x00b0be84, -0x002e140d,  0x00bde57a, -0x00b0be84,  0x00140678 },
      { -0x01fd0036,  0x00fd0087,  0x00ff580e, -0x01fd0036,  0x00fda879 }},
     {{ -0x00b6c6cb, -0x0026e9e4,  0x00c99507, -0x00b6c6cb,  0x000f8115 },
      { -0x01fd2ae8,  0x00fd2b39,  0x00ff7a43, -0x01fd2ae8,  0x00fdb0f6 }},
     {{ -0x00bcdca4, -0x001faf9d,  0x00d5fd74, -0x00bcdca4,  0x000a52f0 },
      { -0x01fd533d,  0x00fd538e,  0x00ff9c0d, -0x01fd533d,  0x00fdb781 }},
     {{ -0x00c2fda0, -0x0018681b,  0x00e32a05, -0x00c2fda0,  0x00046de0 },
      { -0x01fd7956,  0x00fd79a7,  0x00ffbd88, -0x01fd7956,  0x00fdbc1f }},
     {{ -0x00c9273d, -0x0011165a,  0x00f126a8, -0x00c9273d, -0x00023d02 },
      { -0x01fd9d53,  0x00fd9da4,  0x00ffded0, -0x01fd9d53,  0x00fdbed4 }},
     {{ -0x00cf56ed, -0x0009bd62,  0x01000000, -0x00cf56ed, -0x0009bd62 },
      { -0x01fdbf51,  0x00fdbfa2,  0x01000000, -0x01fdbf51,  0x00fdbfa2 }},
     {{ -0x00d58a16, -0x0002604b,  0x010fc369, -0x00d58a16, -0x001223b4 },
      { -0x01fddf6c,  0x00fddfbe,  0x01002134, -0x01fddf6c,  0x00fdbe89 }},
     {{ -0x00dbbe17,  0x0004fdcf,  0x01207f0a, -0x00dbbe17, -0x001b813c },
      { -0x01fdfdc0,  0x00fdfe11,  0x01004289, -0x01fdfdc0,  0x00fdbb88 }},
     {{ -0x00e1f051,  0x000c59ca,  0x013241da, -0x00e1f051, -0x0025e810 },
      { -0x01fe1a64,  0x00fe1ab6,  0x0100641a, -0x01fe1a64,  0x00fdb69c }},
     {{ -0x00e81e25,  0x0013b08d,  0x01451bb0, -0x00e81e25, -0x00316b24 },
      { -0x01fe3571,  0x00fe35c3,  0x01008603, -0x01fe3571,  0x00fdafc0 }},
     {{ -0x00ee44fc,  0x001aff03,  0x01591d50, -0x00ee44fc, -0x003e1e4c },
      { -0x01fe4efe,  0x00fe4f4f,  0x0100a860, -0x01fe4efe,  0x00fda6ef }},
     {{ -0x00f4624c,  0x00224228,  0x016e5874, -0x00f4624c, -0x004c164c },
      { -0x01fe671f,  0x00fe6770,  0x0100cb50, -0x01fe671f,  0x00fd9c20 }},
     {{ -0x00fa739a,  0x0029770a,  0x0184dfe1, -0x00fa739a, -0x005b68d7 },
      { -0x01fe7de8,  0x00fe7e3a,  0x0100eeef, -0x01fe7de8,  0x00fd8f4b }},
     {{ -0x0100767f,  0x00309ace,  0x019cc771, -0x0100767f, -0x006c2ca3 },
      { -0x01fe936d,  0x00fe93bf,  0x0101135b, -0x01fe936d,  0x00fd8064 }},
     {{ -0x010668aa,  0x0037aab5,  0x01b62426, -0x010668aa, -0x007e7971 },
      { -0x01fea7c0,  0x00fea812,  0x010138b3, -0x01fea7c0,  0x00fd6f5f }}
};

static struct feed_eq_coeff eq_192000[19] = {
     {{ -0x00a58604, -0x0040deb4,  0x00987d50, -0x00a58604,  0x0026a3fc },
      { -0x01fc88dc,  0x00fc8921,  0x00fee1e7, -0x01fc88dc,  0x00fda73a }},
     {{ -0x00ab897d, -0x0039ed12,  0x00a1866c, -0x00ab897d,  0x00248c83 },
      { -0x01fcba27,  0x00fcba6c,  0x00ff03ef, -0x01fcba27,  0x00fdb67d }},
     {{ -0x00b1a125, -0x0032e423,  0x00ab1896, -0x00b1a125,  0x00220347 },
      { -0x01fce8b9,  0x00fce8fe,  0x00ff2529, -0x01fce8b9,  0x00fdc3d5 }},
     {{ -0x00b7cabe, -0x002bc67c,  0x00b53bef, -0x00b7cabe,  0x001efd95 },
      { -0x01fd14b8,  0x00fd14fd,  0x00ff45b1, -0x01fd14b8,  0x00fdcf4c }},
     {{ -0x00be03f1, -0x002496d0,  0x00bff911, -0x00be03f1,  0x001b701f },
      { -0x01fd3e48,  0x00fd3e8d,  0x00ff65a0, -0x01fd3e48,  0x00fdd8ec }},
     {{ -0x00c44a4d, -0x001d57f3,  0x00cb5918, -0x00c44a4d,  0x00174ef4 },
      { -0x01fd658b,  0x00fd65d0,  0x00ff8513, -0x01fd658b,  0x00fde0bd }},
     {{ -0x00ca9b4a, -0x00160cd0,  0x00d765ac, -0x00ca9b4a,  0x00128d84 },
      { -0x01fd8aa1,  0x00fd8ae6,  0x00ffa422, -0x01fd8aa1,  0x00fde6c4 }},
     {{ -0x00d0f451, -0x000eb865,  0x00e42905, -0x00d0f451,  0x000d1e96 },
      { -0x01fdadaa,  0x00fdadee,  0x00ffc2e9, -0x01fdadaa,  0x00fdeb06 }},
     {{ -0x00d752ba, -0x00075dc2,  0x00f1adf9, -0x00d752ba,  0x0006f445 },
      { -0x01fdcec0,  0x00fdcf05,  0x00ffe17f, -0x01fdcec0,  0x00fded86 }},
     {{ -0x00ddb3d7,  0x00000000,  0x01000000, -0x00ddb3d7,  0x00000000 },
      { -0x01fdee01,  0x00fdee46,  0x01000000, -0x01fdee01,  0x00fdee46 }},
     {{ -0x00e414f4,  0x00075dc2,  0x010f2b41, -0x00e414f4, -0x0007cd7f },
      { -0x01fe0b86,  0x00fe0bcb,  0x01001e84, -0x01fe0b86,  0x00fded47 }},
     {{ -0x00ea735e,  0x000eb865,  0x011f3c9a, -0x00ea735e, -0x00108435 },
      { -0x01fe2768,  0x00fe27ac,  0x01003d26, -0x01fe2768,  0x00fdea86 }},
     {{ -0x00f0cc64,  0x00160cd0,  0x013041af, -0x00f0cc64, -0x001a34df },
      { -0x01fe41bd,  0x00fe4201,  0x01005bff, -0x01fe41bd,  0x00fde603 }},
     {{ -0x00f71d61,  0x001d57f3,  0x014248f0, -0x00f71d61, -0x0024f0fc },
      { -0x01fe5a9b,  0x00fe5ae0,  0x01007b28, -0x01fe5a9b,  0x00fddfb7 }},
     {{ -0x00fd63bd,  0x002496d0,  0x015561a9, -0x00fd63bd, -0x0030cad9 },
      { -0x01fe7217,  0x00fe725c,  0x01009abd, -0x01fe7217,  0x00fdd79f }},
     {{ -0x01039cf1,  0x002bc67c,  0x01699c0f, -0x01039cf1, -0x003dd594 },
      { -0x01fe8845,  0x00fe888a,  0x0100bad7, -0x01fe8845,  0x00fdcdb3 }},
     {{ -0x0109c68a,  0x0032e423,  0x017f094d, -0x0109c68a, -0x004c252a },
      { -0x01fe9d37,  0x00fe9d7c,  0x0100db92, -0x01fe9d37,  0x00fdc1ea }},
     {{ -0x010fde31,  0x0039ed12,  0x0195bb8f, -0x010fde31, -0x005bce7e },
      { -0x01feb0ff,  0x00feb144,  0x0100fd0a, -0x01feb0ff,  0x00fdb43a }},
     {{ -0x0115e1ab,  0x0040deb4,  0x01adc61a, -0x0115e1ab, -0x006ce766 },
      { -0x01fec3ad,  0x00fec3f2,  0x01011f5b, -0x01fec3ad,  0x00fda498 }}
};

static const struct {
	uint32_t rate;
	struct feed_eq_coeff *coeff;
} feed_eq_tab[] = {
	{  44100, eq_44100  },
	{  48000, eq_48000  },
	{  88200, eq_88200  },
	{  96000, eq_96000  },
	{ 176400, eq_176400 },
	{ 192000, eq_192000 },
};

#define FEEDEQ_RATE_MIN		44100
#define FEEDEQ_RATE_MAX		192000

#define FEEDEQ_TAB_SIZE							\
	((int32_t)(sizeof(feed_eq_tab) / sizeof(feed_eq_tab[0])))

static const struct {
	int32_t mul, shift;
} feed_eq_preamp[] = {
	{ 0x00000001, 0x00000003 },	/*  -9.0 dB */
	{ 0x047d66b1, 0x0000001d },	/*  -8.0 dB */
	{ 0x0a14517d, 0x0000001e },	/*  -7.0 dB */
	{ 0x0b504f33, 0x0000001e },	/*  -6.0 dB */
	{ 0x1965fea5, 0x0000001f },	/*  -5.0 dB */
	{ 0x1c823e07, 0x0000001f },	/*  -4.0 dB */
	{ 0x00000001, 0x00000002 },	/*  -3.0 dB */
	{ 0x047d66b1, 0x0000001c },	/*  -2.0 dB */
	{ 0x285145f3, 0x0000001f },	/*  -1.0 dB */
	{ 0x2d413ccd, 0x0000001f },	/*  +0.0 dB */
	{ 0x1965fea5, 0x0000001e },	/*  +1.0 dB */
	{ 0x39047c0f, 0x0000001f },	/*  +2.0 dB */
	{ 0x00000001, 0x00000001 },	/*  +3.0 dB */
	{ 0x47d66b0f, 0x0000001f },	/*  +4.0 dB */
	{ 0x285145f3, 0x0000001e },	/*  +5.0 dB */
	{ 0x2d413ccd, 0x0000001e },	/*  +6.0 dB */
	{ 0x6597fa95, 0x0000001f },	/*  +7.0 dB */
	{ 0x7208f81d, 0x0000001f },	/*  +8.0 dB */
	{ 0x00000001, 0x00000000 },	/*  +9.0 dB */
};

#define FEEDEQ_GAIN_MIN		-9
#define FEEDEQ_GAIN_MAX		9

#define FEEDEQ_GAIN_SHIFT	4
#define FEEDEQ_GAIN_DIV		10
#define FEEDEQ_GAIN_FMASK	0x0000000f
#define FEEDEQ_GAIN_STEP	10

#define FEEDEQ_COEFF_SHIFT	24

/*
 * volume level mapping (0 - 100):
 *
 *	  0  ->    0 ( -9.0 dB)
 *	  1  ->    0 ( -9.0 dB)
 *	  2  ->    0 ( -9.0 dB)
 *	  3  ->    0 ( -9.0 dB)
 *	  4  ->    0 ( -9.0 dB)
 *	  5  ->    0 ( -9.0 dB)
 *	  6  ->    1 ( -8.0 dB)
 *	  7  ->    1 ( -8.0 dB)
 *	  8  ->    1 ( -8.0 dB)
 *	  9  ->    1 ( -8.0 dB)
 *	 10  ->    1 ( -8.0 dB)
 *	 11  ->    2 ( -7.0 dB)
 *	 12  ->    2 ( -7.0 dB)
 *	 13  ->    2 ( -7.0 dB)
 *	 14  ->    2 ( -7.0 dB)
 *	 15  ->    2 ( -7.0 dB)
 *	 16  ->    3 ( -6.0 dB)
 *	 17  ->    3 ( -6.0 dB)
 *	 18  ->    3 ( -6.0 dB)
 *	 19  ->    3 ( -6.0 dB)
 *	 20  ->    3 ( -6.0 dB)
 *	 21  ->    3 ( -6.0 dB)
 *	 22  ->    4 ( -5.0 dB)
 *	 23  ->    4 ( -5.0 dB)
 *	 24  ->    4 ( -5.0 dB)
 *	 25  ->    4 ( -5.0 dB)
 *	 26  ->    4 ( -5.0 dB)
 *	 27  ->    5 ( -4.0 dB)
 *	 28  ->    5 ( -4.0 dB)
 *	 29  ->    5 ( -4.0 dB)
 *	 30  ->    5 ( -4.0 dB)
 *	 31  ->    5 ( -4.0 dB)
 *	 32  ->    6 ( -3.0 dB)
 *	 33  ->    6 ( -3.0 dB)
 *	 34  ->    6 ( -3.0 dB)
 *	 35  ->    6 ( -3.0 dB)
 *	 36  ->    6 ( -3.0 dB)
 *	 37  ->    7 ( -2.0 dB)
 *	 38  ->    7 ( -2.0 dB)
 *	 39  ->    7 ( -2.0 dB)
 *	 40  ->    7 ( -2.0 dB)
 *	 41  ->    7 ( -2.0 dB)
 *	 42  ->    7 ( -2.0 dB)
 *	 43  ->    8 ( -1.0 dB)
 *	 44  ->    8 ( -1.0 dB)
 *	 45  ->    8 ( -1.0 dB)
 *	 46  ->    8 ( -1.0 dB)
 *	 47  ->    8 ( -1.0 dB)
 *	 48  ->    9 ( +0.0 dB)
 *	 49  ->    9 ( +0.0 dB)
 *	 50  ->    9 ( +0.0 dB)
 *	 51  ->    9 ( +0.0 dB)
 *	 52  ->    9 ( +0.0 dB)
 *	 53  ->   10 ( +1.0 dB)
 *	 54  ->   10 ( +1.0 dB)
 *	 55  ->   10 ( +1.0 dB)
 *	 56  ->   10 ( +1.0 dB)
 *	 57  ->   10 ( +1.0 dB)
 *	 58  ->   11 ( +2.0 dB)
 *	 59  ->   11 ( +2.0 dB)
 *	 60  ->   11 ( +2.0 dB)
 *	 61  ->   11 ( +2.0 dB)
 *	 62  ->   11 ( +2.0 dB)
 *	 63  ->   11 ( +2.0 dB)
 *	 64  ->   12 ( +3.0 dB)
 *	 65  ->   12 ( +3.0 dB)
 *	 66  ->   12 ( +3.0 dB)
 *	 67  ->   12 ( +3.0 dB)
 *	 68  ->   12 ( +3.0 dB)
 *	 69  ->   13 ( +4.0 dB)
 *	 70  ->   13 ( +4.0 dB)
 *	 71  ->   13 ( +4.0 dB)
 *	 72  ->   13 ( +4.0 dB)
 *	 73  ->   13 ( +4.0 dB)
 *	 74  ->   14 ( +5.0 dB)
 *	 75  ->   14 ( +5.0 dB)
 *	 76  ->   14 ( +5.0 dB)
 *	 77  ->   14 ( +5.0 dB)
 *	 78  ->   14 ( +5.0 dB)
 *	 79  ->   15 ( +6.0 dB)
 *	 80  ->   15 ( +6.0 dB)
 *	 81  ->   15 ( +6.0 dB)
 *	 82  ->   15 ( +6.0 dB)
 *	 83  ->   15 ( +6.0 dB)
 *	 84  ->   15 ( +6.0 dB)
 *	 85  ->   16 ( +7.0 dB)
 *	 86  ->   16 ( +7.0 dB)
 *	 87  ->   16 ( +7.0 dB)
 *	 88  ->   16 ( +7.0 dB)
 *	 89  ->   16 ( +7.0 dB)
 *	 90  ->   17 ( +8.0 dB)
 *	 91  ->   17 ( +8.0 dB)
 *	 92  ->   17 ( +8.0 dB)
 *	 93  ->   17 ( +8.0 dB)
 *	 94  ->   17 ( +8.0 dB)
 *	 95  ->   18 ( +9.0 dB)
 *	 96  ->   18 ( +9.0 dB)
 *	 97  ->   18 ( +9.0 dB)
 *	 98  ->   18 ( +9.0 dB)
 *	 99  ->   18 ( +9.0 dB)
 *	100  ->   18 ( +9.0 dB)
 */

/*
 * smallest: 0.00000000000000005551115123125783
 *  largest: 4.05056426427985538651910246699117
 */

#endif	/* !_FEEDER_EQ_GEN_H_ */

Man Man