#!/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
