On Tue, 11 Jul 2006, m. allan noah wrote: >>> i need suggestions or pointers to code that i could use. what things i can >>> find are far over my head, but i have a simple brightness adjustment that >>> shifts the linear slope of the in-out function up or down, and a crude >>> contrast setting that changes the slope of the function around the center >>> of the table. i think both of these methods are likely too simplistic. >>> >>> anyone? >>> >> you might want to have a look @ plustek-usbmap.c, where the brightness & >> contrast adjustment isdone for the plustek backend. It's quite simple >> and works okay (tm) ;) >> >
so i came up with something similar to your code, except the user contrast setting is scaled to range from 0 to ~90 degrees, then converted to radians, then mashed thru a bit of trig (TOA) to give me the slope. this gives a linear scale instead of the sine scale of direct multiplication. the line is then recentered vertically, so that it crosses middle gray at the middle of the input range, making 0 contrast middle gray instead of black. user brightness setting is then scaled such that it covers the range required to move the contrast line completely off the table, so that full brightness is always white, and minimum brightness is always black, regardless of contrast setting. the function is send_lut() in backend/fujitsu.c, and it should be generic enough to work with other backends table widths, though fujitsu only uses 8 and 10 bit tables. should i add this to sanei_* somewhere, and make it even more generic? could other backends use it? allan -- "so don't tell us it can't be done, putting down what you don't know. money isn't our god, integrity will free our souls" - Max Cavalera