#!/usr/bin/bc -l /* x^2 mixer volume scale $Id: mixer-sq,v 1.1 2005/09/25 12:40:09 chibis Exp $ */ scale = 0 /* it's not dB, but really a B! db = 8 means 80dB scale */ db = 8 /* don't change anything below this line! ---------------------------------- */ points = 10 maxmix = 100 plen = maxmix/points ibase = 16 zmax = 7FFFFFFF ibase = A /* volume from 0 to maxmix to gpr value */ define vol(x){ scale = 0; if(x==0) return 0; scale = 16; vol_10 = x/maxmix; ret =zmax*vol_10*vol_10; scale = 0; return ret; }; print "/*\n"; print " * min mixer value 0, max mixer value ", maxmix, ".\n"; print " * Generated by scripts/mixer-sq (square scale).\n"; print " */\n\n"; print "#define L2L_POINTS ", points, "\n\n"; obase = 10 print "static int l2l_df[L2L_POINTS] = {\n"; for(i=points;i>0;i--){ lvol = i*plen; rvol = (i-1)*plen obase=16 print "\t0x", (vol(lvol) - vol(rvol)) / plen obase=10 print ",\t\t/* ", lvol*1, "..", rvol*1," */\n"; } print "};\n\n"; obase = 10 print "static int l2l_f[L2L_POINTS] = {\n"; for(i=points-1;i>=0;i--){ lvol = i*plen; obase=16 print "\t0x", (vol(lvol))/1 obase=10 print ",\t\t/* ", lvol*1, " */\n"; }; print "};\n"; quit